[Pkg-e-commits] [SCM] Enlightenment 17 branch, upstream-vcs, updated. 3eef8cab2cb6f039b529ffc89deb21a0dcab03df
devilhorns
devilhorns at alioth.debian.org
Sat May 24 15:07:17 UTC 2008
The following commit has been merged in the upstream-vcs branch:
commit caf9c67fb221a258bbc0af0c72873a4e2a82d32f
Author: devilhorns <devilhorns>
Date: Tue May 6 09:30:10 2008 +0000
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 :)
diff --git a/configure.in b/configure.in
index c4d1e19..a73534a 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 949d73f..08d8825 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 f94bd8f..5a089b9 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 0000000..c3cc7ec
Binary files /dev/null and b/data/themes/images/e17_icon_window_remembers.png differ
diff --git a/src/bin/e_config_dialog.c b/src/bin/e_config_dialog.c
index 4544c0e..8fe619f 100644
--- a/src/bin/e_config_dialog.c
+++ b/src/bin/e_config_dialog.c
@@ -177,7 +177,7 @@ _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type)
e_object_del_attach_func_set(E_OBJECT(cfd->dia), _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 0d9eb17..9cf4f36 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/clock/.cvsignore b/src/modules/conf_window_remembers/.cvsignore
similarity index 100%
copy from src/modules/clock/.cvsignore
copy to src/modules/conf_window_remembers/.cvsignore
diff --git a/src/modules/conf_window_remembers/Makefile.am b/src/modules/conf_window_remembers/Makefile.am
new file mode 100644
index 0000000..7ea4b1f
--- /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 0000000..b5546e3
Binary files /dev/null and b/src/modules/conf_window_remembers/e-module-conf_window_remembers.edj differ
diff --git a/src/modules/conf_window_remembers/e_int_config_remembers.c b/src/modules/conf_window_remembers/e_int_config_remembers.c
new file mode 100644
index 0000000..b1e9c1d
--- /dev/null
+++ b/src/modules/conf_window_remembers/e_int_config_remembers.c
@@ -0,0 +1,160 @@
+#include "e.h"
+
+/* function protos */
+static void *_create_data(E_Config_Dialog *cfd);
+static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
+static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
+static void _fill_remembers(E_Config_Dialog_Data *cfdata);
+static void _cb_delete(void *data, void *data2);
+static void _cb_list_change(void *data, Evas_Object *obj);
+
+struct _E_Config_Dialog_Data
+{
+ Evas_Object *list, *btn;
+};
+
+EAPI E_Config_Dialog *
+e_int_config_remembers(E_Container *con, const char *params __UNUSED__)
+{
+ E_Config_Dialog *cfd;
+ E_Config_Dialog_View *v;
+
+ if (e_config_dialog_find("E", "_config_remembers_dialog")) return NULL;
+
+ v = E_NEW(E_Config_Dialog_View, 1);
+ v->create_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 0000000..3d344d3
--- /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 0000000..9f0c8cb
--- /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 0000000..986fbaa
--- /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 0000000..c3e7692
--- /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=<hilight>E17 Configuration Applet</hilight><br><br>Delete existing window remembers.
+X-Enlightenment-ModuleType=config
--
Enlightenment 17
More information about the Pkg-e-commits
mailing list