*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
* the region code.
*/
void
-ev_print_region_contents (GdkRegion *region)
+ev_print_region_contents (cairo_region_t *region)
{
- GdkRectangle *rectangles = NULL;
gint n_rectangles, i;
if (region == NULL) {
}
g_print ("<region %p>\n", region);
- gdk_region_get_rectangles (region, &rectangles, &n_rectangles);
+ n_rectangles = cairo_region_num_rectangles (region);
for (i = 0; i < n_rectangles; i++) {
+ GdkRectangle rect;
+
+ cairo_region_get_rectangle (region, i, &rect);
g_print ("\t(%d %d, %d %d) [%dx%d]\n",
- rectangles[i].x,
- rectangles[i].y,
- rectangles[i].x + rectangles[i].width,
- rectangles[i].y + rectangles[i].height,
- rectangles[i].width,
- rectangles[i].height);
+ rect.x,
+ rect.y,
+ rect.x + rect.width,
+ rect.y + rect.height,
+ rect.width,
+ rect.height);
}
- g_free (rectangles);
}
static void
g_return_if_fail (widget != NULL);
- gtk_widget_size_request (GTK_WIDGET (menu), &req);
+ gtk_widget_get_preferred_size (GTK_WIDGET (menu), &req, NULL);
monitor_num = gdk_screen_get_monitor_at_point (screen, *x, *y);
gtk_menu_set_monitor (menu, monitor_num);
GtkTreeView *tree_view = GTK_TREE_VIEW (user_data);
GtkWidget *widget = GTK_WIDGET (user_data);
GtkRequisition req;
+ GtkAllocation allocation;
GdkRectangle visible;
- gtk_widget_size_request (GTK_WIDGET (menu), &req);
- gdk_window_get_origin (widget->window, x, y);
+ gtk_widget_get_preferred_size (GTK_WIDGET (menu), &req, NULL);
+ gdk_window_get_origin (gtk_widget_get_window (widget), x, y);
+ gtk_widget_get_allocation (widget, &allocation);
- *x += (widget->allocation.width - req.width) / 2;
+ *x += (allocation.width - req.width) / 2;
/* Add on height for the treeview title */
gtk_tree_view_get_visible_rect (tree_view, &visible);
- *y += widget->allocation.height - visible.height;
+ *y += allocation.height - visible.height;
selection = gtk_tree_view_get_selection (tree_view);
selected_rows = gtk_tree_selection_get_selected_rows (selection, &model);
return gdk_screen_get_n_monitors (screen);
}
-gdouble
-get_screen_dpi (GtkWindow *window)
-{
- GdkScreen *screen;
- gdouble xdpi, ydpi;
-
- screen = gtk_window_get_screen (window);
-
- xdpi = 25.4 * gdk_screen_get_width (screen) / gdk_screen_get_width_mm (screen);
- ydpi = 25.4 * gdk_screen_get_height (screen) / gdk_screen_get_height_mm (screen);
-
- return (xdpi + ydpi) / 2.0;
-}
-
-
void
file_chooser_dialog_add_writable_pixbuf_formats (GtkFileChooser *chooser)
{
g_slist_free (pixbuf_formats);
return NULL;
}
-
-#define XDIGIT(c) ((c) <= '9' ? (c) - '0' : ((c) & 0x4F) - 'A' + 10)
-#define HEXCHAR(s) ((XDIGIT (s[1]) << 4) + XDIGIT (s[2]))
-
-static char *
-uri_decoded_copy (const char *part, int length)
-{
- unsigned char *s, *d;
- char *decoded = g_strndup (part, length);
-
- s = d = (unsigned char *)decoded;
- do {
- if (*s == '%') {
- if (!g_ascii_isxdigit (s[1]) ||
- !g_ascii_isxdigit (s[2])) {
- g_free (decoded);
- return NULL;
- }
- *d++ = HEXCHAR (s);
- s += 2;
- } else
- *d++ = *s;
- } while (*s++);
-
- return decoded;
-}
-
-char* escape_uri_for_display (const char *uri)
-{
- GFile *file;
- char *disp;
- char *filename;
-
- file = g_file_new_for_uri (uri);
- filename = g_file_get_parse_name (file);
- disp = uri_decoded_copy (filename, strlen (filename));
- g_free (filename);
- g_object_unref (file);
-
- return disp;
-}