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
|
||||
* the icon */
|
||||
* the icon. And to gray-out when disabled */
|
||||
group { name: "e/widgets/menu/default/icon";
|
||||
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 */
|
||||
type: SWALLOW;
|
||||
clip_to: "clip";
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
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 */
|
||||
|
@ -5972,8 +5996,7 @@ collections { /* begin the collection of edje groups that are in this file */
|
|||
effect: SOFT_SHADOW;
|
||||
mouse_events: 0;
|
||||
scale: 1;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
description { state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 1 -1;
|
||||
|
@ -5999,6 +6022,11 @@ collections { /* begin the collection of edje groups that are in this file */
|
|||
color3: 0 0 0 64;
|
||||
color_class: "menu_item";
|
||||
}
|
||||
description { state: "disabled" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
color: 110 110 110 255;
|
||||
color3: 0 0 0 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
|
@ -6016,6 +6044,20 @@ collections { /* begin the collection of edje groups that are in this file */
|
|||
transition: LINEAR 0.3;
|
||||
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;
|
||||
|
||||
if (mi->disable) return;
|
||||
pmi = _e_menu_item_active_get();
|
||||
if (mi == pmi) return;
|
||||
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
|
||||
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->toggle) e_menu_item_toggle_set(mi, 1);
|
||||
if (mi->disable) e_menu_item_disabled_set(mi, 1);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1922,7 +1954,7 @@ _e_menu_item_activate_next(void)
|
|||
else
|
||||
ll = ll->next;
|
||||
mi = ll->data;
|
||||
while (mi->separator)
|
||||
while (mi->separator || mi->disable)
|
||||
{
|
||||
if (!(ll->next))
|
||||
ll = mi->menu->items;
|
||||
|
@ -1956,7 +1988,7 @@ _e_menu_item_activate_previous(void)
|
|||
else
|
||||
ll = ll->prev;
|
||||
mi = ll->data;
|
||||
while (mi->separator)
|
||||
while (mi->separator || mi->disable)
|
||||
{
|
||||
if (!(ll->prev))
|
||||
ll = eina_list_last(ll);
|
||||
|
|
|
@ -146,6 +146,7 @@ struct _E_Menu_Item
|
|||
unsigned char toggle : 1;
|
||||
unsigned char changed : 1;
|
||||
unsigned char active : 1;
|
||||
unsigned char disable : 1;
|
||||
};
|
||||
|
||||
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_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_disabled_set(E_Menu_Item *mi, int disable);
|
||||
|
||||
EAPI void e_menu_idler_before(void);
|
||||
|
||||
|
|
Loading…
Reference in New Issue