Changeset 537
- Timestamp:
- 02/29/08 11:44:56 (6 months ago)
- Files:
-
- sweep/trunk/src/schemes.c (modified) (32 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
sweep/trunk/src/schemes.c
r536 r537 67 67 }; 68 68 69 GtkWidget * scheme_editor = NULL;70 GtkListStore * elements_store = NULL;71 GtkComboBox * schemes_combo = NULL;72 GtkWidget * window = NULL;73 GtkWidget * colorselection = NULL;74 GtkWidget * treeview = NULL;75 /* Part of a hack to dynamically refresh menus */76 GtkMenuItem * menu_item_proxy = NULL;77 78 GdkPixbuf * color_swatches[SCHEME_ELEMENT_LAST];79 extern gchar * element_names[];80 extern gchar * element_keys[];81 SweepScheme * default_scheme = NULL;69 GtkWidget * scheme_editor = NULL; 70 GtkListStore * elements_store = NULL; 71 GtkComboBox * schemes_combo = NULL; 72 GtkWidget * window = NULL; 73 GtkWidget * colorselection = NULL; 74 GtkWidget * treeview = NULL; 75 /* Part of a hack to dynamically refresh menus */ 76 GtkMenuItem * menu_item_proxy = NULL; 77 78 GdkPixbuf * color_swatches[SCHEME_ELEMENT_LAST]; 79 extern gchar * element_names[]; 80 extern gchar * element_keys[]; 81 SweepScheme * default_scheme = NULL; 82 82 gboolean schemes_modified = FALSE; 83 83 #define FOR_EACH_ELEMENT for (element = 0; element < SCHEME_ELEMENT_LAST; element++) 84 84 85 85 GdkColor * 86 copy_gdk_colour (GdkColor * color_src)87 { 88 GdkColor * color_dest = g_new (GdkColor, 1);86 copy_gdk_colour (GdkColor * color_src) 87 { 88 GdkColor * color_dest = g_new (GdkColor, 1); 89 89 90 90 color_dest->red = color_src->red; … … 99 99 color_new_from_rgb (gint r, gint g, gint b) 100 100 { 101 GdkColor * color = g_new (GdkColor, 1);101 GdkColor * color = g_new (GdkColor, 1); 102 102 103 103 color->red = r * 65535 / 255; … … 119 119 filename_color_hash (char * filename) 120 120 { 121 char * p;121 char * p; 122 122 int i = 0; 123 123 int length; … … 142 142 */ 143 143 static void 144 fill_pixmap_from_scheme_color (GdkColor * scheme_color, GdkPixbuf **pixbuf)145 { 146 gint i, j, rowstride;147 gint r, g ,b;148 guchar * pixels;149 gint color[3];150 gint height = 18;151 gint width = 35;144 fill_pixmap_from_scheme_color (GdkColor * scheme_color, GdkPixbuf ** pixbuf) 145 { 146 gint i, j, rowstride; 147 gint r, g ,b; 148 guchar * pixels; 149 gint color[3]; 150 gint height = 18; 151 gint width = 35; 152 152 153 153 if (*pixbuf != NULL) … … 212 212 schemes_get_scheme_user_default (void) 213 213 { 214 gchar *scheme_name; 215 SweepScheme *scheme; 214 gchar * scheme_name; 215 SweepScheme * scheme; 216 216 217 scheme_name = prefs_get_string ("user-default-scheme"); 217 218 … … 232 233 233 234 SweepScheme * 234 schemes_get_scheme_from_filename (gchar * filename)235 { 236 SweepScheme * scheme = NULL;237 gint index;235 schemes_get_scheme_from_filename (gchar * filename) 236 { 237 SweepScheme * scheme = NULL; 238 gint index; 238 239 239 240 index = filename_color_hash (filename); … … 247 248 schemes_get_scheme_random (void) 248 249 { 249 SweepScheme * scheme = NULL;250 gint max, index;250 SweepScheme * scheme = NULL; 251 gint max, index; 251 252 252 253 max = (gint) g_list_length (schemes_list); … … 261 262 262 263 SweepScheme * 263 schemes_get_prefered_scheme (gchar * filename)264 schemes_get_prefered_scheme (gchar * filename) 264 265 { 265 266 switch (schemes_get_selection_method ()) … … 282 283 schemes_refresh_combo (gint index) 283 284 { 284 GList *list;285 GtkListStore * list_store;285 GList * list; 286 GtkListStore * list_store; 286 287 287 288 if (schemes_combo != NULL) { … … 307 308 308 309 gboolean 309 schemes_refresh_color_scheme_menu_cb (GtkMenuItem * menuitem, gpointer user_data)310 schemes_refresh_color_scheme_menu_cb (GtkMenuItem * menuitem, gpointer user_data) 310 311 { 311 312 if ((menuitem == NULL) || … … 321 322 322 323 static gint 323 element_get_style_type (gchar * type)324 element_get_style_type (gchar * type) 324 325 { 325 326 … … 350 351 351 352 static SweepScheme * 352 parse_scheme (GKeyFile * key_file,353 gchar *group,354 gchar **keys,355 gint length)356 { 357 gint element;358 SweepScheme *scheme;359 gchar **string_list;360 gsize num_strings;361 GError *error = NULL;353 parse_scheme (GKeyFile * key_file, 354 gchar * group, 355 gchar ** keys, 356 gint length) 357 { 358 SweepScheme * scheme; 359 gchar ** string_list; 360 GError * error = NULL; 361 gsize num_strings; 362 gint element; 362 363 363 364 if (length != SCHEME_ELEMENT_LAST) … … 394 395 } 395 396 void 396 schemes_add_scheme (SweepScheme * scheme, gboolean prepend)397 schemes_add_scheme (SweepScheme * scheme, gboolean prepend) 397 398 { 398 399 gboolean ret; … … 415 416 416 417 void 417 schemes_remove_scheme (SweepScheme * scheme)418 schemes_remove_scheme (SweepScheme * scheme) 418 419 { 419 420 gboolean ret; … … 431 432 void schemes_copy_scheme (SweepScheme *scheme, gchar *newname) 432 433 { 433 GtkWidget *image;434 GtkWidget *hbox;435 GtkWidget *label;436 GtkWidget *dialog;437 GtkWidget *entry;438 gchar *tmpstring;439 SweepScheme * scheme_copy;440 gint response;441 gboolean finished = FALSE;434 GtkWidget * image; 435 GtkWidget * hbox; 436 GtkWidget * label; 437 GtkWidget * dialog; 438 GtkWidget * entry; 439 gchar * tmpstring; 440 SweepScheme * scheme_copy; 441 gint response; 442 gboolean finished = FALSE; 442 443 443 444 dialog = gtk_dialog_new_with_buttons (_("Choose a name for this scheme"), … … 511 512 512 513 SweepScheme * 513 schemes_find_by_name (gchar * name)514 { 515 GList *list;516 gint ret;517 SweepScheme * scheme = NULL;514 schemes_find_by_name (gchar * name) 515 { 516 GList * list; 517 gint ret; 518 SweepScheme * scheme = NULL; 518 519 519 520 for (list = schemes_list; list; list = list->next) … … 530 531 531 532 static void 532 get_key_file_data (GKeyFile * key_file)533 { 534 gchar ** groups;535 gchar ** keys;536 gsize groups_length, keys_length;537 GError * error = NULL;538 gint i;539 SweepScheme * scheme;533 get_key_file_data (GKeyFile * key_file) 534 { 535 gchar ** groups; 536 gchar ** keys; 537 gsize groups_length, keys_length; 538 GError * error = NULL; 539 gint i; 540 SweepScheme * scheme; 540 541 541 542 … … 571 572 schemes_were_modified (void) 572 573 { 573 GList * list;574 GList * list; 574 575 575 576 for (list = schemes_list; list; list = list->next) { … … 586 587 schemes_get_selection_method (void) 587 588 { 588 gint * method_ptr = prefs_get_int ("scheme-selection-method");589 gint * method_ptr = prefs_get_int ("scheme-selection-method"); 589 590 590 591 if (method_ptr == NULL) … … 598 599 schemes_load (void) 599 600 { 600 GKeyFile * key_file = NULL;601 GError *error= NULL;602 gchar *schemes_path = NULL;603 gchar *schemes_path_system = NULL;604 gboolean key_file_loaded;601 GKeyFile * key_file = NULL; 602 GError * error = NULL; 603 gchar * schemes_path = NULL; 604 gchar * schemes_path_system = NULL; 605 gboolean key_file_loaded; 605 606 606 607 schemes_path = g_strconcat (g_get_home_dir (), … … 643 644 save_schemes (void) 644 645 { 645 GKeyFile * key_file;646 GError * error = NULL;647 GList * list;648 gint element;649 gchar * string_list[3], *key_data;650 SweepScheme * scheme;651 gsize length;652 gchar * schemes_path;646 GKeyFile * key_file; 647 GError * error = NULL; 648 GList * list; 649 gint element; 650 gchar * string_list[3], *key_data; 651 SweepScheme * scheme; 652 gsize length; 653 gchar * schemes_path; 653 654 654 655 if (schemes_were_modified () == FALSE) … … 685 686 "/.sweep/sweep-schemes.ini", NULL); 686 687 687 FILE * fp = fopen (schemes_path, "w");688 FILE * fp = fopen (schemes_path, "w"); 688 689 689 690 if (fp != NULL) { … … 708 709 709 710 void 710 schemes_create_menu (GtkWidget * parent_menuitem,711 schemes_create_menu (GtkWidget * parent_menuitem, 711 712 gboolean connect_signals) 712 713 { 713 GtkWidget * menuitem;714 GtkWidget * submenu;715 GList *list;716 sw_view *view;714 GtkWidget * menuitem; 715 GtkWidget * submenu; 716 GList * list; 717 sw_view * view; 717 718 718 719 … … 754 755 755 756 void 756 schemes_show_editor_window_cb (GtkMenuItem * menuitem,757 schemes_show_editor_window_cb (GtkMenuItem * menuitem, 757 758 gpointer user_data) 758 759 { 759 GtkWidget * editor;760 sw_view *view;761 GList *element;762 gint index;760 GtkWidget * editor; 761 sw_view * view; 762 GList * element; 763 gint index; 763 764 764 765 if (window == NULL) { … … 802 803 803 804 static void 804 treeview_set_selected (GtkTreeView * treeview, gint index, gint max)805 { 806 GtkTreeSelection * selection;807 GtkTreePath *path;808 GtkTreeModel *model;809 GtkTreeIter iter;805 treeview_set_selected (GtkTreeView * treeview, gint index, gint max) 806 { 807 GtkTreeSelection * selection; 808 GtkTreePath * path; 809 GtkTreeModel * model; 810 GtkTreeIter iter; 810 811 811 812 g_return_if_fail ((max < 0) || (GTK_IS_TREE_VIEW (treeview))); … … 827 828 schemes_refresh_list_store (gint scheme_index) 828 829 { 829 GtkTreeIter iter;830 gint element;830 GtkTreeIter iter; 831 gint element; 831 832 SweepScheme * scheme = NULL; 832 833 … … 857 858 858 859 void 859 schemes_picker_set_edited_color (SweepScheme * scheme, gint element)860 schemes_picker_set_edited_color (SweepScheme * scheme, gint element) 860 861 { 861 862 if ((colorselection == NULL) || … … 882 883 schemes_create_tree_view (void) 883 884 { 884 GtkCellRenderer *renderer;885 GtkTreeViewColumn * column;885 GtkCellRenderer * renderer; 886 GtkTreeViewColumn * column; 886 887 887 888 … … 912 913 913 914 void 914 schemes_set_active_element_color (GtkColorSelection * colorselection)915 { 916 GtkTreeSelection * selection;917 GtkTreeModel *model;918 GtkTreeIter iter;919 GdkColor *color;920 gint element;921 SweepScheme *scheme;915 schemes_set_active_element_color (GtkColorSelection * colorselection) 916 { 917 GtkTreeSelection * selection; 918 GtkTreeModel * model; 919 GtkTreeIter iter; 920 GdkColor * color; 921 gint element; 922 SweepScheme * scheme; 922 923 923 924 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); … … 956 957 GtkWidget * editor_vbox; 957 958 GtkWidget * general_vbox; 959 GtkWidget * sel_options_vbox; 958 960 GtkWidget * checkbutton; 959 961 GtkWidget * color_picker; … … 1145 1147 gtk_container_set_border_width (GTK_CONTAINER (button), 1); 1146 1148 GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); 1147 // gtk_widget_set_sensitive (button, FALSE); 1148 1149 /** general tab option widgets **/ 1150 1151 /* scheme selection radios */ 1152 1153 frame = gtk_frame_new (NULL); 1154 gtk_box_pack_start (GTK_BOX (general_vbox), frame, FALSE, TRUE, 0); 1155 label = gtk_label_new (_("<b>Automatic scheme selection</b>")); 1156 gtk_label_set_use_markup (GTK_LABEL (label), TRUE); 1157 gtk_frame_set_label_widget (GTK_FRAME (frame), label); 1158 gtk_container_set_border_width (GTK_CONTAINER (frame), 8); 1159 1160 1161 GtkWidget *vbox_sel_options = gtk_vbox_new (TRUE, 2); 1162 gtk_container_set_border_width (GTK_CONTAINER (vbox_sel_options), 5); 1163 gtk_container_add (GTK_CONTAINER (frame), vbox_sel_options); 1164 1165 radiobuttons[SCHEME_SELECT_DEFAULT] = gtk_radio_button_new_with_label (NULL, 1166 _("Always use the default scheme")); 1167 gtk_box_pack_start_defaults (GTK_BOX (vbox_sel_options), 1168 radiobuttons[SCHEME_SELECT_DEFAULT]); 1169 1170 radiobuttons[SCHEME_SELECT_FILENAME] = 1171 gtk_radio_button_new_with_label_from_widget ( 1172 GTK_RADIO_BUTTON (radiobuttons[SCHEME_SELECT_DEFAULT]), 1173 _("Select scheme by filename")); 1174 1175 gtk_box_pack_start_defaults (GTK_BOX (vbox_sel_options), 1176 radiobuttons[SCHEME_SELECT_FILENAME]); 1177 1178 radiobuttons[SCHEME_SELECT_RANDOM] = 1179 gtk_radio_button_new_with_label_from_widget ( 1180 GTK_RADIO_BUTTON (radiobuttons[SCHEME_SELECT_DEFAULT]), 1181 _("Select random scheme")); 1182 1183 gtk_box_pack_start_defaults (GTK_BOX (vbox_sel_options), 1184 radiobuttons[SCHEME_SELECT_RANDOM]); 1185 1186 method = schemes_get_selection_method (); 1187 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radiobuttons[method]), TRUE); 1149 //gtk_widget_set_sensitive (button, FALSE); 1188 1150 1189 1151 /* save scheme button */ … … 1205 1167 gtk_container_set_border_width (GTK_CONTAINER (button), 1); 1206 1168 GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); 1207 1208 1209 1210 1211 1212 1213 1214 1215 g_signal_connect ((gpointer) GTK_TOGGLE_BUTTON (radiobuttons[0]), "toggled", 1169 1170 /** general tab option widgets **/ 1171 1172 /* scheme selection radios */ 1173 1174 frame = gtk_frame_new (NULL); 1175 gtk_box_pack_start (GTK_BOX (general_vbox), frame, FALSE, TRUE, 0); 1176 label = gtk_label_new (_("Automatic scheme selection")); 1177 gtk_frame_set_label_widget (GTK_FRAME (frame), label); 1178 gtk_container_set_border_width (GTK_CONTAINER (frame), 8); 1179 1180 1181 sel_options_vbox = gtk_vbox_new (TRUE, 2); 1182 gtk_container_set_border_width (GTK_CONTAINER (sel_options_vbox), 5); 1183 gtk_container_add (GTK_CONTAINER (frame), sel_options_vbox); 1184 1185 radiobuttons[SCHEME_SELECT_DEFAULT] = gtk_radio_button_new_with_label (NULL, 1186 _("Always use the default scheme")); 1187 gtk_box_pack_start_defaults (GTK_BOX (sel_options_vbox), 1188 radiobuttons[SCHEME_SELECT_DEFAULT]); 1189 1190 radiobuttons[SCHEME_SELECT_FILENAME] = 1191 gtk_radio_button_new_with_label_from_widget ( 1192 GTK_RADIO_BUTTON (radiobuttons[SCHEME_SELECT_DEFAULT]), 1193 _("Select scheme by filename")); 1194 1195 gtk_box_pack_start_defaults (GTK_BOX (sel_options_vbox), 1196 radiobuttons[SCHEME_SELECT_FILENAME]); 1197 1198 radiobuttons[SCHEME_SELECT_RANDOM] = 1199 gtk_radio_button_new_with_label_from_widget ( 1200 GTK_RADIO_BUTTON (radiobuttons[SCHEME_SELECT_DEFAULT]), 1201 _("Select random scheme")); 1202 1203 g_signal_connect ((gpointer) GTK_TOGGLE_BUTTON (radiobuttons[0]), "toggled", 1216 1204 G_CALLBACK (schemes_ed_radio_toggled_cb), 1217 1205 GINT_TO_POINTER (SCHEME_SELECT_DEFAULT)); 1218 g_signal_connect ((gpointer) GTK_TOGGLE_BUTTON (radiobuttons[1]), "toggled",1206 g_signal_connect ((gpointer) GTK_TOGGLE_BUTTON (radiobuttons[1]), "toggled", 1219 1207 G_CALLBACK (schemes_ed_radio_toggled_cb), 1220 1208 GINT_TO_POINTER (SCHEME_SELECT_FILENAME)); 1221 g_signal_connect ((gpointer) GTK_TOGGLE_BUTTON (radiobuttons[2]), "toggled",1209 g_signal_connect ((gpointer) GTK_TOGGLE_BUTTON (radiobuttons[2]), "toggled", 1222 1210 G_CALLBACK (schemes_ed_radio_toggled_cb), 1223 1211 GINT_TO_POINTER (SCHEME_SELECT_RANDOM)); 1224 1225 //schemes_refresh_list_store (0); 1226 1227 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); 1228 g_signal_connect ((gpointer) selection, "changed", 1229 G_CALLBACK (schemes_ed_treeview_selection_changed_cb), 1230 treeview); 1231 1232 schemes_refresh_combo (index); 1233 1234 return scheme_editor; 1235 } 1236 1237 GtkWidget* 1212 1213 gtk_box_pack_start_defaults (GTK_BOX (sel_options_vbox), 1214 radiobuttons[SCHEME_SELECT_RANDOM]); 1215 1216 method = schemes_get_selection_method (); 1217 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radiobuttons[method]), TRUE); 1218 1219 selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); 1220 g_signal_connect ((gpointer) selection, "changed", 1221 G_CALLBACK (schemes_ed_treeview_selection_changed_cb), 1222 treeview); 1223 1224 schemes_refresh_combo (index); 1225 1226 return scheme_editor; 1227 } 1228 1229 GtkWidget * 1238 1230 schemes_create_color_picker (void) 1239 1231 { 1240 GtkWidget * vbox1;1241 GtkWidget * hbox1;1242 GtkWidget * label1;1243 GtkWidget * combobox1;1244 GtkWidget * notebook1;1245 GtkWidget * vbox2;1246 GtkWidget * radiobutton1;1247 GSList *radiobutton1_group = NULL;1248 GtkWidget * radiobutton2;1249 GtkWidget * radiobutton3;1250 GtkWidget * radiobutton4;1251 GtkWidget * radiobutton6;1252 GtkWidget * radiobutton5;1253 GtkWidget * radiobutton7;1254 GtkWidget * radiobutton8;1255 GtkWidget * radiobutton9;1256 GtkWidget * radiobutton10;1257 GtkWidget * label8;1258 GtkWidget * empty_notebook_page;1259 GtkWidget * scrollwindow;1260 GtkWidget * viewport;1232 GtkWidget * vbox1; 1233 GtkWidget * hbox1; 1234 GtkWidget * label1; 1235 GtkWidget * combobox1; 1236 GtkWidget * notebook1; 1237 GtkWidget * vbox2; 1238 GtkWidget * radiobutton1; 1239 GSList * radiobutton1_group = NULL; 1240 GtkWidget * radiobutton2; 1241 GtkWidget * radiobutton3; 1242 GtkWidget * radiobutton4; 1243 GtkWidget * radiobutton6; 1244 GtkWidget * radiobutton5; 1245 GtkWidget * radiobutton7; 1246 GtkWidget * radiobutton8; 1247 GtkWidget * radiobutton9; 1248 GtkWidget * radiobutton10; 1249 GtkWidget * label8; 1250 GtkWidget * empty_notebook_page; 1251 GtkWidget * scrollwindow; 1252 GtkWidget * viewport; 1261 1253 1262 1254 scrollwindow = gtk_scrolled_window_new (NULL, NULL);
