feeble ibar port, gadget styles
This commit is contained in:
parent
0a4bb33218
commit
f85d5e2cb3
|
@ -10,4 +10,6 @@ src/gadgets/clock/clock.c \
|
|||
src/gadgets/clock/config.c \
|
||||
src/gadgets/clock/clock.h \
|
||||
src/gadgets/clock/mod.c \
|
||||
src/gadgets/clock/time.c
|
||||
src/gadgets/clock/time.c \
|
||||
src/gadgets/ibar/ibar.c \
|
||||
src/gadgets/ibar/ibar.h
|
||||
|
|
|
@ -219,7 +219,6 @@ _eval_instance_size(Instance *inst)
|
|||
|
||||
if ((mw < 1) || (mh < 1))
|
||||
{
|
||||
Evas_Coord ow, oh;
|
||||
Evas_Object *owner;
|
||||
|
||||
owner = z_gadget_site_get(inst->o_clock);
|
||||
|
@ -236,12 +235,10 @@ _eval_instance_size(Instance *inst)
|
|||
default: break;
|
||||
}
|
||||
|
||||
evas_object_geometry_get(inst->o_clock, NULL, NULL, &ow, &oh);
|
||||
evas_object_resize(inst->o_clock, sw, sh);
|
||||
edje_object_message_signal_process(elm_layout_edje_get(inst->o_clock));
|
||||
|
||||
edje_object_parts_extends_calc(elm_layout_edje_get(inst->o_clock), NULL, NULL, &mw, &mh);
|
||||
evas_object_resize(inst->o_clock, ow, oh);
|
||||
}
|
||||
|
||||
if (mw < 4) mw = 4;
|
||||
|
@ -329,7 +326,7 @@ _gc_icon(const E_Gadcon_Client_Class *client_class EINA_UNUSED, Evas *evas)
|
|||
}
|
||||
|
||||
static Config_Item *
|
||||
_conf_item_get(unsigned int *id)
|
||||
_conf_item_get(int *id)
|
||||
{
|
||||
Config_Item *ci;
|
||||
Eina_List *l;
|
||||
|
@ -367,7 +364,7 @@ _clock_gadget_added_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSE
|
|||
}
|
||||
|
||||
EINTERN Evas_Object *
|
||||
clock_create(Evas_Object *parent, unsigned int *id, Z_Gadget_Site_Orient orient)
|
||||
clock_create(Evas_Object *parent, int *id, Z_Gadget_Site_Orient orient)
|
||||
{
|
||||
Evas_Object *o;
|
||||
Instance *inst;
|
||||
|
|
|
@ -27,7 +27,7 @@ struct _Config
|
|||
|
||||
struct _Config_Item
|
||||
{
|
||||
unsigned int id;
|
||||
int id;
|
||||
struct {
|
||||
int start, len; // 0->6 0 == sun, 6 == sat, number of days
|
||||
} weekend;
|
||||
|
@ -68,7 +68,7 @@ EINTERN void time_instance_update(Instance *inst);
|
|||
EINTERN void time_init(void);
|
||||
EINTERN void time_shutdown(void);
|
||||
|
||||
EINTERN Evas_Object *clock_create(Evas_Object *parent, unsigned int *id, Z_Gadget_Site_Orient orient);
|
||||
EINTERN Evas_Object *clock_create(Evas_Object *parent, int *id, Z_Gadget_Site_Orient orient);
|
||||
EINTERN void clock_popup_new(Instance *inst);
|
||||
|
||||
extern Config *clock_config;
|
||||
|
|
|
@ -0,0 +1,177 @@
|
|||
#include "clock.h"
|
||||
|
||||
struct _E_Config_Dialog_Data
|
||||
{
|
||||
Config_Item cfg;
|
||||
};
|
||||
|
||||
/* 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_widgets(E_Config_Dialog *cfd,
|
||||
Evas *evas,
|
||||
E_Config_Dialog_Data *cfdata);
|
||||
static int _basic_apply_data(E_Config_Dialog *cfd,
|
||||
E_Config_Dialog_Data *cfdata);
|
||||
|
||||
EINTERN Evas_Object *
|
||||
config_clock(Evas_Object *g)
|
||||
{
|
||||
E_Config_Dialog *cfd;
|
||||
E_Config_Dialog_View *v;
|
||||
char buf[4096];
|
||||
Instance *inst;
|
||||
|
||||
inst = evas_object_data_get(g, "clock");
|
||||
v = E_NEW(E_Config_Dialog_View, 1);
|
||||
|
||||
v->create_cfdata = _create_data;
|
||||
v->free_cfdata = _free_data;
|
||||
v->basic.apply_cfdata = _basic_apply_data;
|
||||
v->basic.create_widgets = _basic_create_widgets;
|
||||
|
||||
snprintf(buf, sizeof(buf), "%s/e-module-clock.edj",
|
||||
e_module_dir_get(clock_config->module));
|
||||
cfd = e_config_dialog_new(NULL, _("Clock Settings"),
|
||||
"E", "utils/clock", buf, 0, v, inst->cfg);
|
||||
clock_config->config_dialog = cfd;
|
||||
return cfd->dia->win;
|
||||
}
|
||||
|
||||
static void *
|
||||
_create_data(E_Config_Dialog *cfd EINA_UNUSED)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
Config_Item *ci;
|
||||
|
||||
cfdata = E_NEW(E_Config_Dialog_Data, 1);
|
||||
ci = cfd->data;
|
||||
|
||||
memcpy(&(cfdata->cfg), ci, sizeof(Config_Item));
|
||||
|
||||
return cfdata;
|
||||
}
|
||||
|
||||
static void
|
||||
_free_data(E_Config_Dialog *cfd EINA_UNUSED,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
clock_config->config_dialog = NULL;
|
||||
free(cfdata);
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_basic_create_widgets(E_Config_Dialog *cfd EINA_UNUSED,
|
||||
Evas *evas,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
Evas_Object *ob, *tab, *of;
|
||||
E_Radio_Group *rg;
|
||||
char daynames[7][64];
|
||||
struct tm tm;
|
||||
int i;
|
||||
|
||||
memset(&tm, 0, sizeof(struct tm));
|
||||
for (i = 0; i < 7; i++)
|
||||
{
|
||||
tm.tm_wday = i;
|
||||
strftime(daynames[i], sizeof(daynames[i]), "%A", &tm);
|
||||
}
|
||||
|
||||
tab = e_widget_table_add(e_win_evas_win_get(evas), 0);
|
||||
|
||||
of = e_widget_frametable_add(evas, _("Clock"), 0);
|
||||
|
||||
rg = e_widget_radio_group_new(&(cfdata->cfg.digital_clock));
|
||||
ob = e_widget_radio_add(evas, _("Analog"), 0, rg);
|
||||
e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_radio_add(evas, _("Digital"), 1, rg);
|
||||
e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_check_add(evas, _("Seconds"), &(cfdata->cfg.show_seconds));
|
||||
e_widget_frametable_object_append(of, ob, 0, 2, 1, 1, 1, 1, 0, 0);
|
||||
rg = e_widget_radio_group_new(&(cfdata->cfg.digital_24h));
|
||||
ob = e_widget_radio_add(evas, _("12 h"), 0, rg);
|
||||
e_widget_frametable_object_append(of, ob, 0, 3, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_radio_add(evas, _("24 h"), 1, rg);
|
||||
e_widget_frametable_object_append(of, ob, 0, 4, 1, 1, 1, 1, 0, 0);
|
||||
|
||||
e_widget_table_object_append(tab, of, 0, 0, 1, 1, 1, 1, 1, 1);
|
||||
|
||||
of = e_widget_frametable_add(evas, _("Date"), 0);
|
||||
|
||||
rg = e_widget_radio_group_new(&(cfdata->cfg.show_date));
|
||||
ob = e_widget_radio_add(evas, _("None"), 0, rg);
|
||||
e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_radio_add(evas, _("Full"), 1, rg);
|
||||
e_widget_frametable_object_append(of, ob, 0, 1, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_radio_add(evas, _("Numbers"), 2, rg);
|
||||
e_widget_frametable_object_append(of, ob, 0, 2, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_radio_add(evas, _("Date Only"), 3, rg);
|
||||
e_widget_frametable_object_append(of, ob, 0, 3, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_radio_add(evas, _("ISO 8601"), 4, rg);
|
||||
e_widget_frametable_object_append(of, ob, 0, 4, 1, 1, 1, 1, 0, 0);
|
||||
|
||||
e_widget_table_object_append(tab, of, 0, 1, 1, 1, 1, 1, 1, 1);
|
||||
|
||||
of = e_widget_frametable_add(evas, _("Week"), 0);
|
||||
|
||||
ob = e_widget_label_add(evas, _("Start"));
|
||||
e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 0, 1, 0, 0);
|
||||
rg = e_widget_radio_group_new(&(cfdata->cfg.week.start));
|
||||
for (i = 0; i < 7; i++)
|
||||
{
|
||||
ob = e_widget_radio_add(evas, daynames[i], i, rg);
|
||||
e_widget_frametable_object_append(of, ob, 0, i + 1, 1, 1, 1, 1, 0, 0);
|
||||
}
|
||||
|
||||
e_widget_table_object_append(tab, of, 1, 0, 1, 2, 1, 1, 1, 1);
|
||||
|
||||
of = e_widget_frametable_add(evas, _("Weekend"), 0);
|
||||
|
||||
ob = e_widget_label_add(evas, _("Start"));
|
||||
e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 0, 1, 0, 0);
|
||||
rg = e_widget_radio_group_new(&(cfdata->cfg.weekend.start));
|
||||
for (i = 0; i < 7; i++)
|
||||
{
|
||||
ob = e_widget_radio_add(evas, daynames[i], i, rg);
|
||||
e_widget_frametable_object_append(of, ob, 0, i + 1, 1, 1, 1, 1, 0, 0);
|
||||
}
|
||||
|
||||
ob = e_widget_label_add(evas, _("Days"));
|
||||
e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 0, 1, 0, 0);
|
||||
rg = e_widget_radio_group_new(&(cfdata->cfg.weekend.len));
|
||||
ob = e_widget_radio_add(evas, _("None"), 0, rg);
|
||||
e_widget_frametable_object_append(of, ob, 1, 1, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_radio_add(evas, "1", 1, rg);
|
||||
e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_radio_add(evas, "2", 2, rg);
|
||||
e_widget_frametable_object_append(of, ob, 1, 3, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_radio_add(evas, "3", 3, rg);
|
||||
e_widget_frametable_object_append(of, ob, 1, 4, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_radio_add(evas, "4", 4, rg);
|
||||
e_widget_frametable_object_append(of, ob, 1, 5, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_radio_add(evas, "5", 5, rg);
|
||||
e_widget_frametable_object_append(of, ob, 1, 6, 1, 1, 1, 1, 0, 0);
|
||||
ob = e_widget_radio_add(evas, "6", 6, rg);
|
||||
e_widget_frametable_object_append(of, ob, 1, 7, 1, 1, 1, 1, 0, 0);
|
||||
|
||||
e_widget_table_object_append(tab, of, 2, 0, 1, 2, 1, 1, 1, 1);
|
||||
return tab;
|
||||
}
|
||||
|
||||
static int
|
||||
_basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED,
|
||||
E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
Config_Item *ci;
|
||||
|
||||
ci = cfd->data;
|
||||
memcpy(ci, &(cfdata->cfg), sizeof(Config_Item));
|
||||
ci->changed = EINA_TRUE;
|
||||
e_int_clock_instances_redo(EINA_FALSE);
|
||||
ci->changed = EINA_FALSE;
|
||||
e_config_save_queue();
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -23,6 +23,7 @@ typedef struct Z_Gadget_Site
|
|||
Z_Gadget_Site_Gravity gravity;
|
||||
Z_Gadget_Site_Orient orient;
|
||||
Z_Gadget_Site_Anchor anchor;
|
||||
Z_Gadget_Style_Cb style_cb;
|
||||
Eina_List *gadgets;
|
||||
Eina_List *fixed_gadgets;
|
||||
int cur_size;
|
||||
|
@ -37,8 +38,15 @@ typedef struct Z_Gadget_Site
|
|||
struct Z_Gadget_Config
|
||||
{
|
||||
E_Object *e_obj_inherit; //list?
|
||||
int id;
|
||||
Evas_Object *display; //list?
|
||||
Evas_Object *gadget; //list?
|
||||
unsigned int id;
|
||||
struct
|
||||
{
|
||||
Evas_Object *obj;
|
||||
int minw, minh;
|
||||
Eina_Stringshare *name;
|
||||
} style;
|
||||
Eina_Stringshare *type;
|
||||
Z_Gadget_Configure_Cb configure;
|
||||
Evas_Object *cfg_object;
|
||||
|
@ -73,7 +81,7 @@ _gadget_at_xy(Z_Gadget_Site *zgs, int x, int y, Z_Gadget_Config *exclude)
|
|||
|
||||
if (!zgc->gadget) continue;
|
||||
|
||||
evas_object_geometry_get(zgc->gadget, &ox, &oy, &ow, &oh);
|
||||
evas_object_geometry_get(zgc->display, &ox, &oy, &ow, &oh);
|
||||
if (E_INSIDE(x, y, ox + wx, oy + wy, ow, oh))
|
||||
{
|
||||
if (zgc == exclude) saved = zgc;
|
||||
|
@ -87,7 +95,7 @@ _gadget_at_xy(Z_Gadget_Site *zgs, int x, int y, Z_Gadget_Config *exclude)
|
|||
|
||||
if (!zgc->gadget) continue;
|
||||
|
||||
evas_object_geometry_get(zgc->gadget, &ox, &oy, &ow, &oh);
|
||||
evas_object_geometry_get(zgc->display, &ox, &oy, &ow, &oh);
|
||||
if (E_INSIDE(x, y, ox + wx, oy + wy, ow, oh))
|
||||
{
|
||||
if (zgc == exclude) saved = zgc;
|
||||
|
@ -127,7 +135,7 @@ _gravity_apply(Evas_Object *ly, Z_Gadget_Site_Gravity gravity)
|
|||
}
|
||||
|
||||
static void
|
||||
_gadget_reparent(Z_Gadget_Site *zgs, Evas_Object *g)
|
||||
_gadget_reparent(Z_Gadget_Site *zgs, Z_Gadget_Config *zgc)
|
||||
{
|
||||
switch (zgs->gravity)
|
||||
{
|
||||
|
@ -136,11 +144,11 @@ _gadget_reparent(Z_Gadget_Site *zgs, Evas_Object *g)
|
|||
break;
|
||||
case Z_GADGET_SITE_GRAVITY_LEFT:
|
||||
case Z_GADGET_SITE_GRAVITY_TOP:
|
||||
elm_box_pack_end(zgs->layout, g);
|
||||
elm_box_pack_end(zgs->layout, zgc->display);
|
||||
break;
|
||||
default:
|
||||
/* right aligned: pack on left */
|
||||
elm_box_pack_start(zgs->layout, g);
|
||||
elm_box_pack_start(zgs->layout, zgc->display);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -164,6 +172,7 @@ _gadget_object_free(E_Object *eobj)
|
|||
evas_object_smart_callback_call(zgc->site->layout, "gadget_removed", zgc->gadget);
|
||||
E_FREE_FUNC(zgc->gadget, evas_object_del);
|
||||
evas_object_del(zgc->cfg_object);
|
||||
evas_object_del(zgc->style.obj);
|
||||
E_FREE(zgc->e_obj_inherit);
|
||||
}
|
||||
|
||||
|
@ -176,6 +185,8 @@ _site_gadget_resize(Evas_Object *g, int w, int h, Evas_Coord *ww, Evas_Coord *hh
|
|||
int ax, ay;
|
||||
|
||||
zgc = evas_object_data_get(g, "__z_gadget");
|
||||
w -= zgc->style.minw;
|
||||
h -= zgc->style.minh;
|
||||
|
||||
evas_object_size_hint_min_get(g, &mnw, &mnh);
|
||||
evas_object_size_hint_max_get(g, &mxw, &mxh);
|
||||
|
@ -191,7 +202,7 @@ _site_gadget_resize(Evas_Object *g, int w, int h, Evas_Coord *ww, Evas_Coord *hh
|
|||
*hh = mnh, *ww = w;
|
||||
if (!(*hh)) *hh = *ww;
|
||||
}
|
||||
if (zgc->site->orient && ax && ay)
|
||||
if (aspect && ax && ay)
|
||||
{
|
||||
switch (aspect)
|
||||
{
|
||||
|
@ -208,6 +219,8 @@ _site_gadget_resize(Evas_Object *g, int w, int h, Evas_Coord *ww, Evas_Coord *hh
|
|||
*hh = (*ww * ay / ax);
|
||||
}
|
||||
}
|
||||
*ww += zgc->style.minw;
|
||||
*hh += zgc->style.minh;
|
||||
*ow = *ww, *oh = *hh;
|
||||
if ((!ax) && (!ay))
|
||||
{
|
||||
|
@ -215,7 +228,7 @@ _site_gadget_resize(Evas_Object *g, int w, int h, Evas_Coord *ww, Evas_Coord *hh
|
|||
if ((mxh >= 0) && (mxh < *oh)) *oh = mxh;
|
||||
}
|
||||
|
||||
evas_object_resize(g, *ow, *oh);
|
||||
evas_object_resize(zgc->display, *ow, *oh);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -243,22 +256,24 @@ _site_layout(Evas_Object *o, Evas_Object_Box_Data *priv EINA_UNUSED, void *data)
|
|||
Evas_Coord gx = xx, gy = yy;
|
||||
int ww, hh, ow, oh;
|
||||
|
||||
_site_gadget_resize(zgc->gadget, w, h, &ww, &hh, &ow, &oh);
|
||||
_site_gadget_resize(zgc->gadget, w - (xx - x), h - (yy - y), &ww, &hh, &ow, &oh);
|
||||
if (IS_HORIZ(zgs->orient))
|
||||
gx += (Evas_Coord)(((double)(ww - ow)) * 0.5);
|
||||
else
|
||||
gy += (Evas_Coord)(((double)(hh - oh)) * 0.5);
|
||||
gx += (Evas_Coord)(((double)(ww - ow)) * 0.5),
|
||||
gy += (h / 2) - (oh / 2);
|
||||
else if (IS_VERT(zgs->orient))
|
||||
gy += (Evas_Coord)(((double)(hh - oh)) * 0.5),
|
||||
gx += (w / 2) - (ow / 2);
|
||||
if (zgc->over)
|
||||
evas_object_stack_above(zgc->gadget, zgc->over->gadget);
|
||||
evas_object_stack_above(zgc->display, zgc->over->gadget);
|
||||
if (zgs->orient && ((zgc->x > -1) || (zgc->y > -1)))
|
||||
{
|
||||
if (IS_HORIZ(zgs->orient))
|
||||
evas_object_move(zgc->gadget, zgc->x * (double)w, gy);
|
||||
evas_object_move(zgc->display, zgc->x * (double)w, gy);
|
||||
else
|
||||
evas_object_move(zgc->gadget, gx, zgc->y * (double)h);
|
||||
evas_object_move(zgc->display, gx, zgc->y * (double)h);
|
||||
}
|
||||
else
|
||||
evas_object_move(zgc->gadget, gx, gy);
|
||||
evas_object_move(zgc->display, gx, gy);
|
||||
if (IS_HORIZ(zgs->orient))
|
||||
xx += ow;
|
||||
else
|
||||
|
@ -278,12 +293,14 @@ _site_layout(Evas_Object *o, Evas_Object_Box_Data *priv EINA_UNUSED, void *data)
|
|||
Evas_Coord gx = xx, gy = yy;
|
||||
int ww, hh, ow, oh;
|
||||
|
||||
_site_gadget_resize(zgc->gadget, w, h, &ww, &hh, &ow, &oh);
|
||||
_site_gadget_resize(zgc->gadget, w - (xx - x), h - (yy - y), &ww, &hh, &ow, &oh);
|
||||
if (IS_HORIZ(zgs->orient))
|
||||
gx -= (Evas_Coord)(((double)(ww - ow)) * 0.5) + ow;
|
||||
gx -= (Evas_Coord)(((double)(ww - ow)) * 0.5) + ow,
|
||||
gy += (h / 2) - (oh / 2);
|
||||
else
|
||||
gy -= (Evas_Coord)(((double)(hh - oh)) * 0.5) + oh;
|
||||
evas_object_move(zgc->gadget, gx, gy);
|
||||
gy -= (Evas_Coord)(((double)(hh - oh)) * 0.5) + oh,
|
||||
gx += (w / 2) - (ow / 2);
|
||||
evas_object_move(zgc->display, gx, gy);
|
||||
if (IS_HORIZ(zgs->orient))
|
||||
xx -= ow;
|
||||
else
|
||||
|
@ -304,7 +321,7 @@ _site_layout(Evas_Object *o, Evas_Object_Box_Data *priv EINA_UNUSED, void *data)
|
|||
Evas_Coord gx = xx, gy = yy;
|
||||
int ww, hh, ow, oh;
|
||||
|
||||
_site_gadget_resize(zgc->gadget, w, h, &ww, &hh, &ow, &oh);
|
||||
_site_gadget_resize(zgc->gadget, w - (px - x), h - (py - y), &ww, &hh, &ow, &oh);
|
||||
if (IS_HORIZ(zgc->site->orient))
|
||||
{
|
||||
gx = ((1 - ax) * xx) + (zgc->x * (w - zgs->cur_size));
|
||||
|
@ -333,7 +350,7 @@ _site_layout(Evas_Object *o, Evas_Object_Box_Data *priv EINA_UNUSED, void *data)
|
|||
if (gy > py) gy = py;
|
||||
}
|
||||
|
||||
evas_object_move(zgc->gadget, gx, gy);
|
||||
evas_object_move(zgc->display, gx, gy);
|
||||
if (IS_HORIZ(zgs->orient))
|
||||
px = gx + (-ax * ow);
|
||||
else
|
||||
|
@ -363,7 +380,7 @@ _gadget_mouse_move(Z_Gadget_Config *zgc, int t EINA_UNUSED, Ecore_Event_Mouse_Mo
|
|||
mx = ev->x;
|
||||
my = ev->y;
|
||||
|
||||
evas_object_geometry_get(zgc->gadget, &ox, &oy, &ow, &oh);
|
||||
evas_object_geometry_get(zgc->display, &ox, &oy, &ow, &oh);
|
||||
ox += wx, oy += wy;
|
||||
|
||||
rw = &gw;
|
||||
|
@ -720,7 +737,7 @@ _site_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_
|
|||
zgs->mouse_up_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP, (Ecore_Event_Handler_Cb)_site_mouse_up, zgs);
|
||||
|
||||
|
||||
evas_object_geometry_get(zgc->gadget, &x, &y, NULL, NULL);
|
||||
evas_object_geometry_get(zgc->display, &x, &y, NULL, NULL);
|
||||
zgc->offset.x = ev->canvas.x - x;
|
||||
zgc->offset.y = ev->canvas.y - y;
|
||||
}
|
||||
|
@ -786,11 +803,12 @@ z_gadget_site_anchor_get(Evas_Object *obj)
|
|||
}
|
||||
|
||||
Z_API void
|
||||
z_gadget_site_anchor_set(Evas_Object *obj, Z_Gadget_Site_Anchor an)
|
||||
z_gadget_site_owner_set(Evas_Object *obj, Z_Gadget_Site_Anchor an, Z_Gadget_Style_Cb cb)
|
||||
{
|
||||
ZGS_GET(obj);
|
||||
|
||||
zgs->anchor = an;
|
||||
zgs->style_cb = cb;
|
||||
evas_object_smart_callback_call(obj, "gadget_anchor", NULL);
|
||||
}
|
||||
|
||||
|
@ -815,7 +833,7 @@ z_gadget_site_gadget_add(Evas_Object *obj, const char *type)
|
|||
Z_Gadget_Create_Cb cb;
|
||||
Evas_Object *g;
|
||||
Z_Gadget_Config *zgc;
|
||||
unsigned int id = 0;
|
||||
int id = 0;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN(gadget_types);
|
||||
ZGS_GET(obj);
|
||||
|
@ -836,21 +854,23 @@ z_gadget_site_gadget_add(Evas_Object *obj, const char *type)
|
|||
e_object_data_set(zgc->e_obj_inherit, g);
|
||||
zgc->id = id;
|
||||
zgc->type = eina_stringshare_add(buf);
|
||||
zgc->gadget = g;
|
||||
zgc->gadget = zgc->display = g;
|
||||
zgc->x = -1;
|
||||
zgc->y = -1;
|
||||
zgc->site = zgs;
|
||||
evas_object_data_set(g, "__z_gadget", zgc);
|
||||
if (zgs->style_cb)
|
||||
zgs->style_cb(g, NULL);
|
||||
|
||||
evas_object_event_callback_add(g, EVAS_CALLBACK_DEL, _gadget_del, zgc);
|
||||
zgs->gadgets = eina_list_append(zgs->gadgets, zgc);
|
||||
_gadget_reparent(zgs, g);
|
||||
_gadget_reparent(zgs, zgc);
|
||||
evas_object_raise(zgs->events);
|
||||
|
||||
evas_object_smart_callback_call(obj, "gadget_added", g);
|
||||
evas_object_smart_callback_call(obj, "gadget_gravity", g);
|
||||
|
||||
evas_object_show(g);
|
||||
evas_object_show(zgc->display);
|
||||
}
|
||||
|
||||
Z_API Evas_Object *
|
||||
|
@ -915,3 +935,24 @@ z_gadget_type_del(const char *type)
|
|||
evas_object_del(zgc->gadget);
|
||||
}
|
||||
}
|
||||
|
||||
Z_API Evas_Object *
|
||||
z_gadget_util_layout_style_init(Evas_Object *g, Evas_Object *style)
|
||||
{
|
||||
Z_Gadget_Config *zgc;
|
||||
Evas_Object *prev;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(g, NULL);
|
||||
zgc = evas_object_data_get(g, "__z_gadget");
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(zgc, NULL);
|
||||
|
||||
prev = zgc->style.obj;
|
||||
zgc->style.obj = style;
|
||||
zgc->display = style ?: zgc->gadget;
|
||||
if (!style) return prev;
|
||||
|
||||
elm_layout_sizing_eval(style);
|
||||
evas_object_smart_calculate(style);
|
||||
evas_object_size_hint_min_get(style, &zgc->style.minw, &zgc->style.minh);
|
||||
return prev;
|
||||
}
|
||||
|
|
|
@ -1,13 +1,29 @@
|
|||
#include "gadget.h"
|
||||
|
||||
EINTERN Evas_Object *start_create(Evas_Object *parent, unsigned int *id EINA_UNUSED, Z_Gadget_Site_Orient orient);;
|
||||
EINTERN Evas_Object *start_create(Evas_Object *parent, int *id EINA_UNUSED, Z_Gadget_Site_Orient orient);;
|
||||
|
||||
EINTERN void clock_init(void);
|
||||
EINTERN void clock_shutdown(void);
|
||||
EINTERN void ibar_init(void);
|
||||
|
||||
static Evas_Object *shelf;
|
||||
static Evas_Object *site;
|
||||
|
||||
static void
|
||||
_demo_style(Evas_Object *g, Eina_Stringshare *name)
|
||||
{
|
||||
Evas_Object *ly;
|
||||
static int n;
|
||||
|
||||
ly = elm_layout_add(site);
|
||||
if (n++ % 2)
|
||||
e_theme_edje_object_set(ly, NULL, "e/shelf/default/inset");
|
||||
else
|
||||
e_theme_edje_object_set(ly, NULL, "e/shelf/default/plain");
|
||||
z_gadget_util_layout_style_init(g, ly);
|
||||
elm_object_part_content_set(ly, "e.swallow.content", g);
|
||||
}
|
||||
|
||||
EINTERN void
|
||||
gadget_demo(void)
|
||||
{
|
||||
|
@ -18,12 +34,13 @@ gadget_demo(void)
|
|||
if (e_comp->w > 1200) return;
|
||||
z_gadget_type_add("Start", start_create);
|
||||
clock_init();
|
||||
ibar_init();
|
||||
|
||||
ly = elm_layout_add(e_comp->elm);
|
||||
e_theme_edje_object_set(ly, NULL, "e/shelf/default/base");
|
||||
|
||||
site = z_gadget_site_add(ly, Z_GADGET_SITE_ORIENT_HORIZONTAL);
|
||||
z_gadget_site_anchor_set(site, Z_GADGET_SITE_ANCHOR_TOP);
|
||||
z_gadget_site_owner_set(site, Z_GADGET_SITE_ANCHOR_TOP, _demo_style);
|
||||
elm_object_part_content_set(ly, "e.swallow.content", site);
|
||||
elm_layout_signal_emit(ly, "e,state,orientation,top", "e");
|
||||
evas_object_geometry_set(ly, 0, 0, e_comp->w, 48);
|
||||
|
@ -38,4 +55,7 @@ gadget_demo(void)
|
|||
|
||||
z_gadget_site_gadget_add(site, "Start");
|
||||
z_gadget_site_gadget_add(site, "Clock");
|
||||
z_gadget_site_gadget_add(site, "IBar");
|
||||
z_gadget_site_gadget_add(site, "Clock");
|
||||
z_gadget_site_gadget_add(site, "IBar");
|
||||
}
|
||||
|
|
|
@ -32,12 +32,13 @@ typedef enum
|
|||
Z_GADGET_SITE_ANCHOR_BOTTOM = (1 << 3),
|
||||
} Z_Gadget_Site_Anchor;
|
||||
|
||||
typedef Evas_Object *(*Z_Gadget_Create_Cb)(Evas_Object *parent, unsigned int *id, Z_Gadget_Site_Orient orient);
|
||||
typedef Evas_Object *(*Z_Gadget_Create_Cb)(Evas_Object *parent, int *id, Z_Gadget_Site_Orient orient);
|
||||
typedef Evas_Object *(*Z_Gadget_Configure_Cb)(Evas_Object *gadget);
|
||||
typedef void (*Z_Gadget_Style_Cb)(Evas_Object *gadget, Eina_Stringshare *name);
|
||||
|
||||
Z_API Evas_Object *z_gadget_site_add(Evas_Object *parent, Z_Gadget_Site_Orient orient);
|
||||
Z_API Z_Gadget_Site_Anchor z_gadget_site_anchor_get(Evas_Object *obj);
|
||||
Z_API void z_gadget_site_anchor_set(Evas_Object *obj, Z_Gadget_Site_Anchor an);
|
||||
Z_API void z_gadget_site_owner_set(Evas_Object *obj, Z_Gadget_Site_Anchor an, Z_Gadget_Style_Cb cb);
|
||||
Z_API Z_Gadget_Site_Orient z_gadget_site_orient_get(Evas_Object *obj);
|
||||
Z_API Z_Gadget_Site_Gravity z_gadget_site_gravity_get(Evas_Object *obj);
|
||||
Z_API void z_gadget_site_gadget_add(Evas_Object *obj, const char *type);
|
||||
|
@ -47,8 +48,9 @@ Z_API void z_gadget_configure_cb_set(Evas_Object *g, Z_Gadget_Configure_Cb cb);
|
|||
Z_API void z_gadget_configure(Evas_Object *g);
|
||||
Z_API Evas_Object *z_gadget_site_get(Evas_Object *g);
|
||||
|
||||
|
||||
Z_API void z_gadget_type_add(const char *type, Z_Gadget_Create_Cb callback);
|
||||
Z_API void z_gadget_type_del(const char *type);
|
||||
|
||||
Z_API Evas_Object *z_gadget_util_layout_style_init(Evas_Object *g, Evas_Object *style);
|
||||
|
||||
#endif
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,53 @@
|
|||
#ifndef IBAR_H
|
||||
#define IBAR_H
|
||||
|
||||
#define N_(X) (X)
|
||||
|
||||
typedef struct _Config Config;
|
||||
typedef struct _Config_Item Config_Item;
|
||||
|
||||
struct _Config
|
||||
{
|
||||
/* saved * loaded config values */
|
||||
Eina_List *items;
|
||||
/* just config state */
|
||||
E_Module *module;
|
||||
E_Config_Dialog *config_dialog;
|
||||
Eina_List *instances;
|
||||
Eina_List *handlers;
|
||||
};
|
||||
|
||||
struct _Config_Item
|
||||
{
|
||||
int id;
|
||||
const char *dir;
|
||||
int show_label;
|
||||
int eap_label;
|
||||
int lock_move;
|
||||
int dont_add_nonorder;
|
||||
unsigned char dont_track_launch;
|
||||
unsigned char dont_icon_menu_mouseover;
|
||||
};
|
||||
|
||||
E_API extern E_Module_Api e_modapi;
|
||||
|
||||
E_API void *e_modapi_init (E_Module *m);
|
||||
E_API int e_modapi_shutdown (E_Module *m);
|
||||
E_API int e_modapi_save (E_Module *m);
|
||||
|
||||
void _ibar_config_update(Config_Item *ci);
|
||||
void _config_ibar_module(Config_Item *ci);
|
||||
extern Config *ibar_config;
|
||||
|
||||
/**
|
||||
* @addtogroup Optional_Gadgets
|
||||
* @{
|
||||
*
|
||||
* @defgroup Module_IBar IBar (Icon Launch Bar)
|
||||
*
|
||||
* Launches applications from an icon bar, usually placed on shelves.
|
||||
*
|
||||
* @}
|
||||
*/
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue