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
18#include <unistd.h>18#include <unistd.h>
19#include <time.h>19#include <time.h>
20 20
21enum {21enum view_mode {
22 SINGLE_VIEW, SPLIT_VIEW, FULL_VIEW22 SINGLE_VIEW, SPLIT_VIEW, FULL_VIEW
23};23};
24 24
@@ -116,6 +116,39 @@ static void text_insert_msg(const char *title, const char *message) · 91 unmodified lines
116 NULL);116 NULL);
117}117}
118 118
119static 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}
119 152
120/* Main Windows Callbacks */153/* Main Windows Callbacks */
121 154
@@ -435,35 +468,19 @@ void on_load_clicked(GtkButton * button, gpointer user_data) · 313 unmodified lines
435 468
436void on_single_clicked(GtkButton * button, gpointer user_data)469void on_single_clicked(GtkButton * button, gpointer user_data)
437{470{
438 view_mode = SINGLE_VIEW;471 set_view_mode(SINGLE_VIEW);
439 gtk_widget_hide(tree1_w);
440 current = &rootmenu;
441 display_tree_part();
442}472}
443 473
444 474
445void on_split_clicked(GtkButton * button, gpointer user_data)475void on_split_clicked(GtkButton * button, gpointer user_data)
446{476{
447 gint w;477 set_view_mode(SPLIT_VIEW);
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);
457}478}
458 479
459 480
460void on_full_clicked(GtkButton * button, gpointer user_data)481void on_full_clicked(GtkButton * button, gpointer user_data)
461{482{
462 view_mode = FULL_VIEW;483 set_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);
467}484}
468 485
469 486
@@ -1039,11 +1056,6 @@ static void _display_tree(struct menu *menu, GtkTreeIter *parent) · 569 unmodified lines
1039 || (view_mode == FULL_VIEW)1056 || (view_mode == FULL_VIEW)
1040 || (view_mode == SPLIT_VIEW))*/1057 || (view_mode == SPLIT_VIEW))*/
1041 1058
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
1047 if (((view_mode == SINGLE_VIEW) && (menu->flags & MENU_ROOT))1059 if (((view_mode == SINGLE_VIEW) && (menu->flags & MENU_ROOT))
1048 || (view_mode == FULL_VIEW)1060 || (view_mode == FULL_VIEW)
1049 || (view_mode == SPLIT_VIEW))1061 || (view_mode == SPLIT_VIEW))
@@ -1368,17 +1380,7 @@ int main(int ac, char *av[]) · 318 unmodified lines
1368 1380
1369 conf_read(NULL);1381 conf_read(NULL);
1370 1382
1371 switch (view_mode) {1383 set_view_mode(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 }
1382 1384
1383 gtk_main();1385 gtk_main();
1384 1386