You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
3.7 KiB
137 lines
3.7 KiB
#include "e_mod_main.h" |
|
|
|
static E_Int_Menu_Augmentation *maug = NULL; |
|
|
|
|
|
static const char *type_desc[] = |
|
{ |
|
[DS_PAN] = D_("Pan"), |
|
[DS_FADE_OUT] = D_("Fade Out"), |
|
[DS_FADE_IN] = D_("Fade In"), |
|
[DS_BATMAN] = D_("Batman"), |
|
[DS_ZOOM_IN] = D_("Zoom In"), |
|
[DS_ZOOM_OUT] = D_("Zoom Out"), |
|
[DS_GROW] = D_("Grow"), |
|
[DS_ROTATE_OUT] = D_("Rotate Out"), |
|
[DS_ROTATE_IN] = D_("Rotate In"), |
|
[DS_SLIDE_SPLIT] = D_("Slide Split"), |
|
[DS_QUAD_SPLIT] = D_("Quad Split"), |
|
[DS_QUAD_MERGE] = D_("Quad Merge"), |
|
[DS_BLINK] = D_("Blink"), |
|
[DS_VIEWPORT] = D_("Viewport"), |
|
[DS_LAST] = NULL |
|
}; |
|
|
|
static void |
|
_ds_menu_ruler(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, E_Menu_Item *mi) |
|
{ |
|
ds_config->disable_ruler = mi->toggle; |
|
if (ds_config->disable_ruler) |
|
mr_shutdown(); |
|
else |
|
mr_init(); |
|
e_config_save_queue(); |
|
} |
|
#if E_VERSION_MAJOR == 20 |
|
static void |
|
_ds_menu_maximize(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, E_Menu_Item *mi) |
|
{ |
|
ds_config->disable_maximize = mi->toggle; |
|
if (ds_config->disable_maximize) |
|
maximize_shutdown(); |
|
else |
|
maximize_init(); |
|
e_config_save_queue(); |
|
} |
|
#endif |
|
|
|
static void |
|
_ds_menu_transitions(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, E_Menu_Item *mi) |
|
{ |
|
ds_config->disable_transitions = mi->toggle; |
|
if (ds_config->disable_transitions) |
|
ds_shutdown(); |
|
else |
|
ds_init(); |
|
e_config_save_queue(); |
|
} |
|
|
|
static void |
|
_ds_menu_transition_type(void *data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi) |
|
{ |
|
Eina_Bool *types = (Eina_Bool*)&ds_config->types; |
|
unsigned int t = (uintptr_t)data; |
|
|
|
types[t] = mi->toggle; |
|
if (mi->toggle) |
|
ds_config->disabled_transition_count++; |
|
else |
|
ds_config->disabled_transition_count--; |
|
e_config_save_queue(); |
|
} |
|
|
|
static void |
|
_ds_menu_add(void *data EINA_UNUSED, E_Menu *m) |
|
{ |
|
E_Menu_Item *mi; |
|
E_Menu *subm; |
|
unsigned int t; |
|
|
|
mi = e_menu_item_new(m); |
|
e_menu_item_label_set(mi, D_("Desksanity")); |
|
e_menu_item_icon_edje_set(mi, mod->edje_file, "icon"); |
|
|
|
subm = e_menu_new(); |
|
e_menu_title_set(subm, D_("Options")); |
|
e_menu_item_submenu_set(mi, subm); |
|
e_object_unref(E_OBJECT(subm)); |
|
|
|
mi = e_menu_item_new(subm); |
|
e_menu_item_label_set(mi, D_("Disable Move/Resize Ruler")); |
|
e_menu_item_check_set(mi, 1); |
|
e_menu_item_toggle_set(mi, ds_config->disable_ruler); |
|
e_menu_item_callback_set(mi, _ds_menu_ruler, NULL); |
|
#if E_VERSION_MAJOR == 20 |
|
mi = e_menu_item_new(subm); |
|
e_menu_item_label_set(mi, D_("Disable Maximize Effects")); |
|
e_menu_item_check_set(mi, 1); |
|
e_menu_item_toggle_set(mi, ds_config->disable_maximize); |
|
e_menu_item_callback_set(mi, _ds_menu_maximize, NULL); |
|
#endif |
|
mi = e_menu_item_new(subm); |
|
e_menu_item_label_set(mi, D_("Disable Transition Effects")); |
|
e_menu_item_check_set(mi, 1); |
|
e_menu_item_toggle_set(mi, ds_config->disable_transitions); |
|
e_menu_item_callback_set(mi, _ds_menu_transitions, NULL); |
|
|
|
if (ds_config->disable_transitions) return; |
|
|
|
subm = e_menu_new(); |
|
e_menu_title_set(subm, D_("Disable Transitions")); |
|
e_menu_item_submenu_set(mi, subm); |
|
e_object_unref(E_OBJECT(subm)); |
|
|
|
for (t = 0; t < DS_LAST; t++) |
|
{ |
|
Eina_Bool *types = (Eina_Bool*)&ds_config->types; |
|
mi = e_menu_item_new(subm); |
|
e_menu_item_label_set(mi, type_desc[t]); |
|
e_menu_item_check_set(mi, 1); |
|
e_menu_item_toggle_set(mi, types[t]); |
|
e_menu_item_callback_set(mi, _ds_menu_transition_type, (void*)(uintptr_t)t); |
|
} |
|
} |
|
|
|
EINTERN void |
|
ds_config_init(void) |
|
{ |
|
maug = e_int_menus_menu_augmentation_add_sorted |
|
("config/1", D_("Desksanity"), _ds_menu_add, NULL, NULL, NULL); |
|
} |
|
|
|
EINTERN void |
|
ds_config_shutdown(void) |
|
{ |
|
e_int_menus_menu_augmentation_del("config/1", maug); |
|
maug = NULL; |
|
}
|
|
|