summaryrefslogtreecommitdiff
path: root/stickynotes/stickynotes_applet.c
diff options
context:
space:
mode:
Diffstat (limited to 'stickynotes/stickynotes_applet.c')
-rw-r--r--stickynotes/stickynotes_applet.c1013
1 files changed, 521 insertions, 492 deletions
diff --git a/stickynotes/stickynotes_applet.c b/stickynotes/stickynotes_applet.c
index 9cc5ebdf..c697151e 100644
--- a/stickynotes/stickynotes_applet.c
+++ b/stickynotes/stickynotes_applet.c
@@ -31,595 +31,624 @@ StickyNotes *stickynotes = NULL;
/* Popup menu on the applet */
static const GtkActionEntry stickynotes_applet_menu_actions[] =
{
- { "new_note", "document-new", N_("_New Note"),
- NULL, NULL,
- G_CALLBACK (menu_new_note_cb) },
- { "hide_notes", NULL, N_("Hi_de Notes"),
- NULL, NULL,
- G_CALLBACK (menu_hide_notes_cb) },
- { "destroy_all", "edit-delete", N_("_Delete Notes"),
- NULL, NULL,
- G_CALLBACK (menu_destroy_all_cb) },
- { "preferences", "document-properties", N_("_Preferences"),
- NULL, NULL,
- G_CALLBACK (menu_preferences_cb) },
- { "help", "help-browser", N_("_Help"),
- NULL, NULL,
- G_CALLBACK (menu_help_cb) },
- { "about", "help-about", N_("_About"),
- NULL, NULL,
- G_CALLBACK (menu_about_cb) }
+ { "new_note", "document-new", N_("_New Note"),
+ NULL, NULL,
+ G_CALLBACK (menu_new_note_cb) },
+ { "hide_notes", NULL, N_("Hi_de Notes"),
+ NULL, NULL,
+ G_CALLBACK (menu_hide_notes_cb) },
+ { "destroy_all", "edit-delete", N_("_Delete Notes"),
+ NULL, NULL,
+ G_CALLBACK (menu_destroy_all_cb) },
+ { "preferences", "document-properties", N_("_Preferences"),
+ NULL, NULL,
+ G_CALLBACK (menu_preferences_cb) },
+ { "help", "help-browser", N_("_Help"),
+ NULL, NULL,
+ G_CALLBACK (menu_help_cb) },
+ { "about", "help-about", N_("_About"),
+ NULL, NULL,
+ G_CALLBACK (menu_about_cb) }
};
static const GtkToggleActionEntry stickynotes_applet_menu_toggle_actions[] =
{
- { "lock", NULL, N_("_Lock Notes"),
- NULL, NULL,
- G_CALLBACK (menu_toggle_lock_cb), FALSE }
+ { "lock", NULL, N_("_Lock Notes"),
+ NULL, NULL,
+ G_CALLBACK (menu_toggle_lock_cb), FALSE }
};
/* Sticky Notes applet factory */
-static gboolean stickynotes_applet_factory(MatePanelApplet *mate_panel_applet, const gchar *iid, gpointer data)
+static gboolean
+stickynotes_applet_factory (MatePanelApplet *mate_panel_applet,
+ const gchar *iid,
+ gpointer data)
{
- if (!strcmp(iid, "StickyNotesApplet")) {
- if (!stickynotes)
- stickynotes_applet_init (mate_panel_applet);
+ if (!strcmp (iid, "StickyNotesApplet")) {
+ if (!stickynotes)
+ stickynotes_applet_init (mate_panel_applet);
- mate_panel_applet_set_flags (mate_panel_applet, MATE_PANEL_APPLET_EXPAND_MINOR);
+ mate_panel_applet_set_flags (mate_panel_applet, MATE_PANEL_APPLET_EXPAND_MINOR);
- /* Add applet to linked list of all applets */
- stickynotes->applets = g_list_append (stickynotes->applets, stickynotes_applet_new(mate_panel_applet));
+ /* Add applet to linked list of all applets */
+ stickynotes->applets = g_list_append (stickynotes->applets,
+ stickynotes_applet_new (mate_panel_applet));
- stickynotes_applet_update_menus ();
- stickynotes_applet_update_tooltips ();
+ stickynotes_applet_update_menus ();
+ stickynotes_applet_update_tooltips ();
- return TRUE;
- }
+ return TRUE;
+ }
- return FALSE;
+ return FALSE;
}
/* Sticky Notes applet factory */
-MATE_PANEL_APPLET_OUT_PROCESS_FACTORY("StickyNotesAppletFactory", PANEL_TYPE_APPLET, "stickynotes_applet",
- stickynotes_applet_factory, NULL)
+MATE_PANEL_APPLET_OUT_PROCESS_FACTORY ("StickyNotesAppletFactory",
+ PANEL_TYPE_APPLET,
+ "stickynotes_applet",
+ stickynotes_applet_factory,
+ NULL)
/* colorshift a surface */
static void
-stickynotes_make_prelight_icon (cairo_surface_t *dest, cairo_surface_t *src, int shift)
+stickynotes_make_prelight_icon (cairo_surface_t *dest,
+ cairo_surface_t *src,
+ int shift)
{
- gint i, j;
- gint width, height, has_alpha, srcrowstride, destrowstride;
- guchar *target_pixels;
- guchar *original_pixels;
- guchar *pixsrc;
- guchar *pixdest;
- int val;
- guchar r,g,b;
-
- has_alpha = cairo_surface_get_content (src) != CAIRO_CONTENT_COLOR;
- width = cairo_image_surface_get_width (src);
- height = cairo_image_surface_get_height (src);
- srcrowstride = cairo_image_surface_get_stride (src);
- destrowstride = cairo_image_surface_get_stride (dest);
- original_pixels = cairo_image_surface_get_data (src);
- target_pixels = cairo_image_surface_get_data (dest);
-
- for (i = 0; i < height; i++) {
- pixdest = target_pixels + i*destrowstride;
- pixsrc = original_pixels + i*srcrowstride;
- for (j = 0; j < width; j++) {
- r = *(pixsrc++);
- g = *(pixsrc++);
- b = *(pixsrc++);
- val = r + shift;
- *(pixdest++) = CLAMP(val, 0, 255);
- val = g + shift;
- *(pixdest++) = CLAMP(val, 0, 255);
- val = b + shift;
- *(pixdest++) = CLAMP(val, 0, 255);
- if (has_alpha)
- *(pixdest++) = *(pixsrc++);
- }
- }
+ gint i, j;
+ gint width, height, has_alpha, srcrowstride, destrowstride;
+ guchar *target_pixels;
+ guchar *original_pixels;
+ guchar *pixsrc;
+ guchar *pixdest;
+ int val;
+ guchar r,g,b;
+
+ has_alpha = cairo_surface_get_content (src) != CAIRO_CONTENT_COLOR;
+ width = cairo_image_surface_get_width (src);
+ height = cairo_image_surface_get_height (src);
+ srcrowstride = cairo_image_surface_get_stride (src);
+ destrowstride = cairo_image_surface_get_stride (dest);
+ original_pixels = cairo_image_surface_get_data (src);
+ target_pixels = cairo_image_surface_get_data (dest);
+
+ for (i = 0; i < height; i++) {
+ pixdest = target_pixels + i*destrowstride;
+ pixsrc = original_pixels + i*srcrowstride;
+ for (j = 0; j < width; j++) {
+ r = *(pixsrc++);
+ g = *(pixsrc++);
+ b = *(pixsrc++);
+ val = r + shift;
+ *(pixdest++) = CLAMP (val, 0, 255);
+ val = g + shift;
+ *(pixdest++) = CLAMP (val, 0, 255);
+ val = b + shift;
+ *(pixdest++) = CLAMP (val, 0, 255);
+ if (has_alpha)
+ *(pixdest++) = *(pixsrc++);
+ }
+ }
}
static void
icon_theme_changed (GtkIconTheme *icon_theme,
gpointer user_data)
{
- gtk_icon_theme_append_search_path (icon_theme,
- PKG_DATA_DIR G_DIR_SEPARATOR_S "icons");
+ gtk_icon_theme_append_search_path (icon_theme,
+ PKG_DATA_DIR G_DIR_SEPARATOR_S "icons");
}
static void
stickynotes_applet_init_icons (void)
{
- GtkIconTheme *icon_theme;
+ GtkIconTheme *icon_theme;
- icon_theme = gtk_icon_theme_get_default ();
- icon_theme_changed (icon_theme, NULL);
+ icon_theme = gtk_icon_theme_get_default ();
+ icon_theme_changed (icon_theme, NULL);
- g_signal_connect (gtk_icon_theme_get_default (), "changed",
- G_CALLBACK (icon_theme_changed), NULL);
+ g_signal_connect (gtk_icon_theme_get_default (), "changed",
+ G_CALLBACK (icon_theme_changed), NULL);
}
static void
stickynotes_destroy (GtkWidget *widget,
gpointer user_dta)
{
- g_signal_handlers_disconnect_by_func (gtk_icon_theme_get_default (),
- icon_theme_changed, NULL);
+ g_signal_handlers_disconnect_by_func (gtk_icon_theme_get_default (),
+ icon_theme_changed, NULL);
}
/* Create and initalize global sticky notes instance */
void
stickynotes_applet_init (MatePanelApplet *mate_panel_applet)
{
- cairo_t *cr;
- gint size, scale;
+ cairo_t *cr;
+ gint size, scale;
- stickynotes = g_new(StickyNotes, 1);
+ stickynotes = g_new (StickyNotes, 1);
- stickynotes->notes = NULL;
- stickynotes->applets = NULL;
- stickynotes->last_timeout_data = 0;
+ stickynotes->notes = NULL;
+ stickynotes->applets = NULL;
+ stickynotes->last_timeout_data = 0;
- size = mate_panel_applet_get_size (mate_panel_applet);
- scale = gtk_widget_get_scale_factor (GTK_WIDGET (mate_panel_applet));
+ size = mate_panel_applet_get_size (mate_panel_applet);
+ scale = gtk_widget_get_scale_factor (GTK_WIDGET (mate_panel_applet));
- g_set_application_name (_("Sticky Notes"));
- gtk_window_set_default_icon_name ("mate-sticky-notes-applet");
+ g_set_application_name (_("Sticky Notes"));
+ gtk_window_set_default_icon_name ("mate-sticky-notes-applet");
- stickynotes->icon_normal = gtk_icon_theme_load_surface (
- gtk_icon_theme_get_default (),
- "mate-sticky-notes-applet",
- size, scale, NULL, 0, NULL);
+ stickynotes->icon_normal =
+ gtk_icon_theme_load_surface (gtk_icon_theme_get_default (),
+ "mate-sticky-notes-applet",
+ size, scale, NULL, 0, NULL);
- stickynotes->icon_prelight = cairo_surface_create_similar (stickynotes->icon_normal,
- cairo_surface_get_content (stickynotes->icon_normal),
- cairo_image_surface_get_width (stickynotes->icon_normal),
- cairo_image_surface_get_height (stickynotes->icon_normal));
+ stickynotes->icon_prelight =
+ cairo_surface_create_similar (stickynotes->icon_normal,
+ cairo_surface_get_content (stickynotes->icon_normal),
+ cairo_image_surface_get_width (stickynotes->icon_normal),
+ cairo_image_surface_get_height (stickynotes->icon_normal));
- stickynotes_make_prelight_icon (stickynotes->icon_prelight, stickynotes->icon_normal, 30);
+ stickynotes_make_prelight_icon (stickynotes->icon_prelight,
+ stickynotes->icon_normal, 30);
- cr = cairo_create (stickynotes->icon_prelight);
- cairo_set_operator (cr, CAIRO_OPERATOR_DEST_IN);
- cairo_mask_surface (cr, stickynotes->icon_normal, 0, 0);
+ cr = cairo_create (stickynotes->icon_prelight);
+ cairo_set_operator (cr, CAIRO_OPERATOR_DEST_IN);
+ cairo_mask_surface (cr, stickynotes->icon_normal, 0, 0);
- stickynotes->settings = g_settings_new (STICKYNOTES_SCHEMA);
- stickynotes->visible = TRUE;
+ stickynotes->settings = g_settings_new (STICKYNOTES_SCHEMA);
+ stickynotes->visible = TRUE;
- stickynotes_applet_init_icons();
- stickynotes_applet_init_prefs();
+ stickynotes_applet_init_icons ();
+ stickynotes_applet_init_prefs ();
- /* Watch GSettings values */
- g_signal_connect (stickynotes->settings, "changed",
- G_CALLBACK (preferences_apply_cb), NULL);
+ /* Watch GSettings values */
+ g_signal_connect (stickynotes->settings, "changed",
+ G_CALLBACK (preferences_apply_cb), NULL);
- /* Max height for large notes*/
- stickynotes->max_height = 0.8 * HeightOfScreen (gdk_x11_screen_get_xscreen (gdk_screen_get_default ()));
+ /* Max height for large notes*/
+ stickynotes->max_height =
+ 0.8 * HeightOfScreen (gdk_x11_screen_get_xscreen (gdk_screen_get_default ()));
- /* Load sticky notes */
- stickynotes_load (gtk_widget_get_screen (GTK_WIDGET (mate_panel_applet)));
+ /* Load sticky notes */
+ stickynotes_load (gtk_widget_get_screen (GTK_WIDGET (mate_panel_applet)));
- install_check_click_on_desktop ();
+ install_check_click_on_desktop ();
}
-void stickynotes_applet_init_prefs(void)
+void
+stickynotes_applet_init_prefs (void)
{
- stickynotes->builder = gtk_builder_new ();
-
- gtk_builder_add_from_resource (stickynotes->builder, GRESOURCE "sticky-notes-preferences.ui", NULL);
-
- stickynotes->w_prefs = GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
- "preferences_dialog"));
-
- stickynotes->w_prefs_width = gtk_spin_button_get_adjustment (
- GTK_SPIN_BUTTON (gtk_builder_get_object (
- stickynotes->builder, "width_spin")));
- stickynotes->w_prefs_height = gtk_spin_button_get_adjustment (
- GTK_SPIN_BUTTON (gtk_builder_get_object (
- stickynotes->builder, "height_spin")));
- stickynotes->w_prefs_color = GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
- "default_color"));
- stickynotes->w_prefs_font_color = GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
- "prefs_font_color"));
- stickynotes->w_prefs_sys_color = GTK_WIDGET (&GTK_CHECK_BUTTON (
- gtk_builder_get_object (stickynotes->builder,
- "sys_color_check"))->toggle_button);
- stickynotes->w_prefs_font = GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
- "default_font"));
- stickynotes->w_prefs_sys_font = GTK_WIDGET (&GTK_CHECK_BUTTON (
- gtk_builder_get_object (stickynotes->builder,
- "sys_font_check"))->toggle_button);
- stickynotes->w_prefs_sticky = GTK_WIDGET (&GTK_CHECK_BUTTON (
- gtk_builder_get_object (stickynotes->builder,
- "sticky_check"))->toggle_button);
- stickynotes->w_prefs_force = GTK_WIDGET (&GTK_CHECK_BUTTON (
- gtk_builder_get_object (stickynotes->builder,
- "force_default_check"))->toggle_button);
- stickynotes->w_prefs_desktop = GTK_WIDGET (&GTK_CHECK_BUTTON (
- gtk_builder_get_object (stickynotes->builder,
- "desktop_hide_check"))->toggle_button);
-
- g_signal_connect (G_OBJECT (stickynotes->w_prefs), "response",
- G_CALLBACK (preferences_response_cb), NULL);
- g_signal_connect (G_OBJECT (stickynotes->w_prefs), "delete-event",
- G_CALLBACK (preferences_delete_cb), NULL);
- g_signal_connect_swapped (G_OBJECT (stickynotes->w_prefs_width),
- "value-changed",
- G_CALLBACK (preferences_save_cb), NULL);
- g_signal_connect_swapped (G_OBJECT (stickynotes->w_prefs_height),
- "value-changed",
- G_CALLBACK (preferences_save_cb), NULL);
- g_signal_connect_swapped (G_OBJECT (stickynotes->w_prefs_sys_color),
- "toggled",
- G_CALLBACK (preferences_save_cb), NULL);
- g_signal_connect_swapped (G_OBJECT(stickynotes->w_prefs_sys_font),
- "toggled", G_CALLBACK (preferences_save_cb), NULL);
- g_signal_connect (G_OBJECT (stickynotes->w_prefs_color),
- "color-set", G_CALLBACK (preferences_color_cb), NULL);
- g_signal_connect (G_OBJECT (stickynotes->w_prefs_font_color),
- "color-set", G_CALLBACK (preferences_color_cb), NULL);
- g_signal_connect (G_OBJECT (stickynotes->w_prefs_font),
- "font-set", G_CALLBACK (preferences_font_cb), NULL);
- g_signal_connect_swapped (G_OBJECT (stickynotes->w_prefs_sticky),
- "toggled", G_CALLBACK (preferences_save_cb), NULL);
- g_signal_connect_swapped (G_OBJECT (stickynotes->w_prefs_force),
- "toggled", G_CALLBACK (preferences_save_cb), NULL);
- g_signal_connect_swapped (G_OBJECT (stickynotes->w_prefs_desktop),
- "toggled", G_CALLBACK (preferences_save_cb), NULL);
-
- {
- GtkSizeGroup *group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
-
- gtk_size_group_add_widget(group, GTK_WIDGET (gtk_builder_get_object (stickynotes->builder, "width_label")));
- gtk_size_group_add_widget(group, GTK_WIDGET (gtk_builder_get_object (stickynotes->builder, "height_label")));
- gtk_size_group_add_widget(group, GTK_WIDGET (gtk_builder_get_object (stickynotes->builder, "prefs_color_label")));
-
- g_object_unref(group);
- }
-
- if (!g_settings_is_writable (stickynotes->settings, "default-width"))
- {
- gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (
- stickynotes->builder, "width_label")),
- FALSE);
- gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (
- stickynotes->builder, "width_spin")),
- FALSE);
- }
- if (!g_settings_is_writable (stickynotes->settings, "default-height"))
- {
- gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (
- stickynotes->builder, "height_label")),
- FALSE);
- gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (
- stickynotes->builder, "height_spin")),
- FALSE);
- }
- if (!g_settings_is_writable (stickynotes->settings, "default-color"))
- {
- gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (
- stickynotes->builder, "prefs_color_label")),
- FALSE);
- gtk_widget_set_sensitive (stickynotes->w_prefs_color, FALSE);
- }
- if (!g_settings_is_writable (stickynotes->settings, "default-font-color"))
- {
- gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (
- stickynotes->builder, "prefs_font_color_label")),
- FALSE);
- gtk_widget_set_sensitive (stickynotes->w_prefs_font_color,
- FALSE);
- }
- if (!g_settings_is_writable (stickynotes->settings, "use-system-color"))
- gtk_widget_set_sensitive (stickynotes->w_prefs_sys_color,
- FALSE);
- if (!g_settings_is_writable (stickynotes->settings, "default-font"))
- {
- gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (
- stickynotes->builder, "prefs_font_label")),
- FALSE);
- gtk_widget_set_sensitive (stickynotes->w_prefs_font, FALSE);
- }
- if (!g_settings_is_writable (stickynotes->settings, "use-system-font"))
- gtk_widget_set_sensitive (stickynotes->w_prefs_sys_font,
- FALSE);
- if (!g_settings_is_writable (stickynotes->settings, "sticky"))
- gtk_widget_set_sensitive (stickynotes->w_prefs_sticky, FALSE);
- if (!g_settings_is_writable (stickynotes->settings, "force-default"))
- gtk_widget_set_sensitive (stickynotes->w_prefs_force, FALSE);
-
- stickynotes_applet_update_prefs();
+ stickynotes->builder = gtk_builder_new ();
+
+ gtk_builder_add_from_resource (stickynotes->builder,
+ GRESOURCE "sticky-notes-preferences.ui",
+ NULL);
+
+ stickynotes->w_prefs =
+ GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "preferences_dialog"));
+
+ stickynotes->w_prefs_width =
+ gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (gtk_builder_get_object (stickynotes->builder,
+ "width_spin")));
+ stickynotes->w_prefs_height =
+ gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (gtk_builder_get_object (stickynotes->builder,
+ "height_spin")));
+ stickynotes->w_prefs_color =
+ GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "default_color"));
+ stickynotes->w_prefs_font_color =
+ GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "prefs_font_color"));
+ stickynotes->w_prefs_sys_color =
+ GTK_WIDGET (&GTK_CHECK_BUTTON (gtk_builder_get_object (stickynotes->builder,
+ "sys_color_check"))->toggle_button);
+ stickynotes->w_prefs_font =
+ GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "default_font"));
+ stickynotes->w_prefs_sys_font =
+ GTK_WIDGET (&GTK_CHECK_BUTTON (gtk_builder_get_object (stickynotes->builder,
+ "sys_font_check"))->toggle_button);
+ stickynotes->w_prefs_sticky =
+ GTK_WIDGET (&GTK_CHECK_BUTTON (gtk_builder_get_object (stickynotes->builder,
+ "sticky_check"))->toggle_button);
+ stickynotes->w_prefs_force =
+ GTK_WIDGET (&GTK_CHECK_BUTTON (gtk_builder_get_object (stickynotes->builder,
+ "force_default_check"))->toggle_button);
+ stickynotes->w_prefs_desktop =
+ GTK_WIDGET (&GTK_CHECK_BUTTON (gtk_builder_get_object (stickynotes->builder,
+ "desktop_hide_check"))->toggle_button);
+
+ g_signal_connect (stickynotes->w_prefs, "response",
+ G_CALLBACK (preferences_response_cb), NULL);
+ g_signal_connect (stickynotes->w_prefs, "delete-event",
+ G_CALLBACK (preferences_delete_cb), NULL);
+ g_signal_connect_swapped (stickynotes->w_prefs_width, "value-changed",
+ G_CALLBACK (preferences_save_cb), NULL);
+ g_signal_connect_swapped (stickynotes->w_prefs_height, "value-changed",
+ G_CALLBACK (preferences_save_cb), NULL);
+ g_signal_connect_swapped (stickynotes->w_prefs_sys_color, "toggled",
+ G_CALLBACK (preferences_save_cb), NULL);
+ g_signal_connect_swapped (stickynotes->w_prefs_sys_font, "toggled",
+ G_CALLBACK (preferences_save_cb), NULL);
+ g_signal_connect (stickynotes->w_prefs_color, "color-set",
+ G_CALLBACK (preferences_color_cb), NULL);
+ g_signal_connect (stickynotes->w_prefs_font_color, "color-set",
+ G_CALLBACK (preferences_color_cb), NULL);
+ g_signal_connect (stickynotes->w_prefs_font, "font-set",
+ G_CALLBACK (preferences_font_cb), NULL);
+ g_signal_connect_swapped (stickynotes->w_prefs_sticky, "toggled",
+ G_CALLBACK (preferences_save_cb), NULL);
+ g_signal_connect_swapped (stickynotes->w_prefs_force, "toggled",
+ G_CALLBACK (preferences_save_cb), NULL);
+ g_signal_connect_swapped (stickynotes->w_prefs_desktop, "toggled",
+ G_CALLBACK (preferences_save_cb), NULL);
+
+ {
+ GtkSizeGroup *group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+
+ gtk_size_group_add_widget (group,
+ GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "width_label")));
+ gtk_size_group_add_widget (group,
+ GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "height_label")));
+ gtk_size_group_add_widget (group,
+ GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "prefs_color_label")));
+
+ g_object_unref (group);
+ }
+
+ if (!g_settings_is_writable (stickynotes->settings, "default-width")) {
+ gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "width_label")),
+ FALSE);
+ gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "width_spin")),
+ FALSE);
+ }
+ if (!g_settings_is_writable (stickynotes->settings, "default-height")) {
+ gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "height_label")),
+ FALSE);
+ gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "height_spin")),
+ FALSE);
+ }
+ if (!g_settings_is_writable (stickynotes->settings, "default-color")) {
+ gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "prefs_color_label")),
+ FALSE);
+ gtk_widget_set_sensitive (stickynotes->w_prefs_color, FALSE);
+ }
+ if (!g_settings_is_writable (stickynotes->settings, "default-font-color")) {
+ gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "prefs_font_color_label")),
+ FALSE);
+ gtk_widget_set_sensitive (stickynotes->w_prefs_font_color, FALSE);
+ }
+ if (!g_settings_is_writable (stickynotes->settings, "use-system-color"))
+ gtk_widget_set_sensitive (stickynotes->w_prefs_sys_color, FALSE);
+ if (!g_settings_is_writable (stickynotes->settings, "default-font")) {
+ gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "prefs_font_label")),
+ FALSE);
+ gtk_widget_set_sensitive (stickynotes->w_prefs_font, FALSE);
+ }
+ if (!g_settings_is_writable (stickynotes->settings, "use-system-font"))
+ gtk_widget_set_sensitive (stickynotes->w_prefs_sys_font, FALSE);
+ if (!g_settings_is_writable (stickynotes->settings, "sticky"))
+ gtk_widget_set_sensitive (stickynotes->w_prefs_sticky, FALSE);
+ if (!g_settings_is_writable (stickynotes->settings, "force-default"))
+ gtk_widget_set_sensitive (stickynotes->w_prefs_force, FALSE);
+
+ stickynotes_applet_update_prefs ();
}
/* Create a Sticky Notes applet */
StickyNotesApplet *
-stickynotes_applet_new(MatePanelApplet *mate_panel_applet)
+stickynotes_applet_new (MatePanelApplet *mate_panel_applet)
{
- AtkObject *atk_obj;
-
- /* Create Sticky Notes Applet */
- StickyNotesApplet *applet = g_new(StickyNotesApplet, 1);
-
- /* Initialize Sticky Notes Applet */
- applet->w_applet = GTK_WIDGET(mate_panel_applet);
- applet->w_image = gtk_image_new();
- applet->destroy_all_dialog = NULL;
- applet->prelighted = FALSE;
-
- applet->menu_tip = NULL;
-
- /* Expand the applet for Fitts' law complience. */
- mate_panel_applet_set_flags(mate_panel_applet, MATE_PANEL_APPLET_EXPAND_MINOR);
-
- /* Add the applet icon */
- gtk_container_add(GTK_CONTAINER(mate_panel_applet), applet->w_image);
- applet->panel_size = mate_panel_applet_get_size (mate_panel_applet);
- applet->panel_orient = mate_panel_applet_get_orient (mate_panel_applet);
- stickynotes_applet_update_icon(applet);
-
- /* Add the popup menu */
- applet->action_group = gtk_action_group_new ("StickyNotes Applet Actions");
- gtk_action_group_set_translation_domain (applet->action_group, GETTEXT_PACKAGE);
- gtk_action_group_add_actions (applet->action_group,
- stickynotes_applet_menu_actions,
- G_N_ELEMENTS (stickynotes_applet_menu_actions),
- applet);
- gtk_action_group_add_toggle_actions (applet->action_group,
- stickynotes_applet_menu_toggle_actions,
- G_N_ELEMENTS (stickynotes_applet_menu_toggle_actions),
- applet);
- mate_panel_applet_setup_menu_from_resource (mate_panel_applet,
- GRESOURCE "menu.xml",
- applet->action_group);
-
- if (mate_panel_applet_get_locked_down (mate_panel_applet)) {
- GtkAction *action;
-
- action = gtk_action_group_get_action (applet->action_group, "preferences");
- gtk_action_set_visible (action, FALSE);
- }
-
- /* Connect all signals for applet management */
- g_signal_connect(G_OBJECT(applet->w_applet), "button-press-event",
- G_CALLBACK(applet_button_cb), applet);
- g_signal_connect(G_OBJECT(applet->w_applet), "key-press-event",
- G_CALLBACK(applet_key_cb), applet);
- g_signal_connect(G_OBJECT(applet->w_applet), "focus-in-event",
- G_CALLBACK(applet_focus_cb), applet);
- g_signal_connect(G_OBJECT(applet->w_applet), "focus-out-event",
- G_CALLBACK(applet_focus_cb), applet);
- g_signal_connect(G_OBJECT(applet->w_applet), "enter-notify-event",
- G_CALLBACK(applet_cross_cb), applet);
- g_signal_connect(G_OBJECT(applet->w_applet), "leave-notify-event",
- G_CALLBACK(applet_cross_cb), applet);
- g_signal_connect(G_OBJECT(applet->w_applet), "size-allocate",
- G_CALLBACK(applet_size_allocate_cb), applet);
- g_signal_connect(G_OBJECT(applet->w_applet), "change-orient",
- G_CALLBACK(applet_change_orient_cb), applet);
- g_signal_connect(G_OBJECT(applet->w_applet), "destroy",
- G_CALLBACK(applet_destroy_cb), applet);
- g_signal_connect(G_OBJECT(applet->w_applet), "destroy",
- G_CALLBACK(stickynotes_destroy), NULL);
-
- atk_obj = gtk_widget_get_accessible (applet->w_applet);
- atk_object_set_name (atk_obj, _("Sticky Notes"));
-
- /* Show the applet */
- gtk_widget_show_all(GTK_WIDGET(applet->w_applet));
-
- return applet;
+ AtkObject *atk_obj;
+
+ /* Create Sticky Notes Applet */
+ StickyNotesApplet *applet = g_new (StickyNotesApplet, 1);
+
+ /* Initialize Sticky Notes Applet */
+ applet->w_applet = GTK_WIDGET (mate_panel_applet);
+ applet->w_image = gtk_image_new ();
+ applet->destroy_all_dialog = NULL;
+ applet->prelighted = FALSE;
+
+ applet->menu_tip = NULL;
+
+ /* Expand the applet for Fitts' law complience. */
+ mate_panel_applet_set_flags (mate_panel_applet,
+ MATE_PANEL_APPLET_EXPAND_MINOR);
+
+ /* Add the applet icon */
+ gtk_container_add (GTK_CONTAINER (mate_panel_applet),
+ applet->w_image);
+ applet->panel_size = mate_panel_applet_get_size (mate_panel_applet);
+ applet->panel_orient = mate_panel_applet_get_orient (mate_panel_applet);
+ stickynotes_applet_update_icon (applet);
+
+ /* Add the popup menu */
+ applet->action_group = gtk_action_group_new ("StickyNotes Applet Actions");
+ gtk_action_group_set_translation_domain (applet->action_group,
+ GETTEXT_PACKAGE);
+ gtk_action_group_add_actions (applet->action_group,
+ stickynotes_applet_menu_actions,
+ G_N_ELEMENTS (stickynotes_applet_menu_actions),
+ applet);
+ gtk_action_group_add_toggle_actions (applet->action_group,
+ stickynotes_applet_menu_toggle_actions,
+ G_N_ELEMENTS (stickynotes_applet_menu_toggle_actions),
+ applet);
+ mate_panel_applet_setup_menu_from_resource (mate_panel_applet,
+ GRESOURCE "menu.xml",
+ applet->action_group);
+
+ if (mate_panel_applet_get_locked_down (mate_panel_applet)) {
+ GtkAction *action;
+
+ action = gtk_action_group_get_action (applet->action_group,
+ "preferences");
+ gtk_action_set_visible (action, FALSE);
+ }
+
+ /* Connect all signals for applet management */
+ g_signal_connect (applet->w_applet, "button-press-event",
+ G_CALLBACK (applet_button_cb), applet);
+ g_signal_connect (applet->w_applet, "key-press-event",
+ G_CALLBACK (applet_key_cb), applet);
+ g_signal_connect (applet->w_applet, "focus-in-event",
+ G_CALLBACK (applet_focus_cb), applet);
+ g_signal_connect (applet->w_applet, "focus-out-event",
+ G_CALLBACK (applet_focus_cb), applet);
+ g_signal_connect (applet->w_applet, "enter-notify-event",
+ G_CALLBACK (applet_cross_cb), applet);
+ g_signal_connect (applet->w_applet, "leave-notify-event",
+ G_CALLBACK (applet_cross_cb), applet);
+ g_signal_connect (applet->w_applet, "size-allocate",
+ G_CALLBACK (applet_size_allocate_cb), applet);
+ g_signal_connect (applet->w_applet, "change-orient",
+ G_CALLBACK (applet_change_orient_cb), applet);
+ g_signal_connect (applet->w_applet, "destroy",
+ G_CALLBACK (applet_destroy_cb), applet);
+ g_signal_connect (applet->w_applet, "destroy",
+ G_CALLBACK (stickynotes_destroy), NULL);
+
+ atk_obj = gtk_widget_get_accessible (applet->w_applet);
+ atk_object_set_name (atk_obj, _("Sticky Notes"));
+
+ /* Show the applet */
+ gtk_widget_show_all (applet->w_applet);
+
+ return applet;
}
-void stickynotes_applet_update_icon(StickyNotesApplet *applet)
+void
+stickynotes_applet_update_icon (StickyNotesApplet *applet)
{
- cairo_t *cr;
- cairo_surface_t *surface;
+ cairo_t *cr;
+ cairo_surface_t *surface;
- gint size = applet->panel_size;
+ gint size = applet->panel_size;
- if (size > 3)
- size = size - 3;
+ if (size > 3)
+ size = size - 3;
- /* Choose appropriate icon and size it */
- if (applet->prelighted)
- surface = cairo_surface_create_similar (stickynotes->icon_prelight,
- cairo_surface_get_content (stickynotes->icon_prelight),
- size, size);
- else
- surface = cairo_surface_create_similar (stickynotes->icon_normal,
- cairo_surface_get_content (stickynotes->icon_normal),
- size, size);
+ /* Choose appropriate icon and size it */
+ if (applet->prelighted)
+ surface = cairo_surface_create_similar (stickynotes->icon_prelight,
+ cairo_surface_get_content (stickynotes->icon_prelight),
+ size, size);
+ else
+ surface = cairo_surface_create_similar (stickynotes->icon_normal,
+ cairo_surface_get_content (stickynotes->icon_normal),
+ size, size);
- cr = cairo_create (surface);
- cairo_set_source_surface (cr, applet->prelighted ? stickynotes->icon_prelight : stickynotes->icon_normal, 0, 0);
- cairo_paint (cr);
+ cr = cairo_create (surface);
+ cairo_set_source_surface (cr, applet->prelighted ? stickynotes->icon_prelight : stickynotes->icon_normal, 0, 0);
+ cairo_paint (cr);
- /* Apply the finished surface to the applet image */
- gtk_image_set_from_surface(GTK_IMAGE(applet->w_image), surface);
+ /* Apply the finished surface to the applet image */
+ gtk_image_set_from_surface (GTK_IMAGE (applet->w_image), surface);
- cairo_surface_destroy(surface);
+ cairo_surface_destroy (surface);
}
void
stickynotes_applet_update_prefs (void)
{
- gint width, height;
- gboolean sys_color, sys_font, sticky, force_default, desktop_hide;
- char *font_str;
- char *color_str, *font_color_str;
- GdkRGBA color, font_color;
-
- width = g_settings_get_int (stickynotes->settings, "default-width");
- width = MAX (width, 1);
- height = g_settings_get_int (stickynotes->settings, "default-height");
- height = MAX (height, 1);
-
- sys_color = g_settings_get_boolean (stickynotes->settings, "use-system-color");
- sys_font = g_settings_get_boolean (stickynotes->settings, "use-system-font");
- sticky = g_settings_get_boolean (stickynotes->settings, "sticky");
- force_default = g_settings_get_boolean (stickynotes->settings, "force-default");
- desktop_hide = g_settings_get_boolean (stickynotes->settings, "desktop-hide");
-
- font_str = g_settings_get_string (stickynotes->settings, "default-font");
- if (!font_str)
- {
- font_str = g_strdup ("Sans 10");
- }
-
- color_str = g_settings_get_string (stickynotes->settings, "default-color");
- if (!color_str)
- {
- color_str = g_strdup ("#ECF833");
- }
- font_color_str = g_settings_get_string (stickynotes->settings, "default-font-color");
- if (!font_color_str)
- {
- font_color_str = g_strdup ("#000000");
- }
-
- gdk_rgba_parse (&color, color_str);
- gdk_rgba_parse (&font_color, font_color_str);
-
- g_free (color_str);
- g_free (font_color_str);
-
- gtk_adjustment_set_value (stickynotes->w_prefs_width, width);
- gtk_adjustment_set_value (stickynotes->w_prefs_height, height);
- gtk_toggle_button_set_active (
- GTK_TOGGLE_BUTTON (stickynotes->w_prefs_sys_color),
- sys_color);
- gtk_toggle_button_set_active (
- GTK_TOGGLE_BUTTON(stickynotes->w_prefs_sys_font),
- sys_font);
- gtk_toggle_button_set_active (
- GTK_TOGGLE_BUTTON (stickynotes->w_prefs_sticky),
- sticky);
- gtk_toggle_button_set_active (
- GTK_TOGGLE_BUTTON (stickynotes->w_prefs_force),
- force_default);
- gtk_toggle_button_set_active (
- GTK_TOGGLE_BUTTON (stickynotes->w_prefs_desktop),
- desktop_hide);
-
- gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (stickynotes->w_prefs_color), &color);
- gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (stickynotes->w_prefs_font_color), &font_color);
-
- gtk_font_button_set_font_name (GTK_FONT_BUTTON (stickynotes->w_prefs_font), font_str);
- g_free (font_str);
-
- if (g_settings_is_writable (stickynotes->settings, "default-color"))
- {
- gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (
- stickynotes->builder, "prefs_color_label")),
- !sys_color);
- gtk_widget_set_sensitive (stickynotes->w_prefs_color,
- !sys_color);
- }
- if (g_settings_is_writable (stickynotes->settings, "default-font-color"))
- {
- gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (
- stickynotes->builder, "prefs_font_color_label")),
- !sys_color);
- gtk_widget_set_sensitive (stickynotes->w_prefs_font_color,
- !sys_color);
- }
- if (g_settings_is_writable (stickynotes->settings, "default-font"))
- {
- gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (
- stickynotes->builder, "prefs_font_label")),
- !sys_font);
- gtk_widget_set_sensitive (stickynotes->w_prefs_font,
- !sys_font);
- }
+ gint width, height;
+ gboolean sys_color, sys_font, sticky, force_default, desktop_hide;
+ char *font_str;
+ char *color_str, *font_color_str;
+ GdkRGBA color, font_color;
+
+ width = g_settings_get_int (stickynotes->settings,
+ "default-width");
+ width = MAX (width, 1);
+ height = g_settings_get_int (stickynotes->settings,
+ "default-height");
+ height = MAX (height, 1);
+
+ sys_color = g_settings_get_boolean (stickynotes->settings,
+ "use-system-color");
+ sys_font = g_settings_get_boolean (stickynotes->settings,
+ "use-system-font");
+ sticky = g_settings_get_boolean (stickynotes->settings,
+ "sticky");
+ force_default = g_settings_get_boolean (stickynotes->settings,
+ "force-default");
+ desktop_hide = g_settings_get_boolean (stickynotes->settings,
+ "desktop-hide");
+
+ font_str = g_settings_get_string (stickynotes->settings,
+ "default-font");
+ if (!font_str)
+ font_str = g_strdup ("Sans 10");
+
+ color_str = g_settings_get_string (stickynotes->settings,
+ "default-color");
+ if (!color_str)
+ color_str = g_strdup ("#ECF833");
+
+ font_color_str = g_settings_get_string (stickynotes->settings,
+ "default-font-color");
+ if (!font_color_str)
+ font_color_str = g_strdup ("#000000");
+
+ gdk_rgba_parse (&color, color_str);
+ gdk_rgba_parse (&font_color, font_color_str);
+
+ g_free (color_str);
+ g_free (font_color_str);
+
+ gtk_adjustment_set_value (stickynotes->w_prefs_width, width);
+ gtk_adjustment_set_value (stickynotes->w_prefs_height, height);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (stickynotes->w_prefs_sys_color),
+ sys_color);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (stickynotes->w_prefs_sys_font),
+ sys_font);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (stickynotes->w_prefs_sticky),
+ sticky);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (stickynotes->w_prefs_force),
+ force_default);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (stickynotes->w_prefs_desktop),
+ desktop_hide);
+
+ gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (stickynotes->w_prefs_color),
+ &color);
+ gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (stickynotes->w_prefs_font_color),
+ &font_color);
+
+ gtk_font_button_set_font_name (GTK_FONT_BUTTON (stickynotes->w_prefs_font),
+ font_str);
+ g_free (font_str);
+
+ if (g_settings_is_writable (stickynotes->settings, "default-color")) {
+ gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "prefs_color_label")),
+ !sys_color);
+ gtk_widget_set_sensitive (stickynotes->w_prefs_color, !sys_color);
+ }
+ if (g_settings_is_writable (stickynotes->settings, "default-font-color")) {
+ gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "prefs_font_color_label")),
+ !sys_color);
+ gtk_widget_set_sensitive (stickynotes->w_prefs_font_color, !sys_color);
+ }
+ if (g_settings_is_writable (stickynotes->settings, "default-font")) {
+ gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (stickynotes->builder,
+ "prefs_font_label")),
+ !sys_font);
+ gtk_widget_set_sensitive (stickynotes->w_prefs_font, !sys_font);
+ }
}
-void stickynotes_applet_update_menus(void)
+void
+stickynotes_applet_update_menus (void)
{
- GList *l;
- gboolean inconsistent = FALSE;
-
- gboolean locked = g_settings_get_boolean (stickynotes->settings, "locked");
- gboolean locked_writable = g_settings_is_writable (stickynotes->settings, "locked");
-
- for (l = stickynotes->notes; l != NULL; l = l->next) {
- StickyNote *note = l->data;
-
- if (note->locked != locked) {
- inconsistent = TRUE;
- break;
- }
- }
-
- for (l = stickynotes->applets; l != NULL; l = l->next) {
- StickyNotesApplet *applet = l->data;
- GSList *proxies, *p;
-
- GtkAction *action = gtk_action_group_get_action (applet->action_group, "lock");
-
- g_object_set (action,
- "active", locked,
- "sensitive", locked_writable,
- NULL);
-
- proxies = gtk_action_get_proxies (action);
- for (p = proxies; p; p = g_slist_next (p)) {
- if (GTK_IS_CHECK_MENU_ITEM (p->data)) {
- gtk_check_menu_item_set_inconsistent (GTK_CHECK_MENU_ITEM (p->data),
- inconsistent);
- }
- }
- }
+ GList *l;
+ gboolean inconsistent = FALSE;
+
+ gboolean locked = g_settings_get_boolean (stickynotes->settings,
+ "locked");
+ gboolean locked_writable = g_settings_is_writable (stickynotes->settings,
+ "locked");
+
+ for (l = stickynotes->notes; l != NULL; l = l->next) {
+ StickyNote *note = l->data;
+
+ if (note->locked != locked) {
+ inconsistent = TRUE;
+ break;
+ }
+ }
+
+ for (l = stickynotes->applets; l != NULL; l = l->next) {
+ StickyNotesApplet *applet = l->data;
+ GSList *proxies, *p;
+
+ GtkAction *action = gtk_action_group_get_action (applet->action_group,
+ "lock");
+
+ g_object_set (action,
+ "active", locked,
+ "sensitive", locked_writable,
+ NULL);
+
+ proxies = gtk_action_get_proxies (action);
+ for (p = proxies; p; p = g_slist_next (p)) {
+ if (GTK_IS_CHECK_MENU_ITEM (p->data))
+ gtk_check_menu_item_set_inconsistent (GTK_CHECK_MENU_ITEM (p->data),
+ inconsistent);
+ }
+ }
}
void
stickynotes_applet_update_tooltips (void)
{
- int num;
- char *tooltip, *no_notes;
- StickyNotesApplet *applet;
- GList *l;
-
- num = g_list_length (stickynotes->notes);
-
- no_notes = g_strdup_printf (ngettext ("%d note", "%d notes", num), num);
- tooltip = g_strdup_printf ("%s\n%s", _("Show sticky notes"), no_notes);
-
- for (l = stickynotes->applets; l; l = l->next)
- {
- applet = l->data;
- gtk_widget_set_tooltip_text (applet->w_applet, tooltip);
-
- if (applet->menu_tip)
- gtk_label_set_text (GTK_LABEL (gtk_bin_get_child (
- GTK_BIN (applet->menu_tip))),
- no_notes);
- }
-
- g_free (tooltip);
- g_free (no_notes);
+ int num;
+ char *tooltip, *no_notes;
+ StickyNotesApplet *applet;
+ GList *l;
+
+ num = g_list_length (stickynotes->notes);
+
+ no_notes = g_strdup_printf (ngettext ("%d note",
+ "%d notes",
+ num),
+ num);
+
+ tooltip = g_strdup_printf ("%s\n%s",
+ _("Show sticky notes"),
+ no_notes);
+
+ for (l = stickynotes->applets; l; l = l->next)
+ {
+ applet = l->data;
+ gtk_widget_set_tooltip_text (applet->w_applet,
+ tooltip);
+
+ if (applet->menu_tip)
+ gtk_label_set_text (GTK_LABEL (gtk_bin_get_child (GTK_BIN (applet->menu_tip))),
+ no_notes);
+ }
+
+ g_free (tooltip);
+ g_free (no_notes);
}
void
-stickynotes_applet_panel_icon_get_geometry (int *x, int *y, int *width, int *height)
+stickynotes_applet_panel_icon_get_geometry (int *x,
+ int *y,
+ int *width,
+ int *height)
{
- GtkWidget *widget;
- GtkAllocation allocation;
- GtkRequisition requisition;
- StickyNotesApplet *applet;
+ GtkWidget *widget;
+ GtkAllocation allocation;
+ GtkRequisition requisition;
+ StickyNotesApplet *applet;
- applet = stickynotes->applets->data;
+ applet = stickynotes->applets->data;
- widget = GTK_WIDGET (applet->w_image);
+ widget = GTK_WIDGET (applet->w_image);
- gtk_widget_get_preferred_size (widget, NULL, &requisition);
+ gtk_widget_get_preferred_size (widget,
+ NULL, &requisition);
- gdk_window_get_origin (gtk_widget_get_window (widget), x, y);
+ gdk_window_get_origin (gtk_widget_get_window (widget), x, y);
- gtk_widget_get_allocation (widget, &allocation);
- *width = allocation.x;
- *height = allocation.y;
+ gtk_widget_get_allocation (widget, &allocation);
+ *width = allocation.x;
+ *height = allocation.y;
}