Use flags instead of int parameters for pixbuf_renderer_overlay_add().
authorLaurent Monin <geeqie@norz.org>
Thu, 26 Jun 2008 12:23:48 +0000 (12:23 +0000)
committerLaurent Monin <geeqie@norz.org>
Thu, 26 Jun 2008 12:23:48 +0000 (12:23 +0000)
src/image-overlay.c
src/pixbuf-renderer.c
src/pixbuf-renderer.h

index 28add8d..8ef8e50 100644 (file)
@@ -698,9 +698,9 @@ static GdkPixbuf *image_osd_icon_pixbuf(ImageOSDFlag flag)
 }
 
 static gint image_overlay_add(ImageWindow *imd, GdkPixbuf *pixbuf, gint x, gint y,
-                             gint relative, gint always)
+                             OverlayRendererFlags flags)
 {
-       return pixbuf_renderer_overlay_add((PixbufRenderer *)imd->pr, pixbuf, x, y, relative, always);
+       return pixbuf_renderer_overlay_add((PixbufRenderer *)imd->pr, pixbuf, x, y, flags);
 }
 
 static void image_overlay_set(ImageWindow *imd, gint id, GdkPixbuf *pixbuf, gint x, gint y)
@@ -731,7 +731,7 @@ static void image_osd_icon_show(OverlayStateData *osd, ImageOSDFlag flag)
 
        osd->icon_id[flag] = image_overlay_add(osd->imd, pixbuf,
                                               osd_icons[flag].x, osd_icons[flag].y,
-                                              TRUE, FALSE);
+                                              OVL_RELATIVE);
 }
 
 static void image_osd_icon_hide(OverlayStateData *osd, ImageOSDFlag flag)
@@ -761,7 +761,7 @@ static gint image_osd_update_cb(gpointer data)
                                if (osd->ovl_info == 0)
                                        {
                                        osd->ovl_info = image_overlay_add(osd->imd, pixbuf,
-                                                                         osd->x, osd->y, TRUE, FALSE);
+                                                                         osd->x, osd->y, OVL_RELATIVE);
                                        }
                                else
                                        {
index 2b41cb3..44a6e23 100644 (file)
@@ -141,9 +141,8 @@ struct _OverlayData
 
        gint x;
        gint y;
-       gint relative;  /* x,y coordinates are relative, negative values start bottom right */
 
-       gint always;    /* hide temporarily when scrolling (not yet implemented) */
+       OverlayRendererFlags flags;
 };
 
 enum {
@@ -830,7 +829,7 @@ static void pr_overlay_get_position(PixbufRenderer *pr, OverlayData *od,
        px = od->x;
        py = od->y;
 
-       if (od->relative)
+       if (od->flags & OVL_RELATIVE)
                {
                if (px < 0) px = pr->window_width - pw + px;
                if (py < 0) py = pr->window_height - ph + py;
@@ -954,8 +953,10 @@ static void pr_overlay_update_sizes(PixbufRenderer *pr)
                {
                OverlayData *od = work->data;
                work = work->next;
-
-               if (od->relative && od->window)
+               
+               if (!od->window) continue;
+               
+               if (od->flags & OVL_RELATIVE)
                        {
                        gint x, y, w, h;
 
@@ -982,7 +983,7 @@ static OverlayData *pr_overlay_find(PixbufRenderer *pr, gint id)
 }
 
 gint pixbuf_renderer_overlay_add(PixbufRenderer *pr, GdkPixbuf *pixbuf, gint x, gint y,
-                                gint relative, gint always)
+                                OverlayRendererFlags flags)
 {
        OverlayData *od;
        gint id;
@@ -1002,8 +1003,7 @@ gint pixbuf_renderer_overlay_add(PixbufRenderer *pr, GdkPixbuf *pixbuf, gint x,
        g_object_ref(G_OBJECT(od->pixbuf));
        od->x = x;
        od->y = y;
-       od->relative = relative;
-       od->always = always;
+       od->flags = flags;
 
        pr_overlay_get_position(pr, od, &px, &py, &pw, &ph);
 
@@ -1229,7 +1229,7 @@ static void pr_scroller_start(PixbufRenderer *pr, gint x, gint y)
                w = gdk_pixbuf_get_width(pixbuf);
                h = gdk_pixbuf_get_height(pixbuf);
 
-               pr->scroller_overlay = pixbuf_renderer_overlay_add(pr, pixbuf, x - w / 2, y - h / 2, FALSE, TRUE);
+               pr->scroller_overlay = pixbuf_renderer_overlay_add(pr, pixbuf, x - w / 2, y - h / 2, OVL_NORMAL);
                g_object_unref(pixbuf);
                }
 
index b6420f0..99b1629 100644 (file)
@@ -238,9 +238,14 @@ gint pixbuf_renderer_get_virtual_rect(PixbufRenderer *pr, GdkRectangle *rect);
 void pixbuf_renderer_set_color(PixbufRenderer *pr, GdkColor *color);
 
 /* overlay */
+typedef enum {
+       OVL_NORMAL      = 0, 
+       OVL_RELATIVE    = 1 << 0, /* x,y coordinates are relative, negative values start bottom right */
+       /* OVL_HIDE_ON_SCROLL = 1 << 1*/ /* hide temporarily when scrolling (not yet implemented) */
+} OverlayRendererFlags;
 
 gint pixbuf_renderer_overlay_add(PixbufRenderer *pr, GdkPixbuf *pixbuf, gint x, gint y,
-                                gint relative, gint always);
+                                OverlayRendererFlags flags);
 void pixbuf_renderer_overlay_set(PixbufRenderer *pr, gint id, GdkPixbuf *pixbuf, gint x, gint y);
 gint pixbuf_renderer_overlay_get(PixbufRenderer *pr, gint id, GdkPixbuf **pixbuf, gint *x, gint *y);
 void pixbuf_renderer_overlay_remove(PixbufRenderer *pr, gint id);