Changeset 542
- Timestamp:
- 03/06/08 08:00:20 (6 months ago)
- Files:
-
- sweep/trunk/src/question_dialogs.c (modified) (1 diff)
- sweep/trunk/src/schemes.c (modified) (16 diffs)
- sweep/trunk/src/sweep-scheme.c (modified) (9 diffs)
- sweep/trunk/src/sweep-scheme.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
sweep/trunk/src/question_dialogs.c
r540 r542 97 97 GtkWidget * label; 98 98 GtkWidget * pixmap; 99 GtkWidget * button_label;100 GtkWidget * image;101 99 GtkWidget * button_hbox; 102 100 sweep/trunk/src/schemes.c
r540 r542 311 311 schemes_refresh_color_scheme_menu_cb (GtkMenuItem * menuitem, gpointer user_data) 312 312 { 313 if ((menuitem == NULL) || 314 (!GTK_IS_MENU_ITEM (menuitem))) 315 return FALSE; 313 g_return_val_if_fail (menuitem != NULL, FALSE); 314 g_return_val_if_fail (GTK_IS_MENU_ITEM (menuitem), FALSE); 316 315 317 316 gtk_menu_item_set_submenu (menuitem, NULL); … … 363 362 gint element; 364 363 gchar * default_name; 364 GdkColor *color; 365 365 366 366 if (length != SCHEME_ELEMENT_LAST) … … 369 369 scheme = sweep_scheme_new (); 370 370 scheme->name = g_strdup(group); 371 372 color = g_new0 (GdkColor, 1); 371 373 372 374 FOR_EACH_ELEMENT { … … 379 381 if ((string_list != NULL) && 380 382 ((gint)num_strings == 3) && /* color, style-type and toggle */ 381 (gdk_color_parse (string_list[0], scheme->scheme_colors[element]))) { 383 (gdk_color_parse (string_list[0], color))) { 384 385 sweep_scheme_set_element_color (scheme, element, color); 382 386 383 387 scheme->element_enabled[element] = … … 394 398 g_strfreev (string_list); 395 399 } else { 396 //unref scheme400 g_object_unref ((gpointer)scheme); 397 401 return NULL; 398 402 } 399 403 } 404 405 g_free (color); 406 400 407 return scheme; 401 408 } … … 405 412 { 406 413 gboolean ret; 407 408 if (scheme != NULL) {414 415 g_return_if_fail (scheme != NULL); 409 416 410 417 if (prepend) … … 419 426 g_signal_emit_by_name ((gpointer)menu_item_proxy, "event", NULL, &ret, NULL); 420 427 } 421 }422 428 } 423 429 … … 427 433 gboolean ret; 428 434 435 g_return_if_fail (scheme != NULL); 436 429 437 // unref scheme triggering signals etc 430 438 schemes_list = g_list_remove (schemes_list, scheme); 431 //g_object_unref ((gpointer) scheme);439 g_object_unref ((gpointer) scheme); 432 440 schemes_modified = TRUE; 433 441 schemes_refresh_combo (0); … … 525 533 SweepScheme * scheme = NULL; 526 534 535 g_return_val_if_fail ((name != NULL), NULL); 536 527 537 for (list = schemes_list; list; list = list->next) 528 538 { … … 546 556 gint i; 547 557 SweepScheme * scheme; 548 549 558 550 559 groups = g_key_file_get_groups (key_file, &groups_length); … … 720 729 { 721 730 GtkWidget * menuitem; 731 GtkWidget * hbox; 732 GtkWidget * label; 733 GtkWidget * image; 722 734 GtkWidget * submenu; 723 735 GList * list; … … 728 740 gtk_menu_item_set_submenu(GTK_MENU_ITEM(parent_menuitem), submenu); 729 741 730 menuitem = gtk_menu_item_new_with_label (_(" Show color scheme editor ..."));742 menuitem = gtk_menu_item_new_with_label (_("Color scheme editor ...")); 731 743 gtk_menu_append (GTK_MENU(submenu), menuitem); 732 744 … … 748 760 for (list = schemes_list; list; list = list->next) { 749 761 750 menuitem = gtk_menu_item_new_with_label (SWEEP_SCHEME (list->data)->name); 762 hbox = gtk_hbox_new (FALSE, 0); 763 image = gtk_image_new_from_pixmap (SWEEP_SCHEME (list->data)->preview_icon, 764 NULL); 765 gtk_misc_set_alignment (GTK_MISC (image), 1, 0.5); 766 label = gtk_label_new (SWEEP_SCHEME (list->data)->name); 767 768 769 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 2); 770 gtk_box_pack_start (GTK_BOX (hbox), image, TRUE, TRUE, 2); 771 gtk_widget_show_all (hbox); 772 773 menuitem = gtk_menu_item_new (); 774 gtk_container_add (GTK_CONTAINER (menuitem), hbox); 751 775 752 776 g_object_set_data (G_OBJECT(menuitem), "scheme", … … 776 800 sweep_set_window_icon (GTK_WINDOW (window)); 777 801 778 //attach_window_close_accel(window);802 attach_window_close_accel (GTK_WINDOW (window)); 779 803 780 804 gtk_window_set_title (GTK_WINDOW (window), _("Sweep: Color Scheme Options")); … … 1028 1052 NULL); 1029 1053 gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (schemes_combo), TRUE, TRUE, 0); 1054 gtk_tooltips_set_tip (tooltips, hbox, 1055 _("Select a color scheme to edit"), 1056 _("Select a color scheme to edit")); 1030 1057 1031 1058 /* new scheme button */ … … 1279 1306 1280 1307 colorselection = gtk_color_selection_new (); 1281 gtk_color_selection_set_update_policy (GTK_COLOR_SELECTION (colorselection), 1282 GTK_UPDATE_DELAYED); 1308 1283 1309 gtk_color_selection_set_has_opacity_control (GTK_COLOR_SELECTION (colorselection), FALSE); 1284 1310 gtk_container_add (GTK_CONTAINER (notebook1), colorselection); sweep/trunk/src/sweep-scheme.c
r538 r542 82 82 gint element; 83 83 SweepScheme * scheme = SWEEP_SCHEME (object); 84 g_object_unref ((gpointer) scheme->preview_icon); 84 85 85 86 g_free (scheme->name); … … 90 91 } 91 92 g_free (scheme); 93 94 if (G_OBJECT_CLASS (sweep_scheme_parent_class)->finalize) 95 G_OBJECT_CLASS (sweep_scheme_parent_class)->finalize (object); 92 96 93 97 } … … 97 101 98 102 gint element; 99 103 GdkVisual *visual; 104 105 visual = gdk_screen_get_system_visual (gdk_screen_get_default ()); 100 106 scheme->modified = FALSE; 101 107 scheme->is_default = FALSE; 102 scheme->preview_icon = NULL;108 scheme->preview_icon = gdk_pixmap_new (NULL, 16, 16, visual->depth); 103 109 104 110 for (element = 0; element < SCHEME_ELEMENT_LAST; element++) … … 137 143 g_cclosure_marshal_VOID__VOID, 138 144 G_TYPE_NONE, 0); 145 /* this may not be necessary */ 146 object_signals[CHANGED] = 147 g_signal_new ("preview-changed", 148 G_TYPE_FROM_CLASS (gobject_class), 149 G_SIGNAL_RUN_CLEANUP | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, 150 G_STRUCT_OFFSET (SweepSchemeClass, changed), 151 NULL, NULL, 152 g_cclosure_marshal_VOID__VOID, 153 G_TYPE_NONE, 0); 139 154 140 155 klass->changed = NULL; 156 klass->preview_changed = NULL; 141 157 142 158 } … … 148 164 return g_object_new (SWEEP_TYPE_SCHEME, NULL); 149 165 166 } 167 168 static void 169 update_scheme_preview (SweepScheme * scheme) 170 { 171 GdkDrawable * preview_icon = GDK_DRAWABLE (scheme->preview_icon); 172 GdkGC * gc = gdk_gc_new (preview_icon); 173 174 gdk_gc_set_rgb_fg_color (gc, scheme->scheme_colors[SCHEME_ELEMENT_BG]); 175 gdk_draw_rectangle (preview_icon, 176 gc, 177 TRUE, 0, 0, 16, 16); 178 179 gdk_gc_set_rgb_fg_color (gc, scheme->scheme_colors[SCHEME_ELEMENT_FG]); 180 gdk_draw_rectangle (preview_icon, 181 gc, 182 TRUE, 4, 4, 8, 8); 183 184 g_signal_emit_by_name ((gpointer) scheme, "preview-changed"); 185 186 g_object_unref ((gpointer) gc); 150 187 } 151 188 … … 173 210 scheme_copy->element_enabled[element] = scheme->element_enabled[element]; 174 211 } 212 update_scheme_preview (scheme_copy); 175 213 176 214 } … … 184 222 GdkColor * color) 185 223 { 186 GdkColor * old_color;187 188 if ((scheme != NULL) ||189 (color != NULL)) {224 GdkColor * old_color; 225 226 if ((scheme != NULL) || 227 (color != NULL)) { 190 228 191 if ((element < 0) || (element >= SCHEME_ELEMENT_LAST)) 192 return; 193 194 old_color = scheme->scheme_colors[element]; 195 scheme->scheme_colors[element] = copy_gdk_colour (color); 196 g_free (old_color); 197 198 g_signal_emit_by_name ((gpointer) scheme, "changed"); 199 200 } 229 if ((element < 0) || (element >= SCHEME_ELEMENT_LAST)) 230 return; 231 232 old_color = scheme->scheme_colors[element]; 233 scheme->scheme_colors[element] = copy_gdk_colour (color); 234 g_free (old_color); 235 236 g_signal_emit_by_name ((gpointer) scheme, "changed"); 237 238 if ((element == SCHEME_ELEMENT_FG) || (element == SCHEME_ELEMENT_BG)) 239 update_scheme_preview (scheme); 240 } 201 241 202 242 } … … 217 257 218 258 g_signal_emit_by_name ((gpointer) scheme, "changed"); 219 220 259 } 221 260 } … … 238 277 239 278 g_signal_emit_by_name ((gpointer) scheme, "changed"); 240 279 280 if ((element == SCHEME_ELEMENT_FG) || (element == SCHEME_ELEMENT_BG)) 281 update_scheme_preview (scheme); 241 282 } 242 283 243 284 } 285 286 287 sweep/trunk/src/sweep-scheme.h
r540 r542 82 82 struct _SweepScheme { 83 83 84 GObject parent; 85 GdkColor * scheme_colors[SCHEME_ELEMENT_LAST]; 86 gboolean element_enabled[SCHEME_ELEMENT_LAST]; /* always true for some elements */ 87 gint element_style[SCHEME_ELEMENT_LAST]; /* overrides custom colors if > 0 */ 88 gchar * name; 89 gboolean modified; 90 gboolean is_default; 91 GdkPixbuf * preview_icon; 92 93 84 GObject parent; 85 GdkColor * scheme_colors[SCHEME_ELEMENT_LAST]; 86 gboolean element_enabled[SCHEME_ELEMENT_LAST]; /* always true for some elements */ 87 gint element_style[SCHEME_ELEMENT_LAST]; /* overrides custom colors if > 0 */ 88 gchar * name; 89 gboolean modified; 90 gboolean is_default; 91 GdkPixmap * preview_icon; 94 92 }; 95 93 … … 101 99 void (* destroy) (SweepScheme * object); 102 100 void (* changed) (SweepScheme * object); 101 void (* preview_changed) (SweepScheme * object); 103 102 }; 104 103
