History

kconfig: gconf: refactor view setting code

Factor out common code for setting the view into a new function, set_view_mode().

Masahiro Yamada committed 1 year ago

Commit 8d6b5c11 parent 7ef53391 file · +38 −36Browse files

Showing the changes to scripts (1 of 1 file). Show all

Unified · Split

scripts/kconfig/gconf.c+38−36
@@ -18,7 +18,7 @@ · 17 unmodified lines
1818 #include <unistd.h>
1919 #include <time.h>
2020
21−enum {
21+enum view_mode {
2222 SINGLE_VIEW, SPLIT_VIEW, FULL_VIEW
2323 };
2424
@@ -116,6 +116,39 @@ static void text_insert_msg(const char *title, const char *message) · 91 unmodified lines
116116 NULL);
117117 }
118118
119+static void set_view_mode(enum view_mode mode)
120+{
121+ view_mode = mode;
122+
123+ if (mode == SPLIT_VIEW) { // two panes
124+ gint w;
125+
126+ gtk_widget_show(tree1_w);
127+ gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, NULL);
128+ gtk_paned_set_position(GTK_PANED(hpaned), w / 2);
129+ } else {
130+ gtk_widget_hide(tree1_w);
131+ gtk_paned_set_position(GTK_PANED(hpaned), 0);
132+ }
133+
134+ switch (mode) {
135+ case SINGLE_VIEW:
136+ current = &rootmenu;
137+ display_tree_part();
138+ break;
139+ case SPLIT_VIEW:
140+ gtk_tree_store_clear(tree2);
141+ display_list();
142+ break;
143+ case FULL_VIEW:
144+ gtk_tree_store_clear(tree2);
145+ display_tree(&rootmenu);
146+ break;
147+ }
148+
149+ if (mode != SINGLE_VIEW)
150+ gtk_widget_set_sensitive(back_btn, FALSE);
151+}
119152
120153 /* Main Windows Callbacks */
121154
@@ -435,35 +468,19 @@ void on_load_clicked(GtkButton * button, gpointer user_data) · 313 unmodified lines
435468
436469 void on_single_clicked(GtkButton * button, gpointer user_data)
437470 {
438− view_mode = SINGLE_VIEW;
439− gtk_widget_hide(tree1_w);
440− current = &rootmenu;
441− display_tree_part();
471+ set_view_mode(SINGLE_VIEW);
442472 }
443473
444474
445475 void on_split_clicked(GtkButton * button, gpointer user_data)
446476 {
447− gint w;
448− view_mode = SPLIT_VIEW;
449− gtk_widget_show(tree1_w);
450− gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, NULL);
451− gtk_paned_set_position(GTK_PANED(hpaned), w / 2);
452− gtk_tree_store_clear(tree2);
453− display_list();
454−
455− /* Disable back btn, like in full mode. */
456− gtk_widget_set_sensitive(back_btn, FALSE);
477+ set_view_mode(SPLIT_VIEW);
457478 }
458479
459480
460481 void on_full_clicked(GtkButton * button, gpointer user_data)
461482 {
462− view_mode = FULL_VIEW;
463− gtk_widget_hide(tree1_w);
464− gtk_tree_store_clear(tree2);
465− display_tree(&rootmenu);
466− gtk_widget_set_sensitive(back_btn, FALSE);
483+ set_view_mode(FULL_VIEW);
467484 }
468485
469486
@@ -1039,11 +1056,6 @@ static void _display_tree(struct menu *menu, GtkTreeIter *parent) · 569 unmodified lines
10391056 || (view_mode == FULL_VIEW)
10401057 || (view_mode == SPLIT_VIEW))*/
10411058
1042− /* Change paned position if the view is not in 'split mode' */
1043− if (view_mode == SINGLE_VIEW || view_mode == FULL_VIEW) {
1044− gtk_paned_set_position(GTK_PANED(hpaned), 0);
1045− }
1046−
10471059 if (((view_mode == SINGLE_VIEW) && (menu->flags & MENU_ROOT))
10481060 || (view_mode == FULL_VIEW)
10491061 || (view_mode == SPLIT_VIEW))
@@ -1368,17 +1380,7 @@ int main(int ac, char *av[]) · 318 unmodified lines
13681380
13691381 conf_read(NULL);
13701382
1371− switch (view_mode) {
1372− case SINGLE_VIEW:
1373− display_tree_part();
1374− break;
1375− case SPLIT_VIEW:
1376− display_list();
1377− break;
1378− case FULL_VIEW:
1379− display_tree(&rootmenu);
1380− break;
1381− }
1383+ set_view_mode(view_mode);
13821384
13831385 gtk_main();
13841386