[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