add colorclass editor to app menu

This commit is contained in:
Mike Blumenkrantz 2015-04-05 16:27:18 -04:00
parent da149ba021
commit 3498c6caf8
3 changed files with 34 additions and 0 deletions

View File

@ -582,6 +582,7 @@ _e_client_del(E_Client *ec)
E_FREE_FUNC(ec->border_remember_dialog, e_object_del);
E_FREE_FUNC(ec->border_border_dialog, e_object_del);
E_FREE_FUNC(ec->border_prop_dialog, e_object_del);
E_FREE_FUNC(ec->color_editor, evas_object_del);
e_int_client_menu_del(ec);
E_FREE_FUNC(ec->raise_timer, ecore_timer_del);

View File

@ -649,6 +649,7 @@ struct E_Client
Eina_List *stick_desks;
E_Menu *border_menu;
Evas_Object *color_editor;
E_Config_Dialog *border_locks_dialog;
E_Config_Dialog *border_remember_dialog;
E_Config_Dialog *border_border_dialog;

View File

@ -610,6 +610,32 @@ _e_client_menu_cb_icon_edit(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi E
e_desktop_client_edit(ec);
}
static void
_e_client_menu_cb_colors_edit_del(void *data, ...)
{
E_Client *ec = data;
E_FREE_FUNC(ec->color_editor, evas_object_del);
e_comp_shape_queue();
}
static void
_e_client_menu_cb_colors_edit(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED)
{
Evas_Object *o;
E_Client *ec = data;
ec->color_editor = o = elm_color_class_editor_add(e_comp->elm, e_client_util_win_get(data));
if (!o) return;
e_comp_shape_queue();
evas_object_geometry_set(o, ec->client.x, ec->client.y, ec->client.w, ec->client.h);
evas_object_layer_set(o, E_LAYER_POPUP);
evas_object_show(o);
evas_object_smart_callback_add(o, "application_closed", (Evas_Smart_Cb)_e_client_menu_cb_colors_edit_del, ec);
evas_object_smart_callback_add(o, "dismissed", (Evas_Smart_Cb)_e_client_menu_cb_colors_edit_del, ec);
evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, (Evas_Object_Event_Cb)_e_client_menu_cb_colors_edit_del, ec);
}
static void
_e_client_menu_cb_application_pre(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi)
{
@ -660,6 +686,12 @@ _e_client_menu_cb_application_pre(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item
e_menu_item_callback_set(submi, _e_client_menu_cb_kbdshrtct_add, ec);
e_util_menu_item_theme_icon_set(submi, "preferences-desktop-keyboard");
}
if (ec->color_editor) return;
submi = e_menu_item_new(subm);
e_menu_item_label_set(submi, _("Edit Color Scheme"));
e_menu_item_callback_set(submi, _e_client_menu_cb_colors_edit, ec);
e_util_menu_item_theme_icon_set(submi, "preferences-desktop-color");
}
static void