From d9c072ea864bba93468b64e0b3a7b0afc98eb668 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Tue, 6 May 2008 09:30:21 +0000 Subject: [PATCH] Add a very simple config dialog for deleting window remembers. This is very very basic. Someone may want to redo the icon for this...I didn't bring my crayons :) SVN revision: 34477 --- configure.in | 2 + data/themes/default_icons.edc | 21 +++ data/themes/images/Makefile.am | 4 +- .../images/e17_icon_window_remembers.png | Bin 0 -> 3223 bytes src/bin/e_config_dialog.c | 2 +- src/modules/Makefile.am | 3 +- src/modules/conf_window_remembers/.cvsignore | 7 + src/modules/conf_window_remembers/Makefile.am | 31 ++++ .../e-module-conf_window_remembers.edj | Bin 0 -> 9277 bytes .../e_int_config_remembers.c | 160 ++++++++++++++++++ .../e_int_config_remembers.h | 9 + .../conf_window_remembers/e_mod_main.c | 42 +++++ .../conf_window_remembers/e_mod_main.h | 15 ++ .../conf_window_remembers/module.desktop.in | 6 + 14 files changed, 299 insertions(+), 3 deletions(-) create mode 100644 data/themes/images/e17_icon_window_remembers.png create mode 100644 src/modules/conf_window_remembers/.cvsignore create mode 100644 src/modules/conf_window_remembers/Makefile.am create mode 100644 src/modules/conf_window_remembers/e-module-conf_window_remembers.edj create mode 100644 src/modules/conf_window_remembers/e_int_config_remembers.c create mode 100644 src/modules/conf_window_remembers/e_int_config_remembers.h create mode 100644 src/modules/conf_window_remembers/e_mod_main.c create mode 100644 src/modules/conf_window_remembers/e_mod_main.h create mode 100644 src/modules/conf_window_remembers/module.desktop.in diff --git a/configure.in b/configure.in index c4d1e194e..a73534a4a 100644 --- a/configure.in +++ b/configure.in @@ -351,6 +351,8 @@ src/modules/conf_window_display/Makefile src/modules/conf_window_display/module.desktop src/modules/conf_window_focus/Makefile src/modules/conf_window_focus/module.desktop +src/modules/conf_window_remembers/Makefile +src/modules/conf_window_remembers/module.desktop src/modules/conf_window_manipulation/Makefile src/modules/conf_window_manipulation/module.desktop src/modules/conf_menus/Makefile diff --git a/data/themes/default_icons.edc b/data/themes/default_icons.edc index 949d73fa3..08d88255f 100644 --- a/data/themes/default_icons.edc +++ b/data/themes/default_icons.edc @@ -105,6 +105,8 @@ images { image: "e17_icon_startup_applications.png" COMP; image: "e17_icon_power_management.png" COMP; image: "e17_icon_screensaver.png" COMP; + + image: "e17_icon_window_remembers.png" COMP; } group { @@ -2248,6 +2250,25 @@ group { } } } +group { + name: "e/icons/enlightenment/window_remembers"; + max: 64 64; + parts { + part { + name: "icon"; + mouse_events: 0; + description { + state: "default" 0.0; + aspect: 1.0 1.0; + aspect_preference: BOTH; + max: 64 64; + image { + normal: "e17_icon_window_remembers.png"; + } + } + } + } +} diff --git a/data/themes/images/Makefile.am b/data/themes/images/Makefile.am index f94bd8f83..5a089b9e3 100644 --- a/data/themes/images/Makefile.am +++ b/data/themes/images/Makefile.am @@ -557,4 +557,6 @@ e17_tl_corner_logo.png \ e17_tl_corner_logo_shadow.png \ e17_whitev.png \ e17_wiz_b1.png \ -e17_wiz_b2.png +e17_wiz_b2.png \ +e17_icon_window_remembers.png + diff --git a/data/themes/images/e17_icon_window_remembers.png b/data/themes/images/e17_icon_window_remembers.png new file mode 100644 index 0000000000000000000000000000000000000000..a1f2d2bbf8aeb32cdec40f881585017b01a4b23c GIT binary patch literal 3223 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, _e_config_dialog_cb_dialog_del); e_dialog_title_set(cfd->dia, cfd->title); if (!cfd->cfdata) cfd->cfdata = cfd->view->create_cfdata(cfd); - + if (type == E_CONFIG_DIALOG_CFDATA_TYPE_BASIC) { if (cfd->view->advanced.create_widgets) diff --git a/src/modules/Makefile.am b/src/modules/Makefile.am index 0d9eb175c..9cf4f368c 100644 --- a/src/modules/Makefile.am +++ b/src/modules/Makefile.am @@ -49,7 +49,8 @@ conf_winlist \ conf_exebuf \ conf_paths \ conf_mime \ -conf_interaction +conf_interaction \ +conf_window_remembers if HAVE_TEMPERATURE SUBDIRS += temperature diff --git a/src/modules/conf_window_remembers/.cvsignore b/src/modules/conf_window_remembers/.cvsignore new file mode 100644 index 000000000..06d064a84 --- /dev/null +++ b/src/modules/conf_window_remembers/.cvsignore @@ -0,0 +1,7 @@ +.deps +.libs +Makefile +Makefile.in +*.lo +module.la +module.desktop diff --git a/src/modules/conf_window_remembers/Makefile.am b/src/modules/conf_window_remembers/Makefile.am new file mode 100644 index 000000000..7ea4b1fc3 --- /dev/null +++ b/src/modules/conf_window_remembers/Makefile.am @@ -0,0 +1,31 @@ +MAINTAINERCLEANFILES = Makefile.in +MODULE = conf_window_remembers + +# data files for the module +filesdir = $(libdir)/enlightenment/modules/$(MODULE) +files_DATA = \ +e-module-$(MODULE).edj module.desktop + +EXTRA_DIST = $(files_DATA) + +# the module .so file +INCLUDES = -I. \ + -I$(top_srcdir) \ + -I$(top_srcdir)/src/modules/$(MODULE) \ + -I$(top_srcdir)/src/bin \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/modules \ + @e_cflags@ +pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH) +pkg_LTLIBRARIES = module.la +module_la_SOURCES = e_mod_main.c \ + e_mod_main.h \ + e_int_config_remembers.c \ + e_int_config_remembers.h + +module_la_LIBADD = @e_libs@ @dlopen_libs@ +module_la_LDFLAGS = -module -avoid-version +module_la_DEPENDENCIES = $(top_builddir)/config.h + +uninstall: + rm -rf $(DESTDIR)$(libdir)/enlightenment/modules/$(MODULE) diff --git a/src/modules/conf_window_remembers/e-module-conf_window_remembers.edj b/src/modules/conf_window_remembers/e-module-conf_window_remembers.edj new file mode 100644 index 0000000000000000000000000000000000000000..401e6df44b89c200858b336fc8946f2f7df8f5c9 GIT binary patch literal 9277 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 zOr01poPJSWF0create_cfdata = _create_data; + v->free_cfdata = _free_data; + v->basic.create_widgets = _basic_create; + + cfd = e_config_dialog_new(con, _("Window Remembers"), "E", + "_config_remembers_dialog", + "enlightenment/window_remembers", 0, v, NULL); + e_dialog_resizable_set(cfd->dia, 1); + return cfd; +} + +/* private functions */ +static void * +_create_data(E_Config_Dialog *cfd) +{ + E_Config_Dialog_Data *cfdata; + + cfdata = E_NEW(E_Config_Dialog_Data, 1); + return cfdata; +} + +static void +_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) +{ + E_FREE(cfdata); +} + +static Evas_Object * +_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) +{ + Evas_Object *o, *of, *ow; + + o = e_widget_list_add(evas, 0, 0); + of = e_widget_frametable_add(evas, _("Window Remembers"), 0); + + ow = e_widget_button_add(evas, _("Delete Remember(s)"), NULL, _cb_delete, + cfdata, NULL); + cfdata->btn = ow; + + ow = e_widget_ilist_add(evas, 24, 24, NULL); + cfdata->list = ow; + e_widget_ilist_multi_select_set(ow, 1); + e_widget_on_change_hook_set(ow, _cb_list_change, cfdata); + _fill_remembers(cfdata); + + e_widget_frametable_object_append(of, cfdata->list, 0, 0, 1, 1, 1, 1, 1, 1); + e_widget_frametable_object_append(of, cfdata->btn, 0, 1, 1, 1, 1, 1, 1, 0); + + e_widget_list_object_append(o, of, 1, 1, 0.5); + + e_widget_disabled_set(cfdata->btn, 1); + return o; +} + +static void +_fill_remembers(E_Config_Dialog_Data *cfdata) +{ + Evas *evas; + Evas_List *l = NULL; + int w = 0; + + evas = evas_object_evas_get(cfdata->list); + evas_event_freeze(evas); + edje_freeze(); + e_widget_ilist_freeze(cfdata->list); + e_widget_ilist_clear(cfdata->list); + + for (l = e_config->remembers; l; l = l->next) + { + E_Remember *rem = NULL; + + if (!(rem = l->data)) continue; + + /* Filter out E's own remember */ + if ((rem->name) && (!strcmp(rem->name, "E"))) continue; + + if (rem->name) + e_widget_ilist_append(cfdata->list, NULL, rem->name, NULL, rem, NULL); + else if (rem->class) + e_widget_ilist_append(cfdata->list, NULL, rem->class, NULL, rem, NULL); + else if (rem->title) + e_widget_ilist_append(cfdata->list, NULL, rem->title, NULL, rem, NULL); + else if (rem->role) + e_widget_ilist_append(cfdata->list, NULL, rem->role, NULL, rem, NULL); + } + + e_widget_ilist_go(cfdata->list); + e_widget_min_size_get(cfdata->list, &w, NULL); + e_widget_min_size_set(cfdata->list, w, 200); + e_widget_ilist_thaw(cfdata->list); + edje_thaw(); + evas_event_thaw(evas); + + e_widget_disabled_set(cfdata->btn, 1); +} + +static void +_cb_delete(void *data, void *data2) +{ + E_Config_Dialog_Data *cfdata; + Evas_List *l = NULL; + int i = 0, changed = 0; + + if (!(cfdata = data)) return; + for (i = 0, l = e_widget_ilist_items_get(cfdata->list); l; l = l->next, i++) + { + E_Ilist_Item *item = NULL; + E_Remember *rem = NULL; + + item = l->data; + if ((!item) || (!item->selected)) continue; + if (!(rem = e_widget_ilist_nth_data_get(cfdata->list, i))) continue; + e_remember_unuse(rem); + e_remember_del(rem); + changed = 1; + } + + if (changed) e_config_save_queue(); + if (1) evas_list_free(l); + + _fill_remembers(cfdata); +} + +static void +_cb_list_change(void *data, Evas_Object *obj) +{ + E_Config_Dialog_Data *cfdata; + + if (!(cfdata = data)) return; + if (e_widget_ilist_selected_count_get(cfdata->list) < 1) + { + e_widget_disabled_set(cfdata->btn, 1); + return; + } + e_widget_disabled_set(cfdata->btn, 0); +} diff --git a/src/modules/conf_window_remembers/e_int_config_remembers.h b/src/modules/conf_window_remembers/e_int_config_remembers.h new file mode 100644 index 000000000..3d344d3fe --- /dev/null +++ b/src/modules/conf_window_remembers/e_int_config_remembers.h @@ -0,0 +1,9 @@ +#ifdef E_TYPEDEFS +#else +#ifndef E_INT_CONFIG_REMEMBERS_H +#define E_INT_CONFIG_REMEMBERS_H + +EAPI E_Config_Dialog *e_int_config_remembers(E_Container *con, const char *params __UNUSED__); + +#endif +#endif diff --git a/src/modules/conf_window_remembers/e_mod_main.c b/src/modules/conf_window_remembers/e_mod_main.c new file mode 100644 index 000000000..9f0c8cb25 --- /dev/null +++ b/src/modules/conf_window_remembers/e_mod_main.c @@ -0,0 +1,42 @@ +#include "e.h" +#include "e_mod_main.h" + +static E_Module *conf_module = NULL; + +EAPI E_Module_Api e_modapi = +{ + E_MODULE_API_VERSION, "Configuration - Window Remembers" +}; + +EAPI void * +e_modapi_init(E_Module *m) +{ + e_configure_registry_category_add("windows", 50, _("Windows"), NULL, + "enlightenment/windows"); + e_configure_registry_item_add("windows/window_remembers", 20, + _("Window Remembers"), NULL, + "enlightenment/window_remembers", + e_int_config_remembers); + conf_module = m; + e_module_delayed_set(m, 1); + return m; +} + +EAPI int +e_modapi_shutdown(E_Module *m) +{ + E_Config_Dialog *cfd; + + while ((cfd = e_config_dialog_get("E", "_config_remember_dialog"))) + e_object_del(E_OBJECT(cfd)); + e_configure_registry_item_del("windows/window_remembers"); + e_configure_registry_category_del("windows"); + conf_module = NULL; + return 1; +} + +EAPI int +e_modapi_save(E_Module *m) +{ + return 1; +} diff --git a/src/modules/conf_window_remembers/e_mod_main.h b/src/modules/conf_window_remembers/e_mod_main.h new file mode 100644 index 000000000..986fbaa46 --- /dev/null +++ b/src/modules/conf_window_remembers/e_mod_main.h @@ -0,0 +1,15 @@ +#ifndef E_MOD_MAIN_H +#define E_MOD_MAIN_H + +#define E_TYPEDEFS 1 +#include "e_int_config_remembers.h" +#undef E_TYPEDEFS +#include "e_int_config_remembers.h" + +EAPI extern E_Module_Api e_modapi; + +EAPI void *e_modapi_init(E_Module *m); +EAPI int e_modapi_shutdown(E_Module *m); +EAPI int e_modapi_save(E_Module *m); + +#endif diff --git a/src/modules/conf_window_remembers/module.desktop.in b/src/modules/conf_window_remembers/module.desktop.in new file mode 100644 index 000000000..c3e7692ab --- /dev/null +++ b/src/modules/conf_window_remembers/module.desktop.in @@ -0,0 +1,6 @@ +[Desktop Entry] +Type=Link +Name=Configuration - Window Remembers +Icon=e-module-conf_window_remembers +Comment=E17 Configuration Applet

Delete existing window remembers. +X-Enlightenment-ModuleType=config