Enlightenment CVS committal Author : onefang Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_int_config_apps.c Log Message: Default the available apps to a categorised fm based on system menus, but allow user to choose from the original big, sorted list. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_apps.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- e_int_config_apps.c 12 Sep 2006 08:02:59 -0000 1.22 +++ e_int_config_apps.c 12 Sep 2006 10:02:49 -0000 1.23 @@ -27,12 +27,15 @@ { E_Config_Dialog *cfd; E_Fm2_Icon_Info *info; + char path_all[4096], path_everything[4096], path[4096], *homedir; int state; + int sorted; struct { Evas_Object *o_fm_all; Evas_Object *o_fm; Evas_Object *o_frame; Evas_Object *o_up_button; + Evas_Object *o_up_all_button; Evas_Object *o_add_button; Evas_Object *o_create_button; Evas_Object *o_delete_left_button; @@ -93,12 +96,12 @@ static void _fill_data(E_Config_Dialog_Data *cfdata) { - char path_all[4096], *homedir; - - homedir = e_user_homedir_get(); - if (!homedir) return; - - snprintf(path_all, sizeof(path_all), "%s/.e/e/applications/all", homedir); + cfdata->homedir = e_user_homedir_get(); + if (!cfdata->homedir) return; + + snprintf(cfdata->path_everything, sizeof(cfdata->path_everything), "%s/.e/e/applications/all", cfdata->homedir); + snprintf(cfdata->path, sizeof(cfdata->path), "%s/.e/e/applications", cfdata->homedir); + snprintf(cfdata->path_all, sizeof(cfdata->path_all), "%s/.e/e/applications/menu/all", cfdata->homedir); return; } @@ -133,6 +136,18 @@ } static void +_cb_button_up_all(void *data1, void *data2) +{ + E_Config_Dialog_Data *cfdata; + + cfdata = data1; + if (cfdata->gui.o_fm_all) + e_fm2_parent_go(cfdata->gui.o_fm_all); + if (cfdata->gui.o_frame) + e_widget_scrollframe_child_pos_set(cfdata->gui.o_frame, 0, 0); +} + +static void _cb_files_dir_changed(void *data, Evas_Object *obj, void *event_info) { E_Config_Dialog_Data *cfdata; @@ -158,6 +173,27 @@ } static void +_cb_files_dir_changed_all(void *data, Evas_Object *obj, void *event_info) +{ + E_Config_Dialog_Data *cfdata; + + cfdata = data; + if (!cfdata->gui.o_fm_all) return; + if (!e_fm2_has_parent_get(cfdata->gui.o_fm_all)) + { + if (cfdata->gui.o_up_all_button) + e_widget_disabled_set(cfdata->gui.o_up_all_button, 1); + } + else + { + if (cfdata->gui.o_up_all_button) + e_widget_disabled_set(cfdata->gui.o_up_all_button, 0); + } + if (cfdata->gui.o_frame) + e_widget_scrollframe_child_pos_set(cfdata->gui.o_frame, 0, 0); +} + +static void _cb_files_sel_changed(void *data, Evas_Object *obj, void *event_info) { E_Config_Dialog_Data *cfdata; @@ -321,6 +357,19 @@ } static void +_cb_files_sorted_changed(void *data, Evas_Object *obj, void *event_info) +{ + E_Config_Dialog_Data *cfdata; + + cfdata = data; + if (!cfdata->gui.o_fm_all) return; + if (cfdata->sorted) + e_fm2_path_set(cfdata->gui.o_fm_all, cfdata->path_everything, "/"); + else + e_fm2_path_set(cfdata->gui.o_fm_all, cfdata->path_all, "/"); +} + +static void _cb_button_add(void *data1, void *data2) { E_Config_Dialog_Data *cfdata; @@ -428,12 +477,8 @@ Evas_Object *o, *of, *ob, *ot, *ilist, *mt; Evas_List *l; E_Fm2_Config fmc_all, fmc; - char path_all[4096], path[4096], *homedir; int i; - homedir = e_user_homedir_get(); - if (!homedir) return NULL; - if (cfdata->cfd->data) once = cfdata->cfd->data; @@ -442,9 +487,9 @@ of = e_widget_framelist_add(evas, _("Available Applications"), 0); - mt = e_widget_button_add(evas, _("Create a new application"), "enlightenment/e", - _cb_button_create, cfdata, NULL); - cfdata->gui.o_create_button = mt; + mt = e_widget_button_add(evas, _("Go up a Directory"), "widget/up_dir", + _cb_button_up_all, cfdata, NULL); + cfdata->gui.o_up_all_button = mt; e_widget_framelist_object_append(of, mt); mt = e_fm2_add(evas); @@ -455,7 +500,7 @@ fmc_all.view.selector = 1; fmc_all.view.single_click = 0; fmc_all.view.no_subdir_jump = 0; - fmc_all.view.extra_file_source = NULL; + fmc_all.view.extra_file_source = cfdata->path_everything; fmc_all.icon.list.w = 24; fmc_all.icon.list.h = 24; fmc_all.icon.fixed.w = 1; @@ -468,6 +513,8 @@ fmc_all.selection.single = 1; fmc_all.selection.windows_modifiers = 0; e_fm2_config_set(mt, &fmc_all); + evas_object_smart_callback_add(mt, "dir_changed", + _cb_files_dir_changed_all, cfdata); evas_object_smart_callback_add(mt, "selected", _cb_files_selected, cfdata); evas_object_smart_callback_add(mt, "selection_change", @@ -475,8 +522,7 @@ evas_object_smart_callback_add(mt, "changed", _cb_files_files_changed, cfdata); e_fm2_icon_menu_start_extend_callback_set(mt, _cb_files_add_edited, cfdata); - snprintf(path_all, sizeof(path_all), "%s/.e/e/applications/all", homedir); - e_fm2_path_set(cfdata->gui.o_fm_all, path_all, "/"); + e_fm2_path_set(cfdata->gui.o_fm_all, cfdata->path_all, "/"); ob = e_widget_scrollframe_pan_add(evas, mt, e_fm2_pan_set, @@ -494,6 +540,11 @@ 99999, 99999 /* max */ ); + mt = e_widget_check_add(evas, _("Sort applications"), &(cfdata->sorted)); + evas_object_smart_callback_add(mt, "changed", + _cb_files_sorted_changed, cfdata); + e_widget_framelist_object_append(of, mt); + if (once) mt = e_widget_button_add(evas, _(once->label), "enlightenment/e", _cb_button_add, cfdata, NULL); @@ -504,6 +555,11 @@ e_widget_framelist_object_append(of, mt); e_widget_disabled_set(mt, 1); + mt = e_widget_button_add(evas, _("Create a new application"), "enlightenment/e", + _cb_button_create, cfdata, NULL); + cfdata->gui.o_create_button = mt; + e_widget_framelist_object_append(of, mt); + if (!once) { mt = e_widget_button_add(evas, _("Regenerate \"Applications\" Menu"), "enlightenment/e", @@ -531,7 +587,7 @@ fmc.view.selector = 1; fmc.view.single_click = 0; fmc.view.no_subdir_jump = 0; - fmc.view.extra_file_source = path_all; + fmc.view.extra_file_source = cfdata->path_everything; fmc.icon.list.w = 24; fmc.icon.list.h = 24; fmc.icon.fixed.w = 1; @@ -550,8 +606,7 @@ _cb_files_sel_changed, cfdata); evas_object_smart_callback_add(mt, "changed", _cb_files_changed, cfdata); - snprintf(path, sizeof(path), "%s/.e/e/applications", homedir); - e_fm2_path_set(cfdata->gui.o_fm, path, "/"); + e_fm2_path_set(cfdata->gui.o_fm, cfdata->path, "/"); ob = e_widget_scrollframe_pan_add(evas, mt, e_fm2_pan_set, ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs