forked from enlightenment/enlightenment
* Add a new menu api call :
EAPI void e_menu_item_disabled_set(E_Menu_Item *mi, int disable) Setting the menu item 'disabled' will gray it out and will make it unselectable. SVN revision: 39802
This commit is contained in:
parent
c6b5f985fe
commit
f71eea73b2
|
@ -5944,11 +5944,21 @@ collections { /* begin the collection of edje groups that are in this file */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this group holds a menu icon. here we just use it to add padding around
|
/* this group holds a menu icon. here we just use it to add padding around
|
||||||
* the icon */
|
* the icon. And to gray-out when disabled */
|
||||||
group { name: "e/widgets/menu/default/icon";
|
group { name: "e/widgets/menu/default/icon";
|
||||||
parts {
|
parts {
|
||||||
|
part { name: "clip";
|
||||||
|
type: RECT;
|
||||||
|
description { state: "default" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
}
|
||||||
|
description { state: "disabled" 0.0;
|
||||||
|
color: 255 255 255 128;
|
||||||
|
}
|
||||||
|
}
|
||||||
part { name: "e.swallow.content"; /* icon is swallowed here */
|
part { name: "e.swallow.content"; /* icon is swallowed here */
|
||||||
type: SWALLOW;
|
type: SWALLOW;
|
||||||
|
clip_to: "clip";
|
||||||
description {
|
description {
|
||||||
state: "default" 0.0;
|
state: "default" 0.0;
|
||||||
rel1 {
|
rel1 {
|
||||||
|
@ -5962,6 +5972,20 @@ collections { /* begin the collection of edje groups that are in this file */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
programs {
|
||||||
|
program { name: "enable"; /* enable */
|
||||||
|
signal: "e,state,enable";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
target: "clip";
|
||||||
|
}
|
||||||
|
program { name: "disable"; /* disable */
|
||||||
|
signal: "e,state,disable";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "disabled" 0.0;
|
||||||
|
target: "clip";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* this is the actual text label for the menu item */
|
/* this is the actual text label for the menu item */
|
||||||
|
@ -5972,8 +5996,7 @@ collections { /* begin the collection of edje groups that are in this file */
|
||||||
effect: SOFT_SHADOW;
|
effect: SOFT_SHADOW;
|
||||||
mouse_events: 0;
|
mouse_events: 0;
|
||||||
scale: 1;
|
scale: 1;
|
||||||
description {
|
description { state: "default" 0.0;
|
||||||
state: "default" 0.0;
|
|
||||||
rel1 {
|
rel1 {
|
||||||
relative: 0.0 0.0;
|
relative: 0.0 0.0;
|
||||||
offset: 1 -1;
|
offset: 1 -1;
|
||||||
|
@ -5999,6 +6022,11 @@ collections { /* begin the collection of edje groups that are in this file */
|
||||||
color3: 0 0 0 64;
|
color3: 0 0 0 64;
|
||||||
color_class: "menu_item";
|
color_class: "menu_item";
|
||||||
}
|
}
|
||||||
|
description { state: "disabled" 0.0;
|
||||||
|
inherit: "default" 0.0;
|
||||||
|
color: 110 110 110 255;
|
||||||
|
color3: 0 0 0 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
programs {
|
programs {
|
||||||
|
@ -6016,6 +6044,20 @@ collections { /* begin the collection of edje groups that are in this file */
|
||||||
transition: LINEAR 0.3;
|
transition: LINEAR 0.3;
|
||||||
target: "e.text.label";
|
target: "e.text.label";
|
||||||
}
|
}
|
||||||
|
program { name: "enable"; /* enable */
|
||||||
|
signal: "e,state,enable";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
transition: LINEAR 0.3;
|
||||||
|
target: "e.text.label";
|
||||||
|
}
|
||||||
|
program { name: "disable"; /* disable */
|
||||||
|
signal: "e,state,disable";
|
||||||
|
source: "e";
|
||||||
|
action: STATE_SET "disabled" 0.0;
|
||||||
|
//transition: LINEAR 0.3;
|
||||||
|
target: "e.text.label";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -818,6 +818,7 @@ e_menu_item_active_set(E_Menu_Item *mi, int active)
|
||||||
{
|
{
|
||||||
E_Menu_Item *pmi;
|
E_Menu_Item *pmi;
|
||||||
|
|
||||||
|
if (mi->disable) return;
|
||||||
pmi = _e_menu_item_active_get();
|
pmi = _e_menu_item_active_get();
|
||||||
if (mi == pmi) return;
|
if (mi == pmi) return;
|
||||||
if (pmi) e_menu_item_active_set(pmi, 0);
|
if (pmi) e_menu_item_active_set(pmi, 0);
|
||||||
|
@ -859,6 +860,36 @@ e_menu_item_active_set(E_Menu_Item *mi, int active)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_menu_item_disabled_set(E_Menu_Item *mi, int disable)
|
||||||
|
{
|
||||||
|
E_OBJECT_CHECK(mi);
|
||||||
|
E_OBJECT_TYPE_CHECK(mi, E_MENU_ITEM_TYPE);
|
||||||
|
if (mi->separator) return;
|
||||||
|
if ((disable))
|
||||||
|
{
|
||||||
|
if (mi->active) e_menu_item_active_set(mi, 0);
|
||||||
|
mi->disable = 1;
|
||||||
|
if (mi->icon_bg_object)
|
||||||
|
edje_object_signal_emit(mi->icon_bg_object, "e,state,disable", "e");
|
||||||
|
if (mi->label_object)
|
||||||
|
edje_object_signal_emit(mi->label_object, "e,state,disable", "e");
|
||||||
|
if (mi->toggle_object)
|
||||||
|
edje_object_signal_emit(mi->toggle_object, "e,state,disable", "e");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mi->disable = 0;
|
||||||
|
if (mi->icon_bg_object)
|
||||||
|
edje_object_signal_emit(mi->icon_bg_object, "e,state,enable", "e");
|
||||||
|
if (mi->label_object)
|
||||||
|
edje_object_signal_emit(mi->label_object, "e,state,enable", "e");
|
||||||
|
if (mi->toggle_object)
|
||||||
|
edje_object_signal_emit(mi->toggle_object, "e,state,enable", "e");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_menu_idler_before(void)
|
e_menu_idler_before(void)
|
||||||
{
|
{
|
||||||
|
@ -1354,6 +1385,7 @@ _e_menu_item_realize(E_Menu_Item *mi)
|
||||||
}
|
}
|
||||||
if (mi->active) e_menu_item_active_set(mi, 1);
|
if (mi->active) e_menu_item_active_set(mi, 1);
|
||||||
if (mi->toggle) e_menu_item_toggle_set(mi, 1);
|
if (mi->toggle) e_menu_item_toggle_set(mi, 1);
|
||||||
|
if (mi->disable) e_menu_item_disabled_set(mi, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1922,7 +1954,7 @@ _e_menu_item_activate_next(void)
|
||||||
else
|
else
|
||||||
ll = ll->next;
|
ll = ll->next;
|
||||||
mi = ll->data;
|
mi = ll->data;
|
||||||
while (mi->separator)
|
while (mi->separator || mi->disable)
|
||||||
{
|
{
|
||||||
if (!(ll->next))
|
if (!(ll->next))
|
||||||
ll = mi->menu->items;
|
ll = mi->menu->items;
|
||||||
|
@ -1956,7 +1988,7 @@ _e_menu_item_activate_previous(void)
|
||||||
else
|
else
|
||||||
ll = ll->prev;
|
ll = ll->prev;
|
||||||
mi = ll->data;
|
mi = ll->data;
|
||||||
while (mi->separator)
|
while (mi->separator || mi->disable)
|
||||||
{
|
{
|
||||||
if (!(ll->prev))
|
if (!(ll->prev))
|
||||||
ll = eina_list_last(ll);
|
ll = eina_list_last(ll);
|
||||||
|
|
|
@ -146,6 +146,7 @@ struct _E_Menu_Item
|
||||||
unsigned char toggle : 1;
|
unsigned char toggle : 1;
|
||||||
unsigned char changed : 1;
|
unsigned char changed : 1;
|
||||||
unsigned char active : 1;
|
unsigned char active : 1;
|
||||||
|
unsigned char disable : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Menu_Category_Callback
|
struct _E_Menu_Category_Callback
|
||||||
|
@ -201,6 +202,7 @@ EAPI void e_menu_item_submenu_pre_callback_set(E_Menu_Item *mi, void (*
|
||||||
EAPI void e_menu_item_submenu_post_callback_set(E_Menu_Item *mi, void (*func) (void *data, E_Menu *m, E_Menu_Item *mi), void *data);
|
EAPI void e_menu_item_submenu_post_callback_set(E_Menu_Item *mi, void (*func) (void *data, E_Menu *m, E_Menu_Item *mi), void *data);
|
||||||
EAPI void e_menu_item_drag_callback_set(E_Menu_Item *mi, void (*func) (void *data, E_Menu *m, E_Menu_Item *mi), void *data);
|
EAPI void e_menu_item_drag_callback_set(E_Menu_Item *mi, void (*func) (void *data, E_Menu *m, E_Menu_Item *mi), void *data);
|
||||||
EAPI void e_menu_item_active_set(E_Menu_Item *mi, int active);
|
EAPI void e_menu_item_active_set(E_Menu_Item *mi, int active);
|
||||||
|
EAPI void e_menu_item_disabled_set(E_Menu_Item *mi, int disable);
|
||||||
|
|
||||||
EAPI void e_menu_idler_before(void);
|
EAPI void e_menu_idler_before(void);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue