Add config dialogs for Animation settings & Window settings.
Free the E_Config_DD when exiting.
SVN revision: 44024
e_kbd.h \
e_kbd.c \
e_mod_config.h \
- e_mod_config.c
+ e_mod_config.c \
+ e_mod_animation.h \
+ e_mod_animation.c \
+ e_mod_windows.h \
+ e_mod_windows.c
module_la_LIBADD = @e_libs@ @dlopen_libs@
module_la_LDFLAGS = -module -avoid-version
--- /dev/null
+#include "e.h"
+#include "e_mod_animation.h"
+#include "e_mod_config.h"
+
+/* local function prototypes */
+static void *_il_config_animation_create(E_Config_Dialog *cfd);
+static void _il_config_animation_free(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
+static Evas_Object *_il_config_animation_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
+static void _il_config_animation_change(void *data, Evas_Object *obj, void *event);
+static int _il_config_animation_change_timeout(void *data);
+
+/* local variables */
+Ecore_Timer *_anim_change_timer = NULL;
+
+/* public functions */
+EAPI void
+il_config_animation_show(E_Container *con, const char *params)
+{
+ E_Config_Dialog *cfd;
+ E_Config_Dialog_View *v;
+
+ if (e_config_dialog_find("E", "_config_illume_animation_settings")) return;
+ v = E_NEW(E_Config_Dialog_View, 1);
+ v->create_cfdata = _il_config_animation_create;
+ v->free_cfdata = _il_config_animation_free;
+ v->basic.create_widgets = _il_config_animation_ui;
+ v->basic_only = 1;
+ v->normal_win = 1;
+ v->scroll = 1;
+ cfd = e_config_dialog_new(con, _("Animation Settings"), "E",
+ "_config_illume_animation_settings",
+ "enlightenment/animation_settings", 0, v, NULL);
+ e_dialog_resizable_set(cfd->dia, 1);
+}
+
+/* local function prototypes */
+static void *
+_il_config_animation_create(E_Config_Dialog *cfd)
+{
+ return NULL;
+}
+
+static void
+_il_config_animation_free(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+{
+
+}
+
+static Evas_Object *
+_il_config_animation_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
+{
+ Evas_Object *list, *of, *ow;
+ E_Radio_Group *rg;
+
+ list = e_widget_list_add(evas, 0, 0);
+
+ of = e_widget_framelist_add(evas, _("Keyboard"), 0);
+ rg = e_widget_radio_group_new(&(il_cfg->sliding.kbd.duration));
+ ow = e_widget_radio_add(evas, _("Slow"), 2000, rg);
+ e_widget_framelist_object_append(of, ow);
+ evas_object_smart_callback_add(ow, "changed",
+ _il_config_animation_change, NULL);
+ ow = e_widget_radio_add(evas, _("Medium"), 1000, rg);
+ e_widget_framelist_object_append(of, ow);
+ evas_object_smart_callback_add(ow, "changed",
+ _il_config_animation_change, NULL);
+ ow = e_widget_radio_add(evas, _("Fast"), 500, rg);
+ e_widget_framelist_object_append(of, ow);
+ evas_object_smart_callback_add(ow, "changed",
+ _il_config_animation_change, NULL);
+ ow = e_widget_radio_add(evas, _("Very Fast"), 250, rg);
+ e_widget_framelist_object_append(of, ow);
+ evas_object_smart_callback_add(ow, "changed",
+ _il_config_animation_change, NULL);
+ ow = e_widget_radio_add(evas, _("Off"), 0, rg);
+ e_widget_framelist_object_append(of, ow);
+ evas_object_smart_callback_add(ow, "changed",
+ _il_config_animation_change, NULL);
+ e_widget_list_object_append(list, of, 1, 0, 0.0);
+
+ return list;
+}
+
+static void
+_il_config_animation_change(void *data, Evas_Object *obj, void *event)
+{
+ if (_anim_change_timer) ecore_timer_del(_anim_change_timer);
+ _anim_change_timer =
+ ecore_timer_add(0.5, _il_config_animation_change_timeout, data);
+}
+
+static int
+_il_config_animation_change_timeout(void *data)
+{
+ e_config_save_queue();
+ _anim_change_timer = NULL;
+ return 0;
+}
--- /dev/null
+#ifndef E_MOD_ANIM_H
+#define E_MOD_ANIM_H
+
+EAPI void il_config_animation_show(E_Container *con, const char *params);
+
+#endif
#include "e.h"
#include "e_mod_main.h"
#include "e_mod_config.h"
+#include "e_mod_animation.h"
+#include "e_mod_windows.h"
/* local variables */
EAPI Il_Config *il_cfg = NULL;
E_CONFIG_VAL(D, T, version, INT);
E_CONFIG_VAL(D, T, sliding.kbd.duration, INT);
E_CONFIG_VAL(D, T, sliding.softkey.duration, INT);
+ E_CONFIG_VAL(D, T, policy.name, STR);
+ E_CONFIG_VAL(D, T, policy.vkbd.class, STR);
+ E_CONFIG_VAL(D, T, policy.vkbd.name, STR);
+ E_CONFIG_VAL(D, T, policy.vkbd.title, STR);
+ E_CONFIG_VAL(D, T, policy.vkbd.win_type, STR);
+ E_CONFIG_VAL(D, T, policy.softkey.class, STR);
+ E_CONFIG_VAL(D, T, policy.softkey.name, STR);
+ E_CONFIG_VAL(D, T, policy.softkey.title, STR);
+ E_CONFIG_VAL(D, T, policy.softkey.win_type, STR);
+ E_CONFIG_VAL(D, T, policy.home.class, STR);
+ E_CONFIG_VAL(D, T, policy.home.name, STR);
+ E_CONFIG_VAL(D, T, policy.home.title, STR);
+ E_CONFIG_VAL(D, T, policy.home.win_type, STR);
il_cfg = e_config_domain_load("module.illume2", conf_edd);
if ((il_cfg) &&
if (il_cfg)
{
/* Add new config variables here */
- /* if ((il_cfg->version & 0xffff) < 1) */
+ if ((il_cfg->version & 0xffff) < 1)
+ {
+ il_cfg->policy.name = NULL;
+ il_cfg->policy.vkbd.class =
+ eina_stringshare_add("Virtual-Keyboard");
+ il_cfg->policy.vkbd.name =
+ eina_stringshare_add("E");
+ il_cfg->policy.vkbd.title =
+ eina_stringshare_add("Virtual Keyboard");
+ il_cfg->policy.vkbd.win_type = NULL;
+ il_cfg->policy.softkey.class =
+ eina_stringshare_add("Illume-Softkey");
+ il_cfg->policy.softkey.name =
+ eina_stringshare_add("Illume-Softkey");
+ il_cfg->policy.softkey.title =
+ eina_stringshare_add("Illume Softkey");
+ il_cfg->policy.softkey.win_type = NULL;
+ il_cfg->policy.home.class =
+ eina_stringshare_add("Illume-Home");
+ il_cfg->policy.home.name =
+ eina_stringshare_add("Illume-Home");
+ il_cfg->policy.home.title =
+ eina_stringshare_add("Illume Home");
+ il_cfg->policy.home.win_type = NULL;
+ }
il_cfg->version = (IL_CONFIG_MAJ << 16) | IL_CONFIG_MIN;
}
il_cfg->mod_dir = eina_stringshare_add(m->dir);
+
+ e_configure_registry_category_add("illume", 0, _("Illume"), NULL,
+ "enlightenment/display");
+ e_configure_registry_generic_item_add("illume/animation", 0, _("Animation"),
+ NULL, "enlightenment/animation",
+ il_config_animation_show);
+ e_configure_registry_generic_item_add("illume/windows", 0, _("Windows"),
+ NULL, "enlightenment/windows",
+ il_config_windows_show);
return 1;
}
EAPI int
il_config_shutdown(void)
{
+ e_configure_registry_item_del("illume/windows");
+ e_configure_registry_item_del("illume/animation");
+ e_configure_registry_category_del("illume");
+
+ if (il_cfg->policy.name) eina_stringshare_del(il_cfg->policy.name);
+
+ if (il_cfg->policy.vkbd.class)
+ eina_stringshare_del(il_cfg->policy.vkbd.class);
+ if (il_cfg->policy.vkbd.name)
+ eina_stringshare_del(il_cfg->policy.vkbd.name);
+ if (il_cfg->policy.vkbd.title)
+ eina_stringshare_del(il_cfg->policy.vkbd.title);
+ if (il_cfg->policy.vkbd.win_type)
+ eina_stringshare_del(il_cfg->policy.vkbd.win_type);
+
+ if (il_cfg->policy.softkey.class)
+ eina_stringshare_del(il_cfg->policy.softkey.class);
+ if (il_cfg->policy.softkey.name)
+ eina_stringshare_del(il_cfg->policy.softkey.name);
+ if (il_cfg->policy.softkey.title)
+ eina_stringshare_del(il_cfg->policy.softkey.title);
+ if (il_cfg->policy.softkey.win_type)
+ eina_stringshare_del(il_cfg->policy.softkey.win_type);
+
+ if (il_cfg->policy.home.class)
+ eina_stringshare_del(il_cfg->policy.home.class);
+ if (il_cfg->policy.home.name)
+ eina_stringshare_del(il_cfg->policy.home.name);
+ if (il_cfg->policy.home.title)
+ eina_stringshare_del(il_cfg->policy.home.title);
+ if (il_cfg->policy.home.win_type)
+ eina_stringshare_del(il_cfg->policy.home.win_type);
+
if (il_cfg->mod_dir) eina_stringshare_del(il_cfg->mod_dir);
+
E_FREE(il_cfg);
+ il_cfg = NULL;
+
+ E_CONFIG_DD_FREE(conf_edd);
return 1;
}
#ifndef E_MOD_CONFIG_H
# define E_MOD_CONFIG_H
-# define IL_CONFIG_MIN 0
+# define IL_CONFIG_MIN 1
# define IL_CONFIG_MAJ 0
typedef struct _Il_Config Il_Config;
} kbd, softkey;
} sliding;
+ struct
+ {
+ const char *name;
+ struct
+ {
+ const char *class;
+ const char *name;
+ const char *title;
+ const char *win_type;
+ } vkbd, softkey, home;
+ } policy;
+
// Not User Configurable. Placeholders
const char *mod_dir;
E_Config_Dialog *cfd;
--- /dev/null
+#include "e.h"
+#include "e_mod_windows.h"
+
+/* local function prototypes */
+static void *_il_config_windows_create(E_Config_Dialog *cfd);
+static void _il_config_windows_free(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
+static Evas_Object *_il_config_windows_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
+static void _il_config_windows_change(void *data, Evas_Object *obj, void *event);
+static int _il_config_windows_change_timeout(void *data);
+
+/* local variables */
+Ecore_Timer *_windows_change_timer = NULL;
+
+/* public functions */
+EAPI void
+il_config_windows_show(E_Container *con, const char *params)
+{
+ E_Config_Dialog *cfd;
+ E_Config_Dialog_View *v;
+
+ if (e_config_dialog_find("E", "_config_illume_windows_settings")) return;
+ v = E_NEW(E_Config_Dialog_View, 1);
+ v->create_cfdata = _il_config_windows_create;
+ v->free_cfdata = _il_config_windows_free;
+ v->basic.create_widgets = _il_config_windows_ui;
+ v->basic_only = 1;
+ v->normal_win = 1;
+ v->scroll = 1;
+ cfd = e_config_dialog_new(con, _("Window Settings"), "E",
+ "_config_illume_windows_settings",
+ "enlightenment/windows", 0, v, NULL);
+ e_dialog_resizable_set(cfd->dia, 1);
+}
+
+/* local function prototypes */
+static void *
+_il_config_windows_create(E_Config_Dialog *cfd)
+{
+ return NULL;
+}
+
+static void
+_il_config_windows_free(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
+{
+
+}
+
+static Evas_Object *
+_il_config_windows_ui(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
+{
+ Evas_Object *list;
+
+ list = e_widget_list_add(evas, 0, 0);
+ return list;
+}
+
+static void
+_il_config_windows_change(void *data, Evas_Object *obj, void *event)
+{
+ if (_windows_change_timer) ecore_timer_del(_windows_change_timer);
+ _windows_change_timer =
+ ecore_timer_add(0.5, _il_config_windows_change_timeout, data);
+}
+
+static int
+_il_config_windows_change_timeout(void *data)
+{
+ e_config_save_queue();
+ _windows_change_timer = NULL;
+ return 0;
+}
--- /dev/null
+#ifndef E_MOD_WINDOWS_H
+#define E_MOD_WINDOWS_H
+
+EAPI void il_config_windows_show(E_Container *con, const char *params);
+
+#endif