diff --git a/src/bin/e_config_dialog.c b/src/bin/e_config_dialog.c index 35deab0ae..3332d114c 100644 --- a/src/bin/e_config_dialog.c +++ b/src/bin/e_config_dialog.c @@ -163,7 +163,7 @@ static void _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type) { E_Dialog *pdia; - Evas_Object *o, *ob; + Evas_Object *o, *ob, *sf; Evas_Coord mw = 0, mh = 0; char buf[256]; @@ -186,14 +186,28 @@ _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type) { o = e_widget_list_add(e_win_evas_get(cfd->dia->win), 0, 0); ob = cfd->view->basic.create_widgets(cfd, e_win_evas_get(cfd->dia->win), cfd->cfdata); - e_widget_list_object_append(o, ob, 1, 1, 0.0); + if (cfd->view->scroll) + { + e_widget_min_size_resize(ob); + sf = e_widget_scrollframe_simple_add(e_win_evas_get(cfd->dia->win), ob); + e_widget_list_object_append(o, sf, 1, 1, 0.0); + } + else + e_widget_list_object_append(o, ob, 1, 1, 0.0); ob = e_widget_button_add(e_win_evas_get(cfd->dia->win), _("Advanced"), "widget/new_dialog", _e_config_dialog_cb_advanced, cfd, NULL); e_widget_list_object_append(o, ob, 0, 0, 1.0); } else - o = cfd->view->basic.create_widgets(cfd, e_win_evas_get(cfd->dia->win), cfd->cfdata); + { + o = cfd->view->basic.create_widgets(cfd, e_win_evas_get(cfd->dia->win), cfd->cfdata); + if (cfd->view->scroll) + { + e_widget_min_size_resize(o); + o = e_widget_scrollframe_simple_add(e_win_evas_get(cfd->dia->win), o); + } + } } else { @@ -201,14 +215,28 @@ _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type) { o = e_widget_list_add(e_win_evas_get(cfd->dia->win), 0, 0); ob = cfd->view->advanced.create_widgets(cfd, e_win_evas_get(cfd->dia->win), cfd->cfdata); - e_widget_list_object_append(o, ob, 1, 1, 0.0); + if (cfd->view->scroll) + { + e_widget_min_size_resize(ob); + sf = e_widget_scrollframe_simple_add(e_win_evas_get(cfd->dia->win), ob); + e_widget_list_object_append(o, sf, 1, 1, 0.0); + } + else + e_widget_list_object_append(o, ob, 1, 1, 0.0); ob = e_widget_button_add(e_win_evas_get(cfd->dia->win), _("Basic"), "widget/new_dialog", _e_config_dialog_cb_basic, cfd, NULL); e_widget_list_object_append(o, ob, 0, 0, 1.0); } else - o = cfd->view->advanced.create_widgets(cfd, e_win_evas_get(cfd->dia->win), cfd->cfdata); + { + o = cfd->view->advanced.create_widgets(cfd, e_win_evas_get(cfd->dia->win), cfd->cfdata); + if (cfd->view->scroll) + { + e_widget_min_size_resize(o); + o = e_widget_scrollframe_simple_add(e_win_evas_get(cfd->dia->win), o); + } + } } e_widget_min_size_get(o, &mw, &mh); diff --git a/src/bin/e_config_dialog.h b/src/bin/e_config_dialog.h index 343b41d44..645bb4d8c 100644 --- a/src/bin/e_config_dialog.h +++ b/src/bin/e_config_dialog.h @@ -25,6 +25,7 @@ struct _E_Config_Dialog_View unsigned char override_auto_apply : 1; unsigned char basic_only : 1; unsigned char normal_win : 1; + unsigned char scroll : 1; void *(*create_cfdata) (E_Config_Dialog *cfd); void (*free_cfdata) (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);