/* Preferences Callback : Apply to existing notes. */ void preferences_apply_cb(GSettings *settings, gchar *key, gpointer data) { GList *l; StickyNote *note; if (!strcmp (key, "sticky")) { if (g_settings_get_boolean (settings, key)) for (l = stickynotes->notes; l; l = l->next) { note = l->data; gtk_window_stick (GTK_WINDOW (note->w_window)); } else for (l= stickynotes->notes; l; l = l->next) { note = l->data; gtk_window_unstick (GTK_WINDOW ( note->w_window)); } } else if (!strcmp (key, "locked")) { for (l = stickynotes->notes; l; l = l->next) { note = l->data; stickynote_set_locked (note, g_settings_get_boolean (settings, key)); } stickynotes_save(); } else if (!strcmp (key, "use-system-color") || !strcmp (key, "default-color")) { for (l = stickynotes->notes; l; l = l->next) { note = l->data; stickynote_set_color (note, note->color, note->font_color, FALSE); } } else if (!strcmp (key, "use-system-font") || !strcmp (key, "default-font")) { for (l = stickynotes->notes; l; l = l->next) { note = l->data; stickynote_set_font (note, note->font, FALSE); } } else if (!strcmp (key, "force-default")) { for (l = stickynotes->notes; l; l = l->next) { note = l->data; stickynote_set_color(note, note->color, note->font_color, FALSE); stickynote_set_font(note, note->font, FALSE); } } stickynotes_applet_update_prefs(); stickynotes_applet_update_menus(); }
/* Preferences Callback : Apply to existing notes. */ void preferences_apply_cb(GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) { GList *l; StickyNote *note; if (!strcmp (entry->key, GCONF_PATH "/settings/sticky")) { if (gconf_value_get_bool(entry->value)) for (l = stickynotes->notes; l; l = l->next) { note = l->data; gtk_window_stick (GTK_WINDOW (note->w_window)); } else for (l= stickynotes->notes; l; l = l->next) { note = l->data; gtk_window_unstick (GTK_WINDOW ( note->w_window)); } } else if (!strcmp (entry->key, GCONF_PATH "/settings/locked")) { for (l = stickynotes->notes; l; l = l->next) { note = l->data; stickynote_set_locked (note, gconf_value_get_bool (entry->value)); } stickynotes_save(); } else if (!strcmp (entry->key, GCONF_PATH "/settings/use_system_color") || !strcmp (entry->key, GCONF_PATH "/defaults/color")) { for (l = stickynotes->notes; l; l = l->next) { note = l->data; stickynote_set_color (note, note->color, note->font_color, FALSE); } } else if (!strcmp (entry->key, GCONF_PATH "/settings/use_system_font") || !strcmp (entry->key, GCONF_PATH "/defaults/font")) { for (l = stickynotes->notes; l; l = l->next) { note = l->data; stickynote_set_font (note, note->font, FALSE); } } else if (!strcmp (entry->key, GCONF_PATH "/settings/force_default")) { for (l = stickynotes->notes; l; l = l->next) { note = l->data; stickynote_set_color(note, note->color, note->font_color, FALSE); stickynote_set_font(note, note->font, FALSE); } } stickynotes_applet_update_prefs(); stickynotes_applet_update_menus(); }
/* Menu Callback : Configure preferences */ void menu_preferences_cb(GtkAction *action, StickyNotesApplet *applet) { stickynotes_applet_update_prefs(); gtk_window_set_screen(GTK_WINDOW(stickynotes->w_prefs), gtk_widget_get_screen(applet->w_applet)); gtk_window_present(GTK_WINDOW(stickynotes->w_prefs)); }
void stickynotes_applet_init_prefs(void) { stickynotes->builder = gtk_builder_new (); gtk_builder_add_from_file (stickynotes->builder, BUILDER_PATH, 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 (>K_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 (>K_CHECK_BUTTON ( gtk_builder_get_object (stickynotes->builder, "sys_font_check"))->toggle_button); stickynotes->w_prefs_sticky = GTK_WIDGET (>K_CHECK_BUTTON ( gtk_builder_get_object (stickynotes->builder, "sticky_check"))->toggle_button); stickynotes->w_prefs_force = GTK_WIDGET (>K_CHECK_BUTTON ( gtk_builder_get_object (stickynotes->builder, "force_default_check"))->toggle_button); stickynotes->w_prefs_desktop = GTK_WIDGET (>K_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 (!gconf_client_key_is_writable(stickynotes->gconf, GCONF_PATH "/defaults/width", NULL)) { 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 (!gconf_client_key_is_writable (stickynotes->gconf, GCONF_PATH "/defaults/height", NULL)) { 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 (!gconf_client_key_is_writable (stickynotes->gconf, GCONF_PATH "/defaults/color", NULL)) { 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 (!gconf_client_key_is_writable (stickynotes->gconf, GCONF_PATH "/defaults/font_color", NULL)) { 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 (!gconf_client_key_is_writable (stickynotes->gconf, GCONF_PATH "/settings/use_system_color", NULL)) gtk_widget_set_sensitive (stickynotes->w_prefs_sys_color, FALSE); if (!gconf_client_key_is_writable (stickynotes->gconf, GCONF_PATH "/defaults/font", NULL)) { 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 (!gconf_client_key_is_writable (stickynotes->gconf, GCONF_PATH "/settings/use_system_font", NULL)) gtk_widget_set_sensitive (stickynotes->w_prefs_sys_font, FALSE); if (!gconf_client_key_is_writable (stickynotes->gconf, GCONF_PATH "/settings/sticky", NULL)) gtk_widget_set_sensitive (stickynotes->w_prefs_sticky, FALSE); if (!gconf_client_key_is_writable (stickynotes->gconf, GCONF_PATH "/settings/force_default", NULL)) gtk_widget_set_sensitive (stickynotes->w_prefs_force, FALSE); stickynotes_applet_update_prefs(); }