From 18e833d726109484d4165bf9eb11a85df919cb0d Mon Sep 17 00:00:00 2001 From: Claudio Saavedra Date: Tue, 8 Sep 2009 18:19:12 +0300 Subject: [PATCH] Rename and move the methods to set flags to hildon-private.h * hildon/hildon-gtk.c: (do_set_progress_indicator), (do_set_do_not_disturb), (do_set_portrait_flags): call the new private method hildon_gtk_window_set_clear_window_flag() (hildon_gtk_window_set_progress_indicator), (hildon_gtk_window_set_do_not_disturb), (hildon_gtk_window_take_screenshot): hildon_gtk_window_set_flag() * hildon/hildon-private.c: (+hildon_gtk_window_set_clear_window_flag), (+hildon_gtk_window_set_flag): Move from hildon-gtk.c and rename properly. * hildon/hildon-private.h: Add the two new private methds. --- ChangeLog | 15 ++++++++++++ hildon/hildon-gtk.c | 61 +++++++++++------------------------------------ hildon/hildon-private.c | 34 ++++++++++++++++++++++++++ hildon/hildon-private.h | 15 ++++++++++++ 4 files changed, 78 insertions(+), 47 deletions(-) diff --git a/ChangeLog b/ChangeLog index 65d846e..22bb7dc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2009-09-08 Claudio Saavedra + + Rename and move the methods to set flags to hildon-private.h + + * hildon/hildon-gtk.c: (do_set_progress_indicator), + (do_set_do_not_disturb), (do_set_portrait_flags): call + the new private method hildon_gtk_window_set_clear_window_flag() + (hildon_gtk_window_set_progress_indicator), + (hildon_gtk_window_set_do_not_disturb), + (hildon_gtk_window_take_screenshot): hildon_gtk_window_set_flag() + * hildon/hildon-private.c: (+hildon_gtk_window_set_clear_window_flag), + (+hildon_gtk_window_set_flag): Move from hildon-gtk.c and rename + properly. + * hildon/hildon-private.h: Add the two new private methds. + 2009-09-11 Alejandro G. Castro * hildon/hildon-pannable-area.c, diff --git a/hildon/hildon-gtk.c b/hildon/hildon-gtk.c index 2583682..f6b8ae2 100644 --- a/hildon/hildon-gtk.c +++ b/hildon/hildon-gtk.c @@ -24,16 +24,12 @@ * easily perform frequent tasks. */ -#include -#include - #include "hildon-gtk.h" #include "hildon-window.h" #include "hildon-window-private.h" #include "hildon-edit-toolbar.h" #include "hildon-edit-toolbar-private.h" - -typedef void (*HildonFlagFunc) (GtkWindow *window, gpointer userdata); +#include "hildon-private.h" static void image_visible_changed_cb (GtkWidget *image, @@ -326,29 +322,12 @@ hildon_gtk_icon_view_set_ui_mode (GtkIconView *iconview, #endif /* MAEMO_GTK */ static void -set_clear_window_flag (GtkWindow *window, - const gchar *atomname, - Atom xatom, - gboolean flag) -{ - GdkWindow *gdkwin = GTK_WIDGET (window)->window; - GdkAtom atom = gdk_atom_intern (atomname, FALSE); - - if (flag) { - guint32 set = 1; - gdk_property_change (gdkwin, atom, gdk_x11_xatom_to_atom (xatom), - 32, GDK_PROP_MODE_REPLACE, (const guchar *) &set, 1); - } else { - gdk_property_delete (gdkwin, atom); - } -} - -static void do_set_progress_indicator (GtkWindow *window, gpointer stateptr) { guint state = GPOINTER_TO_UINT (stateptr); - set_clear_window_flag (window, "_HILDON_WM_WINDOW_PROGRESS_INDICATOR", XA_INTEGER, state); + hildon_gtk_window_set_clear_window_flag (window, "_HILDON_WM_WINDOW_PROGRESS_INDICATOR", + XA_INTEGER, state); g_signal_handlers_disconnect_matched (window, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, do_set_progress_indicator, NULL); } @@ -358,7 +337,8 @@ do_set_do_not_disturb (GtkWindow *window, gpointer dndptr) { gboolean dndflag = GPOINTER_TO_INT (dndptr); - set_clear_window_flag (window, "_HILDON_DO_NOT_DISTURB", XA_INTEGER, dndflag); + hildon_gtk_window_set_clear_window_flag (window, "_HILDON_DO_NOT_DISTURB", + XA_INTEGER, dndflag); g_signal_handlers_disconnect_matched (window, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, do_set_do_not_disturb, NULL); } @@ -369,30 +349,17 @@ do_set_portrait_flags (GtkWindow *window, { HildonPortraitFlags flags = GPOINTER_TO_INT (flagsptr); - set_clear_window_flag (window, "_HILDON_PORTRAIT_MODE_REQUEST", XA_CARDINAL, - flags & HILDON_PORTRAIT_MODE_REQUEST); - set_clear_window_flag (window, "_HILDON_PORTRAIT_MODE_SUPPORT", XA_CARDINAL, - flags & HILDON_PORTRAIT_MODE_SUPPORT); + hildon_gtk_window_set_clear_window_flag (window, "_HILDON_PORTRAIT_MODE_REQUEST", + XA_CARDINAL, + flags & HILDON_PORTRAIT_MODE_REQUEST); + hildon_gtk_window_set_clear_window_flag (window, "_HILDON_PORTRAIT_MODE_SUPPORT", + XA_CARDINAL, + flags & HILDON_PORTRAIT_MODE_SUPPORT); g_signal_handlers_disconnect_matched (window, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, do_set_portrait_flags, NULL); } -static void -set_flag (GtkWindow *window, - HildonFlagFunc func, - gpointer userdata) -{ - g_return_if_fail (GTK_IS_WINDOW (window)); - if (GTK_WIDGET_REALIZED (window)) { - (*func) (window, userdata); - } else { - g_signal_handlers_disconnect_matched (window, G_SIGNAL_MATCH_FUNC, - 0, 0, NULL, func, NULL); - g_signal_connect (window, "realize", G_CALLBACK (func), userdata); - } -} - /** * hildon_gtk_window_set_progress_indicator: * @window: a #GtkWindow. @@ -409,7 +376,7 @@ void hildon_gtk_window_set_progress_indicator (GtkWindow *window, guint state) { - set_flag (window, (HildonFlagFunc) do_set_progress_indicator, GUINT_TO_POINTER (state)); + hildon_gtk_window_set_flag (window, (HildonFlagFunc) do_set_progress_indicator, GUINT_TO_POINTER (state)); if (HILDON_IS_WINDOW (window)) { HildonWindowPrivate *priv = HILDON_WINDOW_GET_PRIVATE (window); if (priv->edit_toolbar) { @@ -433,7 +400,7 @@ void hildon_gtk_window_set_do_not_disturb (GtkWindow *window, gboolean dndflag) { - set_flag (window, (HildonFlagFunc) do_set_do_not_disturb, GUINT_TO_POINTER (dndflag)); + hildon_gtk_window_set_flag (window, (HildonFlagFunc) do_set_do_not_disturb, GUINT_TO_POINTER (dndflag)); } /** @@ -449,7 +416,7 @@ void hildon_gtk_window_set_portrait_flags (GtkWindow *window, HildonPortraitFlags portrait_flags) { - set_flag (window, (HildonFlagFunc) do_set_portrait_flags, GUINT_TO_POINTER (portrait_flags)); + hildon_gtk_window_set_flag (window, (HildonFlagFunc) do_set_portrait_flags, GUINT_TO_POINTER (portrait_flags)); } /** diff --git a/hildon/hildon-private.c b/hildon/hildon-private.c index 739c2c9..ac16f39 100644 --- a/hildon/hildon-private.c +++ b/hildon/hildon-private.c @@ -121,3 +121,37 @@ hildon_private_create_animation (gfloat framerate, return image; } + + +void +hildon_gtk_window_set_clear_window_flag (GtkWindow *window, + const gchar *atomname, + Atom xatom, + gboolean flag) +{ + GdkWindow *gdkwin = GTK_WIDGET (window)->window; + GdkAtom atom = gdk_atom_intern (atomname, FALSE); + + if (flag) { + guint32 set = 1; + gdk_property_change (gdkwin, atom, gdk_x11_xatom_to_atom (xatom), + 32, GDK_PROP_MODE_REPLACE, (const guchar *) &set, 1); + } else { + gdk_property_delete (gdkwin, atom); + } +} + +void +hildon_gtk_window_set_flag (GtkWindow *window, + HildonFlagFunc func, + gpointer userdata) +{ + g_return_if_fail (GTK_IS_WINDOW (window)); + if (GTK_WIDGET_REALIZED (window)) { + (*func) (window, userdata); + } else { + g_signal_handlers_disconnect_matched (window, G_SIGNAL_MATCH_FUNC, + 0, 0, NULL, func, NULL); + g_signal_connect (window, "realize", G_CALLBACK (func), userdata); + } +} diff --git a/hildon/hildon-private.h b/hildon/hildon-private.h index 5fe53f4..53328e5 100644 --- a/hildon/hildon-private.h +++ b/hildon/hildon-private.h @@ -26,6 +26,8 @@ #define __HILDON_PRIVATE_H__ #include +#include +#include G_BEGIN_DECLS @@ -43,6 +45,19 @@ hildon_private_create_animation (gfloat framerate, const gchar *template, gint nframes); +G_GNUC_INTERNAL void +hildon_gtk_window_set_clear_window_flag (GtkWindow *window, + const gchar *atomname, + Atom xatom, + gboolean flag); + +typedef void (*HildonFlagFunc) (GtkWindow *window, gpointer userdata); + +G_GNUC_INTERNAL void +hildon_gtk_window_set_flag (GtkWindow *window, + HildonFlagFunc func, + gpointer userdata); + G_END_DECLS #endif /* __HILDON_PRIVATE_H__ */ -- 1.7.9.5