feeble ibar port, gadget styles

This commit is contained in:
Mike Blumenkrantz 2016-01-06 14:39:09 -05:00
parent 0a4bb33218
commit f85d5e2cb3
9 changed files with 3123 additions and 42 deletions

View File

@ -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

View File

@ -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;

View File

@ -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;

177
src/gadgets/clock/config.c Normal file
View File

@ -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;
}

View File

@ -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;
}

View File

@ -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");
}

View File

@ -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

2789
src/gadgets/ibar/ibar.c Normal file

File diff suppressed because it is too large Load Diff

53
src/gadgets/ibar/ibar.h Normal file
View File

@ -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