winlist -> module!

SVN revision: 31178
This commit is contained in:
Carsten Haitzler 2007-08-05 04:41:55 +00:00
parent 9616c8fdd6
commit ea0b0dd7d8
18 changed files with 301 additions and 125 deletions

View File

@ -256,6 +256,8 @@ src/modules/layout/Makefile
src/modules/layout/module.desktop
src/modules/exebuf/Makefile
src/modules/exebuf/module.desktop
src/modules/winlist/Makefile
src/modules/winlist/module.desktop
src/modules/conf_wallpaper/Makefile
src/modules/conf_wallpaper/module.desktop
src/modules/conf_theme/Makefile

View File

@ -126,7 +126,6 @@ src/bin/e_widget_table.c
src/bin/e_widget_textblock.c
src/bin/e_widget_tlist.c
src/bin/e_win.c
src/bin/e_winlist.c
src/bin/e_xinerama.c
src/bin/e_zone.c
src/modules/battery/e_mod_config.c
@ -211,6 +210,8 @@ src/modules/dropshadow/e_mod_config.c
src/modules/dropshadow/e_mod_main.c
src/modules/exebuf/e_mod_main.c
src/modules/exebuf/e_exebuf.c
src/modules/winlist/e_mod_main.c
src/modules/winlist/e_winlist.c
src/modules/ibar/e_mod_config.c
src/modules/ibar/e_mod_main.c
src/modules/ibox/e_mod_config.c

View File

@ -72,7 +72,6 @@ e_ipc_codec.h \
e_prefix.h \
e_datastore.h \
e_msg.h \
e_winlist.h \
e_alert.h \
e_maximize.h \
e_grabinput.h \
@ -199,7 +198,6 @@ e_ipc_codec.c \
e_prefix.c \
e_datastore.c \
e_msg.c \
e_winlist.c \
e_alert.c \
e_maximize.c \
e_grabinput.c \

View File

@ -1441,100 +1441,6 @@ ACT_FN_GO(app)
}
/***************************************************************************/
ACT_FN_GO(winlist)
{
E_Zone *zone;
zone = _e_actions_zone_get(obj);
if (zone)
{
if (params)
{
if (!strcmp(params, "next"))
{
if (!e_winlist_show(zone))
e_winlist_next();
}
else if (!strcmp(params, "prev"))
{
if (!e_winlist_show(zone))
e_winlist_prev();
}
}
else
{
if (!e_winlist_show(zone))
e_winlist_next();
}
}
}
ACT_FN_GO_MOUSE(winlist)
{
E_Zone *zone;
zone = _e_actions_zone_get(obj);
if (zone)
{
if (params)
{
if (!strcmp(params, "next"))
{
if (e_winlist_show(zone))
e_winlist_modifiers_set(ev->modifiers);
else
e_winlist_next();
}
else if (!strcmp(params, "prev"))
{
if (e_winlist_show(zone))
e_winlist_modifiers_set(ev->modifiers);
else
e_winlist_prev();
}
}
else
{
if (e_winlist_show(zone))
e_winlist_modifiers_set(ev->modifiers);
else
e_winlist_next();
}
}
}
ACT_FN_GO_KEY(winlist)
{
E_Zone *zone;
zone = _e_actions_zone_get(obj);
if (zone)
{
if (params)
{
if (!strcmp(params, "next"))
{
if (e_winlist_show(zone))
e_winlist_modifiers_set(ev->modifiers);
else
e_winlist_next();
}
else if (!strcmp(params, "prev"))
{
if (e_winlist_show(zone))
e_winlist_modifiers_set(ev->modifiers);
else
e_winlist_prev();
}
}
else
{
if (e_winlist_show(zone))
e_winlist_modifiers_set(ev->modifiers);
else
e_winlist_next();
}
}
}
ACT_FN_GO(desk_deskshow_toggle)
{
E_Zone *zone;
@ -2249,15 +2155,6 @@ e_actions_init(void)
e_action_predef_name_set(_("Launch"), _("Application"), "app", NULL,
"syntax: , example:", 1);
/* winlist */
ACT_GO(winlist);
e_action_predef_name_set(_("Window : List"), _("Next Window"), "winlist",
"next", NULL, 0);
e_action_predef_name_set(_("Window : List"), _("Previous Window"),
"winlist", "prev", NULL, 0);
ACT_GO_MOUSE(winlist);
ACT_GO_KEY(winlist);
ACT_GO(restart);
e_action_predef_name_set(_("Enlightenment"), _("Restart"), "restart",
NULL, NULL, 0);

View File

@ -118,6 +118,8 @@ static Evas_List *focus_stack = NULL;
static Ecore_X_Screen_Size screen_size = { -1, -1 };
static int focus_track_frozen = 0;
EAPI int E_EVENT_BORDER_ADD = 0;
EAPI int E_EVENT_BORDER_REMOVE = 0;
EAPI int E_EVENT_BORDER_ZONE_SET = 0;
@ -1324,7 +1326,7 @@ e_border_focus_set(E_Border *bd, int focus, int set)
}
if (bd->visible)
{
if (!e_winlist_active_get())
if (focus_track_frozen > 0)
e_border_focus_latest_set(bd);
}
// printf("EMIT 0x%x activeve\n", bd->client.win);
@ -7440,3 +7442,15 @@ e_border_hook_del(E_Border_Hook *bh)
else
_e_border_hooks_delete++;
}
EAPI void
e_border_focus_track_freeze(void)
{
focus_track_frozen++;
}
EAPI void
e_border_focus_track_thaw(void)
{
focus_track_frozen--;
}

View File

@ -668,6 +668,8 @@ EAPI void e_border_resize_limit(E_Border *bd, int *w, int *h);
EAPI E_Border_Hook *e_border_hook_add(E_Border_Hook_Point hookpoint, void (*func) (void *data, E_Border *bd), void *data);
EAPI void e_border_hook_del(E_Border_Hook *bh);
EAPI void e_border_focus_track_freeze(void);
EAPI void e_border_focus_track_thaw(void);
extern EAPI int E_EVENT_BORDER_RESIZE;
extern EAPI int E_EVENT_BORDER_MOVE;

View File

@ -759,6 +759,7 @@ e_config_init(void)
CFG_MODULE("temperature", 1, 0);
CFG_MODULE("pager", 1, 0);
CFG_MODULE("exebuf", 1, 1);
CFG_MODULE("winlist", 1, 1);
CFG_MODULE("conf_applications", 1, 1);
CFG_MODULE("conf_borders", 1, 1);
CFG_MODULE("conf_clientlist", 1, 1);

View File

@ -48,7 +48,6 @@
#include "e_prefix.h"
#include "e_datastore.h"
#include "e_msg.h"
#include "e_winlist.h"
#include "e_alert.h"
#include "e_maximize.h"
#include "e_grabinput.h"

View File

@ -740,14 +740,6 @@ main(int argc, char **argv)
_e_main_shutdown(-1);
}
_e_main_shutdown_push(e_module_shutdown);
TS("winlist");
/* setup winlist */
if (!e_winlist_init())
{
e_error_message_show(_("Enlightenment cannot set up its window list system."));
_e_main_shutdown(-1);
}
_e_main_shutdown_push(e_winlist_shutdown);
TS("colorclasses");
/* setup color_class */
if (!e_color_class_init())

View File

@ -11,6 +11,7 @@ ibox \
start \
layout \
exebuf \
winlist \
conf_wallpaper \
conf_theme \
conf_colors \

View File

@ -148,7 +148,6 @@ e_exebuf_show(E_Zone *zone)
E_OBJECT_CHECK_RETURN(zone, 0);
E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, 0);
if (e_winlist_active_get()) return 0;
if (exebuf) return 0;
input_window = ecore_x_window_input_new(zone->container->win, zone->x,

View File

@ -0,0 +1,31 @@
MAINTAINERCLEANFILES = Makefile.in
MODULE = winlist
# 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_winlist.c \
e_winlist.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)

Binary file not shown.

View File

@ -0,0 +1,219 @@
/*
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#include "e.h"
#include "e_mod_main.h"
/***************************************************************************/
/**/
/* actual module specifics */
static void _e_mod_action_winlist_cb(E_Object *obj, const char *params);
static void _e_mod_action_winlist_mouse_cb(E_Object *obj, const char *params, Ecore_X_Event_Mouse_Button_Down *ev);
static void _e_mod_action_winlist_key_cb(E_Object *obj, const char *params, Ecore_X_Event_Key_Down *ev);
static E_Module *conf_module = NULL;
static E_Action *act = NULL;
/**/
/***************************************************************************/
/***************************************************************************/
/**/
/**/
/***************************************************************************/
/***************************************************************************/
/**/
/* module setup */
EAPI E_Module_Api e_modapi =
{
E_MODULE_API_VERSION,
"Exebuf"
};
EAPI void *
e_modapi_init(E_Module *m)
{
conf_module = m;
e_winlist_init();
/* add module supplied action */
act = e_action_add("winlist");
if (act)
{
act->func.go = _e_mod_action_winlist_cb;
act->func.go_mouse = _e_mod_action_winlist_mouse_cb;
act->func.go_key = _e_mod_action_winlist_key_cb;
e_action_predef_name_set(_("Window : List"), _("Next Window"), "winlist",
"next", NULL, 0);
e_action_predef_name_set(_("Window : List"), _("Previous Window"),
"winlist", "prev", NULL, 0);
}
e_module_delayed_set(m, 1);
return m;
}
EAPI int
e_modapi_shutdown(E_Module *m)
{
/* remove module-supplied action */
if (act)
{
e_action_predef_name_del(_("Window : List"), _("Previous Window"));
e_action_predef_name_del(_("Window : List"), _("Next Window"));
e_action_del("exebuf");
act = NULL;
}
e_winlist_shutdown();
conf_module = NULL;
return 1;
}
EAPI int
e_modapi_save(E_Module *m)
{
return 1;
}
EAPI int
e_modapi_about(E_Module *m)
{
e_module_dialog_show(m,
_("Enlightenment Winlist Module"),
_("A module for displaying a list of windows to switch between."));
return 1;
}
/* action callback */
static void
_e_mod_action_winlist_cb(E_Object *obj, const char *params)
{
E_Zone *zone;
if (obj)
{
if (obj->type == E_MANAGER_TYPE)
zone = e_util_zone_current_get((E_Manager *)obj);
else if (obj->type == E_CONTAINER_TYPE)
zone = e_util_zone_current_get(((E_Container *)obj)->manager);
else if (obj->type == E_ZONE_TYPE)
zone = e_util_zone_current_get(((E_Zone *)obj)->container->manager);
else
zone = e_util_zone_current_get(e_manager_current_get());
}
zone = e_util_zone_current_get(e_manager_current_get());
if (zone)
{
if (params)
{
if (!strcmp(params, "next"))
{
if (!e_winlist_show(zone))
e_winlist_next();
}
else if (!strcmp(params, "prev"))
{
if (!e_winlist_show(zone))
e_winlist_prev();
}
}
else
{
if (!e_winlist_show(zone))
e_winlist_next();
}
}
}
static void
_e_mod_action_winlist_mouse_cb(E_Object *obj, const char *params, Ecore_X_Event_Mouse_Button_Down *ev)
{
E_Zone *zone;
if (obj)
{
if (obj->type == E_MANAGER_TYPE)
zone = e_util_zone_current_get((E_Manager *)obj);
else if (obj->type == E_CONTAINER_TYPE)
zone = e_util_zone_current_get(((E_Container *)obj)->manager);
else if (obj->type == E_ZONE_TYPE)
zone = e_util_zone_current_get(((E_Zone *)obj)->container->manager);
else
zone = e_util_zone_current_get(e_manager_current_get());
}
zone = e_util_zone_current_get(e_manager_current_get());
if (zone)
{
if (params)
{
if (!strcmp(params, "next"))
{
if (e_winlist_show(zone))
e_winlist_modifiers_set(ev->modifiers);
else
e_winlist_next();
}
else if (!strcmp(params, "prev"))
{
if (e_winlist_show(zone))
e_winlist_modifiers_set(ev->modifiers);
else
e_winlist_prev();
}
}
else
{
if (e_winlist_show(zone))
e_winlist_modifiers_set(ev->modifiers);
else
e_winlist_next();
}
}
}
static void
_e_mod_action_winlist_key_cb(E_Object *obj, const char *params, Ecore_X_Event_Key_Down *ev)
{
E_Zone *zone;
if (obj)
{
if (obj->type == E_MANAGER_TYPE)
zone = e_util_zone_current_get((E_Manager *)obj);
else if (obj->type == E_CONTAINER_TYPE)
zone = e_util_zone_current_get(((E_Container *)obj)->manager);
else if (obj->type == E_ZONE_TYPE)
zone = e_util_zone_current_get(((E_Zone *)obj)->container->manager);
else
zone = e_util_zone_current_get(e_manager_current_get());
}
zone = e_util_zone_current_get(e_manager_current_get());
if (zone)
{
if (params)
{
if (!strcmp(params, "next"))
{
if (e_winlist_show(zone))
e_winlist_modifiers_set(ev->modifiers);
else
e_winlist_next();
}
else if (!strcmp(params, "prev"))
{
if (e_winlist_show(zone))
e_winlist_modifiers_set(ev->modifiers);
else
e_winlist_prev();
}
}
else
{
if (e_winlist_show(zone))
e_winlist_modifiers_set(ev->modifiers);
else
e_winlist_next();
}
}
}

View File

@ -0,0 +1,21 @@
/*
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#ifndef E_MOD_MAIN_H
#define E_MOD_MAIN_H
#define E_TYPEDEFS 1
#include "e_winlist.h"
#undef E_TYPEDEFS
#include "e_winlist.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);
EAPI int e_modapi_about (E_Module *m);
#endif

View File

@ -2,6 +2,7 @@
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#include "e.h"
#include "e_winlist.h"
/* local subsystem functions */
typedef struct _E_Winlist_Win E_Winlist_Win;
@ -115,6 +116,7 @@ e_winlist_show(E_Zone *zone)
winlist = e_popup_new(zone, x, y, w, h);
if (!winlist) return 0;
e_border_focus_track_freeze();
evas_event_feed_mouse_in(winlist->evas, ecore_x_current_time_get(), NULL);
evas_event_feed_mouse_move(winlist->evas, -1000000, -1000000, ecore_x_current_time_get(), NULL);
@ -243,6 +245,7 @@ e_winlist_hide(void)
bg_object = NULL;
evas_event_thaw(winlist->evas);
e_object_del(E_OBJECT(winlist));
e_border_focus_track_thaw();
winlist = NULL;
hold_count = 0;
hold_mod = 0;
@ -302,13 +305,6 @@ e_winlist_hide(void)
}
}
EAPI int
e_winlist_active_get(void)
{
if (winlist) return 1;
return 0;
}
EAPI void
e_winlist_next(void)
{

View File

@ -12,7 +12,6 @@ EAPI int e_winlist_shutdown(void);
EAPI int e_winlist_show(E_Zone *zone);
EAPI void e_winlist_hide(void);
EAPI int e_winlist_active_get(void);
EAPI void e_winlist_next(void);
EAPI void e_winlist_prev(void);
EAPI void e_winlist_modifiers_set(int mod);

View File

@ -0,0 +1,4 @@
[Desktop Entry]
Type=Link
Name=Winlist
Icon=e-module-winlist