[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250624150645.1107002-26-masahiroy@kernel.org>
Date: Wed, 25 Jun 2025 00:05:13 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: linux-kbuild@...r.kernel.org
Cc: Masahiro Yamada <masahiroy@...nel.org>,
linux-kernel@...r.kernel.org
Subject: [PATCH 25/66] kconfig: gconf: refactor view setting code
Factor out common code for setting the view into a new function,
set_view_mode().
Signed-off-by: Masahiro Yamada <masahiroy@...nel.org>
---
scripts/kconfig/gconf.c | 74 +++++++++++++++++++++--------------------
1 file changed, 38 insertions(+), 36 deletions(-)
diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
index 9d06c050b270..b67ebff3f288 100644
--- a/scripts/kconfig/gconf.c
+++ b/scripts/kconfig/gconf.c
@@ -18,7 +18,7 @@
#include <unistd.h>
#include <time.h>
-enum {
+enum view_mode {
SINGLE_VIEW, SPLIT_VIEW, FULL_VIEW
};
@@ -70,6 +70,39 @@ static void conf_changed(bool dirty)
/* Utility Functions */
+static void set_view_mode(enum view_mode mode)
+{
+ view_mode = mode;
+
+ if (mode == SPLIT_VIEW) { // two panes
+ gint w;
+
+ gtk_widget_show(tree1_w);
+ gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, NULL);
+ gtk_paned_set_position(GTK_PANED(hpaned), w / 2);
+ } else {
+ gtk_widget_hide(tree1_w);
+ gtk_paned_set_position(GTK_PANED(hpaned), 0);
+ }
+
+ switch (mode) {
+ case SINGLE_VIEW:
+ current = &rootmenu;
+ display_tree_part();
+ break;
+ case SPLIT_VIEW:
+ gtk_tree_store_clear(tree2);
+ display_list();
+ break;
+ case FULL_VIEW:
+ gtk_tree_store_clear(tree2);
+ display_tree(&rootmenu);
+ break;
+ }
+
+ if (mode != SINGLE_VIEW)
+ gtk_widget_set_sensitive(back_btn, FALSE);
+}
static void text_insert_help(struct menu *menu)
{
@@ -435,35 +468,19 @@ void on_load_clicked(GtkButton * button, gpointer user_data)
void on_single_clicked(GtkButton * button, gpointer user_data)
{
- view_mode = SINGLE_VIEW;
- gtk_widget_hide(tree1_w);
- current = &rootmenu;
- display_tree_part();
+ set_view_mode(SINGLE_VIEW);
}
void on_split_clicked(GtkButton * button, gpointer user_data)
{
- gint w;
- view_mode = SPLIT_VIEW;
- gtk_widget_show(tree1_w);
- gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, NULL);
- gtk_paned_set_position(GTK_PANED(hpaned), w / 2);
- gtk_tree_store_clear(tree2);
- display_list();
-
- /* Disable back btn, like in full mode. */
- gtk_widget_set_sensitive(back_btn, FALSE);
+ set_view_mode(SPLIT_VIEW);
}
void on_full_clicked(GtkButton * button, gpointer user_data)
{
- view_mode = FULL_VIEW;
- gtk_widget_hide(tree1_w);
- gtk_tree_store_clear(tree2);
- display_tree(&rootmenu);
- gtk_widget_set_sensitive(back_btn, FALSE);
+ set_view_mode(FULL_VIEW);
}
@@ -1039,11 +1056,6 @@ static void _display_tree(struct menu *menu, GtkTreeIter *parent)
|| (view_mode == FULL_VIEW)
|| (view_mode == SPLIT_VIEW))*/
- /* Change paned position if the view is not in 'split mode' */
- if (view_mode == SINGLE_VIEW || view_mode == FULL_VIEW) {
- gtk_paned_set_position(GTK_PANED(hpaned), 0);
- }
-
if (((view_mode == SINGLE_VIEW) && (menu->flags & MENU_ROOT))
|| (view_mode == FULL_VIEW)
|| (view_mode == SPLIT_VIEW))
@@ -1368,17 +1380,7 @@ int main(int ac, char *av[])
conf_read(NULL);
- switch (view_mode) {
- case SINGLE_VIEW:
- display_tree_part();
- break;
- case SPLIT_VIEW:
- display_list();
- break;
- case FULL_VIEW:
- display_tree(&rootmenu);
- break;
- }
+ set_view_mode(view_mode);
gtk_main();
--
2.43.0
Powered by blists - more mailing lists