mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-10-05 23:40:01 +00:00
Change parameters for functions that accept and return ArtIRect,
* components/news/nautilus-news.c: * libnautilus-extensions/nautilus-icon-canvas-item.c: * libnautilus-extensions/nautilus-icon-canvas-item.h: * libnautilus-extensions/nautilus-icon-container.c: * libnautilus-extensions/nautilus-icon-dnd.c: * libnautilus-extensions/nautilus-icon-factory.c: * src/file-manager/fm-list-view.c: * src/nautilus-about.c: * test/test.c: Change parameters for functions that accept and return ArtIRect, EelArtIPoint, ArtDRect, EelDimensions to pass by value instead of by pointer.
This commit is contained in:
parent
e3de11277e
commit
1260bbb9a4
15
ChangeLog
15
ChangeLog
|
@ -1,3 +1,18 @@
|
|||
2001-04-30 Ramiro Estrugo <ramiro@eazel.com>
|
||||
|
||||
* components/news/nautilus-news.c:
|
||||
* libnautilus-extensions/nautilus-icon-canvas-item.c:
|
||||
* libnautilus-extensions/nautilus-icon-canvas-item.h:
|
||||
* libnautilus-extensions/nautilus-icon-container.c:
|
||||
* libnautilus-extensions/nautilus-icon-dnd.c:
|
||||
* libnautilus-extensions/nautilus-icon-factory.c:
|
||||
* src/file-manager/fm-list-view.c:
|
||||
* src/nautilus-about.c:
|
||||
* test/test.c:
|
||||
Change parameters for functions that accept and return ArtIRect,
|
||||
EelArtIPoint, ArtDRect, EelDimensions to pass by value instead of
|
||||
by pointer.
|
||||
|
||||
2001-04-30 Dan Mueth <dan@eazel.com>
|
||||
|
||||
Updating Nautilus Quick Reference, both content and many
|
||||
|
|
|
@ -597,7 +597,7 @@ draw_rss_items (RSSChannelData *channel_data,
|
|||
if (!art_irect_empty (&dest_bounds)) {
|
||||
eel_smooth_text_layout_draw_to_pixbuf
|
||||
(smooth_text_layout, pixbuf,
|
||||
0, 0, &dest_bounds, GTK_JUSTIFY_LEFT,
|
||||
0, 0, dest_bounds, GTK_JUSTIFY_LEFT,
|
||||
TRUE, text_color,
|
||||
EEL_OPACITY_FULLY_OPAQUE);
|
||||
|
||||
|
|
|
@ -168,8 +168,6 @@ static void nautilus_icon_canvas_item_get_arg (GtkObject
|
|||
GtkArg *arg,
|
||||
guint arg_id);
|
||||
|
||||
|
||||
|
||||
/* GnomeCanvasItem */
|
||||
static void nautilus_icon_canvas_item_update (GnomeCanvasItem *item,
|
||||
double *affine,
|
||||
|
@ -195,8 +193,6 @@ static void nautilus_icon_canvas_item_bounds (GnomeCanvasItem
|
|||
double *x2,
|
||||
double *y2);
|
||||
|
||||
|
||||
|
||||
/* private */
|
||||
static void draw_or_measure_label_text (NautilusIconCanvasItem *item,
|
||||
GdkDrawable *drawable,
|
||||
|
@ -215,7 +211,7 @@ static void get_icon_canvas_rectangle (NautilusIconCanvasIt
|
|||
ArtIRect *rect);
|
||||
static void emblem_layout_reset (EmblemLayout *layout,
|
||||
NautilusIconCanvasItem *icon_item,
|
||||
const ArtIRect *icon_rect);
|
||||
ArtIRect icon_rect);
|
||||
static gboolean emblem_layout_next (EmblemLayout *layout,
|
||||
GdkPixbuf **emblem_pixbuf,
|
||||
ArtIRect *emblem_rect);
|
||||
|
@ -224,11 +220,9 @@ static void draw_pixbuf (GdkPixbuf
|
|||
int x,
|
||||
int y);
|
||||
static gboolean hit_test_stretch_handle (NautilusIconCanvasItem *item,
|
||||
const ArtIRect *canvas_rect);
|
||||
ArtIRect canvas_rect);
|
||||
static gboolean icon_canvas_item_is_smooth (const NautilusIconCanvasItem *icon_item);
|
||||
|
||||
|
||||
|
||||
EEL_DEFINE_CLASS_BOILERPLATE (NautilusIconCanvasItem, nautilus_icon_canvas_item, GNOME_TYPE_CANVAS_ITEM)
|
||||
|
||||
static EelSmoothTextLayoutCache *layout_cache;
|
||||
|
@ -638,16 +632,19 @@ recompute_bounding_box (NautilusIconCanvasItem *icon_item)
|
|||
item->y2 = bottom_right.y;
|
||||
}
|
||||
|
||||
static void
|
||||
static ArtIRect
|
||||
compute_text_rectangle (NautilusIconCanvasItem *item,
|
||||
const ArtIRect *icon_rect,
|
||||
ArtIRect *text_rect)
|
||||
ArtIRect icon_rectangle)
|
||||
{
|
||||
ArtIRect text_rectangle;
|
||||
|
||||
/* Compute text rectangle. */
|
||||
text_rect->x0 = (icon_rect->x0 + icon_rect->x1) / 2 - item->details->text_width / 2;
|
||||
text_rect->y0 = icon_rect->y1 + LABEL_OFFSET;
|
||||
text_rect->x1 = text_rect->x0 + item->details->text_width;
|
||||
text_rect->y1 = text_rect->y0 + item->details->text_height;
|
||||
text_rectangle.x0 = (icon_rectangle.x0 + icon_rectangle.x1) / 2 - item->details->text_width / 2;
|
||||
text_rectangle.y0 = icon_rectangle.y1 + LABEL_OFFSET;
|
||||
text_rectangle.x1 = text_rectangle.x0 + item->details->text_width;
|
||||
text_rectangle.y1 = text_rectangle.y0 + item->details->text_height;
|
||||
|
||||
return text_rectangle;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -658,34 +655,34 @@ nautilus_icon_canvas_item_update_bounds (NautilusIconCanvasItem *item)
|
|||
GdkPixbuf *emblem_pixbuf;
|
||||
|
||||
/* Compute new bounds. */
|
||||
eel_gnome_canvas_item_get_current_canvas_bounds
|
||||
(GNOME_CANVAS_ITEM (item), &before);
|
||||
before = eel_gnome_canvas_item_get_current_canvas_bounds
|
||||
(GNOME_CANVAS_ITEM (item));
|
||||
recompute_bounding_box (item);
|
||||
eel_gnome_canvas_item_get_current_canvas_bounds
|
||||
(GNOME_CANVAS_ITEM (item), &after);
|
||||
after = eel_gnome_canvas_item_get_current_canvas_bounds
|
||||
(GNOME_CANVAS_ITEM (item));
|
||||
|
||||
/* If the bounds didn't change, we are done. */
|
||||
if (eel_art_irect_equal (&before, &after)) {
|
||||
if (eel_art_irect_equal (before, after)) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Update canvas and text rect cache */
|
||||
get_icon_canvas_rectangle (item, &item->details->canvas_rect);
|
||||
compute_text_rectangle (item, &item->details->canvas_rect, &item->details->text_rect);
|
||||
item->details->text_rect = compute_text_rectangle (item, item->details->canvas_rect);
|
||||
|
||||
/* Update emblem rect cache */
|
||||
item->details->emblem_rect.x0 = 0;
|
||||
item->details->emblem_rect.x1 = 0;
|
||||
item->details->emblem_rect.y0 = 0;
|
||||
item->details->emblem_rect.y1 = 0;
|
||||
emblem_layout_reset (&emblem_layout, item, &item->details->canvas_rect);
|
||||
emblem_layout_reset (&emblem_layout, item, item->details->canvas_rect);
|
||||
while (emblem_layout_next (&emblem_layout, &emblem_pixbuf, &emblem_rect)) {
|
||||
art_irect_union (&item->details->emblem_rect, &item->details->emblem_rect, &emblem_rect);
|
||||
}
|
||||
|
||||
/* Send out the bounds_changed signal and queue a redraw. */
|
||||
eel_gnome_canvas_request_redraw_rectangle
|
||||
(GNOME_CANVAS_ITEM (item)->canvas, &before);
|
||||
(GNOME_CANVAS_ITEM (item)->canvas, before);
|
||||
gtk_signal_emit (GTK_OBJECT (item),
|
||||
signals[BOUNDS_CHANGED]);
|
||||
eel_gnome_canvas_item_request_redraw
|
||||
|
@ -1107,10 +1104,10 @@ draw_stretch_handles_aa (NautilusIconCanvasItem *item, GnomeCanvasBuf *buf,
|
|||
}
|
||||
|
||||
static void
|
||||
emblem_layout_reset (EmblemLayout *layout, NautilusIconCanvasItem *icon_item, const ArtIRect *icon_rect)
|
||||
emblem_layout_reset (EmblemLayout *layout, NautilusIconCanvasItem *icon_item, ArtIRect icon_rect)
|
||||
{
|
||||
layout->icon_item = icon_item;
|
||||
layout->icon_rect = *icon_rect;
|
||||
layout->icon_rect = icon_rect;
|
||||
layout->side = RIGHT_SIDE;
|
||||
layout->position = 0;
|
||||
layout->index = 0;
|
||||
|
@ -1387,7 +1384,7 @@ nautilus_icon_canvas_item_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
|
|||
gdk_pixbuf_unref (temp_pixbuf);
|
||||
|
||||
/* Draw the emblem pixbufs. */
|
||||
emblem_layout_reset (&emblem_layout, icon_item, &icon_rect);
|
||||
emblem_layout_reset (&emblem_layout, icon_item, icon_rect);
|
||||
while (emblem_layout_next (&emblem_layout, &emblem_pixbuf, &emblem_rect)) {
|
||||
draw_pixbuf (emblem_pixbuf, drawable, emblem_rect.x0, emblem_rect.y0);
|
||||
}
|
||||
|
@ -1535,7 +1532,7 @@ draw_or_measure_label_text_aa (NautilusIconCanvasItem *item,
|
|||
destination_pixbuf,
|
||||
0,
|
||||
0,
|
||||
&destination_area,
|
||||
destination_area,
|
||||
GTK_JUSTIFY_CENTER,
|
||||
underlined,
|
||||
EEL_RGB_COLOR_BLACK,
|
||||
|
@ -1550,7 +1547,7 @@ draw_or_measure_label_text_aa (NautilusIconCanvasItem *item,
|
|||
destination_pixbuf,
|
||||
0,
|
||||
0,
|
||||
&destination_area,
|
||||
destination_area,
|
||||
GTK_JUSTIFY_CENTER,
|
||||
underlined,
|
||||
label_color,
|
||||
|
@ -1566,7 +1563,7 @@ draw_or_measure_label_text_aa (NautilusIconCanvasItem *item,
|
|||
destination_pixbuf,
|
||||
0,
|
||||
0,
|
||||
&destination_area,
|
||||
destination_area,
|
||||
GTK_JUSTIFY_CENTER,
|
||||
underlined,
|
||||
label_color,
|
||||
|
@ -1750,7 +1747,7 @@ nautilus_icon_canvas_item_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf)
|
|||
gdk_pixbuf_unref (temp_pixbuf);
|
||||
|
||||
/* draw the emblems */
|
||||
emblem_layout_reset (&emblem_layout, icon_item, &icon_rect);
|
||||
emblem_layout_reset (&emblem_layout, icon_item, icon_rect);
|
||||
while (emblem_layout_next (&emblem_layout, &emblem_pixbuf, &emblem_rect)) {
|
||||
eel_gnome_canvas_draw_pixbuf (buf, emblem_pixbuf, emblem_rect.x0, emblem_rect.y0);
|
||||
}
|
||||
|
@ -1828,7 +1825,7 @@ nautilus_icon_canvas_item_event (GnomeCanvasItem *item, GdkEvent *event)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
hit_test_pixbuf (GdkPixbuf *pixbuf, const ArtIRect *pixbuf_location, const ArtIRect *probe_rect)
|
||||
hit_test_pixbuf (GdkPixbuf *pixbuf, ArtIRect pixbuf_location, ArtIRect probe_rect)
|
||||
{
|
||||
ArtIRect relative_rect, pixbuf_rect;
|
||||
int x, y;
|
||||
|
@ -1840,10 +1837,10 @@ hit_test_pixbuf (GdkPixbuf *pixbuf, const ArtIRect *pixbuf_location, const ArtIR
|
|||
}
|
||||
|
||||
/* Check to see if it's within the rectangle at all. */
|
||||
relative_rect.x0 = probe_rect->x0 - pixbuf_location->x0;
|
||||
relative_rect.y0 = probe_rect->y0 - pixbuf_location->y0;
|
||||
relative_rect.x1 = probe_rect->x1 - pixbuf_location->x0;
|
||||
relative_rect.y1 = probe_rect->y1 - pixbuf_location->y0;
|
||||
relative_rect.x0 = probe_rect.x0 - pixbuf_location.x0;
|
||||
relative_rect.y0 = probe_rect.y0 - pixbuf_location.y0;
|
||||
relative_rect.x1 = probe_rect.x1 - pixbuf_location.x0;
|
||||
relative_rect.y1 = probe_rect.y1 - pixbuf_location.y0;
|
||||
pixbuf_rect.x0 = 0;
|
||||
pixbuf_rect.y0 = 0;
|
||||
pixbuf_rect.x1 = gdk_pixbuf_get_width (pixbuf);
|
||||
|
@ -1874,7 +1871,7 @@ hit_test_pixbuf (GdkPixbuf *pixbuf, const ArtIRect *pixbuf_location, const ArtIR
|
|||
}
|
||||
|
||||
static gboolean
|
||||
hit_test (NautilusIconCanvasItem *icon_item, const ArtIRect *canvas_rect)
|
||||
hit_test (NautilusIconCanvasItem *icon_item, ArtIRect canvas_rect)
|
||||
{
|
||||
NautilusIconCanvasItemDetails *details;
|
||||
ArtIRect emblem_rect;
|
||||
|
@ -1884,9 +1881,9 @@ hit_test (NautilusIconCanvasItem *icon_item, const ArtIRect *canvas_rect)
|
|||
details = icon_item->details;
|
||||
|
||||
/* Quick check to see if the rect hits the icon, text or emblems at all. */
|
||||
if (!eel_art_irect_hits_irect (&icon_item->details->canvas_rect, canvas_rect)
|
||||
&& (!eel_art_irect_hits_irect (&details->text_rect, canvas_rect))
|
||||
&& (!eel_art_irect_hits_irect (&details->emblem_rect, canvas_rect))) {
|
||||
if (!eel_art_irect_hits_irect (icon_item->details->canvas_rect, canvas_rect)
|
||||
&& (!eel_art_irect_hits_irect (details->text_rect, canvas_rect))
|
||||
&& (!eel_art_irect_hits_irect (details->emblem_rect, canvas_rect))) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1897,25 +1894,25 @@ hit_test (NautilusIconCanvasItem *icon_item, const ArtIRect *canvas_rect)
|
|||
|
||||
/* Check for hit in the icon. If we're highlighted for dropping, anywhere in the rect is OK */
|
||||
if (icon_item->details->is_highlighted_for_drop) {
|
||||
if (eel_art_irect_hits_irect (&icon_item->details->canvas_rect, canvas_rect)) {
|
||||
if (eel_art_irect_hits_irect (icon_item->details->canvas_rect, canvas_rect)) {
|
||||
return TRUE;
|
||||
}
|
||||
} else {
|
||||
if (hit_test_pixbuf (details->pixbuf, &icon_item->details->canvas_rect, canvas_rect)) {
|
||||
if (hit_test_pixbuf (details->pixbuf, icon_item->details->canvas_rect, canvas_rect)) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check for hit in the text. */
|
||||
if (eel_art_irect_hits_irect (&details->text_rect, canvas_rect)
|
||||
if (eel_art_irect_hits_irect (details->text_rect, canvas_rect)
|
||||
&& !icon_item->details->is_renaming) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Check for hit in the emblem pixbufs. */
|
||||
emblem_layout_reset (&emblem_layout, icon_item, &icon_item->details->canvas_rect);
|
||||
emblem_layout_reset (&emblem_layout, icon_item, icon_item->details->canvas_rect);
|
||||
while (emblem_layout_next (&emblem_layout, &emblem_pixbuf, &emblem_rect)) {
|
||||
if (hit_test_pixbuf (emblem_pixbuf, &emblem_rect, canvas_rect)) {
|
||||
if (hit_test_pixbuf (emblem_pixbuf, emblem_rect, canvas_rect)) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -1935,7 +1932,7 @@ nautilus_icon_canvas_item_point (GnomeCanvasItem *item, double x, double y, int
|
|||
canvas_rect.y0 = cy;
|
||||
canvas_rect.x1 = cx + 1;
|
||||
canvas_rect.y1 = cy + 1;
|
||||
if (hit_test (NAUTILUS_ICON_CANVAS_ITEM (item), &canvas_rect)) {
|
||||
if (hit_test (NAUTILUS_ICON_CANVAS_ITEM (item), canvas_rect)) {
|
||||
return 0.0;
|
||||
} else {
|
||||
/* This value means not hit.
|
||||
|
@ -1979,11 +1976,11 @@ nautilus_icon_canvas_item_bounds (GnomeCanvasItem *item,
|
|||
}
|
||||
|
||||
/* Compute text rectangle. */
|
||||
compute_text_rectangle (icon_item, &icon_rect, &text_rect);
|
||||
text_rect = compute_text_rectangle (icon_item, icon_rect);
|
||||
|
||||
/* Compute total rectangle, adding in emblem rectangles. */
|
||||
art_irect_union (&total_rect, &icon_rect, &text_rect);
|
||||
emblem_layout_reset (&emblem_layout, icon_item, &icon_rect);
|
||||
emblem_layout_reset (&emblem_layout, icon_item, icon_rect);
|
||||
while (emblem_layout_next (&emblem_layout, &emblem_pixbuf, &emblem_rect)) {
|
||||
art_irect_union (&total_rect, &total_rect, &emblem_rect);
|
||||
}
|
||||
|
@ -1997,17 +1994,16 @@ nautilus_icon_canvas_item_bounds (GnomeCanvasItem *item,
|
|||
}
|
||||
|
||||
/* Get the rectangle of the icon only, in world coordinates. */
|
||||
void
|
||||
nautilus_icon_canvas_item_get_icon_rectangle (NautilusIconCanvasItem *item,
|
||||
ArtDRect *rect)
|
||||
ArtDRect
|
||||
nautilus_icon_canvas_item_get_icon_rectangle (const NautilusIconCanvasItem *item)
|
||||
{
|
||||
ArtDRect rectangle;
|
||||
double i2w[6];
|
||||
ArtPoint art_point;
|
||||
double pixels_per_unit;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
g_return_if_fail (NAUTILUS_IS_ICON_CANVAS_ITEM (item));
|
||||
g_return_if_fail (rect != NULL);
|
||||
g_return_val_if_fail (NAUTILUS_IS_ICON_CANVAS_ITEM (item), eel_art_drect_empty);
|
||||
|
||||
gnome_canvas_item_i2w_affine (GNOME_CANVAS_ITEM (item), i2w);
|
||||
|
||||
|
@ -2015,14 +2011,16 @@ nautilus_icon_canvas_item_get_icon_rectangle (NautilusIconCanvasItem *item,
|
|||
art_point.y = 0;
|
||||
art_affine_point (&art_point, &art_point, i2w);
|
||||
|
||||
rect->x0 = art_point.x;
|
||||
rect->y0 = art_point.y;
|
||||
rectangle.x0 = art_point.x;
|
||||
rectangle.y0 = art_point.y;
|
||||
|
||||
pixbuf = item->details->pixbuf;
|
||||
pixels_per_unit = GNOME_CANVAS_ITEM (item)->canvas->pixels_per_unit;
|
||||
|
||||
rect->x1 = rect->x0 + (pixbuf == NULL ? 0 : gdk_pixbuf_get_width (pixbuf)) / pixels_per_unit;
|
||||
rect->y1 = rect->y0 + (pixbuf == NULL ? 0 : gdk_pixbuf_get_height (pixbuf)) / pixels_per_unit;
|
||||
rectangle.x1 = rectangle.x0 + (pixbuf == NULL ? 0 : gdk_pixbuf_get_width (pixbuf)) / pixels_per_unit;
|
||||
rectangle.y1 = rectangle.y0 + (pixbuf == NULL ? 0 : gdk_pixbuf_get_height (pixbuf)) / pixels_per_unit;
|
||||
|
||||
return rectangle;
|
||||
}
|
||||
|
||||
/* Get the rectangle of the icon only, in canvas coordinates. */
|
||||
|
@ -2083,7 +2081,7 @@ icon_canvas_item_is_smooth (const NautilusIconCanvasItem *icon_item)
|
|||
/* Check if one of the stretch handles was hit. */
|
||||
static gboolean
|
||||
hit_test_stretch_handle (NautilusIconCanvasItem *item,
|
||||
const ArtIRect *probe_canvas_rect)
|
||||
ArtIRect probe_canvas_rect)
|
||||
{
|
||||
ArtIRect icon_rect;
|
||||
char *knob_filename;
|
||||
|
@ -2099,7 +2097,7 @@ hit_test_stretch_handle (NautilusIconCanvasItem *item,
|
|||
|
||||
/* Quick check to see if the rect hits the icon at all. */
|
||||
icon_rect = item->details->canvas_rect;
|
||||
if (!eel_art_irect_hits_irect (probe_canvas_rect, &icon_rect)) {
|
||||
if (!eel_art_irect_hits_irect (probe_canvas_rect, icon_rect)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2112,29 +2110,28 @@ hit_test_stretch_handle (NautilusIconCanvasItem *item,
|
|||
gdk_pixbuf_unref(knob_pixbuf);
|
||||
|
||||
/* Check for hits in the stretch handles. */
|
||||
return (probe_canvas_rect->x0 < icon_rect.x0 + knob_width
|
||||
|| probe_canvas_rect->x1 >= icon_rect.x1 - knob_width)
|
||||
&& (probe_canvas_rect->y0 < icon_rect.y0 + knob_height
|
||||
|| probe_canvas_rect->y1 >= icon_rect.y1 - knob_height);
|
||||
return (probe_canvas_rect.x0 < icon_rect.x0 + knob_width
|
||||
|| probe_canvas_rect.x1 >= icon_rect.x1 - knob_width)
|
||||
&& (probe_canvas_rect.y0 < icon_rect.y0 + knob_height
|
||||
|| probe_canvas_rect.y1 >= icon_rect.y1 - knob_height);
|
||||
}
|
||||
|
||||
gboolean
|
||||
nautilus_icon_canvas_item_hit_test_stretch_handles (NautilusIconCanvasItem *item,
|
||||
const ArtPoint *world_point)
|
||||
ArtPoint world_point)
|
||||
{
|
||||
ArtIRect canvas_rect;
|
||||
|
||||
g_return_val_if_fail (NAUTILUS_IS_ICON_CANVAS_ITEM (item), FALSE);
|
||||
g_return_val_if_fail (world_point != NULL, FALSE);
|
||||
|
||||
gnome_canvas_w2c (GNOME_CANVAS_ITEM (item)->canvas,
|
||||
world_point->x,
|
||||
world_point->y,
|
||||
world_point.x,
|
||||
world_point.y,
|
||||
&canvas_rect.x0,
|
||||
&canvas_rect.y0);
|
||||
canvas_rect.x1 = canvas_rect.x0 + 1;
|
||||
canvas_rect.y1 = canvas_rect.y0 + 1;
|
||||
return hit_test_stretch_handle (item, &canvas_rect);
|
||||
return hit_test_stretch_handle (item, canvas_rect);
|
||||
}
|
||||
|
||||
/* nautilus_icon_canvas_item_hit_test_rectangle
|
||||
|
@ -2143,10 +2140,9 @@ nautilus_icon_canvas_item_hit_test_stretch_handles (NautilusIconCanvasItem *item
|
|||
* canvas rect.
|
||||
*/
|
||||
gboolean
|
||||
nautilus_icon_canvas_item_hit_test_rectangle (NautilusIconCanvasItem *item, const ArtIRect *canvas_rect)
|
||||
nautilus_icon_canvas_item_hit_test_rectangle (NautilusIconCanvasItem *item, ArtIRect canvas_rect)
|
||||
{
|
||||
g_return_val_if_fail (NAUTILUS_IS_ICON_CANVAS_ITEM (item), FALSE);
|
||||
g_return_val_if_fail (canvas_rect != NULL, FALSE);
|
||||
|
||||
return hit_test (item, canvas_rect);
|
||||
}
|
||||
|
|
|
@ -64,7 +64,6 @@ struct NautilusIconCanvasItemClass {
|
|||
/* GtkObject */
|
||||
GtkType nautilus_icon_canvas_item_get_type (void);
|
||||
|
||||
|
||||
/* attributes */
|
||||
void nautilus_icon_canvas_item_set_image (NautilusIconCanvasItem *item,
|
||||
GdkPixbuf *image);
|
||||
|
@ -83,12 +82,11 @@ void nautilus_icon_canvas_item_set_renaming (NautilusIconCanv
|
|||
|
||||
/* geometry and hit testing */
|
||||
gboolean nautilus_icon_canvas_item_hit_test_rectangle (NautilusIconCanvasItem *item,
|
||||
const ArtIRect *canvas_rect);
|
||||
ArtIRect canvas_rect);
|
||||
gboolean nautilus_icon_canvas_item_hit_test_stretch_handles (NautilusIconCanvasItem *item,
|
||||
const ArtPoint *world_point);
|
||||
ArtPoint world_point);
|
||||
void nautilus_icon_canvas_item_invalidate_label_size (NautilusIconCanvasItem *item);
|
||||
void nautilus_icon_canvas_item_get_icon_rectangle (NautilusIconCanvasItem *item,
|
||||
ArtDRect *world_rectangle);
|
||||
ArtDRect nautilus_icon_canvas_item_get_icon_rectangle (const NautilusIconCanvasItem *item);
|
||||
void nautilus_icon_canvas_item_update_bounds (NautilusIconCanvasItem *item);
|
||||
void nautilus_icon_canvas_item_set_smooth_font (NautilusIconCanvasItem *item,
|
||||
EelScalableFont *font);
|
||||
|
|
|
@ -476,8 +476,8 @@ reveal_icon (NautilusIconContainer *container,
|
|||
hadj = gtk_layout_get_hadjustment (GTK_LAYOUT (container));
|
||||
vadj = gtk_layout_get_vadjustment (GTK_LAYOUT (container));
|
||||
|
||||
eel_gnome_canvas_item_get_canvas_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item), &bounds);
|
||||
bounds = eel_gnome_canvas_item_get_canvas_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item));
|
||||
|
||||
if (bounds.y0 < vadj->value) {
|
||||
eel_gtk_adjustment_set_value (vadj, bounds.y0);
|
||||
|
@ -795,9 +795,9 @@ lay_down_one_line (NautilusIconContainer *container,
|
|||
for (p = line_start; p != line_end; p = p->next) {
|
||||
icon = p->data;
|
||||
|
||||
eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item), &bounds);
|
||||
nautilus_icon_canvas_item_get_icon_rectangle (icon->item, &icon_bounds);
|
||||
bounds = eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item));
|
||||
icon_bounds = nautilus_icon_canvas_item_get_icon_rectangle (icon->item);
|
||||
height_above = icon_bounds.y1 - bounds.y0;
|
||||
height_below = bounds.y1 - icon_bounds.y1;
|
||||
|
||||
|
@ -817,9 +817,9 @@ lay_down_one_line (NautilusIconContainer *container,
|
|||
for (p = line_start; p != line_end; p = p->next) {
|
||||
icon = p->data;
|
||||
|
||||
eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item), &bounds);
|
||||
nautilus_icon_canvas_item_get_icon_rectangle (icon->item, &icon_bounds);
|
||||
bounds = eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item));
|
||||
icon_bounds = nautilus_icon_canvas_item_get_icon_rectangle (icon->item);
|
||||
width = get_icon_space_width (container, &bounds);
|
||||
|
||||
icon_set_position
|
||||
|
@ -857,8 +857,8 @@ lay_down_icons_horizontal (NautilusIconContainer *container,
|
|||
icon = p->data;
|
||||
|
||||
/* Get the width of the icon. */
|
||||
eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item), &bounds);
|
||||
bounds = eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item));
|
||||
space_width = get_icon_space_width (container, &bounds);
|
||||
|
||||
/* If this icon doesn't fit, it's time to lay out the line that's queued up. */
|
||||
|
@ -1249,8 +1249,8 @@ reload_icon_positions (NautilusIconContainer *container)
|
|||
&have_stored_position);
|
||||
if (have_stored_position) {
|
||||
icon_set_position (icon, position.x, position.y);
|
||||
eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item), &bounds);
|
||||
bounds = eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item));
|
||||
if (bounds.y1 > bottom) {
|
||||
bottom = bounds.y1;
|
||||
}
|
||||
|
@ -1395,12 +1395,12 @@ rubberband_select (NautilusIconContainer *container,
|
|||
/* Only do this calculation once, since all the canvas items
|
||||
* we are interating are in the same coordinate space
|
||||
*/
|
||||
eel_gnome_canvas_world_to_canvas_rectangle
|
||||
(GNOME_CANVAS_ITEM (icon->item)->canvas, current_rect, &canvas_rect);
|
||||
canvas_rect = eel_gnome_canvas_world_to_canvas_rectangle
|
||||
(GNOME_CANVAS_ITEM (icon->item)->canvas, *current_rect);
|
||||
canvas_rect_calculated = TRUE;
|
||||
}
|
||||
|
||||
is_in = nautilus_icon_canvas_item_hit_test_rectangle (icon->item, &canvas_rect);
|
||||
is_in = nautilus_icon_canvas_item_hit_test_rectangle (icon->item, canvas_rect);
|
||||
|
||||
g_assert (icon->was_selected_before_rubberband == FALSE
|
||||
|| icon->was_selected_before_rubberband == TRUE);
|
||||
|
@ -1784,8 +1784,7 @@ compare_with_start_row (NautilusIconContainer *container,
|
|||
{
|
||||
ArtIRect bounds;
|
||||
|
||||
eel_gnome_canvas_item_get_current_canvas_bounds (GNOME_CANVAS_ITEM (icon->item),
|
||||
&bounds);
|
||||
bounds = eel_gnome_canvas_item_get_current_canvas_bounds (GNOME_CANVAS_ITEM (icon->item));
|
||||
if (container->details->arrow_key_start < bounds.y0) {
|
||||
return -1;
|
||||
}
|
||||
|
@ -1801,8 +1800,7 @@ compare_with_start_column (NautilusIconContainer *container,
|
|||
{
|
||||
ArtIRect bounds;
|
||||
|
||||
eel_gnome_canvas_item_get_current_canvas_bounds (GNOME_CANVAS_ITEM (icon->item),
|
||||
&bounds);
|
||||
bounds = eel_gnome_canvas_item_get_current_canvas_bounds (GNOME_CANVAS_ITEM (icon->item));
|
||||
if (container->details->arrow_key_start < bounds.x0) {
|
||||
return -1;
|
||||
}
|
||||
|
@ -2004,8 +2002,7 @@ record_arrow_key_start (NautilusIconContainer *container,
|
|||
return;
|
||||
}
|
||||
|
||||
nautilus_icon_canvas_item_get_icon_rectangle
|
||||
(icon->item, &world_rect);
|
||||
world_rect = nautilus_icon_canvas_item_get_icon_rectangle (icon->item);
|
||||
gnome_canvas_w2c
|
||||
(GNOME_CANVAS (container),
|
||||
(world_rect.x0 + world_rect.x1) / 2,
|
||||
|
@ -2596,7 +2593,7 @@ start_stretching (NautilusIconContainer *container)
|
|||
world_point.x = details->drag_x;
|
||||
world_point.y = details->drag_y;
|
||||
if (!nautilus_icon_canvas_item_hit_test_stretch_handles
|
||||
(icon->item, &world_point)) {
|
||||
(icon->item, world_point)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -4871,7 +4868,7 @@ nautilus_icon_container_start_renaming_selected_item (NautilusIconContainer *con
|
|||
gnome_canvas_item_show (GNOME_CANVAS_ITEM (details->rename_widget));
|
||||
}
|
||||
|
||||
nautilus_icon_canvas_item_get_icon_rectangle (icon->item, &icon_rect);
|
||||
icon_rect = nautilus_icon_canvas_item_get_icon_rectangle (icon->item);
|
||||
gnome_canvas_item_w2i (GNOME_CANVAS_ITEM (details->rename_widget), &icon_rect.x0, &icon_rect.y0);
|
||||
gnome_canvas_item_w2i (GNOME_CANVAS_ITEM (details->rename_widget), &icon_rect.x1, &icon_rect.y1);
|
||||
|
||||
|
|
|
@ -228,10 +228,9 @@ icon_get_data_binder (NautilusIcon *icon, gpointer data)
|
|||
|
||||
container = NAUTILUS_ICON_CONTAINER (context->iterator_context);
|
||||
|
||||
nautilus_icon_canvas_item_get_icon_rectangle
|
||||
(icon->item, &world_rect);
|
||||
eel_gnome_canvas_world_to_window_rectangle
|
||||
(GNOME_CANVAS (container), &world_rect, &window_rect);
|
||||
world_rect = nautilus_icon_canvas_item_get_icon_rectangle (icon->item);
|
||||
window_rect = eel_gnome_canvas_world_to_window_rectangle
|
||||
(GNOME_CANVAS (container), world_rect);
|
||||
|
||||
uri = nautilus_icon_container_get_icon_uri (container, icon);
|
||||
if (uri == NULL) {
|
||||
|
@ -551,9 +550,9 @@ nautilus_icon_container_item_at (NautilusIconContainer *container,
|
|||
NautilusIcon *icon;
|
||||
icon = p->data;
|
||||
|
||||
eel_gnome_canvas_world_to_canvas_rectangle (GNOME_CANVAS_ITEM (icon->item)->canvas, &point, &canvas_point);
|
||||
|
||||
if (nautilus_icon_canvas_item_hit_test_rectangle (icon->item, &canvas_point)) {
|
||||
canvas_point = eel_gnome_canvas_world_to_canvas_rectangle (GNOME_CANVAS_ITEM (icon->item)->canvas,
|
||||
point);
|
||||
if (nautilus_icon_canvas_item_hit_test_rectangle (icon->item, canvas_point)) {
|
||||
return icon;
|
||||
}
|
||||
}
|
||||
|
@ -1286,10 +1285,10 @@ nautilus_icon_dnd_begin_drag (NautilusIconContainer *container,
|
|||
to it, with the hope that we get it back someday as X Windows improves */
|
||||
|
||||
/* compute the image's offset */
|
||||
nautilus_icon_canvas_item_get_icon_rectangle
|
||||
(container->details->drag_icon->item, &world_rect);
|
||||
eel_gnome_canvas_world_to_window_rectangle
|
||||
(canvas, &world_rect, &window_rect);
|
||||
world_rect = nautilus_icon_canvas_item_get_icon_rectangle (
|
||||
container->details->drag_icon->item);
|
||||
window_rect = eel_gnome_canvas_world_to_window_rectangle
|
||||
(canvas, world_rect);
|
||||
x_offset = dnd_info->drag_info.start_x - window_rect.x0;
|
||||
y_offset = dnd_info->drag_info.start_y - window_rect.y0;
|
||||
|
||||
|
|
|
@ -2426,15 +2426,15 @@ GdkPixbuf * nautilus_icon_factory_get_pixbuf_from_name (const char *icon_name,
|
|||
|
||||
|
||||
static gboolean
|
||||
embedded_text_rect_usable (const ArtIRect *embedded_text_rect)
|
||||
embedded_text_rect_usable (ArtIRect embedded_text_rect)
|
||||
{
|
||||
if (art_irect_empty (embedded_text_rect)) {
|
||||
if (art_irect_empty (&embedded_text_rect)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (embedded_text_rect->x1 - embedded_text_rect->x0
|
||||
if (embedded_text_rect.x1 - embedded_text_rect.x0
|
||||
< MINIMUM_EMBEDDED_TEXT_RECT_WIDTH ||
|
||||
embedded_text_rect->y1 - embedded_text_rect->y0
|
||||
embedded_text_rect.y1 - embedded_text_rect.y0
|
||||
< MINIMUM_EMBEDDED_TEXT_RECT_HEIGHT) {
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -2470,14 +2470,13 @@ embedded_text_font_free (void)
|
|||
|
||||
static GdkPixbuf *
|
||||
embed_text (GdkPixbuf *pixbuf_without_text,
|
||||
const ArtIRect *embedded_text_rect,
|
||||
ArtIRect embedded_text_rect,
|
||||
const char *text)
|
||||
{
|
||||
EelSmoothTextLayout *smooth_text_layout;
|
||||
GdkPixbuf *pixbuf_with_text;
|
||||
|
||||
g_return_val_if_fail (pixbuf_without_text != NULL, NULL);
|
||||
g_return_val_if_fail (embedded_text_rect != NULL, NULL);
|
||||
|
||||
/* Quick out for the case where there's no place to embed the
|
||||
* text or the place is too small or there's no text.
|
||||
|
@ -2550,7 +2549,7 @@ load_icon_with_embedded_text (NautilusScalableIcon *scalable_icon,
|
|||
|
||||
/* Create a pixbuf with the text in it. */
|
||||
pixbuf_with_text = embed_text (icon_without_text->pixbuf,
|
||||
&icon_without_text->details.text_rect,
|
||||
icon_without_text->details.text_rect,
|
||||
scalable_icon->embedded_text);
|
||||
if (pixbuf_with_text == NULL) {
|
||||
return icon_without_text;
|
||||
|
|
|
@ -168,8 +168,6 @@ static void nautilus_icon_canvas_item_get_arg (GtkObject
|
|||
GtkArg *arg,
|
||||
guint arg_id);
|
||||
|
||||
|
||||
|
||||
/* GnomeCanvasItem */
|
||||
static void nautilus_icon_canvas_item_update (GnomeCanvasItem *item,
|
||||
double *affine,
|
||||
|
@ -195,8 +193,6 @@ static void nautilus_icon_canvas_item_bounds (GnomeCanvasItem
|
|||
double *x2,
|
||||
double *y2);
|
||||
|
||||
|
||||
|
||||
/* private */
|
||||
static void draw_or_measure_label_text (NautilusIconCanvasItem *item,
|
||||
GdkDrawable *drawable,
|
||||
|
@ -215,7 +211,7 @@ static void get_icon_canvas_rectangle (NautilusIconCanvasIt
|
|||
ArtIRect *rect);
|
||||
static void emblem_layout_reset (EmblemLayout *layout,
|
||||
NautilusIconCanvasItem *icon_item,
|
||||
const ArtIRect *icon_rect);
|
||||
ArtIRect icon_rect);
|
||||
static gboolean emblem_layout_next (EmblemLayout *layout,
|
||||
GdkPixbuf **emblem_pixbuf,
|
||||
ArtIRect *emblem_rect);
|
||||
|
@ -224,11 +220,9 @@ static void draw_pixbuf (GdkPixbuf
|
|||
int x,
|
||||
int y);
|
||||
static gboolean hit_test_stretch_handle (NautilusIconCanvasItem *item,
|
||||
const ArtIRect *canvas_rect);
|
||||
ArtIRect canvas_rect);
|
||||
static gboolean icon_canvas_item_is_smooth (const NautilusIconCanvasItem *icon_item);
|
||||
|
||||
|
||||
|
||||
EEL_DEFINE_CLASS_BOILERPLATE (NautilusIconCanvasItem, nautilus_icon_canvas_item, GNOME_TYPE_CANVAS_ITEM)
|
||||
|
||||
static EelSmoothTextLayoutCache *layout_cache;
|
||||
|
@ -638,16 +632,19 @@ recompute_bounding_box (NautilusIconCanvasItem *icon_item)
|
|||
item->y2 = bottom_right.y;
|
||||
}
|
||||
|
||||
static void
|
||||
static ArtIRect
|
||||
compute_text_rectangle (NautilusIconCanvasItem *item,
|
||||
const ArtIRect *icon_rect,
|
||||
ArtIRect *text_rect)
|
||||
ArtIRect icon_rectangle)
|
||||
{
|
||||
ArtIRect text_rectangle;
|
||||
|
||||
/* Compute text rectangle. */
|
||||
text_rect->x0 = (icon_rect->x0 + icon_rect->x1) / 2 - item->details->text_width / 2;
|
||||
text_rect->y0 = icon_rect->y1 + LABEL_OFFSET;
|
||||
text_rect->x1 = text_rect->x0 + item->details->text_width;
|
||||
text_rect->y1 = text_rect->y0 + item->details->text_height;
|
||||
text_rectangle.x0 = (icon_rectangle.x0 + icon_rectangle.x1) / 2 - item->details->text_width / 2;
|
||||
text_rectangle.y0 = icon_rectangle.y1 + LABEL_OFFSET;
|
||||
text_rectangle.x1 = text_rectangle.x0 + item->details->text_width;
|
||||
text_rectangle.y1 = text_rectangle.y0 + item->details->text_height;
|
||||
|
||||
return text_rectangle;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -658,34 +655,34 @@ nautilus_icon_canvas_item_update_bounds (NautilusIconCanvasItem *item)
|
|||
GdkPixbuf *emblem_pixbuf;
|
||||
|
||||
/* Compute new bounds. */
|
||||
eel_gnome_canvas_item_get_current_canvas_bounds
|
||||
(GNOME_CANVAS_ITEM (item), &before);
|
||||
before = eel_gnome_canvas_item_get_current_canvas_bounds
|
||||
(GNOME_CANVAS_ITEM (item));
|
||||
recompute_bounding_box (item);
|
||||
eel_gnome_canvas_item_get_current_canvas_bounds
|
||||
(GNOME_CANVAS_ITEM (item), &after);
|
||||
after = eel_gnome_canvas_item_get_current_canvas_bounds
|
||||
(GNOME_CANVAS_ITEM (item));
|
||||
|
||||
/* If the bounds didn't change, we are done. */
|
||||
if (eel_art_irect_equal (&before, &after)) {
|
||||
if (eel_art_irect_equal (before, after)) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Update canvas and text rect cache */
|
||||
get_icon_canvas_rectangle (item, &item->details->canvas_rect);
|
||||
compute_text_rectangle (item, &item->details->canvas_rect, &item->details->text_rect);
|
||||
item->details->text_rect = compute_text_rectangle (item, item->details->canvas_rect);
|
||||
|
||||
/* Update emblem rect cache */
|
||||
item->details->emblem_rect.x0 = 0;
|
||||
item->details->emblem_rect.x1 = 0;
|
||||
item->details->emblem_rect.y0 = 0;
|
||||
item->details->emblem_rect.y1 = 0;
|
||||
emblem_layout_reset (&emblem_layout, item, &item->details->canvas_rect);
|
||||
emblem_layout_reset (&emblem_layout, item, item->details->canvas_rect);
|
||||
while (emblem_layout_next (&emblem_layout, &emblem_pixbuf, &emblem_rect)) {
|
||||
art_irect_union (&item->details->emblem_rect, &item->details->emblem_rect, &emblem_rect);
|
||||
}
|
||||
|
||||
/* Send out the bounds_changed signal and queue a redraw. */
|
||||
eel_gnome_canvas_request_redraw_rectangle
|
||||
(GNOME_CANVAS_ITEM (item)->canvas, &before);
|
||||
(GNOME_CANVAS_ITEM (item)->canvas, before);
|
||||
gtk_signal_emit (GTK_OBJECT (item),
|
||||
signals[BOUNDS_CHANGED]);
|
||||
eel_gnome_canvas_item_request_redraw
|
||||
|
@ -1107,10 +1104,10 @@ draw_stretch_handles_aa (NautilusIconCanvasItem *item, GnomeCanvasBuf *buf,
|
|||
}
|
||||
|
||||
static void
|
||||
emblem_layout_reset (EmblemLayout *layout, NautilusIconCanvasItem *icon_item, const ArtIRect *icon_rect)
|
||||
emblem_layout_reset (EmblemLayout *layout, NautilusIconCanvasItem *icon_item, ArtIRect icon_rect)
|
||||
{
|
||||
layout->icon_item = icon_item;
|
||||
layout->icon_rect = *icon_rect;
|
||||
layout->icon_rect = icon_rect;
|
||||
layout->side = RIGHT_SIDE;
|
||||
layout->position = 0;
|
||||
layout->index = 0;
|
||||
|
@ -1387,7 +1384,7 @@ nautilus_icon_canvas_item_draw (GnomeCanvasItem *item, GdkDrawable *drawable,
|
|||
gdk_pixbuf_unref (temp_pixbuf);
|
||||
|
||||
/* Draw the emblem pixbufs. */
|
||||
emblem_layout_reset (&emblem_layout, icon_item, &icon_rect);
|
||||
emblem_layout_reset (&emblem_layout, icon_item, icon_rect);
|
||||
while (emblem_layout_next (&emblem_layout, &emblem_pixbuf, &emblem_rect)) {
|
||||
draw_pixbuf (emblem_pixbuf, drawable, emblem_rect.x0, emblem_rect.y0);
|
||||
}
|
||||
|
@ -1535,7 +1532,7 @@ draw_or_measure_label_text_aa (NautilusIconCanvasItem *item,
|
|||
destination_pixbuf,
|
||||
0,
|
||||
0,
|
||||
&destination_area,
|
||||
destination_area,
|
||||
GTK_JUSTIFY_CENTER,
|
||||
underlined,
|
||||
EEL_RGB_COLOR_BLACK,
|
||||
|
@ -1550,7 +1547,7 @@ draw_or_measure_label_text_aa (NautilusIconCanvasItem *item,
|
|||
destination_pixbuf,
|
||||
0,
|
||||
0,
|
||||
&destination_area,
|
||||
destination_area,
|
||||
GTK_JUSTIFY_CENTER,
|
||||
underlined,
|
||||
label_color,
|
||||
|
@ -1566,7 +1563,7 @@ draw_or_measure_label_text_aa (NautilusIconCanvasItem *item,
|
|||
destination_pixbuf,
|
||||
0,
|
||||
0,
|
||||
&destination_area,
|
||||
destination_area,
|
||||
GTK_JUSTIFY_CENTER,
|
||||
underlined,
|
||||
label_color,
|
||||
|
@ -1750,7 +1747,7 @@ nautilus_icon_canvas_item_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf)
|
|||
gdk_pixbuf_unref (temp_pixbuf);
|
||||
|
||||
/* draw the emblems */
|
||||
emblem_layout_reset (&emblem_layout, icon_item, &icon_rect);
|
||||
emblem_layout_reset (&emblem_layout, icon_item, icon_rect);
|
||||
while (emblem_layout_next (&emblem_layout, &emblem_pixbuf, &emblem_rect)) {
|
||||
eel_gnome_canvas_draw_pixbuf (buf, emblem_pixbuf, emblem_rect.x0, emblem_rect.y0);
|
||||
}
|
||||
|
@ -1828,7 +1825,7 @@ nautilus_icon_canvas_item_event (GnomeCanvasItem *item, GdkEvent *event)
|
|||
}
|
||||
|
||||
static gboolean
|
||||
hit_test_pixbuf (GdkPixbuf *pixbuf, const ArtIRect *pixbuf_location, const ArtIRect *probe_rect)
|
||||
hit_test_pixbuf (GdkPixbuf *pixbuf, ArtIRect pixbuf_location, ArtIRect probe_rect)
|
||||
{
|
||||
ArtIRect relative_rect, pixbuf_rect;
|
||||
int x, y;
|
||||
|
@ -1840,10 +1837,10 @@ hit_test_pixbuf (GdkPixbuf *pixbuf, const ArtIRect *pixbuf_location, const ArtIR
|
|||
}
|
||||
|
||||
/* Check to see if it's within the rectangle at all. */
|
||||
relative_rect.x0 = probe_rect->x0 - pixbuf_location->x0;
|
||||
relative_rect.y0 = probe_rect->y0 - pixbuf_location->y0;
|
||||
relative_rect.x1 = probe_rect->x1 - pixbuf_location->x0;
|
||||
relative_rect.y1 = probe_rect->y1 - pixbuf_location->y0;
|
||||
relative_rect.x0 = probe_rect.x0 - pixbuf_location.x0;
|
||||
relative_rect.y0 = probe_rect.y0 - pixbuf_location.y0;
|
||||
relative_rect.x1 = probe_rect.x1 - pixbuf_location.x0;
|
||||
relative_rect.y1 = probe_rect.y1 - pixbuf_location.y0;
|
||||
pixbuf_rect.x0 = 0;
|
||||
pixbuf_rect.y0 = 0;
|
||||
pixbuf_rect.x1 = gdk_pixbuf_get_width (pixbuf);
|
||||
|
@ -1874,7 +1871,7 @@ hit_test_pixbuf (GdkPixbuf *pixbuf, const ArtIRect *pixbuf_location, const ArtIR
|
|||
}
|
||||
|
||||
static gboolean
|
||||
hit_test (NautilusIconCanvasItem *icon_item, const ArtIRect *canvas_rect)
|
||||
hit_test (NautilusIconCanvasItem *icon_item, ArtIRect canvas_rect)
|
||||
{
|
||||
NautilusIconCanvasItemDetails *details;
|
||||
ArtIRect emblem_rect;
|
||||
|
@ -1884,9 +1881,9 @@ hit_test (NautilusIconCanvasItem *icon_item, const ArtIRect *canvas_rect)
|
|||
details = icon_item->details;
|
||||
|
||||
/* Quick check to see if the rect hits the icon, text or emblems at all. */
|
||||
if (!eel_art_irect_hits_irect (&icon_item->details->canvas_rect, canvas_rect)
|
||||
&& (!eel_art_irect_hits_irect (&details->text_rect, canvas_rect))
|
||||
&& (!eel_art_irect_hits_irect (&details->emblem_rect, canvas_rect))) {
|
||||
if (!eel_art_irect_hits_irect (icon_item->details->canvas_rect, canvas_rect)
|
||||
&& (!eel_art_irect_hits_irect (details->text_rect, canvas_rect))
|
||||
&& (!eel_art_irect_hits_irect (details->emblem_rect, canvas_rect))) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -1897,25 +1894,25 @@ hit_test (NautilusIconCanvasItem *icon_item, const ArtIRect *canvas_rect)
|
|||
|
||||
/* Check for hit in the icon. If we're highlighted for dropping, anywhere in the rect is OK */
|
||||
if (icon_item->details->is_highlighted_for_drop) {
|
||||
if (eel_art_irect_hits_irect (&icon_item->details->canvas_rect, canvas_rect)) {
|
||||
if (eel_art_irect_hits_irect (icon_item->details->canvas_rect, canvas_rect)) {
|
||||
return TRUE;
|
||||
}
|
||||
} else {
|
||||
if (hit_test_pixbuf (details->pixbuf, &icon_item->details->canvas_rect, canvas_rect)) {
|
||||
if (hit_test_pixbuf (details->pixbuf, icon_item->details->canvas_rect, canvas_rect)) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check for hit in the text. */
|
||||
if (eel_art_irect_hits_irect (&details->text_rect, canvas_rect)
|
||||
if (eel_art_irect_hits_irect (details->text_rect, canvas_rect)
|
||||
&& !icon_item->details->is_renaming) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* Check for hit in the emblem pixbufs. */
|
||||
emblem_layout_reset (&emblem_layout, icon_item, &icon_item->details->canvas_rect);
|
||||
emblem_layout_reset (&emblem_layout, icon_item, icon_item->details->canvas_rect);
|
||||
while (emblem_layout_next (&emblem_layout, &emblem_pixbuf, &emblem_rect)) {
|
||||
if (hit_test_pixbuf (emblem_pixbuf, &emblem_rect, canvas_rect)) {
|
||||
if (hit_test_pixbuf (emblem_pixbuf, emblem_rect, canvas_rect)) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -1935,7 +1932,7 @@ nautilus_icon_canvas_item_point (GnomeCanvasItem *item, double x, double y, int
|
|||
canvas_rect.y0 = cy;
|
||||
canvas_rect.x1 = cx + 1;
|
||||
canvas_rect.y1 = cy + 1;
|
||||
if (hit_test (NAUTILUS_ICON_CANVAS_ITEM (item), &canvas_rect)) {
|
||||
if (hit_test (NAUTILUS_ICON_CANVAS_ITEM (item), canvas_rect)) {
|
||||
return 0.0;
|
||||
} else {
|
||||
/* This value means not hit.
|
||||
|
@ -1979,11 +1976,11 @@ nautilus_icon_canvas_item_bounds (GnomeCanvasItem *item,
|
|||
}
|
||||
|
||||
/* Compute text rectangle. */
|
||||
compute_text_rectangle (icon_item, &icon_rect, &text_rect);
|
||||
text_rect = compute_text_rectangle (icon_item, icon_rect);
|
||||
|
||||
/* Compute total rectangle, adding in emblem rectangles. */
|
||||
art_irect_union (&total_rect, &icon_rect, &text_rect);
|
||||
emblem_layout_reset (&emblem_layout, icon_item, &icon_rect);
|
||||
emblem_layout_reset (&emblem_layout, icon_item, icon_rect);
|
||||
while (emblem_layout_next (&emblem_layout, &emblem_pixbuf, &emblem_rect)) {
|
||||
art_irect_union (&total_rect, &total_rect, &emblem_rect);
|
||||
}
|
||||
|
@ -1997,17 +1994,16 @@ nautilus_icon_canvas_item_bounds (GnomeCanvasItem *item,
|
|||
}
|
||||
|
||||
/* Get the rectangle of the icon only, in world coordinates. */
|
||||
void
|
||||
nautilus_icon_canvas_item_get_icon_rectangle (NautilusIconCanvasItem *item,
|
||||
ArtDRect *rect)
|
||||
ArtDRect
|
||||
nautilus_icon_canvas_item_get_icon_rectangle (const NautilusIconCanvasItem *item)
|
||||
{
|
||||
ArtDRect rectangle;
|
||||
double i2w[6];
|
||||
ArtPoint art_point;
|
||||
double pixels_per_unit;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
g_return_if_fail (NAUTILUS_IS_ICON_CANVAS_ITEM (item));
|
||||
g_return_if_fail (rect != NULL);
|
||||
g_return_val_if_fail (NAUTILUS_IS_ICON_CANVAS_ITEM (item), eel_art_drect_empty);
|
||||
|
||||
gnome_canvas_item_i2w_affine (GNOME_CANVAS_ITEM (item), i2w);
|
||||
|
||||
|
@ -2015,14 +2011,16 @@ nautilus_icon_canvas_item_get_icon_rectangle (NautilusIconCanvasItem *item,
|
|||
art_point.y = 0;
|
||||
art_affine_point (&art_point, &art_point, i2w);
|
||||
|
||||
rect->x0 = art_point.x;
|
||||
rect->y0 = art_point.y;
|
||||
rectangle.x0 = art_point.x;
|
||||
rectangle.y0 = art_point.y;
|
||||
|
||||
pixbuf = item->details->pixbuf;
|
||||
pixels_per_unit = GNOME_CANVAS_ITEM (item)->canvas->pixels_per_unit;
|
||||
|
||||
rect->x1 = rect->x0 + (pixbuf == NULL ? 0 : gdk_pixbuf_get_width (pixbuf)) / pixels_per_unit;
|
||||
rect->y1 = rect->y0 + (pixbuf == NULL ? 0 : gdk_pixbuf_get_height (pixbuf)) / pixels_per_unit;
|
||||
rectangle.x1 = rectangle.x0 + (pixbuf == NULL ? 0 : gdk_pixbuf_get_width (pixbuf)) / pixels_per_unit;
|
||||
rectangle.y1 = rectangle.y0 + (pixbuf == NULL ? 0 : gdk_pixbuf_get_height (pixbuf)) / pixels_per_unit;
|
||||
|
||||
return rectangle;
|
||||
}
|
||||
|
||||
/* Get the rectangle of the icon only, in canvas coordinates. */
|
||||
|
@ -2083,7 +2081,7 @@ icon_canvas_item_is_smooth (const NautilusIconCanvasItem *icon_item)
|
|||
/* Check if one of the stretch handles was hit. */
|
||||
static gboolean
|
||||
hit_test_stretch_handle (NautilusIconCanvasItem *item,
|
||||
const ArtIRect *probe_canvas_rect)
|
||||
ArtIRect probe_canvas_rect)
|
||||
{
|
||||
ArtIRect icon_rect;
|
||||
char *knob_filename;
|
||||
|
@ -2099,7 +2097,7 @@ hit_test_stretch_handle (NautilusIconCanvasItem *item,
|
|||
|
||||
/* Quick check to see if the rect hits the icon at all. */
|
||||
icon_rect = item->details->canvas_rect;
|
||||
if (!eel_art_irect_hits_irect (probe_canvas_rect, &icon_rect)) {
|
||||
if (!eel_art_irect_hits_irect (probe_canvas_rect, icon_rect)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -2112,29 +2110,28 @@ hit_test_stretch_handle (NautilusIconCanvasItem *item,
|
|||
gdk_pixbuf_unref(knob_pixbuf);
|
||||
|
||||
/* Check for hits in the stretch handles. */
|
||||
return (probe_canvas_rect->x0 < icon_rect.x0 + knob_width
|
||||
|| probe_canvas_rect->x1 >= icon_rect.x1 - knob_width)
|
||||
&& (probe_canvas_rect->y0 < icon_rect.y0 + knob_height
|
||||
|| probe_canvas_rect->y1 >= icon_rect.y1 - knob_height);
|
||||
return (probe_canvas_rect.x0 < icon_rect.x0 + knob_width
|
||||
|| probe_canvas_rect.x1 >= icon_rect.x1 - knob_width)
|
||||
&& (probe_canvas_rect.y0 < icon_rect.y0 + knob_height
|
||||
|| probe_canvas_rect.y1 >= icon_rect.y1 - knob_height);
|
||||
}
|
||||
|
||||
gboolean
|
||||
nautilus_icon_canvas_item_hit_test_stretch_handles (NautilusIconCanvasItem *item,
|
||||
const ArtPoint *world_point)
|
||||
ArtPoint world_point)
|
||||
{
|
||||
ArtIRect canvas_rect;
|
||||
|
||||
g_return_val_if_fail (NAUTILUS_IS_ICON_CANVAS_ITEM (item), FALSE);
|
||||
g_return_val_if_fail (world_point != NULL, FALSE);
|
||||
|
||||
gnome_canvas_w2c (GNOME_CANVAS_ITEM (item)->canvas,
|
||||
world_point->x,
|
||||
world_point->y,
|
||||
world_point.x,
|
||||
world_point.y,
|
||||
&canvas_rect.x0,
|
||||
&canvas_rect.y0);
|
||||
canvas_rect.x1 = canvas_rect.x0 + 1;
|
||||
canvas_rect.y1 = canvas_rect.y0 + 1;
|
||||
return hit_test_stretch_handle (item, &canvas_rect);
|
||||
return hit_test_stretch_handle (item, canvas_rect);
|
||||
}
|
||||
|
||||
/* nautilus_icon_canvas_item_hit_test_rectangle
|
||||
|
@ -2143,10 +2140,9 @@ nautilus_icon_canvas_item_hit_test_stretch_handles (NautilusIconCanvasItem *item
|
|||
* canvas rect.
|
||||
*/
|
||||
gboolean
|
||||
nautilus_icon_canvas_item_hit_test_rectangle (NautilusIconCanvasItem *item, const ArtIRect *canvas_rect)
|
||||
nautilus_icon_canvas_item_hit_test_rectangle (NautilusIconCanvasItem *item, ArtIRect canvas_rect)
|
||||
{
|
||||
g_return_val_if_fail (NAUTILUS_IS_ICON_CANVAS_ITEM (item), FALSE);
|
||||
g_return_val_if_fail (canvas_rect != NULL, FALSE);
|
||||
|
||||
return hit_test (item, canvas_rect);
|
||||
}
|
||||
|
|
|
@ -64,7 +64,6 @@ struct NautilusIconCanvasItemClass {
|
|||
/* GtkObject */
|
||||
GtkType nautilus_icon_canvas_item_get_type (void);
|
||||
|
||||
|
||||
/* attributes */
|
||||
void nautilus_icon_canvas_item_set_image (NautilusIconCanvasItem *item,
|
||||
GdkPixbuf *image);
|
||||
|
@ -83,12 +82,11 @@ void nautilus_icon_canvas_item_set_renaming (NautilusIconCanv
|
|||
|
||||
/* geometry and hit testing */
|
||||
gboolean nautilus_icon_canvas_item_hit_test_rectangle (NautilusIconCanvasItem *item,
|
||||
const ArtIRect *canvas_rect);
|
||||
ArtIRect canvas_rect);
|
||||
gboolean nautilus_icon_canvas_item_hit_test_stretch_handles (NautilusIconCanvasItem *item,
|
||||
const ArtPoint *world_point);
|
||||
ArtPoint world_point);
|
||||
void nautilus_icon_canvas_item_invalidate_label_size (NautilusIconCanvasItem *item);
|
||||
void nautilus_icon_canvas_item_get_icon_rectangle (NautilusIconCanvasItem *item,
|
||||
ArtDRect *world_rectangle);
|
||||
ArtDRect nautilus_icon_canvas_item_get_icon_rectangle (const NautilusIconCanvasItem *item);
|
||||
void nautilus_icon_canvas_item_update_bounds (NautilusIconCanvasItem *item);
|
||||
void nautilus_icon_canvas_item_set_smooth_font (NautilusIconCanvasItem *item,
|
||||
EelScalableFont *font);
|
||||
|
|
|
@ -476,8 +476,8 @@ reveal_icon (NautilusIconContainer *container,
|
|||
hadj = gtk_layout_get_hadjustment (GTK_LAYOUT (container));
|
||||
vadj = gtk_layout_get_vadjustment (GTK_LAYOUT (container));
|
||||
|
||||
eel_gnome_canvas_item_get_canvas_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item), &bounds);
|
||||
bounds = eel_gnome_canvas_item_get_canvas_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item));
|
||||
|
||||
if (bounds.y0 < vadj->value) {
|
||||
eel_gtk_adjustment_set_value (vadj, bounds.y0);
|
||||
|
@ -795,9 +795,9 @@ lay_down_one_line (NautilusIconContainer *container,
|
|||
for (p = line_start; p != line_end; p = p->next) {
|
||||
icon = p->data;
|
||||
|
||||
eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item), &bounds);
|
||||
nautilus_icon_canvas_item_get_icon_rectangle (icon->item, &icon_bounds);
|
||||
bounds = eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item));
|
||||
icon_bounds = nautilus_icon_canvas_item_get_icon_rectangle (icon->item);
|
||||
height_above = icon_bounds.y1 - bounds.y0;
|
||||
height_below = bounds.y1 - icon_bounds.y1;
|
||||
|
||||
|
@ -817,9 +817,9 @@ lay_down_one_line (NautilusIconContainer *container,
|
|||
for (p = line_start; p != line_end; p = p->next) {
|
||||
icon = p->data;
|
||||
|
||||
eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item), &bounds);
|
||||
nautilus_icon_canvas_item_get_icon_rectangle (icon->item, &icon_bounds);
|
||||
bounds = eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item));
|
||||
icon_bounds = nautilus_icon_canvas_item_get_icon_rectangle (icon->item);
|
||||
width = get_icon_space_width (container, &bounds);
|
||||
|
||||
icon_set_position
|
||||
|
@ -857,8 +857,8 @@ lay_down_icons_horizontal (NautilusIconContainer *container,
|
|||
icon = p->data;
|
||||
|
||||
/* Get the width of the icon. */
|
||||
eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item), &bounds);
|
||||
bounds = eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item));
|
||||
space_width = get_icon_space_width (container, &bounds);
|
||||
|
||||
/* If this icon doesn't fit, it's time to lay out the line that's queued up. */
|
||||
|
@ -1249,8 +1249,8 @@ reload_icon_positions (NautilusIconContainer *container)
|
|||
&have_stored_position);
|
||||
if (have_stored_position) {
|
||||
icon_set_position (icon, position.x, position.y);
|
||||
eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item), &bounds);
|
||||
bounds = eel_gnome_canvas_item_get_world_bounds
|
||||
(GNOME_CANVAS_ITEM (icon->item));
|
||||
if (bounds.y1 > bottom) {
|
||||
bottom = bounds.y1;
|
||||
}
|
||||
|
@ -1395,12 +1395,12 @@ rubberband_select (NautilusIconContainer *container,
|
|||
/* Only do this calculation once, since all the canvas items
|
||||
* we are interating are in the same coordinate space
|
||||
*/
|
||||
eel_gnome_canvas_world_to_canvas_rectangle
|
||||
(GNOME_CANVAS_ITEM (icon->item)->canvas, current_rect, &canvas_rect);
|
||||
canvas_rect = eel_gnome_canvas_world_to_canvas_rectangle
|
||||
(GNOME_CANVAS_ITEM (icon->item)->canvas, *current_rect);
|
||||
canvas_rect_calculated = TRUE;
|
||||
}
|
||||
|
||||
is_in = nautilus_icon_canvas_item_hit_test_rectangle (icon->item, &canvas_rect);
|
||||
is_in = nautilus_icon_canvas_item_hit_test_rectangle (icon->item, canvas_rect);
|
||||
|
||||
g_assert (icon->was_selected_before_rubberband == FALSE
|
||||
|| icon->was_selected_before_rubberband == TRUE);
|
||||
|
@ -1784,8 +1784,7 @@ compare_with_start_row (NautilusIconContainer *container,
|
|||
{
|
||||
ArtIRect bounds;
|
||||
|
||||
eel_gnome_canvas_item_get_current_canvas_bounds (GNOME_CANVAS_ITEM (icon->item),
|
||||
&bounds);
|
||||
bounds = eel_gnome_canvas_item_get_current_canvas_bounds (GNOME_CANVAS_ITEM (icon->item));
|
||||
if (container->details->arrow_key_start < bounds.y0) {
|
||||
return -1;
|
||||
}
|
||||
|
@ -1801,8 +1800,7 @@ compare_with_start_column (NautilusIconContainer *container,
|
|||
{
|
||||
ArtIRect bounds;
|
||||
|
||||
eel_gnome_canvas_item_get_current_canvas_bounds (GNOME_CANVAS_ITEM (icon->item),
|
||||
&bounds);
|
||||
bounds = eel_gnome_canvas_item_get_current_canvas_bounds (GNOME_CANVAS_ITEM (icon->item));
|
||||
if (container->details->arrow_key_start < bounds.x0) {
|
||||
return -1;
|
||||
}
|
||||
|
@ -2004,8 +2002,7 @@ record_arrow_key_start (NautilusIconContainer *container,
|
|||
return;
|
||||
}
|
||||
|
||||
nautilus_icon_canvas_item_get_icon_rectangle
|
||||
(icon->item, &world_rect);
|
||||
world_rect = nautilus_icon_canvas_item_get_icon_rectangle (icon->item);
|
||||
gnome_canvas_w2c
|
||||
(GNOME_CANVAS (container),
|
||||
(world_rect.x0 + world_rect.x1) / 2,
|
||||
|
@ -2596,7 +2593,7 @@ start_stretching (NautilusIconContainer *container)
|
|||
world_point.x = details->drag_x;
|
||||
world_point.y = details->drag_y;
|
||||
if (!nautilus_icon_canvas_item_hit_test_stretch_handles
|
||||
(icon->item, &world_point)) {
|
||||
(icon->item, world_point)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -4871,7 +4868,7 @@ nautilus_icon_container_start_renaming_selected_item (NautilusIconContainer *con
|
|||
gnome_canvas_item_show (GNOME_CANVAS_ITEM (details->rename_widget));
|
||||
}
|
||||
|
||||
nautilus_icon_canvas_item_get_icon_rectangle (icon->item, &icon_rect);
|
||||
icon_rect = nautilus_icon_canvas_item_get_icon_rectangle (icon->item);
|
||||
gnome_canvas_item_w2i (GNOME_CANVAS_ITEM (details->rename_widget), &icon_rect.x0, &icon_rect.y0);
|
||||
gnome_canvas_item_w2i (GNOME_CANVAS_ITEM (details->rename_widget), &icon_rect.x1, &icon_rect.y1);
|
||||
|
||||
|
|
|
@ -228,10 +228,9 @@ icon_get_data_binder (NautilusIcon *icon, gpointer data)
|
|||
|
||||
container = NAUTILUS_ICON_CONTAINER (context->iterator_context);
|
||||
|
||||
nautilus_icon_canvas_item_get_icon_rectangle
|
||||
(icon->item, &world_rect);
|
||||
eel_gnome_canvas_world_to_window_rectangle
|
||||
(GNOME_CANVAS (container), &world_rect, &window_rect);
|
||||
world_rect = nautilus_icon_canvas_item_get_icon_rectangle (icon->item);
|
||||
window_rect = eel_gnome_canvas_world_to_window_rectangle
|
||||
(GNOME_CANVAS (container), world_rect);
|
||||
|
||||
uri = nautilus_icon_container_get_icon_uri (container, icon);
|
||||
if (uri == NULL) {
|
||||
|
@ -551,9 +550,9 @@ nautilus_icon_container_item_at (NautilusIconContainer *container,
|
|||
NautilusIcon *icon;
|
||||
icon = p->data;
|
||||
|
||||
eel_gnome_canvas_world_to_canvas_rectangle (GNOME_CANVAS_ITEM (icon->item)->canvas, &point, &canvas_point);
|
||||
|
||||
if (nautilus_icon_canvas_item_hit_test_rectangle (icon->item, &canvas_point)) {
|
||||
canvas_point = eel_gnome_canvas_world_to_canvas_rectangle (GNOME_CANVAS_ITEM (icon->item)->canvas,
|
||||
point);
|
||||
if (nautilus_icon_canvas_item_hit_test_rectangle (icon->item, canvas_point)) {
|
||||
return icon;
|
||||
}
|
||||
}
|
||||
|
@ -1286,10 +1285,10 @@ nautilus_icon_dnd_begin_drag (NautilusIconContainer *container,
|
|||
to it, with the hope that we get it back someday as X Windows improves */
|
||||
|
||||
/* compute the image's offset */
|
||||
nautilus_icon_canvas_item_get_icon_rectangle
|
||||
(container->details->drag_icon->item, &world_rect);
|
||||
eel_gnome_canvas_world_to_window_rectangle
|
||||
(canvas, &world_rect, &window_rect);
|
||||
world_rect = nautilus_icon_canvas_item_get_icon_rectangle (
|
||||
container->details->drag_icon->item);
|
||||
window_rect = eel_gnome_canvas_world_to_window_rectangle
|
||||
(canvas, world_rect);
|
||||
x_offset = dnd_info->drag_info.start_x - window_rect.x0;
|
||||
y_offset = dnd_info->drag_info.start_y - window_rect.y0;
|
||||
|
||||
|
|
|
@ -2426,15 +2426,15 @@ GdkPixbuf * nautilus_icon_factory_get_pixbuf_from_name (const char *icon_name,
|
|||
|
||||
|
||||
static gboolean
|
||||
embedded_text_rect_usable (const ArtIRect *embedded_text_rect)
|
||||
embedded_text_rect_usable (ArtIRect embedded_text_rect)
|
||||
{
|
||||
if (art_irect_empty (embedded_text_rect)) {
|
||||
if (art_irect_empty (&embedded_text_rect)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (embedded_text_rect->x1 - embedded_text_rect->x0
|
||||
if (embedded_text_rect.x1 - embedded_text_rect.x0
|
||||
< MINIMUM_EMBEDDED_TEXT_RECT_WIDTH ||
|
||||
embedded_text_rect->y1 - embedded_text_rect->y0
|
||||
embedded_text_rect.y1 - embedded_text_rect.y0
|
||||
< MINIMUM_EMBEDDED_TEXT_RECT_HEIGHT) {
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -2470,14 +2470,13 @@ embedded_text_font_free (void)
|
|||
|
||||
static GdkPixbuf *
|
||||
embed_text (GdkPixbuf *pixbuf_without_text,
|
||||
const ArtIRect *embedded_text_rect,
|
||||
ArtIRect embedded_text_rect,
|
||||
const char *text)
|
||||
{
|
||||
EelSmoothTextLayout *smooth_text_layout;
|
||||
GdkPixbuf *pixbuf_with_text;
|
||||
|
||||
g_return_val_if_fail (pixbuf_without_text != NULL, NULL);
|
||||
g_return_val_if_fail (embedded_text_rect != NULL, NULL);
|
||||
|
||||
/* Quick out for the case where there's no place to embed the
|
||||
* text or the place is too small or there's no text.
|
||||
|
@ -2550,7 +2549,7 @@ load_icon_with_embedded_text (NautilusScalableIcon *scalable_icon,
|
|||
|
||||
/* Create a pixbuf with the text in it. */
|
||||
pixbuf_with_text = embed_text (icon_without_text->pixbuf,
|
||||
&icon_without_text->details.text_rect,
|
||||
icon_without_text->details.text_rect,
|
||||
scalable_icon->embedded_text);
|
||||
if (pixbuf_with_text == NULL) {
|
||||
return icon_without_text;
|
||||
|
|
|
@ -887,7 +887,7 @@ row_get_data_binder (EelCListRow *row, int row_index, gpointer data)
|
|||
eel_list_get_initial_drag_offset (context->list, &drag_offset_x, &drag_offset_y);
|
||||
|
||||
/* adjust the icons to be vertically relative to the initial mouse click position */
|
||||
icon_rect = eel_art_irect_offset_by (eel_gdk_rectangle_to_art_irect (&cell_rectangle),
|
||||
icon_rect = eel_art_irect_offset_by (eel_gdk_rectangle_to_art_irect (cell_rectangle),
|
||||
0, -drag_offset_y);
|
||||
|
||||
/* horizontally just center the outline rectangles -- this will make the outlines align with
|
||||
|
|
|
@ -419,8 +419,7 @@ nautilus_about_update_authors (NautilusAbout *about)
|
|||
EelScalableFont *plain_font;
|
||||
|
||||
/* clear the author area */
|
||||
eel_art_irect_assign (&author_area,
|
||||
AUTHOR_LEFT_POS - 24,
|
||||
author_area = eel_art_irect_assign (AUTHOR_LEFT_POS - 24,
|
||||
AUTHOR_TOP_POS,
|
||||
2 * AUTHOR_COLUMN_WIDTH,
|
||||
AUTHOR_LINE_HEIGHT * ITEMS_PER_COLUMN);
|
||||
|
|
|
@ -340,7 +340,7 @@ test_pixbuf_draw_rectangle_tiled (GdkPixbuf *pixbuf,
|
|||
if (x0 == -1 && y0 == -1 && x1 == -1 && y1 == -1) {
|
||||
EelDimensions dimensions;
|
||||
dimensions = eel_gdk_pixbuf_get_dimensions (pixbuf);
|
||||
area = eel_art_irect_assign_dimensions (0, 0, &dimensions);
|
||||
area = eel_art_irect_assign_dimensions (0, 0, dimensions);
|
||||
} else {
|
||||
g_return_if_fail (x0 >= 0);
|
||||
g_return_if_fail (y0 >= 0);
|
||||
|
@ -355,7 +355,7 @@ test_pixbuf_draw_rectangle_tiled (GdkPixbuf *pixbuf,
|
|||
|
||||
eel_gdk_pixbuf_draw_to_pixbuf_tiled (tile_pixbuf,
|
||||
pixbuf,
|
||||
&area,
|
||||
area,
|
||||
gdk_pixbuf_get_width (tile_pixbuf),
|
||||
gdk_pixbuf_get_height (tile_pixbuf),
|
||||
0,
|
||||
|
|
Loading…
Reference in a new issue