Skip to content

Commit 63a6313

Browse files
fxriraveit65
authored andcommitted
Make the displayed EomImage a property of EomScrollView
Besides the more obvious object orientation it also allows watch the property for changes. Might be useful for plugins. https://bugzilla.gnome.org/show_bug.cgi?id=544068 origin commit: https://git.gnome.org/browse/eog/commit/?h=gnome-3-4&id=4c0b5c8
1 parent cfc83b4 commit 63a6313

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

src/eom-scroll-view.c

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ enum {
7373
PROP_ANTIALIAS_IN,
7474
PROP_ANTIALIAS_OUT,
7575
PROP_BACKGROUND_COLOR,
76+
PROP_IMAGE,
7677
PROP_SCROLLWHEEL_ZOOM,
7778
PROP_TRANSP_COLOR,
7879
PROP_TRANSPARENCY_STYLE,
@@ -1671,6 +1672,31 @@ eom_scroll_view_set_image (EomScrollView *view, EomImage *image)
16711672
}
16721673

16731674
priv->image = image;
1675+
1676+
g_object_notify (G_OBJECT (view), "image");
1677+
}
1678+
1679+
/**
1680+
* eom_scroll_view_get_image:
1681+
* @view: An #EomScrollView.
1682+
*
1683+
* Gets the the currently displayed #EomImage.
1684+
*
1685+
* Returns: (transfer full): An #EomImage.
1686+
**/
1687+
EomImage*
1688+
eom_scroll_view_get_image (EomScrollView *view)
1689+
{
1690+
EomImage *img;
1691+
1692+
g_return_val_if_fail (EOM_IS_SCROLL_VIEW (view), NULL);
1693+
1694+
img = view->priv->image;
1695+
1696+
if (img != NULL)
1697+
g_object_ref (img);
1698+
1699+
return img;
16741700
}
16751701

16761702
gboolean
@@ -1920,6 +1946,9 @@ eom_scroll_view_get_property (GObject *object, guint property_id,
19201946
case PROP_ZOOM_MULTIPLIER:
19211947
g_value_set_double (value, priv->zoom_multiplier);
19221948
break;
1949+
case PROP_IMAGE:
1950+
g_value_set_object (value, priv->image);
1951+
break;
19231952
default:
19241953
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
19251954
}
@@ -1963,6 +1992,9 @@ eom_scroll_view_set_property (GObject *object, guint property_id,
19631992
case PROP_ZOOM_MULTIPLIER:
19641993
eom_scroll_view_set_zoom_multiplier (view, g_value_get_double (value));
19651994
break;
1995+
case PROP_IMAGE:
1996+
eom_scroll_view_set_image (view, g_value_get_object (value));
1997+
break;
19661998
default:
19671999
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
19682000
}
@@ -2033,6 +2065,16 @@ eom_scroll_view_class_init (EomScrollViewClass *klass)
20332065
g_param_spec_boolean ("scrollwheel-zoom", NULL, NULL, TRUE,
20342066
G_PARAM_READWRITE | G_PARAM_STATIC_NAME));
20352067

2068+
/**
2069+
* EomScrollView:image:
2070+
*
2071+
* This is the currently display #EomImage.
2072+
*/
2073+
g_object_class_install_property (
2074+
gobject_class, PROP_IMAGE,
2075+
g_param_spec_object ("image", NULL, NULL, EOM_TYPE_IMAGE,
2076+
G_PARAM_READWRITE | G_PARAM_STATIC_NAME));
2077+
20362078
/**
20372079
* EomScrollView:transparency-color:
20382080
*

src/eom-scroll-view.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ GtkWidget* eom_scroll_view_new (void);
4040

4141
/* loading stuff */
4242
void eom_scroll_view_set_image (EomScrollView *view, EomImage *image);
43+
EomImage* eom_scroll_view_get_image (EomScrollView *view);
4344

4445
/* general properties */
4546
void eom_scroll_view_set_scroll_wheel_zoom (EomScrollView *view, gboolean scroll_wheel_zoom);

0 commit comments

Comments
 (0)