forked from enlightenment/enlightenment
parent
218076320e
commit
8304a2cb9e
|
@ -250,53 +250,69 @@ e_shelf_hide(E_Shelf *es)
|
|||
}
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_shelf_locked_set(E_Shelf *es, int lock)
|
||||
{
|
||||
printf("Lock shelf: %d\n", lock);
|
||||
if (lock)
|
||||
{
|
||||
e_shelf_toggle(es, 1);
|
||||
es->locked = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
es->locked = 0;
|
||||
e_shelf_toggle(es, es->toggle);
|
||||
}
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_shelf_toggle(E_Shelf *es, int show)
|
||||
{
|
||||
E_OBJECT_CHECK(es);
|
||||
E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
|
||||
E_OBJECT_CHECK(es);
|
||||
E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
|
||||
|
||||
es->interrupted = -1;
|
||||
if ((show) && (es->hidden))
|
||||
{
|
||||
es->hidden = 0;
|
||||
edje_object_signal_emit(es->o_base, "e,state,visible", "e");
|
||||
if (es->instant_delay >= 0.0)
|
||||
{
|
||||
_e_shelf_cb_instant_hide_timer(es);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (es->hide_timer)
|
||||
{
|
||||
ecore_timer_del(es->hide_timer);
|
||||
es->hide_timer = NULL;
|
||||
}
|
||||
if (!es->hide_animator)
|
||||
es->hide_animator = ecore_animator_add(_e_shelf_cb_hide_animator, es);
|
||||
}
|
||||
}
|
||||
else if ((!show) && (!es->hidden) && (!es->gadcon->editing) && (es->cfg->autohide))
|
||||
{
|
||||
edje_object_signal_emit(es->o_base, "e,state,hidden", "e");
|
||||
if (es->instant_delay >= 0.0)
|
||||
{
|
||||
es->hidden = 1;
|
||||
if (!es->instant_timer)
|
||||
es->instant_timer = ecore_timer_add(es->instant_delay, _e_shelf_cb_instant_hide_timer, es);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (es->hide_animator)
|
||||
{
|
||||
es->interrupted = show;
|
||||
return;
|
||||
}
|
||||
es->hidden = 1;
|
||||
if (es->hide_timer) ecore_timer_del(es->hide_timer);
|
||||
es->hide_timer = ecore_timer_add(es->cfg->hide_timeout, _e_shelf_cb_hide_animator_timer, es);
|
||||
}
|
||||
}
|
||||
es->toggle = show;
|
||||
if (es->locked)
|
||||
es->interrupted = -1;
|
||||
if ((show) && (es->hidden))
|
||||
{
|
||||
es->hidden = 0;
|
||||
edje_object_signal_emit(es->o_base, "e,state,visible", "e");
|
||||
if (es->instant_delay >= 0.0)
|
||||
_e_shelf_cb_instant_hide_timer(es);
|
||||
else
|
||||
{
|
||||
if (es->hide_timer)
|
||||
{
|
||||
ecore_timer_del(es->hide_timer);
|
||||
es->hide_timer = NULL;
|
||||
}
|
||||
if (!es->hide_animator)
|
||||
es->hide_animator = ecore_animator_add(_e_shelf_cb_hide_animator, es);
|
||||
}
|
||||
}
|
||||
else if ((!show) && (!es->hidden) && (!es->gadcon->editing) && (es->cfg->autohide))
|
||||
{
|
||||
edje_object_signal_emit(es->o_base, "e,state,hidden", "e");
|
||||
if (es->instant_delay >= 0.0)
|
||||
{
|
||||
es->hidden = 1;
|
||||
if (!es->instant_timer)
|
||||
es->instant_timer = ecore_timer_add(es->instant_delay, _e_shelf_cb_instant_hide_timer, es);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (es->hide_animator)
|
||||
{
|
||||
es->interrupted = show;
|
||||
return;
|
||||
}
|
||||
es->hidden = 1;
|
||||
if (es->hide_timer) ecore_timer_del(es->hide_timer);
|
||||
es->hide_timer = ecore_timer_add(es->cfg->hide_timeout, _e_shelf_cb_hide_animator_timer, es);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -609,31 +625,31 @@ EAPI E_Shelf *
|
|||
e_shelf_config_new(E_Zone *zone, E_Config_Shelf *cf_es)
|
||||
{
|
||||
E_Shelf *es;
|
||||
|
||||
|
||||
es = e_shelf_zone_new(zone, cf_es->name, cf_es->style,
|
||||
cf_es->popup, cf_es->layer, cf_es->id);
|
||||
cf_es->popup, cf_es->layer, cf_es->id);
|
||||
if (!es) return NULL;
|
||||
|
||||
|
||||
if (!cf_es->hide_timeout) cf_es->hide_timeout = 1.0;
|
||||
if (!cf_es->hide_duration) cf_es->hide_duration = 1.0;
|
||||
es->cfg = cf_es;
|
||||
es->fit_along = cf_es->fit_along;
|
||||
es->fit_size = cf_es->fit_size;
|
||||
|
||||
|
||||
e_shelf_orient(es, cf_es->orient);
|
||||
e_shelf_position_calc(es);
|
||||
e_shelf_populate(es);
|
||||
|
||||
|
||||
if (cf_es->desk_show_mode)
|
||||
{
|
||||
E_Desk *desk;
|
||||
Evas_List *ll;
|
||||
|
||||
|
||||
desk = e_desk_current_get(zone);
|
||||
for (ll = cf_es->desk_list; ll; ll = ll->next)
|
||||
{
|
||||
E_Config_Shelf_Desk *sd;
|
||||
|
||||
|
||||
sd = ll->data;
|
||||
if ((desk->x == sd->x) && (desk->y == sd->y))
|
||||
{
|
||||
|
@ -644,7 +660,7 @@ e_shelf_config_new(E_Zone *zone, E_Config_Shelf *cf_es)
|
|||
}
|
||||
else
|
||||
e_shelf_show(es);
|
||||
|
||||
|
||||
e_shelf_toggle(es, 0);
|
||||
return es;
|
||||
}
|
||||
|
|
|
@ -28,9 +28,6 @@ struct _E_Shelf
|
|||
const char *name;
|
||||
const char *style;
|
||||
E_Config_Shelf *cfg;
|
||||
unsigned char fit_along : 1;
|
||||
unsigned char fit_size : 1;
|
||||
unsigned char hidden : 1;
|
||||
int size;
|
||||
E_Config_Dialog *config_dialog;
|
||||
E_Menu *menu;
|
||||
|
@ -43,6 +40,11 @@ struct _E_Shelf
|
|||
float instant_delay;
|
||||
Ecore_Timer *instant_timer;
|
||||
Evas_List *handlers;
|
||||
unsigned char fit_along : 1;
|
||||
unsigned char fit_size : 1;
|
||||
unsigned char hidden : 1;
|
||||
unsigned char locked : 1;
|
||||
unsigned char toggle : 1;
|
||||
};
|
||||
|
||||
EAPI int e_shelf_init(void);
|
||||
|
@ -54,6 +56,7 @@ EAPI void e_shelf_zone_move_resize_handle(E_Zone *zone);
|
|||
EAPI void e_shelf_populate(E_Shelf *es);
|
||||
EAPI void e_shelf_show(E_Shelf *es);
|
||||
EAPI void e_shelf_hide(E_Shelf *es);
|
||||
EAPI void e_shelf_locked_set(E_Shelf *es, int lock);
|
||||
EAPI void e_shelf_toggle(E_Shelf *es, int show);
|
||||
EAPI void e_shelf_move(E_Shelf *es, int x, int y);
|
||||
EAPI void e_shelf_resize(E_Shelf *es, int w, int h);
|
||||
|
|
Loading…
Reference in New Issue