Mercurial > geeqie.yaz
diff src/image-overlay.c @ 614:b2898f04c82e
image_osd_get() and image_osd_set() now uses flags.
author | zas_ |
---|---|
date | Fri, 09 May 2008 09:58:46 +0000 |
parents | d06f422a6673 |
children | cddccc89d93b |
line wrap: on
line diff
--- a/src/image-overlay.c Fri May 09 09:34:38 2008 +0000 +++ b/src/image-overlay.c Fri May 09 09:58:46 2008 +0000 @@ -30,13 +30,13 @@ *---------------------------------------------------------------------------- */ + typedef struct _OverlayStateData OverlayStateData; struct _OverlayStateData { ImageWindow *imd; ImageState changed_states; - gint show_info; - gint show_status; + OsdShowFlags show; gint ovl_info; @@ -123,9 +123,9 @@ void image_osd_toggle(ImageWindow *imd) { - gint info; + OsdShowFlags show; - if (image_osd_get(imd, &info, NULL) && info) + if (image_osd_get(imd, &show) && show & OSD_SHOW_INFO) { if (image_osd_histogram_onoff_status(imd)) { @@ -134,12 +134,12 @@ } else { - image_osd_set(imd, FALSE, FALSE); + image_osd_set(imd, OSD_SHOW_NOTHING); } } else { - image_osd_set(imd, TRUE, TRUE); + image_osd_set(imd, OSD_SHOW_INFO | OSD_SHOW_STATUS); image_osd_icon(imd, IMAGE_OSD_ICON, -1); image_osd_histogram_onoff_toggle(imd, 1); image_osd_update(imd); @@ -552,7 +552,7 @@ osd->imd->overlay_show_zoom = FALSE; - if (osd->show_info) + if (osd->show & OSD_SHOW_INFO) { if (osd->changed_states & IMAGE_STATE_IMAGE) { @@ -588,7 +588,7 @@ } } - if (osd->show_status) + if (osd->show & OSD_SHOW_STATUS) { gint i; @@ -763,7 +763,7 @@ image_osd_free(osd); } -static void image_osd_enable(ImageWindow *imd, gint info, gint status) +static void image_osd_enable(ImageWindow *imd, OsdShowFlags show) { OverlayStateData *osd; @@ -782,30 +782,26 @@ image_set_state_func(osd->imd, image_osd_state_cb, osd); } - if (osd->show_info != info || - osd->show_status != status) - { - osd->show_info = info; - osd->show_status = status; + if (show != osd->show) + image_osd_update_schedule(osd, TRUE); - image_osd_update_schedule(osd, TRUE); - } + osd->show = show; } -void image_osd_set(ImageWindow *imd, gint info, gint status) +void image_osd_set(ImageWindow *imd, OsdShowFlags show) { if (!imd) return; - if (!info && !status) + if (show == OSD_SHOW_NOTHING) { image_osd_remove(imd); return; } - image_osd_enable(imd, info, status); + image_osd_enable(imd, show); } -gint image_osd_get(ImageWindow *imd, gint *info, gint *status) +gint image_osd_get(ImageWindow *imd, OsdShowFlags *show) { OverlayStateData *osd; @@ -814,8 +810,7 @@ osd = g_object_get_data(G_OBJECT(imd->pr), "IMAGE_OVERLAY_DATA"); if (!osd) return FALSE; - if (info) *info = osd->show_info; - if (status) *status = osd->show_status; + if (show) *show = osd->show; return TRUE; }