[beryl-commits] r1527 - branches/beryl-settings-using-groups/src
quinn at server.beryl-project.org
quinn at server.beryl-project.org
Mon Dec 4 05:41:01 CET 2006
Author: quinn
Date: 2006-12-04 05:40:04 +0100 (Mon, 04 Dec 2006)
New Revision: 1527
Modified:
branches/beryl-settings-using-groups/src/main.c
Log:
beryl-setting-branch:
-initial support for per-group/per-subgroup
Modified: branches/beryl-settings-using-groups/src/main.c
===================================================================
--- branches/beryl-settings-using-groups/src/main.c 2006-12-04 03:56:39 UTC (rev 1526)
+++ branches/beryl-settings-using-groups/src/main.c 2006-12-04 04:40:04 UTC (rev 1527)
@@ -1265,7 +1265,7 @@
GtkScrolledWindow * win;
GtkWidget * vbox;
SETOptionWidgets * widgets = o->private_ptr;
- if (!o->parent->name && strcmp(o->name,"a_active_plugins")==0)
+ if (!o->parent->name && strcmp(o->name,"active_plugins")==0)
{
return;
}
@@ -1369,8 +1369,55 @@
GSList * settings = beryl_settings_plugin_get_settings(beryl_settings_context_find_plugin(context,group));
g_slist_foreach(settings,(GFunc)do_if_action_group,&z);
}
-void do_page(gchar * group,GFunc func,gchar * label, GtkWidget * notebook)
+void do_any(GSList * s, SETGroupWidget * z)
{
+ g_slist_foreach(s,do_if_toggle_group,z);
+ g_slist_foreach(s,do_if_bell_group,z);
+ g_slist_foreach(s,do_if_string_choice_group,z);
+ g_slist_foreach(s,do_if_option_list_group,z);
+ g_slist_foreach(s,do_if_numeric_group,z);
+ g_slist_foreach(s,do_if_command_string_group,z);
+ g_slist_foreach(s,do_if_simple_string_group,z);
+ g_slist_foreach(s,do_if_file_string_group,z);
+ g_slist_foreach(s,do_if_color_group,z);
+ g_slist_foreach(s,do_if_key_group,z);
+ g_slist_foreach(s,do_if_button_group,z);
+ g_slist_foreach(s,do_if_edge_group,z);
+ g_slist_foreach(s,do_if_non_file_string_list_group,z);
+ /*do_page(group,(GFunc)do_if_choice_option_group,_("Choices"),notebook);
+ do_page(group,(GFunc)do_if_numeric_group,_("Numeric Values"),notebook);
+ do_page(group,(GFunc)do_if_command_string_group,_("Commands"),notebook);
+ do_page(group,(GFunc)do_if_simple_string_group,_("Strings"),notebook);
+ do_page(group,(GFunc)do_if_file_string_group,_("Filenames"),notebook);
+ do_page(group,(GFunc)do_if_color_group,_("Colors"),notebook);
+ do_page(group,(GFunc)do_if_key_group,_("Keyboard"),notebook);
+ do_page(group,(GFunc)do_if_button_group,_("Mouse"),notebook);
+ do_page(group,(GFunc)do_if_edge_group,_("Screen Edges & Corners"),notebook);
+ do_page(group,(GFunc)do_if_non_file_string_list_group,_("String Lists"),notebook);*/
+}
+void do_subgroup(BerylSettingsSubGroup * group, SETGroupWidget * z)
+{
+ GtkWidget * n, * m;
+ n = z->widget;
+ if (strcmp(beryl_settings_subgroup_get_name(group),""))
+ {
+ m = gtk_frame_new(beryl_settings_subgroup_get_name(group));
+ gtk_box_pack_start(GTK_BOX(n),m,FALSE,FALSE,0);
+ z->widget = gtk_vbox_new(FALSE,2);
+ }
+ do_any(beryl_settings_subgroup_get_settings(group),z);
+ //g_slist_foreach(beryl_settings_subgroup_get_settings(group),do_any,z);
+ z->widget=n;
+}
+struct _NoteGroup
+{
+ gchar * group;
+ GtkWidget * notebook;
+};
+void do_page(BerylSettingsGroup * g, struct _NoteGroup *ng)
+{
+ gchar * group = ng->group;
+ GtkWidget * notebook=ng->notebook;
SETGroupWidget z;
GtkWidget * scrol = gtk_scrolled_window_new(NULL,NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrol)
@@ -1381,28 +1428,29 @@
z.widget=vbox;
z.hasany=FALSE;
if (strcmp(group,"_")==0) group=NULL;
- GSList * settings = beryl_settings_plugin_get_settings(beryl_settings_context_find_plugin(context,group));
- g_slist_foreach(settings,func,&z);
+ //GSList * settings = beryl_settings_plugin_get_settings(beryl_settings_context_find_plugin(context,group));
+ GSList * subgroups = beryl_settings_group_get_subgroups(g);
+ g_slist_foreach(subgroups,do_subgroup,&z);
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrol),vbox);
if (z.hasany)
gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
- scrol,gtk_label_new(label));
+ scrol,gtk_label_new(beryl_settings_group_get_name(g)));
}
void do_option_page(gchar * group, GtkWidget * notebook)
{
//load_options_for(group);
//okay now we can lay out a notebook
+ struct _NoteGroup ng;
+ ng.group=group;
+ ng.notebook=notebook;
gtk_notebook_set_scrollable(GTK_NOTEBOOK(notebook),TRUE);
- do_page(group,(GFunc)do_if_choice_option_group,_("Choices"),notebook);
- do_page(group,(GFunc)do_if_numeric_group,_("Numeric Values"),notebook);
- do_page(group,(GFunc)do_if_command_string_group,_("Commands"),notebook);
- do_page(group,(GFunc)do_if_simple_string_group,_("Strings"),notebook);
- do_page(group,(GFunc)do_if_file_string_group,_("Filenames"),notebook);
- do_page(group,(GFunc)do_if_color_group,_("Colors"),notebook);
- do_page(group,(GFunc)do_if_key_group,_("Keyboard"),notebook);
- do_page(group,(GFunc)do_if_button_group,_("Mouse"),notebook);
- do_page(group,(GFunc)do_if_edge_group,_("Screen Edges & Corners"),notebook);
- do_page(group,(GFunc)do_if_non_file_string_list_group,_("String Lists"),notebook);
+ BerylSettingsPlugin * p;
+ if (!strcmp(group,"_"))
+ p=beryl_settings_context_find_plugin(context,NULL);
+ else
+ p=beryl_settings_context_find_plugin(context,group);
+ g_slist_foreach(beryl_settings_plugin_get_groups(p),
+ do_page,&ng);
setup_actions(group);
//gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
// do_page(group,(GFunc)do_if_undefined_group),gtk_label_new("Unhandled"));
More information about the commits
mailing list