forked from enlightenment/enlightenment
desktopname module from schouze (slightly cleaned and fixed).
and fix resist bug. bg.po updates um.. stuff. SVN revision: 15927
This commit is contained in:
parent
d2ea9aee5d
commit
a34206e1fc
|
@ -249,6 +249,7 @@ src/modules/temperature/Makefile
|
|||
src/modules/cpufreq/Makefile
|
||||
src/modules/ibox/Makefile
|
||||
src/modules/start/Makefile
|
||||
src/modules/desktopname/Makefile
|
||||
src/preload/Makefile
|
||||
data/Makefile
|
||||
data/fonts/Makefile
|
||||
|
|
|
@ -31,7 +31,8 @@ default_ibox.edc \
|
|||
default_start.edc \
|
||||
default_winlist.edc \
|
||||
default_transitions.edc \
|
||||
default_dialog.edc
|
||||
default_dialog.edc \
|
||||
default_desktopname.edc
|
||||
|
||||
default.edj: Makefile $(EXTRA_DIST)
|
||||
$(EDJE_CC) $(EDJE_FLAGS) \
|
||||
|
|
|
@ -40,5 +40,6 @@ collections {
|
|||
#include "default_winlist.edc"
|
||||
#include "default_transitions.edc"
|
||||
#include "default_dialog.edc"
|
||||
#include "default_desktopname.edc"
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,149 @@
|
|||
images {
|
||||
image: "e17_menu_bg.png" COMP;
|
||||
image: "e17_ibar_bg_h.png" COMP;
|
||||
image: "e17_ibar_over_h.png" COMP;
|
||||
image: "e17_menu_bg.png" COMP;
|
||||
image: "e17_menu_bg_border.png" COMP;
|
||||
}
|
||||
|
||||
group {
|
||||
name: "widgets/desktop/main";
|
||||
parts {
|
||||
part {
|
||||
name: "base";
|
||||
mouse_events: 0;
|
||||
type: RECT;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 1.0;
|
||||
offset: 1 0;
|
||||
to_y: "base2";
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -2 -2;
|
||||
}
|
||||
color: 221 221 221 255;
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "base2";
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
max: 99999 48;
|
||||
align: 0.5 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 1 1;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -2 -2;
|
||||
}
|
||||
image {
|
||||
normal: "e17_menu_bg.png";
|
||||
}
|
||||
fill {
|
||||
smooth: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "base3";
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 0 0;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
image {
|
||||
normal: "e17_menu_bg_border.png";
|
||||
border: 1 1 1 1;
|
||||
middle: 0;
|
||||
}
|
||||
fill {
|
||||
smooth: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "title_bg";
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
rel1 {
|
||||
to: "title_overlay";
|
||||
}
|
||||
rel2 {
|
||||
to: "title_overlay";
|
||||
}
|
||||
image {
|
||||
normal: "e17_ibar_bg_h.png";
|
||||
border: 6 6 6 6;
|
||||
}
|
||||
fill {
|
||||
smooth: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "text";
|
||||
type: TEXT;
|
||||
effect: SOFT_SHADOW;
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
align: 0.5 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 26 24;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -26 -24;
|
||||
}
|
||||
color: 0 0 0 255;
|
||||
color3: 0 0 0 22;
|
||||
text {
|
||||
text: "Title goes here";
|
||||
font: "Edje Vera Bold";
|
||||
size: 12;
|
||||
min: 1 1;
|
||||
align: 0.5 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "title_overlay";
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
align: 0.5 1.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 16 -7;
|
||||
to_y: "text";
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -17 6;
|
||||
to_y: "text";
|
||||
}
|
||||
image {
|
||||
normal: "e17_ibar_over_h.png";
|
||||
border: 13 13 13 13;
|
||||
middle: 0;
|
||||
}
|
||||
fill {
|
||||
smooth: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -423,6 +423,10 @@ e_config_init(void)
|
|||
em->name = strdup("pager");
|
||||
em->enabled = 1;
|
||||
e_config->modules = evas_list_append(e_config->modules, em);
|
||||
em = E_NEW(E_Config_Module, 1);
|
||||
em->name = strdup("desktopname");
|
||||
em->enabled = 1;
|
||||
e_config->modules = evas_list_append(e_config->modules, em);
|
||||
}
|
||||
{
|
||||
E_Font_Fallback* eff;
|
||||
|
|
|
@ -763,7 +763,8 @@ _e_int_menus_themes_edit_mode_cb(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* FIXME: EVIL... relies on label + .edj being the filename! */
|
||||
et = E_NEW(E_Config_Theme, 1);
|
||||
et->category = strdup("theme");
|
||||
et->file = E_NEW(char, strlen(mi->label) + 4 + 1);
|
||||
|
|
|
@ -30,7 +30,7 @@ e_resist_container_border_position(E_Container *con, Evas_List *skiplist,
|
|||
*rx = x;
|
||||
*ry = y;
|
||||
*rw = w;
|
||||
*rw = h;
|
||||
*rh = h;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,4 +9,5 @@ battery \
|
|||
temperature \
|
||||
cpufreq \
|
||||
ibox \
|
||||
start
|
||||
start \
|
||||
desktopname
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
MAINTAINERCLEANFILES = Makefile.in
|
||||
MODULE = desktopname
|
||||
|
||||
# data files for the module
|
||||
filesdir = $(libdir)/enlightenment/modules/$(MODULE)
|
||||
files_DATA = \
|
||||
module_icon.png
|
||||
|
||||
EXTRA_DIST = $(files_DATA)
|
||||
|
||||
# the module .so file
|
||||
INCLUDES = -I. \
|
||||
-I$(top_srcdir) \
|
||||
-I$(includedir) \
|
||||
-I$(top_srcdir)$(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
|
||||
module_la_LIBADD = @e_libs@ @dlopen_libs@
|
||||
module_la_LDFLAGS = -module -avoid-version
|
||||
module_la_DEPENDENCIES = $(top_builddir)/config.h
|
||||
|
|
@ -0,0 +1,305 @@
|
|||
/*
|
||||
* * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||
*/
|
||||
#include "e.h"
|
||||
#include "e_mod_main.h"
|
||||
#include "e_int_menus.h"
|
||||
|
||||
static DesktopName *_dn_new(void);
|
||||
static E_Menu *_dn_config_menu_new(DesktopName *dn);
|
||||
static void _dn_free(DesktopName *dn);
|
||||
static int _dn_cb_event_desk_show(void *data, int type, void *event);
|
||||
static int _dn_popup_timeout_cb(void *data);
|
||||
|
||||
static void _dn_config_speed_set(DesktopName *dn, double speed);
|
||||
static void _dn_menu_cb_speed_very_slow(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _dn_menu_cb_speed_slow(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _dn_menu_cb_speed_normal(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _dn_menu_cb_speed_fast(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
static void _dn_menu_cb_speed_very_fast(void *data, E_Menu *m, E_Menu_Item *mi);
|
||||
|
||||
static Ecore_Timer *timeout_timer = NULL;
|
||||
|
||||
void *
|
||||
e_modapi_init(E_Module *m)
|
||||
{
|
||||
DesktopName *dn;
|
||||
|
||||
if (m->api->version < E_MODULE_API_VERSION)
|
||||
{
|
||||
e_error_dialog_show(_("Module API Error"),
|
||||
_("Error initializing Module: desktop\n"
|
||||
"It requires a minimum module API version of: %i.\n"
|
||||
"The module API advertized by Enlightenment is: %i.\n"
|
||||
"Aborting module."),
|
||||
E_MODULE_API_VERSION,
|
||||
m->api->version);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
dn = _dn_new();
|
||||
m->config_menu = _dn_config_menu_new(dn);
|
||||
return dn;
|
||||
}
|
||||
|
||||
int
|
||||
e_modapi_shutdown(E_Module *m)
|
||||
{
|
||||
DesktopName *dn;
|
||||
dn = m->data;
|
||||
if (dn)
|
||||
{
|
||||
if (m->config_menu)
|
||||
{
|
||||
e_menu_deactivate(m->config_menu);
|
||||
e_object_del(E_OBJECT(m->config_menu));
|
||||
m->config_menu = NULL;
|
||||
}
|
||||
_dn_free(dn);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
e_modapi_save(E_Module *m)
|
||||
{
|
||||
DesktopName *dn;
|
||||
dn = m->data;
|
||||
e_config_domain_save("module.desktopname", dn->conf_edd, dn->conf);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
e_modapi_info(E_Module *m)
|
||||
{
|
||||
char buf[4096];
|
||||
|
||||
m->label = strdup(_("DesktopName"));
|
||||
snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
|
||||
m->icon_file = strdup(buf);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
e_modapi_about(E_Module *m)
|
||||
{
|
||||
e_error_dialog_show(_("Enlightenment DesktopName Module"),
|
||||
_("Experimental module for E17: display desktop name on screen."));
|
||||
return 1;
|
||||
}
|
||||
|
||||
static DesktopName *
|
||||
_dn_new(void)
|
||||
{
|
||||
DesktopName *dn;
|
||||
|
||||
Evas_List *managers, *l, *l2;
|
||||
E_Manager *man;
|
||||
E_Container *con;
|
||||
|
||||
dn = E_NEW(DesktopName, 1);
|
||||
if (!dn) return NULL;
|
||||
|
||||
dn->conf_edd = E_CONFIG_DD_NEW("DesktopName_Config", Config);
|
||||
#undef T
|
||||
#undef D
|
||||
#define T Config
|
||||
#define D dn->conf_edd
|
||||
E_CONFIG_VAL(D, T, speed, DOUBLE);
|
||||
|
||||
dn->conf = e_config_domain_load("module.desktopname", dn->conf_edd);
|
||||
if (!dn->conf)
|
||||
{
|
||||
dn->conf = E_NEW(Config, 1);
|
||||
dn->conf->speed = 1.2;
|
||||
}
|
||||
E_CONFIG_LIMIT(dn->conf->speed, 0.2, 10.0);
|
||||
|
||||
dn->ev_handler_desk_show = ecore_event_handler_add(E_EVENT_DESK_SHOW,
|
||||
_dn_cb_event_desk_show,
|
||||
dn);
|
||||
return dn;
|
||||
}
|
||||
|
||||
static E_Menu *
|
||||
_dn_config_menu_new(DesktopName *dn)
|
||||
{
|
||||
E_Menu *mn;
|
||||
E_Menu_Item *mi;
|
||||
|
||||
mn = e_menu_new();
|
||||
if(!mn) return NULL;
|
||||
|
||||
|
||||
mi = e_menu_item_new(mn);
|
||||
e_menu_item_label_set(mi, _("Very Slow"));
|
||||
e_menu_item_radio_set(mi, 1);
|
||||
e_menu_item_radio_group_set(mi, 1);
|
||||
if (dn->conf->speed == 6.0) e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, _dn_menu_cb_speed_very_slow, dn);
|
||||
|
||||
mi = e_menu_item_new(mn);
|
||||
e_menu_item_label_set(mi, _("Slow"));
|
||||
e_menu_item_radio_set(mi, 1);
|
||||
e_menu_item_radio_group_set(mi, 1);
|
||||
if (dn->conf->speed == 4.0) e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, _dn_menu_cb_speed_slow, dn);
|
||||
|
||||
mi = e_menu_item_new(mn);
|
||||
e_menu_item_label_set(mi, _("Normal"));
|
||||
e_menu_item_radio_set(mi, 1);
|
||||
e_menu_item_radio_group_set(mi, 1);
|
||||
if (dn->conf->speed == 1.2) e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, _dn_menu_cb_speed_normal, dn);
|
||||
|
||||
mi = e_menu_item_new(mn);
|
||||
e_menu_item_label_set(mi, _("Fast"));
|
||||
e_menu_item_radio_set(mi, 1);
|
||||
e_menu_item_radio_group_set(mi, 1);
|
||||
if (dn->conf->speed == 0.7) e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, _dn_menu_cb_speed_fast, dn);
|
||||
|
||||
mi = e_menu_item_new(mn);
|
||||
e_menu_item_label_set(mi, _("Very Fast"));
|
||||
e_menu_item_radio_set(mi, 1);
|
||||
e_menu_item_radio_group_set(mi, 1);
|
||||
if (dn->conf->speed == 0.3) e_menu_item_toggle_set(mi, 1);
|
||||
e_menu_item_callback_set(mi, _dn_menu_cb_speed_very_fast, dn);
|
||||
|
||||
return mn;
|
||||
}
|
||||
|
||||
static void
|
||||
_dn_free(DesktopName *dn)
|
||||
{
|
||||
free(dn->conf);
|
||||
E_CONFIG_DD_FREE(dn->conf_edd);
|
||||
ecore_event_handler_del(dn->ev_handler_desk_show);
|
||||
if (dn->obj)
|
||||
{
|
||||
evas_object_del(dn->obj);
|
||||
dn->obj = NULL;
|
||||
}
|
||||
if (dn->popup)
|
||||
{
|
||||
e_object_del(E_OBJECT(dn->popup));
|
||||
dn->popup = NULL;
|
||||
}
|
||||
free(dn);
|
||||
}
|
||||
|
||||
static void
|
||||
_dn_menu_cb_speed_very_slow(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
DesktopName *dn;
|
||||
dn = data;
|
||||
_dn_config_speed_set(dn, 6.0);
|
||||
}
|
||||
|
||||
static void
|
||||
_dn_menu_cb_speed_slow(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
DesktopName *dn;
|
||||
dn = data;
|
||||
_dn_config_speed_set(dn, 4.0);
|
||||
}
|
||||
|
||||
static void
|
||||
_dn_menu_cb_speed_normal(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
DesktopName *dn;
|
||||
dn = data;
|
||||
_dn_config_speed_set(dn, 1.2);
|
||||
}
|
||||
|
||||
static void
|
||||
_dn_menu_cb_speed_fast(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
DesktopName *dn;
|
||||
|
||||
dn = data;
|
||||
_dn_config_speed_set(dn, 0.7);
|
||||
}
|
||||
|
||||
static void
|
||||
_dn_menu_cb_speed_very_fast(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
DesktopName *dn;
|
||||
|
||||
dn = data;
|
||||
_dn_config_speed_set(dn, 0.3);
|
||||
}
|
||||
|
||||
static void
|
||||
_dn_config_speed_set(DesktopName *dn, double speed)
|
||||
{
|
||||
if (speed < 0.0) speed = 1.2;
|
||||
dn->conf->speed = speed;
|
||||
}
|
||||
|
||||
static int
|
||||
_dn_cb_event_desk_show(void *data, int type, void *event)
|
||||
{
|
||||
DesktopName *dn;
|
||||
E_Event_Desk_Show *ev;
|
||||
E_Zone *zone;
|
||||
|
||||
Evas_Coord ew, eh;
|
||||
char buf[128];
|
||||
|
||||
dn = data;
|
||||
ev = event;
|
||||
zone = ev->desk->zone;
|
||||
|
||||
if (timeout_timer) ecore_timer_del(timeout_timer);
|
||||
|
||||
if (dn->popup) e_object_del(E_OBJECT(dn->popup));
|
||||
|
||||
dn->popup = e_popup_new(zone, 0, 0, 1, 1);
|
||||
if (!dn->popup) return 1;
|
||||
e_popup_layer_set(dn->popup, 255);
|
||||
dn->obj = edje_object_add(dn->popup->evas);
|
||||
e_theme_edje_object_set(dn->obj, "base/theme/desktop",
|
||||
"widgets/desktop/main");
|
||||
snprintf(buf, sizeof(buf), ev->desk->name);
|
||||
edje_object_part_text_set(dn->obj, "text", buf);
|
||||
|
||||
|
||||
edje_object_size_min_calc(dn->obj, &ew, &eh);
|
||||
|
||||
evas_object_move(dn->obj, 0, 0);
|
||||
evas_object_resize(dn->obj, ew, eh);
|
||||
evas_object_show(dn->obj);
|
||||
edje_object_signal_emit(dn->obj, "active", "");
|
||||
e_popup_edje_bg_object_set(dn->popup, dn->obj);
|
||||
e_popup_move_resize(dn->popup,
|
||||
(zone->x - dn->popup->zone->x) +
|
||||
((zone->w - ew) / 2),
|
||||
(zone->y - dn->popup->zone->y) +
|
||||
((zone->h - eh) / 2),
|
||||
ew, eh);
|
||||
e_popup_show(dn->popup);
|
||||
|
||||
timeout_timer = ecore_timer_add(dn->conf->speed, _dn_popup_timeout_cb, dn);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
_dn_popup_timeout_cb(void *data)
|
||||
{
|
||||
DesktopName *dn;
|
||||
|
||||
dn = data;
|
||||
if (dn->obj)
|
||||
{
|
||||
evas_object_del(dn->obj);
|
||||
dn->obj = NULL;
|
||||
}
|
||||
if (dn->popup)
|
||||
{
|
||||
e_object_del(E_OBJECT(dn->popup));
|
||||
dn->popup = NULL;
|
||||
}
|
||||
timeout_timer = NULL;
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
#ifndef E_MOD_MAIN_H
|
||||
#define E_MOD_MAIN_H
|
||||
|
||||
typedef struct _Config Config;
|
||||
typedef struct _DesktopName DesktopName;
|
||||
|
||||
struct _Config
|
||||
{
|
||||
double speed;
|
||||
};
|
||||
|
||||
struct _DesktopName
|
||||
{
|
||||
E_Config_DD *conf_edd;
|
||||
Config *conf;
|
||||
E_Popup *popup;
|
||||
Evas_Object *obj;
|
||||
|
||||
Ecore_Event_Handler *ev_handler_desk_show;
|
||||
};
|
||||
|
||||
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_info (E_Module *m);
|
||||
EAPI int e_modapi_about (E_Module *m);
|
||||
|
||||
#endif
|
Binary file not shown.
After Width: | Height: | Size: 5.0 KiB |
Loading…
Reference in New Issue