[gnome-software] screenshot image: Port to G_DECLARE_FINAL_TYPE macro
- From: Kalev Lember <klember src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] screenshot image: Port to G_DECLARE_FINAL_TYPE macro
- Date: Mon, 7 Sep 2015 17:36:57 +0000 (UTC)
commit 362553804da940186cb9dfa64f1dcc8fbb892c60
Author: Kalev Lember <klember redhat com>
Date: Mon Sep 7 15:48:52 2015 +0200
screenshot image: Port to G_DECLARE_FINAL_TYPE macro
src/gs-screenshot-image.c | 223 +++++++++++++++++++-------------------------
src/gs-screenshot-image.h | 23 +----
2 files changed, 98 insertions(+), 148 deletions(-)
---
diff --git a/src/gs-screenshot-image.c b/src/gs-screenshot-image.c
index 7b63d19..7bbb4a4 100644
--- a/src/gs-screenshot-image.c
+++ b/src/gs-screenshot-image.c
@@ -33,8 +33,10 @@
#include "gs-screenshot-image.h"
#include "gs-utils.h"
-struct _GsScreenshotImagePrivate
+struct _GsScreenshotImage
{
+ GtkBin parent_instance;
+
AsScreenshot *screenshot;
GtkWidget *stack;
GtkWidget *box_error;
@@ -52,7 +54,7 @@ struct _GsScreenshotImagePrivate
gint scale;
};
-G_DEFINE_TYPE_WITH_PRIVATE (GsScreenshotImage, gs_screenshot_image, GTK_TYPE_BIN)
+G_DEFINE_TYPE (GsScreenshotImage, gs_screenshot_image, GTK_TYPE_BIN)
/**
* gs_screenshot_image_get_screenshot:
@@ -60,10 +62,8 @@ G_DEFINE_TYPE_WITH_PRIVATE (GsScreenshotImage, gs_screenshot_image, GTK_TYPE_BIN
AsScreenshot *
gs_screenshot_image_get_screenshot (GsScreenshotImage *ssimg)
{
- GsScreenshotImagePrivate *priv;
g_return_val_if_fail (GS_IS_SCREENSHOT_IMAGE (ssimg), NULL);
- priv = gs_screenshot_image_get_instance_private (ssimg);
- return priv->screenshot;
+ return ssimg->screenshot;
}
/**
@@ -72,18 +72,15 @@ gs_screenshot_image_get_screenshot (GsScreenshotImage *ssimg)
static void
gs_screenshot_image_set_error (GsScreenshotImage *ssimg, const gchar *message)
{
- GsScreenshotImagePrivate *priv;
gint width, height;
- priv = gs_screenshot_image_get_instance_private (ssimg);
-
- gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), "error");
- gtk_label_set_label (GTK_LABEL (priv->label_error), message);
- gtk_widget_get_size_request (priv->stack, &width, &height);
+ gtk_stack_set_visible_child_name (GTK_STACK (ssimg->stack), "error");
+ gtk_label_set_label (GTK_LABEL (ssimg->label_error), message);
+ gtk_widget_get_size_request (ssimg->stack, &width, &height);
if (width < 200)
- gtk_widget_hide (priv->label_error);
+ gtk_widget_hide (ssimg->label_error);
else
- gtk_widget_show (priv->label_error);
+ gtk_widget_show (ssimg->label_error);
}
/**
@@ -92,20 +89,17 @@ gs_screenshot_image_set_error (GsScreenshotImage *ssimg, const gchar *message)
static GdkPixbuf *
gs_screenshot_image_get_desktop_pixbuf (GsScreenshotImage *ssimg)
{
- GsScreenshotImagePrivate *priv;
_cleanup_object_unref_ GnomeBG *bg = NULL;
_cleanup_object_unref_ GnomeDesktopThumbnailFactory *factory = NULL;
_cleanup_object_unref_ GSettings *settings = NULL;
- priv = gs_screenshot_image_get_instance_private (ssimg);
-
factory = gnome_desktop_thumbnail_factory_new (GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE);
bg = gnome_bg_new ();
settings = g_settings_new ("org.gnome.desktop.background");
gnome_bg_load_from_preferences (bg, settings);
return gnome_bg_create_thumbnail (bg, factory,
gdk_screen_get_default (),
- priv->width, priv->height);
+ ssimg->width, ssimg->height);
}
/**
@@ -114,14 +108,13 @@ gs_screenshot_image_get_desktop_pixbuf (GsScreenshotImage *ssimg)
static gboolean
gs_screenshot_image_use_desktop_background (GsScreenshotImage *ssimg, GdkPixbuf *pixbuf)
{
- GsScreenshotImagePrivate *priv = gs_screenshot_image_get_instance_private (ssimg);
_cleanup_object_unref_ AsImage *im = NULL;
/* nothing to show, means no background mode */
if (pixbuf == NULL)
return FALSE;
/* background mode explicitly disabled */
- if (!priv->use_desktop_background)
+ if (!ssimg->use_desktop_background)
return FALSE;
/* use a temp AsImage */
@@ -136,20 +129,17 @@ gs_screenshot_image_use_desktop_background (GsScreenshotImage *ssimg, GdkPixbuf
static void
as_screenshot_show_image (GsScreenshotImage *ssimg)
{
- GsScreenshotImagePrivate *priv;
_cleanup_object_unref_ GdkPixbuf *pixbuf_bg = NULL;
_cleanup_object_unref_ GdkPixbuf *pixbuf = NULL;
- priv = gs_screenshot_image_get_instance_private (ssimg);
-
/* no need to composite */
- if (priv->width == G_MAXUINT || priv->height == G_MAXUINT) {
- pixbuf_bg = gdk_pixbuf_new_from_file (priv->filename, NULL);
+ if (ssimg->width == G_MAXUINT || ssimg->height == G_MAXUINT) {
+ pixbuf_bg = gdk_pixbuf_new_from_file (ssimg->filename, NULL);
} else {
/* this is always going to have alpha */
- pixbuf = gdk_pixbuf_new_from_file_at_scale (priv->filename,
- priv->width * priv->scale,
- priv->height * priv->scale,
+ pixbuf = gdk_pixbuf_new_from_file_at_scale (ssimg->filename,
+ ssimg->width * ssimg->scale,
+ ssimg->height * ssimg->scale,
FALSE, NULL);
if (pixbuf != NULL) {
if (gs_screenshot_image_use_desktop_background (ssimg, pixbuf)) {
@@ -159,7 +149,7 @@ as_screenshot_show_image (GsScreenshotImage *ssimg)
} else {
gdk_pixbuf_composite (pixbuf, pixbuf_bg,
0, 0,
- priv->width, priv->height,
+ ssimg->width, ssimg->height,
0, 0, 1.0f, 1.0f,
GDK_INTERP_NEAREST, 255);
}
@@ -170,20 +160,20 @@ as_screenshot_show_image (GsScreenshotImage *ssimg)
}
/* show icon */
- if (g_strcmp0 (priv->current_image, "image1") == 0) {
+ if (g_strcmp0 (ssimg->current_image, "image1") == 0) {
if (pixbuf_bg != NULL) {
- gs_image_set_from_pixbuf_with_scale (GTK_IMAGE (priv->image2),
- pixbuf_bg, priv->scale);
+ gs_image_set_from_pixbuf_with_scale (GTK_IMAGE (ssimg->image2),
+ pixbuf_bg, ssimg->scale);
}
- gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), "image2");
- priv->current_image = "image2";
+ gtk_stack_set_visible_child_name (GTK_STACK (ssimg->stack), "image2");
+ ssimg->current_image = "image2";
} else {
if (pixbuf_bg != NULL) {
- gs_image_set_from_pixbuf_with_scale (GTK_IMAGE (priv->image1),
- pixbuf_bg, priv->scale);
+ gs_image_set_from_pixbuf_with_scale (GTK_IMAGE (ssimg->image1),
+ pixbuf_bg, ssimg->scale);
}
- gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), "image1");
- priv->current_image = "image1";
+ gtk_stack_set_visible_child_name (GTK_STACK (ssimg->stack), "image1");
+ ssimg->current_image = "image1";
}
gtk_widget_show (GTK_WIDGET (ssimg));
@@ -196,29 +186,26 @@ static void
gs_screenshot_image_show_blurred (GsScreenshotImage *ssimg,
const gchar *filename_thumb)
{
- GsScreenshotImagePrivate *priv;
_cleanup_object_unref_ AsImage *im = NULL;
_cleanup_object_unref_ GdkPixbuf *pb = NULL;
- priv = gs_screenshot_image_get_instance_private (ssimg);
-
/* create an helper which can do the blurring for us */
im = as_image_new ();
if (!as_image_load_filename (im, filename_thumb, NULL))
return;
pb = as_image_save_pixbuf (im,
- priv->width * priv->scale,
- priv->height * priv->scale,
+ ssimg->width * ssimg->scale,
+ ssimg->height * ssimg->scale,
AS_IMAGE_SAVE_FLAG_BLUR);
if (pb == NULL)
return;
- if (g_strcmp0 (priv->current_image, "image1") == 0) {
- gs_image_set_from_pixbuf_with_scale (GTK_IMAGE (priv->image1),
- pb, priv->scale);
+ if (g_strcmp0 (ssimg->current_image, "image1") == 0) {
+ gs_image_set_from_pixbuf_with_scale (GTK_IMAGE (ssimg->image1),
+ pb, ssimg->scale);
} else {
- gs_image_set_from_pixbuf_with_scale (GTK_IMAGE (priv->image2),
- pb, priv->scale);
+ gs_image_set_from_pixbuf_with_scale (GTK_IMAGE (ssimg->image2),
+ pb, ssimg->scale);
}
}
@@ -231,7 +218,6 @@ gs_screenshot_image_complete_cb (SoupSession *session,
gpointer user_data)
{
_cleanup_object_unref_ GsScreenshotImage *ssimg = GS_SCREENSHOT_IMAGE (user_data);
- GsScreenshotImagePrivate *priv = gs_screenshot_image_get_instance_private (ssimg);
gboolean ret;
_cleanup_error_free_ GError *error = NULL;
_cleanup_object_unref_ AsImage *im = NULL;
@@ -239,7 +225,7 @@ gs_screenshot_image_complete_cb (SoupSession *session,
_cleanup_object_unref_ GInputStream *stream = NULL;
/* return immediately if the message was cancelled or if we're in destruction */
- if (msg->status_code == SOUP_STATUS_CANCELLED || priv->session == NULL)
+ if (msg->status_code == SOUP_STATUS_CANCELLED || ssimg->session == NULL)
return;
if (msg->status_code != SOUP_STATUS_OK) {
@@ -266,10 +252,10 @@ gs_screenshot_image_complete_cb (SoupSession *session,
}
/* is image size destination size unknown or exactly the correct size */
- if (priv->width == G_MAXUINT || priv->height == G_MAXUINT ||
- (priv->width * priv->scale == (guint) gdk_pixbuf_get_width (pixbuf) &&
- priv->height * priv->scale == (guint) gdk_pixbuf_get_height (pixbuf))) {
- ret = g_file_set_contents (priv->filename,
+ if (ssimg->width == G_MAXUINT || ssimg->height == G_MAXUINT ||
+ (ssimg->width * ssimg->scale == (guint) gdk_pixbuf_get_width (pixbuf) &&
+ ssimg->height * ssimg->scale == (guint) gdk_pixbuf_get_height (pixbuf))) {
+ ret = g_file_set_contents (ssimg->filename,
msg->response_body->data,
msg->response_body->length,
&error);
@@ -282,9 +268,9 @@ gs_screenshot_image_complete_cb (SoupSession *session,
* so the preview looks the same */
im = as_image_new ();
as_image_set_pixbuf (im, pixbuf);
- ret = as_image_save_filename (im, priv->filename,
- priv->width * priv->scale,
- priv->height * priv->scale,
+ ret = as_image_save_filename (im, ssimg->filename,
+ ssimg->width * ssimg->scale,
+ ssimg->height * ssimg->scale,
AS_IMAGE_SAVE_FLAG_PAD_16_9, &error);
if (!ret) {
gs_screenshot_image_set_error (ssimg, error->message);
@@ -302,10 +288,8 @@ gs_screenshot_image_complete_cb (SoupSession *session,
void
gs_screenshot_image_set_cachedir (GsScreenshotImage *ssimg, const gchar *cachedir)
{
- GsScreenshotImagePrivate *priv;
- priv = gs_screenshot_image_get_instance_private (ssimg);
- g_free (priv->cachedir);
- priv->cachedir = g_strdup (cachedir);
+ g_free (ssimg->cachedir);
+ ssimg->cachedir = g_strdup (cachedir);
}
/**
@@ -315,18 +299,14 @@ void
gs_screenshot_image_set_screenshot (GsScreenshotImage *ssimg,
AsScreenshot *screenshot)
{
- GsScreenshotImagePrivate *priv;
-
g_return_if_fail (GS_IS_SCREENSHOT_IMAGE (ssimg));
g_return_if_fail (AS_IS_SCREENSHOT (screenshot));
- priv = gs_screenshot_image_get_instance_private (ssimg);
-
- if (priv->screenshot == screenshot)
+ if (ssimg->screenshot == screenshot)
return;
- if (priv->screenshot)
- g_object_unref (priv->screenshot);
- priv->screenshot = g_object_ref (screenshot);
+ if (ssimg->screenshot)
+ g_object_unref (ssimg->screenshot);
+ ssimg->screenshot = g_object_ref (screenshot);
}
/**
@@ -336,16 +316,13 @@ void
gs_screenshot_image_set_size (GsScreenshotImage *ssimg,
guint width, guint height)
{
- GsScreenshotImagePrivate *priv;
-
g_return_if_fail (GS_IS_SCREENSHOT_IMAGE (ssimg));
g_return_if_fail (width != 0);
g_return_if_fail (height != 0);
- priv = gs_screenshot_image_get_instance_private (ssimg);
- priv->width = width;
- priv->height = height;
- gtk_widget_set_size_request (priv->stack, width, height);
+ ssimg->width = width;
+ ssimg->height = height;
+ gtk_widget_set_size_request (ssimg->stack, width, height);
}
/**
@@ -355,9 +332,8 @@ void
gs_screenshot_image_set_use_desktop_background (GsScreenshotImage *ssimg,
gboolean use_desktop_background)
{
- GsScreenshotImagePrivate *priv = gs_screenshot_image_get_instance_private (ssimg);
g_return_if_fail (GS_IS_SCREENSHOT_IMAGE (ssimg));
- priv->use_desktop_background = use_desktop_background;
+ ssimg->use_desktop_background = use_desktop_background;
}
/**
@@ -368,7 +344,6 @@ gs_screenshot_image_load_async (GsScreenshotImage *ssimg,
GCancellable *cancellable)
{
AsImage *im = NULL;
- GsScreenshotImagePrivate *priv;
SoupURI *base_uri = NULL;
const gchar *url;
gint rc;
@@ -379,24 +354,22 @@ gs_screenshot_image_load_async (GsScreenshotImage *ssimg,
g_return_if_fail (GS_IS_SCREENSHOT_IMAGE (ssimg));
- priv = gs_screenshot_image_get_instance_private (ssimg);
-
- g_return_if_fail (AS_IS_SCREENSHOT (priv->screenshot));
- g_return_if_fail (priv->width != 0);
- g_return_if_fail (priv->height != 0);
+ g_return_if_fail (AS_IS_SCREENSHOT (ssimg->screenshot));
+ g_return_if_fail (ssimg->width != 0);
+ g_return_if_fail (ssimg->height != 0);
/* load an image according to the scale factor */
- priv->scale = gtk_widget_get_scale_factor (GTK_WIDGET (ssimg));
- im = as_screenshot_get_image (priv->screenshot,
- priv->width * priv->scale,
- priv->height * priv->scale);
+ ssimg->scale = gtk_widget_get_scale_factor (GTK_WIDGET (ssimg));
+ im = as_screenshot_get_image (ssimg->screenshot,
+ ssimg->width * ssimg->scale,
+ ssimg->height * ssimg->scale);
/* if we've failed to load a HiDPI image, fallback to LoDPI */
- if (im == NULL && priv->scale > 1) {
- priv->scale = 1;
- im = as_screenshot_get_image (priv->screenshot,
- priv->width,
- priv->height);
+ if (im == NULL && ssimg->scale > 1) {
+ ssimg->scale = 1;
+ im = as_screenshot_get_image (ssimg->screenshot,
+ ssimg->width,
+ ssimg->height);
}
if (im == NULL) {
/* TRANSLATORS: this is when we request a screenshot size that
@@ -406,12 +379,12 @@ gs_screenshot_image_load_async (GsScreenshotImage *ssimg,
}
url = as_image_get_url (im);
basename = g_path_get_basename (url);
- if (priv->width == G_MAXUINT || priv->height == G_MAXUINT) {
+ if (ssimg->width == G_MAXUINT || ssimg->height == G_MAXUINT) {
sizedir = g_strdup ("unknown");
} else {
- sizedir = g_strdup_printf ("%ux%u", priv->width * priv->scale, priv->height * priv->scale);
+ sizedir = g_strdup_printf ("%ux%u", ssimg->width * ssimg->scale, ssimg->height *
ssimg->scale);
}
- cachedir = g_build_filename (priv->cachedir,
+ cachedir = g_build_filename (ssimg->cachedir,
"gnome-software",
"screenshots",
sizedir,
@@ -425,16 +398,16 @@ gs_screenshot_image_load_async (GsScreenshotImage *ssimg,
}
/* does local file already exist */
- priv->filename = g_build_filename (cachedir, basename, NULL);
- if (g_file_test (priv->filename, G_FILE_TEST_EXISTS)) {
+ ssimg->filename = g_build_filename (cachedir, basename, NULL);
+ if (g_file_test (ssimg->filename, G_FILE_TEST_EXISTS)) {
as_screenshot_show_image (ssimg);
return;
}
/* can we load a blurred smaller version of this straight away */
- if (priv->width > AS_IMAGE_THUMBNAIL_WIDTH &&
- priv->height > AS_IMAGE_THUMBNAIL_HEIGHT) {
- cachedir2 = g_build_filename (priv->cachedir,
+ if (ssimg->width > AS_IMAGE_THUMBNAIL_WIDTH &&
+ ssimg->height > AS_IMAGE_THUMBNAIL_HEIGHT) {
+ cachedir2 = g_build_filename (ssimg->cachedir,
"gnome-software",
"screenshots",
"112x63",
@@ -445,7 +418,7 @@ gs_screenshot_image_load_async (GsScreenshotImage *ssimg,
}
/* download file */
- g_debug ("downloading %s to %s", url, priv->filename);
+ g_debug ("downloading %s to %s", url, ssimg->filename);
base_uri = soup_uri_new (url);
if (base_uri == NULL || !SOUP_URI_VALID_FOR_HTTP (base_uri)) {
/* TRANSLATORS: this is when we try to download a screenshot
@@ -456,15 +429,15 @@ gs_screenshot_image_load_async (GsScreenshotImage *ssimg,
}
/* cancel any previous messages */
- if (priv->message != NULL) {
- soup_session_cancel_message (priv->session,
- priv->message,
+ if (ssimg->message != NULL) {
+ soup_session_cancel_message (ssimg->session,
+ ssimg->message,
SOUP_STATUS_CANCELLED);
- g_clear_object (&priv->message);
+ g_clear_object (&ssimg->message);
}
- priv->message = soup_message_new_from_uri (SOUP_METHOD_GET, base_uri);
- if (priv->message == NULL) {
+ ssimg->message = soup_message_new_from_uri (SOUP_METHOD_GET, base_uri);
+ if (ssimg->message == NULL) {
/* TRANSLATORS: this is when networking is not available */
gs_screenshot_image_set_error (ssimg, _("Screenshot not available"));
soup_uri_free (base_uri);
@@ -472,8 +445,8 @@ gs_screenshot_image_load_async (GsScreenshotImage *ssimg,
}
/* send async */
- soup_session_queue_message (priv->session,
- g_object_ref (priv->message) /* transfer full */,
+ soup_session_queue_message (ssimg->session,
+ g_object_ref (ssimg->message) /* transfer full */,
gs_screenshot_image_complete_cb,
g_object_ref (ssimg));
soup_uri_free (base_uri);
@@ -486,21 +459,18 @@ static void
gs_screenshot_image_destroy (GtkWidget *widget)
{
GsScreenshotImage *ssimg = GS_SCREENSHOT_IMAGE (widget);
- GsScreenshotImagePrivate *priv;
-
- priv = gs_screenshot_image_get_instance_private (ssimg);
- if (priv->message != NULL) {
- soup_session_cancel_message (priv->session,
- priv->message,
+ if (ssimg->message != NULL) {
+ soup_session_cancel_message (ssimg->session,
+ ssimg->message,
SOUP_STATUS_CANCELLED);
- g_clear_object (&priv->message);
+ g_clear_object (&ssimg->message);
}
- g_clear_object (&priv->screenshot);
- g_clear_object (&priv->session);
+ g_clear_object (&ssimg->screenshot);
+ g_clear_object (&ssimg->session);
- g_clear_pointer (&priv->cachedir, g_free);
- g_clear_pointer (&priv->filename, g_free);
+ g_clear_pointer (&ssimg->cachedir, g_free);
+ g_clear_pointer (&ssimg->filename, g_free);
GTK_WIDGET_CLASS (gs_screenshot_image_parent_class)->destroy (widget);
}
@@ -513,8 +483,7 @@ gs_screenshot_image_init (GsScreenshotImage *ssimg)
{
AtkObject *accessible;
- ssimg->priv = gs_screenshot_image_get_instance_private (ssimg);
- ssimg->priv->use_desktop_background = TRUE;
+ ssimg->use_desktop_background = TRUE;
gtk_widget_set_has_window (GTK_WIDGET (ssimg), FALSE);
gtk_widget_init_template (GTK_WIDGET (ssimg));
@@ -561,11 +530,11 @@ gs_screenshot_image_class_init (GsScreenshotImageClass *klass)
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/Software/screenshot-image.ui");
- gtk_widget_class_bind_template_child_private (widget_class, GsScreenshotImage, stack);
- gtk_widget_class_bind_template_child_private (widget_class, GsScreenshotImage, image1);
- gtk_widget_class_bind_template_child_private (widget_class, GsScreenshotImage, image2);
- gtk_widget_class_bind_template_child_private (widget_class, GsScreenshotImage, box_error);
- gtk_widget_class_bind_template_child_private (widget_class, GsScreenshotImage, label_error);
+ gtk_widget_class_bind_template_child (widget_class, GsScreenshotImage, stack);
+ gtk_widget_class_bind_template_child (widget_class, GsScreenshotImage, image1);
+ gtk_widget_class_bind_template_child (widget_class, GsScreenshotImage, image2);
+ gtk_widget_class_bind_template_child (widget_class, GsScreenshotImage, box_error);
+ gtk_widget_class_bind_template_child (widget_class, GsScreenshotImage, label_error);
}
/**
@@ -576,7 +545,7 @@ gs_screenshot_image_new (SoupSession *session)
{
GsScreenshotImage *ssimg;
ssimg = g_object_new (GS_TYPE_SCREENSHOT_IMAGE, NULL);
- ssimg->priv->session = g_object_ref (session);
+ ssimg->session = g_object_ref (session);
return GTK_WIDGET (ssimg);
}
diff --git a/src/gs-screenshot-image.h b/src/gs-screenshot-image.h
index 5bbded0..e9e2889 100644
--- a/src/gs-screenshot-image.h
+++ b/src/gs-screenshot-image.h
@@ -27,31 +27,12 @@
#include <libsoup/soup.h>
#include <appstream-glib.h>
-#define GS_TYPE_SCREENSHOT_IMAGE (gs_screenshot_image_get_type())
-#define GS_SCREENSHOT_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GS_TYPE_SCREENSHOT_IMAGE,
GsScreenshotImage))
-#define GS_SCREENSHOT_IMAGE_CLASS(cls) (G_TYPE_CHECK_CLASS_CAST((cls), GS_TYPE_SCREENSHOT_IMAGE,
GsScreenshotImageClass))
-#define GS_IS_SCREENSHOT_IMAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GS_TYPE_SCREENSHOT_IMAGE))
-#define GS_IS_SCREENSHOT_IMAGE_CLASS(cls) (G_TYPE_CHECK_CLASS_TYPE((cls), GS_TYPE_SCREENSHOT_IMAGE))
-#define GS_SCREENSHOT_IMAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GS_TYPE_SCREENSHOT_IMAGE,
GsScreenshotImageClass))
-
G_BEGIN_DECLS
-typedef struct _GsScreenshotImage GsScreenshotImage;
-typedef struct _GsScreenshotImageClass GsScreenshotImageClass;
-typedef struct _GsScreenshotImagePrivate GsScreenshotImagePrivate;
-
-struct _GsScreenshotImage
-{
- GtkBin parent;
- GsScreenshotImagePrivate *priv;
-};
+#define GS_TYPE_SCREENSHOT_IMAGE (gs_screenshot_image_get_type ())
-struct _GsScreenshotImageClass
-{
- GtkBinClass parent_class;
-};
+G_DECLARE_FINAL_TYPE (GsScreenshotImage, gs_screenshot_image, GS, SCREENSHOT_IMAGE, GtkBin)
-GType gs_screenshot_image_get_type (void);
GtkWidget *gs_screenshot_image_new (SoupSession *session);
AsScreenshot *gs_screenshot_image_get_screenshot (GsScreenshotImage *ssimg);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]