rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=1e59538eece041f463717477b63a4620d0da197b
commit 1e59538eece041f463717477b63a4620d0da197b Author: Andrii Kroitor <an.kroi...@samsung.com> Date: Wed Dec 23 19:16:41 2015 +0200 remove widget_manager, ui_widget_list and connector --- po/POTFILES.in | 3 - src/bin/Makefile.am | 3 - src/bin/project_manager/widget_manager.c | 1060 ------------------ src/bin/ui/blocks/ui_widget_list.c | 1720 ------------------------------ src/bin/ui/connector.c | 1412 ------------------------ src/bin/ui/menu.c | 3 +- 6 files changed, 2 insertions(+), 4199 deletions(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index e20b2fa..7b115d1 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -7,12 +7,9 @@ src/bin/external/syntax_color.c src/bin/logger/logger.c src/bin/project_manager/group_manager.c src/bin/project_manager/project_manager.c -src/bin/project_manager/widget_manager.c src/bin/ui/blocks/ui_block.c src/bin/ui/blocks/ui_signal_list.c src/bin/ui/blocks/ui_states_list.c -src/bin/ui/blocks/ui_widget_list.c -src/bin/ui/connector.c src/bin/ui/container/container.c src/bin/ui/cursor.c src/bin/ui/dialogs/about_window.c diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 1848ee9..f2e59ad 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -10,7 +10,6 @@ libete_a_SOURCES = \ ../../src/bin/common/string_common.c \ ../../src/bin/common/validator.c \ ../../src/bin/project_manager/group_manager.c \ -../../src/bin/project_manager/widget_manager.c \ ../../src/bin/project_manager/project_manager.c \ ../../src/bin/logger/logger.c \ ../../src/bin/config/config.c \ @@ -35,7 +34,6 @@ libete_a_SOURCES = \ ../../src/bin/ui/project_common.c \ ../../src/bin/ui/project_close.c \ ../../src/bin/ui/project_export.c \ -../../src/bin/ui/connector.c \ ../../src/bin/ui/splash.c \ ../../src/bin/ui/shortcuts/shortcuts.c \ ../../src/bin/ui/container/container.c \ @@ -70,7 +68,6 @@ libete_a_SOURCES = \ ../../src/bin/ui/property_color.c \ ../../src/bin/ui/property_demo_swallow.c \ ../../src/bin/ui/property_demo_text.c \ -../../src/bin/ui/blocks/ui_widget_list.c \ ../../src/bin/ui/blocks/ui_signal_list.c \ ../../src/bin/ui/blocks/ui_states_list.c \ ../../src/bin/ui/workspace/workspace.c \ diff --git a/src/bin/project_manager/widget_manager.c b/src/bin/project_manager/widget_manager.c deleted file mode 100644 index 0f3ed2d..0000000 --- a/src/bin/project_manager/widget_manager.c +++ /dev/null @@ -1,1060 +0,0 @@ -/* - * Edje Theme Editor - * Copyright (C) 2013-2014 Samsung Electronics. - * - * This file is part of Edje Theme Editor. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; If not, see www.gnu.org/licenses/lgpl.html. - */ - -#include "widget_manager.h" -#include "alloc.h" -#include "string_common.h" - -static char **arr; -static char tmp[PATH_MAX]; -static int size; -static char empty = '\0'; -/** - * ref http://docs.enlightenment.org/auto/edje/group__Edje__Object__Part.html - */ -static char *part_types[] = { - "NONE", - "RECTANGLE", - "TEXT", - "IMAGE", - "SWALLOW", - "TEXTBLOCK", - "GRADIENT", - "GROUP", - "BOX", - "TABLE", - "EXTERNAL", - "PROXY", - "SPACER" -}; -static unsigned int part_types_count = 12; - -/** - * @def WM_WIDGET_NAME_GET - * - * @brief get widget name from full group name string. - * - * @param[in] full_group_name - * @param[out] widget - * - * @ingroup WidgetManager - */ - #define WM_WIDGET_NAME_GET(widget, group) \ - arr = eina_str_split(group, "/", 3); \ - if (!arr[1]) \ - widget = NULL; \ - else \ - widget = strdup(arr[1]); \ - free(arr[0]); \ - free(arr); - -/** - * @def WM_CLASS_NAME_GET - * - * @brief get class name from full group name string. - * - * @param[in] full_group_name - * @param[out] class_name - * - * @ingroup WidgetManager - */ -#define WM_CLASS_NAME_GET(class_name, full_group_name) \ - arr = eina_str_split(full_group_name, "/", 0); \ - class_name = strdup(arr[2]);\ - free(arr[0]); \ - free(arr); - -/** - * @def WM_STYLE_NAME_GET - * - * @brief get style name for spical class from full group name string. - * - * @param[in] full_group_name - * @param[in] class_name - * @param[out] style_name - * - * @ingroup WidgetManager - */ -#define WM_STYLE_NAME_GET(style_name, class_name, full_group_name) \ - arr = eina_str_split(full_group_name, "/", 0); \ - eina_strlcpy(tmp, arr[3], sizeof(tmp)); \ - for (size = 4; arr[size]; size++) \ - { \ - if (strcmp(arr[size], class_name)) \ - { \ - eina_strlcat(tmp, "/", PATH_MAX); \ - eina_strlcat(tmp, arr[size], PATH_MAX); \ - } \ - } \ - style_name = strdup(tmp); \ - free(arr[0]); \ - free(arr); - -int -_sort_class_cb(const void *data1, const void *data2) -{ - const char *str1 = data1; - const char *str2 = data2; - char *data1_class = NULL; - char *data2_class = NULL; - int ret; - - if (!str1) return 1; - if (!str2) return -1; - - WM_CLASS_NAME_GET(data1_class, str1); - WM_CLASS_NAME_GET(data2_class, str2); - - ret = (strcmp(data1_class, data2_class)); - free(data1_class); - free(data2_class); - return ret; -} - -static void -_wm_part_free(Part *part) -{ - assert(part != NULL); - - eina_stringshare_del(part->name); - eina_stringshare_del(part->curr_state); - - if (part->items) - edje_edit_string_list_free(part->items); - free(part); - part = NULL; -} - -Eina_Bool -wm_part_del(Style *style, Part *part) -{ - Eina_Inlist *tmp_list = NULL; - - assert(part != NULL); - assert(style != NULL); - - tmp_list = eina_inlist_find(style->parts, EINA_INLIST_GET(part)); - - assert(tmp_list != NULL); - - style->parts = eina_inlist_remove(style->parts, tmp_list); - _wm_part_free(part); - - return true; -} - -Eina_Bool -wm_style_current_state_parts_update(Style *style) -{ - Part *part = NULL; - double val = 0; - const char *state = NULL; - - assert(style != NULL); - - EINA_INLIST_FOREACH(style->parts, part) - { - state = edje_edit_part_selected_state_get(style->obj, part->name, &val); - eina_stringshare_replace(&part->curr_state, state); - part->curr_state_value = val; - } - return true; -} - -Eina_Bool -wm_style_state_parts_reset(Style *style) -{ - Part *part = NULL; - - assert(style != NULL); - - EINA_INLIST_FOREACH(style->parts, part) - { - eina_stringshare_replace(&part->curr_state, "default"); - part->curr_state_value = 0.0; - edje_edit_part_selected_state_set(style->obj, part->name, - part->curr_state, part->curr_state_value); - } - return true; -} - -Eina_Bool -wm_part_current_state_set(Part *part, const char *state) -{ - char **split; - - assert(part != NULL); - assert(state != NULL); - assert(strcmp(state, "")); - - split = eina_str_split(state, " ", 2); - eina_stringshare_del(part->curr_state); - part->curr_state = eina_stringshare_add(split[0]); - part->curr_state_value = atof(split[1]); - free(split[0]); - free(split); - return true; -} - -Part * -wm_part_add(Style *style, const char *part) -{ - Part *result = NULL; - double value; - - assert(style != NULL); - assert(style->obj != NULL); - assert(part != NULL); - assert(edje_edit_part_exist(style->obj, part)); - - result = (Part *)mem_calloc(1, sizeof(Part)); - result->__type = PART; - - result->name = eina_stringshare_add(part); - result->type = edje_edit_part_type_get(style->obj, part); - result->curr_state = edje_edit_part_selected_state_get(style->obj, part, &value); - result->curr_state_value = value; - result->show = EINA_TRUE; - - if ((result->type == EDJE_PART_TYPE_TABLE) || (result->type == EDJE_PART_TYPE_BOX)) - result->items = edje_edit_part_items_list_get(style->obj, result->name); - - style->parts = eina_inlist_append(style->parts, EINA_INLIST_GET(result)); - - return result; -} - -Eina_List * -wm_program_signals_list_get(Style *style) -{ - Eina_List *result = NULL; - Eina_List *progs, *l; - Eina_Stringshare *prog_name, *sig_name, *source_name; - Signal *sig = NULL; - - assert(style != NULL); - assert(style->obj != NULL); - - progs = edje_edit_programs_list_get(style->obj); - EINA_LIST_FOREACH(progs, l, prog_name) - { - sig_name = edje_edit_program_signal_get(style->obj, prog_name); - source_name = edje_edit_program_source_get(style->obj, prog_name); - if (sig_name) - { - sig = (Signal *)mem_malloc(sizeof(Signal)); - sig->name = eina_stringshare_add(sig_name); - if (!source_name) - sig->source = eina_stringshare_add(""); - else - sig->source = eina_stringshare_add(source_name); - sig->program = eina_stringshare_add(prog_name); - sig->style = style; - result = eina_list_append(result, sig); - } - } - edje_edit_string_list_free(progs); - - return result; -} - -Eina_Bool -wm_program_signals_list_free(Eina_List *signals) -{ - Signal *sig; - - EINA_LIST_FREE(signals, sig) - { - eina_stringshare_del(sig->program); - eina_stringshare_del(sig->source); - eina_stringshare_del(sig->name); - sig->style = NULL; - free(sig); - } - - eina_list_free(signals); - signals = NULL; - - return true; -} - -Eina_Bool -wm_style_data_load(Style *style, Evas *e, Eina_File *mmap_file) -{ - Evas_Object *edje_edit_obj; - Eina_List *parts_list = NULL, *l = NULL; - char *part_name = NULL; - - assert(style != NULL); - assert(e != NULL); - - if (style->obj) - { - eina_file_map_free(mmap_file, style->obj); - evas_object_del(style->obj); - } - - edje_edit_obj = edje_edit_object_add(e); - - if (!edje_object_mmap_set(edje_edit_obj, mmap_file, style->full_group_name)) - { - ERR("Can't set mmap object"); - abort(); - } - - edje_object_freeze(edje_edit_obj); - evas_object_freeze_events_set(edje_edit_obj, true); - style->obj = edje_edit_obj; - - if (edje_edit_group_alias_is(edje_edit_obj, style->full_group_name)) - { - style->isAlias = true; - return true; - } - - parts_list = edje_edit_parts_list_get(style->obj); - EINA_LIST_FOREACH(parts_list, l, part_name) - { - wm_part_add(style, part_name); - } - edje_edit_string_list_free(parts_list); - - return true; -} - -Style * -wm_style_add(const char* style_name, const char* full_group_name, - Type style_type, Class *parent) -{ - Style *style_edje = NULL; - - assert(full_group_name != NULL); - assert(style_name != NULL); - assert((style_type == LAYOUT) || - (style_type == STYLE)); - - style_edje = (Style *)mem_calloc(1, sizeof(Style)); - style_edje->name = eina_stringshare_add(style_name); - style_edje->full_group_name = eina_stringshare_add(full_group_name); - style_edje->obj = NULL; - style_edje->parts = NULL; - style_edje->main_group = NULL; - style_edje->isAlias = false; - style_edje->__type = style_type; - style_edje->parent = parent; - style_edje->aliasses = NULL; - - return style_edje; -} - -const char * -wm_style_name_set(Style *style, const char *name) -{ - Eina_Stringshare *new_name; - - assert(style != NULL); - assert(name != NULL); - - if (style->__type == LAYOUT) - eina_stringshare_replace(&style->full_group_name, name); - if (style->__type == STYLE) - { - arr = eina_str_split(style->full_group_name, "/", 0); - eina_strlcpy(tmp, arr[3], sizeof(tmp)); - for (size = 4; arr[size]; size++) - { - if (strcmp(arr[size], style->parent->name)) - { - eina_strlcat(tmp, "/", PATH_MAX); - eina_strlcat(tmp, arr[size], PATH_MAX); - } - } - new_name = eina_stringshare_printf("elm/%s/%s/%s", arr[1], arr[2], arr[3]); - free(arr[0]); \ - free(arr); - - eina_stringshare_replace(&style->full_group_name, new_name); - eina_stringshare_del(new_name); - } - eina_stringshare_replace(&style->name, name); - return style->name; -} - -Eina_Bool -wm_style_layout_is(Style *style) -{ - assert(style != NULL); - - return style->__type == LAYOUT; -} - -Eina_Bool -wm_style_free(Style *style) -{ - Style *aliassed; - Part *part; - Eina_List *alias_node, *ll; - - assert(style != NULL); - - if (style->parent) - style->parent->styles = eina_inlist_remove(style->parent->styles, - EINA_INLIST_GET(style)); - - if (style->aliasses) - { - EINA_LIST_FOREACH(style->aliasses, ll, aliassed) - { - aliassed->main_group = NULL; - } - eina_list_free(style->aliasses); - } - - if (style->isAlias) - { - if (style->main_group) - { - alias_node = eina_list_data_find_list(style->main_group->aliasses, style); - if (alias_node) - style->main_group->aliasses = eina_list_remove_list(style->main_group->aliasses, alias_node); - } - } - - EINA_INLIST_FREE(style->parts, part) - { - style->parts = eina_inlist_remove(style->parts, EINA_INLIST_GET(part)); - _wm_part_free(part); - } - - if (style->name) - eina_stringshare_del(style->name); - - eina_stringshare_del(style->full_group_name); - - if (style->obj) - evas_object_del(style->obj); - - free(style); - style = NULL; - - return true; -} - -Eina_Bool -wm_style_copy(Evas_Object *dest_edje, Eina_Stringshare *source_full_name, - Eina_Stringshare *full_name, Eina_Stringshare *dest_file, - Style *style) -{ - Evas *e = NULL; - - assert(dest_edje != NULL); - assert(source_full_name != NULL); - assert(full_name != NULL); - assert(dest_file != NULL); - assert(style != NULL); - - e = evas_object_evas_get(dest_edje); - - assert(e != NULL); - - assert(!edje_edit_group_exist(dest_edje, full_name)); - assert(edje_edit_group_copy(dest_edje, source_full_name, full_name)); - - return true; -} - -Class * -wm_class_add(const char *class_name, Eina_List *styles, Widget *parent) -{ - Style *style_edje = NULL; - Class *class_edje = NULL; - Eina_List *l; - char *style_name, *style_name_full; - - assert(class_name != NULL); - assert(styles != NULL); - - class_edje = (Class *)mem_calloc(1, sizeof(Class)); - class_edje->name = eina_stringshare_add(class_name); - class_edje->styles = NULL; - class_edje->__type = CLASS; - class_edje->parent = parent; - EINA_LIST_FOREACH(styles, l, style_name_full) - { - WM_STYLE_NAME_GET(style_name, class_edje->name, style_name_full); - style_edje = wm_style_add(style_name, style_name_full, STYLE, class_edje); - class_edje->styles = eina_inlist_append(class_edje->styles, - EINA_INLIST_GET(style_edje)); - free(style_name); - } - - return class_edje; -} - -Eina_Bool -wm_class_free(Class *class_st) -{ - Style *style_edje = NULL; - Eina_Inlist *l = NULL; - - assert(class_st != NULL); - - if (class_st->parent) - class_st->parent->classes = eina_inlist_remove( - class_st->parent->classes, EINA_INLIST_GET(class_st)); - - - EINA_INLIST_FOREACH_SAFE(class_st->styles, l, style_edje) - { - wm_style_free(style_edje); - } - - eina_stringshare_del(class_st->name); - free(class_st); - - return true; -} - -Widget * -wm_widget_add(const char *widget_name, Eina_List **styles) -{ - Widget *_widget = NULL; - Eina_List *l, *l_next; - Eina_List *widget_groups = NULL; - Class *class_st = NULL; - char *class_name = NULL, *class_name_next = NULL; - char *full_style_name, *style_next; - - assert(widget_name != NULL); - assert(styles != NULL); - assert(*styles != NULL); - - _widget = (Widget *)mem_calloc(1, sizeof(Widget)); - _widget->name = eina_stringshare_add(widget_name); - _widget->classes = NULL; - _widget->__type = WIDGET; - - *styles = eina_list_sort(*styles, - eina_list_count(*styles), - _sort_class_cb); - - EINA_LIST_FOREACH_SAFE(*styles, l, l_next, full_style_name) - { - free(class_name_next); - WM_CLASS_NAME_GET(class_name, full_style_name); - if (l_next) - { - style_next = eina_list_data_get(l_next); - WM_CLASS_NAME_GET(class_name_next, style_next); - } - else - class_name_next = ∅ - - widget_groups = eina_list_append(widget_groups, full_style_name); - - if (strcmp(class_name, class_name_next) != 0) - { - class_st = wm_class_add(class_name, widget_groups, _widget); - _widget->classes = eina_inlist_append(_widget->classes, - EINA_INLIST_GET(class_st)); - eina_list_free(widget_groups); - widget_groups = NULL; - } - free(class_name); - } - - return _widget; -} - -Eina_Bool -wm_widget_free(Widget *widget) -{ - Class *class_st = NULL; - Eina_Inlist *l = NULL; - - assert(widget != NULL); - - EINA_INLIST_FOREACH_SAFE(widget->classes, l, class_st) - { - wm_class_free(class_st); - } - - eina_stringshare_del(widget->name); - free(widget); - - return true; -} - -Eina_Inlist * -wm_widgets_list_new(const char *file) -{ - Widget *widget; - Eina_List *collection, *l, *l_next; - Eina_List *widget_styles = NULL; - Eina_Inlist *widget_list = NULL; - char *widget_name = NULL, *widget_name_next = NULL; - char *group, *group_next; - const char prefix[] = "elm/"; - Eina_Error error; - - assert(file != NULL); - - DBG("Start to parse the edje group collection. From file %s", file); - collection = edje_file_collection_list(file); - if (!collection) - { - error = eina_error_get(); - ERR("%s", eina_error_msg_get(error)); - } - - collection = eina_list_sort(collection, - eina_list_count(collection), - sort_cb); - - EINA_LIST_FOREACH_SAFE(collection, l, l_next, group) - { - if (eina_str_has_prefix(group, prefix)) - { - WM_WIDGET_NAME_GET(widget_name, group); - if (l_next) - { - group_next = eina_list_data_get(l_next); - if (eina_str_has_prefix(group_next, prefix)) - { - WM_WIDGET_NAME_GET(widget_name_next, group_next); - } - else - widget_name_next = ∅ - } - else - widget_name_next = ∅ - - widget_styles = eina_list_append(widget_styles, group); - - if ((widget_name) && (widget_name_next) && (strcmp(widget_name, widget_name_next) != 0)) - { - widget = wm_widget_add(widget_name, &widget_styles); - widget_list = eina_inlist_append(widget_list, - EINA_INLIST_GET(widget)); - widget_styles = eina_list_free(widget_styles); - } - if (widget_name) - free(widget_name); - - TODO("change logic here on refactor to make this check unnecessary!!") - if (widget_name_next != &empty) - free(widget_name_next); - } - } - edje_file_collection_list_free(collection); - DBG("Parse the edje group collection id finished! The list of widget - created."); - INFO("The theme consists of styles for %i widgets.", eina_inlist_count(widget_list)); - - return widget_list; -} - -Eina_Inlist * -wm_layouts_list_new(const char *file) -{ - Style *layout; - Eina_List *collection, *l; - Eina_Inlist *layouts = NULL; - char *group; - const char prefix[] = "elm/"; - Eina_Error error; - - assert(file != NULL); - - collection = edje_file_collection_list(file); - if (!collection) - { - error = eina_error_get(); - ERR("%s", eina_error_msg_get(error)); - } - - collection = eina_list_sort(collection, - eina_list_count(collection), - sort_cb); - - EINA_LIST_FOREACH(collection, l, group) - { - if (!eina_str_has_prefix(group, prefix) && strcmp(group, EFLETE_INTERNAL_GROUP_NAME)) - { - layout = wm_style_add(group, group, LAYOUT, NULL); - layouts = eina_inlist_append(layouts, EINA_INLIST_GET(layout)); - } - } - edje_file_collection_list_free(collection); - DBG("Parse the edje group collection on layouts id finished!"); - INFO("The file contain styles for %i layouts.", eina_inlist_count(layouts)); - return layouts; -} - -Eina_Bool -wm_widgets_list_free(Eina_Inlist *widget_list) -{ - Widget *widget = NULL; - - while (widget_list) - { - widget = EINA_INLIST_CONTAINER_GET(widget_list, Widget); - widget_list = eina_inlist_remove(widget_list, widget_list); - wm_widget_free(widget); - } - - return true; -} - -Eina_Bool -wm_layouts_list_free(Eina_Inlist *widget_list) -{ - Style *style = NULL; - - while (widget_list) - { - style = EINA_INLIST_CONTAINER_GET(widget_list, Style); - widget_list = eina_inlist_remove(widget_list, widget_list); - wm_style_free(style); - } - - return true; -} - - -Style * -wm_style_object_find(Eina_Inlist *widget_list, const char *style_full_name) -{ - char *widget_name = NULL; - char *class_name = NULL; - char *style_name = NULL; - Widget *_widget = NULL; - Class *_class = NULL; - Style *_style = NULL; - - assert(widget_list != NULL); - assert(style_full_name != NULL); - - WM_WIDGET_NAME_GET(widget_name, style_full_name); - if (!widget_name) - return NULL; - - if (widget_name [0] <= 'm') - EINA_INLIST_FOREACH(widget_list, _widget) - { - if (!strcmp(_widget->name, widget_name)) - break; - } - else - EINA_INLIST_REVERSE_FOREACH(widget_list, _widget) - { - if (!strcmp(_widget->name, widget_name)) - break; - } - - if (!_widget) - { - free(widget_name); - return NULL; - } - - WM_CLASS_NAME_GET(class_name, style_full_name); - if (class_name [0] <= 'm') - EINA_INLIST_FOREACH(_widget->classes, _class) - { - if (!strcmp(_class->name, class_name)) - break; - } - else - EINA_INLIST_REVERSE_FOREACH(_widget->classes, _class) - { - if (!strcmp(_class->name, class_name)) - break; - } - - if (!_class) - { - free(widget_name); - free(class_name); - return NULL; - } - - WM_STYLE_NAME_GET(style_name, class_name, style_full_name) - if (style_name [0] <= 'm') - EINA_INLIST_FOREACH(_class->styles, _style) - { - if (!strcmp(_style->name, style_name)) - break; - } - else - EINA_INLIST_REVERSE_FOREACH(_class->styles, _style) - { - if (!strcmp(_style->name, style_name)) - break; - } - - free(widget_name); - free(class_name); - free(style_name); - - return _style; -} - -Style * -_layout_object_find(Eina_Inlist *layout_list, const char *style_full_name) -{ - Style *_layout = NULL; - - assert(layout_list != NULL); - assert(style_full_name != NULL); - - EINA_INLIST_FOREACH(layout_list, _layout) - { - if (!strcmp(_layout->full_group_name, style_full_name)) break; - } - - return _layout; -} - -Eina_Bool -wm_widgets_list_objects_load(Eina_Inlist *widget_list, - Evas *e, - Eina_File *mmap_file) -{ - Widget *widget = NULL; - Class *class_st = NULL; - Style *style = NULL; - - assert(e != NULL); - assert(mmap_file != NULL); - - EINA_INLIST_FOREACH(widget_list, widget) - { - EINA_INLIST_FOREACH(widget->classes, class_st) - { - EINA_INLIST_FOREACH(class_st->styles, style) - { - wm_style_data_load(style, e, mmap_file); - } - } - } - return true; -} - -Eina_Bool -wm_widgets_list_objects_del(Eina_Inlist *widget_list) -{ - Widget *widget = NULL; - Class *class_st = NULL; - Style *style = NULL; - - assert(widget_list != NULL); - - EINA_INLIST_FOREACH(widget_list, widget) - { - EINA_INLIST_FOREACH(widget->classes, class_st) - { - EINA_INLIST_FOREACH(class_st->styles, style) - { - evas_object_del(style->obj); - } - } - } - - return true; -} - - -Eina_Bool -wm_layouts_list_objects_load(Eina_Inlist *layouts_list, - Evas *e, - Eina_File *mmap_file) -{ - Style *layout = NULL; - - assert(e != NULL); - assert(mmap_file != NULL); - - EINA_INLIST_FOREACH(layouts_list, layout) - { - wm_style_data_load(layout, e, mmap_file); - } - - return true; -} - -const char * -wm_part_type_get(Edje_Part_Type part_type) -{ - assert(part_type <= part_types_count); - - return part_types[part_type]; -} - -Part * -wm_part_by_name_find(Style *style, Eina_Stringshare *part_name) -{ - Part *data = NULL; - - assert(style != NULL); - assert(part_name != NULL); - - EINA_INLIST_FOREACH(style->parts, data) - { - if (data->name == part_name) return data; - } - return NULL; -} - -Eina_Bool -wm_style_parts_restack(Style *style, Eina_Stringshare *part_name, - Eina_Stringshare *rel_name) -{ - Part *data = NULL; - Part *part = NULL; - Part *rel_part = NULL; - Eina_Inlist *tmp_list = NULL, *tmp_prev = NULL; - - assert(style != NULL); - assert(part_name != NULL); - - EINA_INLIST_FOREACH(style->parts, data) - { - if (data->name == part_name) - part = data; - else if (data->name == rel_name) - rel_part = data; - - if (part && rel_part) - break; - } - - assert(part != NULL); - - tmp_list = eina_inlist_find(style->parts, EINA_INLIST_GET(part)); - - assert(tmp_list != NULL); - - if (rel_part) - tmp_prev = eina_inlist_find(style->parts, EINA_INLIST_GET(rel_part)); - - style->parts = eina_inlist_remove(style->parts, tmp_list); - if (!tmp_prev) - style->parts = eina_inlist_append_relative(style->parts, tmp_list, tmp_prev); - else - style->parts = eina_inlist_prepend_relative(style->parts, tmp_list, tmp_prev); - - return true; -} - -Eina_Bool -wm_style_data_reload(Style *style, Eina_File *mmap_file) -{ - Eina_List *parts_list = NULL, *l = NULL; - char *part_name = NULL; - Part *part = NULL; - - assert(style != NULL); - assert(style->obj != NULL); - assert(style->full_group_name != NULL); - assert(mmap_file != NULL); - - eina_file_map_free(mmap_file, style->obj); - edje_object_mmap_set(style->obj, mmap_file, style->full_group_name); - - EINA_INLIST_FREE(style->parts, part) - { - style->parts = eina_inlist_remove(style->parts, EINA_INLIST_GET(part)); - _wm_part_free(part); - } - - parts_list = edje_edit_parts_list_get(style->obj); - EINA_LIST_FOREACH(parts_list, l, part_name) - { - wm_part_add(style, part_name); - } - edje_edit_string_list_free(parts_list); - - return true; -} - -TODO("Add UTC for this function!") -Eina_Bool -wm_styles_build_alias(Eina_Inlist *widgets_list, - Eina_Inlist *layouts_list) -{ - Style *layout = NULL; - Widget *widget = NULL; - Class *class_st = NULL; - const char *main_name; - - /* checking layouts for awesomeness */ - if (layouts_list) - { - EINA_INLIST_FOREACH(layouts_list, layout) - { - if (layout->isAlias) - { - main_name = edje_edit_group_aliased_get(layout->obj, layout->full_group_name); - layout->main_group = _layout_object_find(layouts_list, main_name); - if ((!layout->main_group) && (widgets_list)) - layout->main_group = wm_style_object_find(widgets_list, main_name); - - if (layout->main_group) - { - layout->main_group->aliasses = eina_list_append(layout->main_group->aliasses, layout); - evas_object_del(layout->obj); - layout->obj = NULL; - } - } - } - } - - /* checking layouts for awesomeness */ - if (widgets_list) - { - EINA_INLIST_FOREACH(widgets_list, widget) - { - EINA_INLIST_FOREACH(widget->classes, class_st) - { - EINA_INLIST_FOREACH(class_st->styles, layout) - { - if (layout->isAlias) - { - main_name = edje_edit_group_aliased_get(layout->obj, layout->full_group_name); - layout->main_group = wm_style_object_find(widgets_list, main_name); - if ((!layout->main_group) && (layouts_list)) - layout->main_group = _layout_object_find(layouts_list, main_name); - - if (layout->main_group) - { - layout->main_group->aliasses = eina_list_append(layout->main_group->aliasses, layout); - evas_object_del(layout->obj); - layout->obj = NULL; - } - } - } - } - } - } - return true; -} - -#undef WM_WIDGET_NAME_GET -#undef WM_CLASS_NAME_GET -#undef WM_STYLE_NAME_GET diff --git a/src/bin/ui/blocks/ui_widget_list.c b/src/bin/ui/blocks/ui_widget_list.c deleted file mode 100644 index 0acbf0b..0000000 --- a/src/bin/ui/blocks/ui_widget_list.c +++ /dev/null @@ -1,1720 +0,0 @@ -/* - * Edje Theme Editor - * Copyright (C) 2013 Samsung Electronics. - * - * This file is part of Edje Theme Editor. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; If not, see www.gnu.org/licenses/lgpl.html. - */ - -#include "ui_widget_list.h" -#include "widget_manager.h" - -#define NAVIFRAME_DATA_KEY "naviframe" -#define TABS_DATA_KEY "tabs" -#define WIDGETS_NAVIFRAME_DATA_KEY "nf_widgets" -#define LAYOUTS_NAVIFRAME_DATA_KEY "nf_layouts" -#define WIDGETS_TAB_DATA_KEY "widgets_tab" -#define LAYOUTS_TAB_DATA_KEY "layouts_tab" -#define WIDGETLIST_DATA_KEY "widget_list" -#define PARTLIST_DATA_KEY "part_list" - -static Elm_Genlist_Item_Class *_itc_widget = NULL; -static Elm_Genlist_Item_Class *_itc_class = NULL; -static Elm_Genlist_Item_Class *_itc_style = NULL; -static Elm_Genlist_Item_Class *_itc_layout = NULL; -static Elm_Genlist_Item_Class *_itc_part = NULL; -static Elm_Genlist_Item_Class *_itc_container = NULL; -static Elm_Genlist_Item_Class *_itc_part_item = NULL; - -static inline Elm_Object_Item * -_widget_list_get(Evas_Object *naviframe) -{ - assert(naviframe != NULL); - - Elm_Object_Item *item_gl_widgets = elm_naviframe_top_item_get(naviframe); - - return item_gl_widgets; -} - -TODO("Outdated function! Remove! No more EWE_TABS") -static inline Evas_Object * -_current_naviframe_get(Evas_Object *tabs __UNUSED__) -{ -/* Ewe_Tabs_Item *selected; - - assert(tabs != NULL); - - selected = ewe_tabs_active_item_get(tabs); - if (evas_object_data_get(tabs, WIDGETS_TAB_DATA_KEY) == selected) - return evas_object_data_get(tabs, WIDGETS_NAVIFRAME_DATA_KEY); - return evas_object_data_get(tabs, LAYOUTS_NAVIFRAME_DATA_KEY); */ - return NULL; -} - -static Elm_Object_Item * -_genlist_find_item_by_name(Evas_Object *obj, const char *name) -{ - Part *part; - - assert(obj != NULL); - assert(name != NULL); - - Elm_Object_Item *item = elm_genlist_first_item_get(obj); - - while (item) - { - /* We are searching through parts. - * If current item is actually BOX's or TABLE's item (contain parent), - * checking need to be skipped. */ - if (!elm_genlist_item_parent_get(item)) - { - part = elm_object_item_data_get(item); - if (strcmp(part->name, name) == 0) - break; - } - item = elm_genlist_item_next_get(item); - } - return item; -} - -static char * -_item_part_label_get(void *data, - Evas_Object *obj __UNUSED__, - const char *part) -{ - Part *p = (Part *)data; - - assert(p != NULL); - assert(p->name != NULL); - assert(part != NULL); - - if (!strcmp(part, "elm.text")) - { - return strdup(p->name); - } - return strdup(""); -} - -static char * -_item_item_label_get(void *data, - Evas_Object *obj __UNUSED__, - const char *part __UNUSED__) -{ - Eina_Stringshare *item_name = (Eina_Stringshare *)data; - if (data) return strdup(item_name); - return strdup("Unknown"); -} - -static void -_on_check_click(void *data, - Evas_Object *obj, - void *event_data __UNUSED__) -{ - Evas_Object *gl_parts, *tabs; - Part *_part = (Part *)data; - - assert(_part != NULL); - - _part->show = !_part->show; - - gl_parts = evas_object_data_get(obj, PARTLIST_DATA_KEY); - - assert(gl_parts != NULL); - - tabs = evas_object_data_get(gl_parts, TABS_DATA_KEY); - - assert(tabs != NULL); - - if (_part->show) - evas_object_smart_callback_call(tabs, "wl,part,show", (void *)_part->name); - else - evas_object_smart_callback_call(tabs, "wl,part,hide", (void *)_part->name); -} - -static void -_on_item_add_clicked(void *data, - Evas_Object *obj, - void *event_info __UNUSED__) -{ - Part *_part = (Part* ) data; - - assert(_part != NULL); - - Evas_Object *gl_parts = evas_object_data_get(obj, PARTLIST_DATA_KEY); - - assert(gl_parts != NULL); - - Evas_Object *tabs = evas_object_data_get(gl_parts, TABS_DATA_KEY); - - assert(tabs != NULL); - - /* Checking number of groups */ - Eina_List *groups = edje_file_collection_list(ap.project->dev); - unsigned int count = eina_list_count(groups); - edje_file_collection_list_free(groups); - if (count >= 2) - evas_object_smart_callback_call(tabs, "wl,part,item,add", _part); - else - { - NOTIFY_WARNING(_("There is only one group. <br>" - "Need more groups for adding items.")) - return; - } -} - -static void -_on_item_del_clicked(void *data, - Evas_Object *obj, - void *event_info __UNUSED__) -{ - Eina_Stringshare *item_name = (Eina_Stringshare *)data; - - assert(item_name != NULL); - - Evas_Object *gl_parts = evas_object_data_get(obj, PARTLIST_DATA_KEY); - - assert(gl_parts != NULL); - - Evas_Object *tabs = evas_object_data_get(gl_parts, TABS_DATA_KEY); - - assert(tabs != NULL); - - evas_object_smart_callback_call(tabs, "wl,part,item,del", (char *)item_name); - return; -} - -static Evas_Object * -_item_part_content_get(void *data, - Evas_Object *obj, - const char *part) -{ - Evas_Object *content = NULL; - Part *_part = (Part *) data; - - assert(_part != NULL); - - if (!strcmp(part, "elm.swallow.icon")) - { - content = elm_check_add(obj); - if (_part->show) - elm_check_state_set(content, true); - else - elm_check_state_set(content, false); - elm_object_style_set(content, "eye"); - - evas_object_smart_callback_add(content, "changed", _on_check_click, _part); - evas_object_data_set(content, PARTLIST_DATA_KEY, obj); - } - if (!strcmp(part, "elm.swallow.end")) - { - switch (_part->type) - { - case EDJE_PART_TYPE_RECTANGLE: - IMAGE_ADD_NEW(obj, content, "icon", "rectangle"); - break; - case EDJE_PART_TYPE_IMAGE: - IMAGE_ADD_NEW(obj, content, "icon", "image"); - break; - case EDJE_PART_TYPE_SPACER: - IMAGE_ADD_NEW(obj, content, "icon", "spacer"); - break; - case EDJE_PART_TYPE_SWALLOW: - IMAGE_ADD_NEW(obj, content, "icon", "swallow"); - break; - case EDJE_PART_TYPE_TEXT: - IMAGE_ADD_NEW(obj, content, "icon", "text"); - break; - case EDJE_PART_TYPE_TEXTBLOCK: - IMAGE_ADD_NEW(obj, content, "icon", "textblock"); - break; - case EDJE_PART_TYPE_GROUP: - IMAGE_ADD_NEW(obj, content, "icon", "group"); - break; - case EDJE_PART_TYPE_PROXY: - IMAGE_ADD_NEW(obj, content, "icon", "proxy"); - break; - case EDJE_PART_TYPE_TABLE: - IMAGE_ADD_NEW(obj, content, "icon", "table"); - break; - case EDJE_PART_TYPE_BOX: - IMAGE_ADD_NEW(obj, content, "icon", "box"); - break; - case EDJE_PART_TYPE_EXTERNAL: - IMAGE_ADD_NEW(obj, content, "icon", "external"); - break; - } - } - if (!strcmp(part, "elm.swallow.penult")) - { - if ((_part->type == EDJE_PART_TYPE_TABLE) || ((_part->type == EDJE_PART_TYPE_BOX))) - { - Evas_Object *icon; - - content = elm_button_add(obj); - ICON_STANDARD_ADD(content, icon, true, "plus"); - elm_object_part_content_set(content, NULL, icon); - elm_object_style_set(content, "anchor"); - evas_object_data_set(content, PARTLIST_DATA_KEY, obj); - evas_object_smart_callback_add(content, "clicked", _on_item_add_clicked, _part); - } - } - return content; -} - -static Evas_Object * -_item_part_item_content_get(void *data, - Evas_Object *obj, - const char *part) -{ - Eina_Stringshare *item_name = (Eina_Stringshare *) data; - - assert(item_name != NULL); - - if (!strcmp(part, "elm.swallow.penult")) - { - Evas_Object *button, *_icon; - button = elm_button_add(obj); - ICON_STANDARD_ADD(button, _icon, true, "minus"); - elm_object_part_content_set(button, NULL, _icon); - elm_object_style_set(button, "anchor"); - - evas_object_data_set(button, PARTLIST_DATA_KEY, obj); - evas_object_smart_callback_add(button, "clicked", _on_item_del_clicked, item_name); - return button; - } - return NULL; -} -/* -static char * -_item_layout_label_get(void *data, - Evas_Object *obj __UNUSED__, - const char *part __UNUSED__) -{ - Style *layout = (Style *)data; - - assert(layout != NULL); - assert(layout->full_group_name != NULL); - - return strdup(layout->full_group_name); -}*/ - - -static char * -_item_style_label_get(void *data, - Evas_Object *obj __UNUSED__, - const char *part __UNUSED__) -{ - Style *style = (Style *)data; - - assert(style != NULL); - assert(style->name != NULL); - - return strdup(style->name); -} -/* -static char * -_item_widget_label_get(void *data, - Evas_Object *obj __UNUSED__, - const char *part __UNUSED__) -{ - Widget *widget = (Widget *)data; - - assert(widget != NULL); - assert(widget->name != NULL); - - return strdup(widget->name); -} -*/ -static char * -_item_class_label_get(void *data, - Evas_Object *obj __UNUSED__, - const char *part __UNUSED__) -{ - Class *class = (Class *)data; - - assert(class != NULL); - assert(class->name != NULL); - - return strdup(class->name); -} - -static void -_navi_gl_styles_pop(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - Evas_Object *nf = (Evas_Object *)data; - - assert(nf != NULL); - - elm_naviframe_item_pop(nf); - Evas_Object *tabs = evas_object_data_get(nf, TABS_DATA_KEY); - - assert(tabs != NULL); - - evas_object_smart_callback_call (tabs, "wl,style,back", NULL); -} - -static void -_navi_gl_parts_pop(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - Evas_Object *nf = (Evas_Object *)data; - - assert(nf != NULL); - - elm_naviframe_item_pop(nf); - Evas_Object *tabs = evas_object_data_get(nf, TABS_DATA_KEY); - - assert(tabs != NULL); - - evas_object_smart_callback_call(tabs, "wl,part,back", NULL); -} - -static void -_on_part_select(void *data, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - Elm_Object_Item *glit = (Elm_Object_Item *)event_info; - Evas_Object *nf = (Evas_Object *)data; - - assert(nf != NULL); - - Part *_part = elm_object_item_data_get(glit); - - assert(_part != NULL); - - Evas_Object *tabs = evas_object_data_get(nf, TABS_DATA_KEY); - - assert(tabs != NULL); - - evas_object_smart_callback_call(tabs, "wl,part,select", _part); -} - -static void -_on_part_item_select(void *data, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - Elm_Object_Item *glit = (Elm_Object_Item *)event_info; - Elm_Object_Item *parent = elm_genlist_item_parent_get(glit); - Part *part = elm_object_item_data_get(parent); - - assert(part != NULL); - - Evas_Object *nf = (Evas_Object *)data; - Eina_Stringshare *item_name = elm_object_item_data_get(glit); - - assert(item_name != NULL); - - Evas_Object *tabs = evas_object_data_get(nf, TABS_DATA_KEY); - - assert(tabs != NULL); - - evas_object_smart_callback_call(tabs, "wl,part,select", part); - evas_object_smart_callback_call(tabs, "wl,part,item,select", (char *)item_name); - return; -} - -static void -_on_part_item_unselect(void *data, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - Elm_Object_Item *glit = (Elm_Object_Item *)event_info; - Evas_Object *nf = (Evas_Object *)data; - - assert(nf != NULL); - - TODO("Is this check needed?"); - if (!elm_genlist_item_parent_get(glit)) return; - Eina_Stringshare *item_name = elm_object_item_data_get(glit); - - assert(item_name != NULL); - - Evas_Object *tabs = evas_object_data_get(nf, TABS_DATA_KEY); - - assert(tabs != NULL); - - evas_object_smart_callback_call(tabs, "wl,part,item,unselect", (char *)item_name); -} -/* -static void -_layout_add_cb(void *data, - Evas_Object *obj, - void *event_info __UNUSED__) -{ - Evas_Object *block = (Evas_Object *)data; - - assert(block != NULL); - - Evas_Object *widget_list = evas_object_data_get(obj, WIDGETLIST_DATA_KEY); - - assert(widget_list); - - evas_object_smart_callback_call(block, "wl,layout,add", widget_list); -} - -static void -_layout_del_cb(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - Evas_Object *block = (Evas_Object *)data; - - assert(block != NULL); - - evas_object_smart_callback_call(block, "wl,layout,del", NULL); -}*/ - -static void -_unset_cur_style(void *data, - Evas_Object *obj, - void *ei __UNUSED__) -{ - Project *project = (Project *)data; - - assert(project != NULL); - - Part *pr; - EINA_INLIST_FOREACH(project->current_style->parts, pr) - pr->show = true; - project->current_style = NULL; - evas_object_smart_callback_del(obj, "wl,part,back", _unset_cur_style); -} - -static void -_add_style_cb(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - Evas_Object *block = elm_object_parent_widget_get(evas_object_data_get((Evas_Object *)data, TABS_DATA_KEY)); - - assert(block != NULL); - - evas_object_smart_callback_call(block, "wl,style,add", NULL); -} - -static void -_del_style_cb(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - Evas_Object *block = elm_object_parent_widget_get(evas_object_data_get((Evas_Object *)data, TABS_DATA_KEY)); - - assert(block != NULL); - - evas_object_smart_callback_call(block, "wl,style,del", NULL); -} - -static void -_del_part_cb(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - Evas_Object *nf = (Evas_Object *)data; - - assert(nf != NULL); - - Evas_Object *tabs = evas_object_data_get(nf, TABS_DATA_KEY); - - assert(tabs != NULL); - - evas_object_smart_callback_call(tabs, "wl,part,del", NULL); -} - -static void -_add_part_cb(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - Evas_Object *nf = (Evas_Object *)data; - - assert(nf != NULL); - - Evas_Object *tabs = evas_object_data_get(nf, TABS_DATA_KEY); - - assert(tabs != NULL); - - evas_object_smart_callback_call(tabs, "wl,part,add", NULL); -} - -static void -_above_part_cb(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - Evas_Object *nf = (Evas_Object *)data; - - assert(nf != NULL); - - Evas_Object *tabs = evas_object_data_get(nf, TABS_DATA_KEY); - - assert(tabs != NULL); - - evas_object_smart_callback_call(tabs, "wl,part,above", NULL); -} - -static void -_past_part_cb(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - Evas_Object *nf = (Evas_Object *)data; - - assert(nf != NULL); - - Evas_Object *tabs = evas_object_data_get(nf, TABS_DATA_KEY); - - assert(tabs != NULL); - - evas_object_smart_callback_call(tabs, "wl,part,below", NULL); -} - -static void -_part_reordered(Evas_Object *data, - Evas_Object *obj __UNUSED__, - Elm_Object_Item *item) -{ - Evas_Object *nf = (Evas_Object *)data; - - assert(nf != NULL); - - Evas_Object *tabs = evas_object_data_get(nf, TABS_DATA_KEY); - - assert(tabs != NULL); - - Part *part = NULL; - Elm_Object_Item *rel = elm_genlist_item_next_get(item); - elm_genlist_item_selected_set(item, true); - - if (!elm_genlist_item_parent_get(item)) - { - if (rel) - { - part = elm_object_item_data_get(rel); - evas_object_smart_callback_call(tabs, "wl,part,moved,up", part); - } - else - { - rel = elm_genlist_item_prev_get(item); - part = elm_object_item_data_get(rel); - evas_object_smart_callback_call(tabs, "wl,part,moved,down", part); - } - } -} - -static void -_part_items_expand(void *data, - Evas_Object *obj, - void *event_info) -{ - Evas_Object *nf = (Evas_Object *)data; - - assert(nf != NULL); - - Elm_Object_Item *glit = event_info; - Part *_part = elm_object_item_data_get(glit); - - assert(_part != NULL); - - Eina_List *l_items = NULL, *l_n_items = NULL; - Eina_Stringshare *item_name = NULL; - - EINA_LIST_FOREACH_SAFE(_part->items, l_items, l_n_items, item_name) - { - elm_genlist_item_append(obj, _itc_part_item, item_name, - glit, ELM_GENLIST_ITEM_NONE, - _on_part_item_select, nf); - } -} - -static void -_part_items_contract(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - Elm_Object_Item *glit = event_info; - elm_genlist_item_subitems_clear(glit); -} - -static void -_part_items_expand_req(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - Elm_Object_Item *glit = event_info; - elm_genlist_item_expanded_set(glit, true); -} - -static void -_part_items_contract_req(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - Elm_Object_Item *glit = event_info; - elm_genlist_item_expanded_set(glit, false); -} - -static void -_wl_item_selected(void *data __UNUSED__, - Evas_Object *obj, - void *event_info __UNUSED__) -{ - Elm_Object_Item *dec_eoi = NULL, *eoi = NULL; - eoi = elm_genlist_selected_item_get(obj); - dec_eoi = elm_genlist_decorated_item_get(obj); - if (dec_eoi) - { - elm_genlist_item_decorate_mode_set(dec_eoi, "mode", false); - elm_genlist_item_update(dec_eoi); - } - elm_genlist_item_selected_set(eoi, true); - return; -} - -static void -_on_style_clicked_double(void *data, - Evas_Object *obj, - void *event_info) -{ - Project *pr = (Project *)data; - Elm_Object_Item *glit = (Elm_Object_Item *)event_info; - Elm_Object_Item *eoi; - Evas_Object *nf, *nf_widgets, *nf_layouts, *tabs, *gl_parts, *bt, *ic; - Eina_Inlist *parts; - Style *_style, *clicked_style; - Part *_part; - Evas_Object *button = NULL; - Evas_Object *_icon = NULL; - Eina_List *naviframe_items = NULL; - - assert(pr != NULL); - - nf = evas_object_data_get(obj, NAVIFRAME_DATA_KEY); - tabs = evas_object_data_get(nf, TABS_DATA_KEY); - nf_widgets = evas_object_data_get(tabs, WIDGETS_NAVIFRAME_DATA_KEY); - nf_layouts = evas_object_data_get(tabs, LAYOUTS_NAVIFRAME_DATA_KEY); - _style = elm_object_item_data_get(glit); - - assert(nf != NULL); - assert(tabs != NULL); - assert(nf_widgets != NULL); - assert(nf_layouts != NULL); - assert(_style != NULL); - - if ((_style->__type != STYLE) && (_style->__type != LAYOUT)) - return; - if (nf == nf_widgets) - { - naviframe_items = elm_naviframe_items_get(nf_layouts); - if (eina_list_count(naviframe_items) == 2) - _navi_gl_parts_pop(nf_layouts, NULL, NULL); - } - else if (nf == nf_layouts) - { - naviframe_items = elm_naviframe_items_get(nf_widgets); - if (eina_list_count(naviframe_items) == 3) - _navi_gl_parts_pop(nf_widgets, NULL, NULL); - } - eina_list_free(naviframe_items); - - clicked_style = _style; - if (_style->isAlias) - { - assert(_style->main_group != NULL); - _style = _style->main_group; - } - - parts = _style->parts; - - evas_object_smart_callback_call(tabs, "wl,style,select", clicked_style); - - if (!_itc_part) - { - _itc_part = elm_genlist_item_class_new(); - _itc_part->item_style = "default"; - _itc_part->func.text_get = _item_part_label_get; - _itc_part->func.content_get = _item_part_content_get; - _itc_part->func.state_get = NULL; - _itc_part->func.del = NULL; - } - - if (!_itc_container) - { - _itc_container = elm_genlist_item_class_new(); - _itc_container->item_style = "default"; - _itc_container->func.text_get = _item_part_label_get; - _itc_container->func.content_get = _item_part_content_get; - _itc_container->func.state_get = NULL; - _itc_container->func.del = NULL; - } - - if (!_itc_part_item) - { - _itc_part_item = elm_genlist_item_class_new(); - _itc_part_item->item_style = "default"; - _itc_part_item->func.text_get = _item_item_label_get; - _itc_part_item->func.content_get = _item_part_item_content_get; - _itc_part_item->func.state_get = NULL; - _itc_part_item->func.del = NULL; - } - - gl_parts = elm_genlist_add(nf); - elm_genlist_longpress_timeout_set(gl_parts, 0.2); - evas_object_data_set(gl_parts, NAVIFRAME_DATA_KEY, nf); - evas_object_data_set(gl_parts, TABS_DATA_KEY, tabs); - elm_genlist_reorder_mode_set(gl_parts, true); - elm_genlist_select_mode_set(gl_parts, ELM_OBJECT_SELECT_MODE_DEFAULT); - evas_object_smart_callback_add(tabs, "wl,part,back", _unset_cur_style, pr); - evas_object_size_hint_align_set(gl_parts, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_size_hint_weight_set(gl_parts, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - EINA_INLIST_FOREACH(parts, _part) - { - if ((_part->type == EDJE_PART_TYPE_TABLE) || - (_part->type == EDJE_PART_TYPE_BOX)) - eoi = elm_genlist_item_append(gl_parts, _itc_container, _part, - NULL, ELM_GENLIST_ITEM_TREE, - _on_part_select, nf); - else - eoi = elm_genlist_item_append(gl_parts, _itc_part, _part, - NULL, ELM_GENLIST_ITEM_NONE, - _on_part_select, nf); - elm_object_item_data_set(eoi, _part); - } - evas_object_smart_callback_add(gl_parts, "moved", - (Evas_Smart_Cb)_part_reordered, nf); - evas_object_smart_callback_add(gl_parts, "expanded", _part_items_expand, nf); - evas_object_smart_callback_add(gl_parts, "contracted", - _part_items_contract, NULL); - evas_object_smart_callback_add(gl_parts, "expand,request", - _part_items_expand_req, NULL); - evas_object_smart_callback_add(gl_parts, "contract,request", - _part_items_contract_req, NULL); - evas_object_smart_callback_add(gl_parts, "unselected", _on_part_item_unselect, nf); - - ICON_STANDARD_ADD(nf, ic, false, "arrow_left"); - - bt = elm_button_add(nf); - evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_layout_content_set(bt, "icon", ic); - evas_object_smart_callback_add(bt, "clicked", _navi_gl_parts_pop, nf); - elm_object_style_set(bt, "anchor"); - evas_object_show(gl_parts); - - elm_naviframe_item_push(nf, clicked_style->full_group_name, bt, NULL, gl_parts, NULL); - - button = elm_button_add(nf); - ICON_STANDARD_ADD(button, _icon, true, "plus"); - elm_object_part_content_set(button, NULL, _icon); - evas_object_smart_callback_add(button, "clicked", _add_part_cb, nf); - elm_object_style_set(button, "anchor"); - elm_object_part_content_set(nf, "elm.swallow.bt3", button); - - button = elm_button_add(nf); - ICON_STANDARD_ADD(button, _icon, true, "minus"); - elm_object_part_content_set(button, NULL, _icon); - evas_object_smart_callback_add (button, "clicked", _del_part_cb, nf); - elm_object_style_set(button, "anchor"); - elm_object_part_content_set(nf, "elm.swallow.bt2", button); - - button = elm_button_add(nf); - ICON_STANDARD_ADD(button, _icon, true, "arrow_up"); - elm_object_part_content_set(button, NULL, _icon); - evas_object_smart_callback_add (button, "clicked", _above_part_cb, nf); - elm_object_style_set(button, "anchor"); - elm_object_part_content_set(nf, "elm.swallow.bt1", button); - - button = elm_button_add(nf); - ICON_STANDARD_ADD(button, _icon, true, "arrow_down"); - elm_object_part_content_set(button, NULL, _icon); - evas_object_smart_callback_add (button, "clicked", _past_part_cb, nf); - elm_object_style_set(button, "anchor"); - elm_object_part_content_set(nf, "elm.swallow.bt0", button); -} - -static Evas_Object * -_item_style_content_get(void *data, - Evas_Object *obj, - const char *part) -{ - Style *_style = (Style *)data; - Evas_Object *icon = NULL; - - assert(_style != NULL); - - if ((!strcmp(part, "elm.swallow.end")) && (_style->isAlias)) - { - IMAGE_ADD_NEW(obj, icon, "icon", "alias_link"); - } - - return icon; -} - -static void -_on_widget_clicked_double(void *data, - Evas_Object *obj, - void *event_info) -{ - Elm_Object_Item *glit = (Elm_Object_Item *)event_info; - Elm_Object_Item *glit_class, *glit_style; - Evas_Object *nf, *gl_class, *bt, *ic; - Eina_Inlist *styles = NULL, *classes = NULL; - Widget *_widget; - Class *_class; - Style *_style = NULL; - Evas_Object *button = NULL; - Evas_Object *_icon = NULL; - - _style = elm_object_item_data_get(glit); - - assert(_style != NULL); - - if (_style->__type == LAYOUT) - { - _on_style_clicked_double(data, obj, event_info); - return; - } - _style = NULL; - - nf = evas_object_data_get(obj, NAVIFRAME_DATA_KEY); - _widget = elm_object_item_data_get(glit); - - assert(nf != NULL); - assert(_widget != NULL); - - classes = _widget->classes; - - assert(classes != NULL); - - if (!_itc_class) - { - _itc_class = elm_genlist_item_class_new(); - _itc_class->item_style = "group_index"; - _itc_class->func.text_get = _item_class_label_get; - _itc_class->func.content_get = NULL; - _itc_class->func.state_get = NULL; - _itc_class->func.del = NULL; - } - - if (!_itc_style) - { - _itc_style = elm_genlist_item_class_new(); - _itc_style->item_style = "default"; - _itc_style->func.text_get = _item_style_label_get; - _itc_style->func.content_get = _item_style_content_get; - _itc_style->func.state_get = NULL; - _itc_style->func.del = NULL; - } - - gl_class = elm_genlist_add(nf); - evas_object_data_set(gl_class, NAVIFRAME_DATA_KEY, nf); - elm_genlist_select_mode_set(gl_class, ELM_OBJECT_SELECT_MODE_ALWAYS); - evas_object_size_hint_align_set(gl_class, EVAS_HINT_FILL, EVAS_HINT_FILL); - evas_object_size_hint_weight_set(gl_class, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - - EINA_INLIST_FOREACH(classes, _class) - { - glit_class = elm_genlist_item_append(gl_class, _itc_class, _class, - NULL, ELM_GENLIST_ITEM_GROUP, - NULL, NULL); - styles = _class->styles; - - EINA_INLIST_FOREACH(styles, _style) - { - glit_style = elm_genlist_item_append(gl_class, _itc_style, - _style, glit_class, ELM_GENLIST_ITEM_NONE, - NULL, NULL); - elm_object_item_data_set(glit_style, _style); - } - } - evas_object_smart_callback_add(gl_class, "clicked,double", - _on_style_clicked_double, data); - - ICON_STANDARD_ADD(nf, ic, false, "arrow_left"); - bt = elm_button_add(nf); - evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_layout_content_set(bt, "icon", ic); - elm_object_style_set(bt, "anchor"); - evas_object_smart_callback_add(bt, "clicked", _navi_gl_styles_pop, nf); - elm_naviframe_item_push(nf, _widget->name, bt, NULL, gl_class, NULL); - - button = elm_button_add(nf); - ICON_STANDARD_ADD(button, _icon, true, "minus"); - elm_object_part_content_set(button, NULL, _icon); - evas_object_smart_callback_add (button, "clicked", _del_style_cb, nf); - elm_object_style_set(button, "anchor"); - elm_object_part_content_set(nf, "elm.swallow.bt0", button); - - button = elm_button_add(nf); - ICON_STANDARD_ADD(button, _icon, true, "plus"); - evas_object_size_hint_align_set(button, -1, EVAS_HINT_FILL); - elm_object_part_content_set(button, NULL, _icon); - evas_object_smart_callback_add (button, "clicked", _add_style_cb, obj); - elm_object_style_set(button, "anchor"); - elm_object_part_content_set(nf, "elm.swallow.bt1", button); - evas_object_show(gl_class); -} - -Eina_Bool -ui_widget_list_class_data_reload(Evas_Object *gl_classes, Eina_Inlist *classes) -{ - Style *_style = NULL; - Class *_class = NULL; - Eina_Inlist *styles = NULL; - Elm_Object_Item *glit_style = NULL; - Elm_Object_Item *glit_class = NULL; - - assert(gl_classes != NULL); - - elm_genlist_clear(gl_classes); - - assert(classes != NULL); - - if (!_itc_class) - { - _itc_class = elm_genlist_item_class_new(); - _itc_class->item_style = "group_index"; - _itc_class->func.text_get = _item_class_label_get; - _itc_class->func.content_get = NULL; - _itc_class->func.state_get = NULL; - _itc_class->func.del = NULL; - } - - if (!_itc_style) - { - _itc_style = elm_genlist_item_class_new(); - _itc_style->item_style = "default"; - _itc_style->func.text_get = _item_style_label_get; - _itc_style->func.content_get = NULL; - _itc_style->func.state_get = NULL; - _itc_style->func.del = NULL; - } - - EINA_INLIST_FOREACH(classes, _class) - { - glit_class = elm_genlist_item_append(gl_classes, _itc_class, _class, - NULL, ELM_GENLIST_ITEM_NONE, - NULL, NULL); - styles = _class->styles; - - EINA_INLIST_FOREACH(styles, _style) - { - glit_style = elm_genlist_item_append(gl_classes, _itc_style, - _style, glit_class, ELM_GENLIST_ITEM_NONE, - NULL, NULL); - elm_object_item_data_set(glit_style, _style); - } - } - return true; -} - -TODO("This is old function and PROBABLY won't be ever used again.") -Evas_Object * -ui_widget_list_add(Evas_Object *parent __UNUSED__) -{ - Evas_Object *tabs = NULL; -/* Evas_Object *nf_widgets, *nf_layouts; - Evas_Object *ic, *bt; - Evas_Object *gl_widgets = NULL; - Evas_Object *gl_layouts = NULL; - Elm_Object_Item *it_widgets, *it_layouts; - Ewe_Tabs_Item *widgets_tab, *layouts_tab; - - assert(parent != NULL); - - if (!_itc_widget) - { - _itc_widget = elm_genlist_item_class_new(); - _itc_widget->item_style = "title"; - _itc_widget->func.text_get = _item_widget_label_get; - _itc_widget->func.content_get = NULL; - _itc_widget->func.state_get = NULL; - _itc_widget->func.del = NULL; - } - if (!_itc_layout) - { - _itc_layout = elm_genlist_item_class_new(); - _itc_layout->item_style = "title"; - _itc_layout->decorate_item_style = "mode"; - _itc_layout->func.text_get = _item_layout_label_get; - _itc_layout->func.content_get = _item_style_content_get; - _itc_layout->func.state_get = NULL; - _itc_layout->func.del = NULL; - } - tabs = ewe_tabs_add(parent); - - widgets_tab = ewe_tabs_item_append(tabs, NULL, _("Themes"), NULL); - layouts_tab = ewe_tabs_item_append(tabs, NULL, _("Layouts"), NULL); - - -#define NAVI(TYPE, TEXT) \ - nf_##TYPE = elm_naviframe_add(tabs); \ - ewe_tabs_item_content_set(tabs, TYPE##_tab, nf_##TYPE); \ - evas_object_size_hint_align_set(nf_##TYPE, EVAS_HINT_FILL, EVAS_HINT_FILL); \ - evas_object_size_hint_weight_set(nf_##TYPE, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); \ - \ - gl_##TYPE = elm_genlist_add(nf_##TYPE); \ - evas_object_size_hint_align_set(gl_##TYPE, \ - EVAS_HINT_FILL, \ - EVAS_HINT_FILL); \ - evas_object_size_hint_weight_set(gl_##TYPE, \ - EVAS_HINT_EXPAND, \ - EVAS_HINT_EXPAND); \ - evas_object_data_set(gl_##TYPE, NAVIFRAME_DATA_KEY, nf_##TYPE); \ - evas_object_data_set(gl_##TYPE, TABS_DATA_KEY, tabs); \ - evas_object_data_set(nf_##TYPE, TABS_DATA_KEY, tabs); \ - \ - it_##TYPE = elm_naviframe_item_push(nf_##TYPE, NULL, NULL, NULL, gl_##TYPE, NULL); \ - elm_object_item_part_text_set(it_##TYPE, "subtitle", TEXT); - - NAVI(widgets, _("Widget list")); - NAVI(layouts, _("Layouts list")); -#undef NAVI - ICON_STANDARD_ADD(nf_layouts, ic, false, "plus"); - bt = elm_button_add(nf_layouts); - evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_layout_content_set(bt, "icon", ic); - elm_object_style_set(bt, "anchor"); - evas_object_show(bt); - evas_object_data_set(bt, WIDGETLIST_DATA_KEY, tabs); - evas_object_smart_callback_add (bt, "clicked", _layout_add_cb, parent); - elm_object_item_part_content_set(it_layouts, "elm.swallow.bt1", bt); - ICON_STANDARD_ADD(nf_layouts, ic, false, "minus"); - bt = elm_button_add(nf_layouts); - evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_layout_content_set(bt, "icon", ic); - elm_object_style_set(bt, "anchor"); - evas_object_show(bt); - evas_object_data_set(bt, WIDGETLIST_DATA_KEY, tabs); - evas_object_smart_callback_add (bt, "clicked", _layout_del_cb, parent); - elm_object_item_part_content_set(it_layouts, "elm.swallow.bt0", bt); - - evas_object_data_set(tabs, WIDGETS_NAVIFRAME_DATA_KEY, nf_widgets); - evas_object_data_set(tabs, LAYOUTS_NAVIFRAME_DATA_KEY, nf_layouts); - evas_object_data_set(tabs, WIDGETS_TAB_DATA_KEY, widgets_tab); - evas_object_data_set(tabs, LAYOUTS_TAB_DATA_KEY, layouts_tab); */ - - return tabs; -} - -Eina_Bool -ui_widget_list_title_set(Evas_Object *object, const char *title) -{ - Elm_Object_Item *item_gl_widgets; - - assert(object != NULL); - assert(title != NULL); - - item_gl_widgets = elm_naviframe_bottom_item_get(evas_object_data_get(object, - WIDGETS_NAVIFRAME_DATA_KEY)); - - assert(item_gl_widgets != NULL); - - elm_object_item_part_text_set(item_gl_widgets, "elm.text.title", title); - - item_gl_widgets = elm_naviframe_bottom_item_get(evas_object_data_get(object, - LAYOUTS_NAVIFRAME_DATA_KEY)); - - assert(item_gl_widgets != NULL); - - elm_object_item_part_text_set(item_gl_widgets, "elm.text.title", title); - - return true; -} - -TODO("fix renaming") -/* -static void -_wl_key_down_cb(void *data __UNUSED__, - Evas *e __UNUSED__, - Evas_Object *obj, - void *event) -{ - Evas_Event_Key_Down *ev = event; - Elm_Object_Item *eoi = NULL, *dec_eoi = NULL; - Style *_style = NULL; - - if ((evas_key_modifier_is_set(ev->modifiers, "Alt")) || - (evas_key_modifier_is_set(ev->modifiers, "Shift")) || - (evas_key_modifier_is_set(ev->modifiers, "Control"))) - return; - - dec_eoi = elm_genlist_decorated_item_get(obj); - if (!strcmp(ev->key, "F2")) - { - eoi = elm_genlist_selected_item_get(obj); - if (!eoi) - { - NOTIFY_INFO(3, _("Please select element for rename")); - return; - } - _style = elm_object_item_data_get(eoi); - if (_style->__type == LAYOUT) - { - if (dec_eoi) - { - elm_genlist_item_decorate_mode_set(dec_eoi, "mode", - false); - elm_genlist_item_update(dec_eoi); - } - elm_genlist_item_decorate_mode_set(eoi, "mode", true); - } - return; - } - if ((!strcmp(ev->key, "Escape")) && (dec_eoi)) - { - elm_genlist_item_decorate_mode_set(dec_eoi, "mode", false); - elm_genlist_item_update(dec_eoi); - elm_genlist_item_selected_set(dec_eoi, true); - return; - } - return; -} */ - -Eina_Bool -ui_widget_list_layouts_reload(Evas_Object *gl_layouts, Project *project) -{ - Elm_Object_Item *eoi = NULL; - Style *_layout = NULL; - - assert(gl_layouts != NULL); - assert(project != NULL); - - elm_genlist_clear(gl_layouts); - EINA_INLIST_FOREACH(project->layouts, _layout) - { - eoi = elm_genlist_item_append(gl_layouts, _itc_layout, _layout, - NULL, ELM_GENLIST_ITEM_NONE, - NULL, NULL); - elm_object_item_data_set(eoi, _layout); - } - return true; -} - -Eina_Bool -ui_widget_list_data_set(Evas_Object *object, Project *project) -{ - Widget *_widget; - Style *_layout; - Elm_Object_Item *eoi; - Evas_Object *nf_widgets; - Evas_Object *gl_widgets; - Evas_Object *nf_layouts; - Evas_Object *gl_layouts; - Eina_Inlist *widget_list = NULL; - - assert(object != NULL); - assert(project != NULL); - - widget_list = project->widgets; - nf_widgets = evas_object_data_get(object, WIDGETS_NAVIFRAME_DATA_KEY); - - assert(nf_widgets != NULL); - - gl_widgets = elm_object_item_part_content_get(_widget_list_get(nf_widgets), - "elm.swallow.content"); - - assert(gl_widgets != NULL); - - elm_genlist_select_mode_set(gl_widgets, ELM_OBJECT_SELECT_MODE_ALWAYS); - - nf_layouts = evas_object_data_get(object, LAYOUTS_NAVIFRAME_DATA_KEY); - - assert(nf_layouts != NULL); - - gl_layouts = elm_object_item_part_content_get(_widget_list_get(nf_layouts), - "elm.swallow.content"); - - assert(gl_layouts != NULL); - - elm_genlist_select_mode_set(gl_layouts, ELM_OBJECT_SELECT_MODE_ALWAYS); - - EINA_INLIST_FOREACH(widget_list, _widget) - { - eoi = elm_genlist_item_append(gl_widgets, _itc_widget, _widget, - NULL, ELM_GENLIST_ITEM_NONE, - _wl_item_selected, NULL); - elm_object_item_data_set(eoi, _widget); - } - - EINA_INLIST_FOREACH(project->layouts, _layout) - { - eoi = elm_genlist_item_append(gl_layouts, _itc_layout, _layout, - NULL, ELM_GENLIST_ITEM_NONE, - _wl_item_selected, NULL); - elm_object_item_data_set(eoi, _layout); - } - -#define CALLBACKS(TYPE) \ - evas_object_smart_callback_add(gl_##TYPE, "clicked,double", \ - _on_widget_clicked_double, project); - -TODO("fix renaming") -/* evas_object_event_callback_add(gl_##TYPE, EVAS_CALLBACK_KEY_DOWN, \ - _wl_key_down_cb, NULL); \ */ - CALLBACKS(widgets); - CALLBACKS(layouts); -#undef CALLBACKS - return true; -} - -Eina_Bool -ui_widget_list_part_add(Evas_Object *object, Style *style, const char *name) -{ - Evas_Object *gl_parts, *nf; - Elm_Object_Item *eoi; - Part *part; - - assert(object != NULL); - assert(style != NULL); - assert(name != NULL); - - part = wm_part_add(style, name); - - assert(part != NULL); - - if (style->__type == STYLE) - { - nf = evas_object_data_get(object, WIDGETS_NAVIFRAME_DATA_KEY); - } - else if (style->__type == LAYOUT) - { - nf = evas_object_data_get(object, LAYOUTS_NAVIFRAME_DATA_KEY); - } - else - { - ERR("Wrong style type"); - abort(); - } - - assert(nf != NULL); - - gl_parts = elm_object_item_part_content_get(_widget_list_get(nf), - "elm.swallow.content"); - - assert(gl_parts != NULL); - - if ((part->type == EDJE_PART_TYPE_TABLE) || - (part->type == EDJE_PART_TYPE_BOX)) - eoi = elm_genlist_item_append(gl_parts, _itc_container, part, - NULL, ELM_GENLIST_ITEM_TREE, - _on_part_select, nf); - else - eoi = elm_genlist_item_append(gl_parts, _itc_part, part, NULL, - ELM_GENLIST_ITEM_NONE, _on_part_select, nf); - elm_object_item_data_set(eoi, part); - elm_genlist_item_selected_set(eoi, true); - - return true; -} - -Eina_Bool -ui_widget_list_selected_part_del(Evas_Object *object, Style *style) -{ - Evas_Object *gl_parts; - Elm_Object_Item *eoi, *next_eoi; - Part *part; - - assert(object != NULL); - assert(style != NULL); - - gl_parts = elm_object_item_part_content_get(_widget_list_get(_current_naviframe_get(object)), - "elm.swallow.content"); - - assert(gl_parts != NULL); - - eoi = elm_genlist_selected_item_get(gl_parts); - - if (!eoi) - { - NOTIFY_INFO(3, _("No part selected")); - return false; - } - if (elm_genlist_item_parent_get(eoi)) - { - eoi = elm_genlist_item_parent_get(eoi); - elm_genlist_item_subitems_clear(eoi); - } - else - elm_genlist_item_subitems_clear(eoi); - part = (Part *)elm_object_item_data_get(eoi); - wm_part_del(style, part); - - next_eoi = elm_genlist_item_next_get(eoi); - if (!next_eoi) next_eoi = elm_genlist_item_prev_get(eoi); - if (next_eoi) elm_genlist_item_selected_set(next_eoi, true);/* */ - elm_object_item_del(eoi); - - return true; -} - -static Eina_Bool -_selected_part_move(Evas_Object *object, Style *style, Eina_Bool move_up) -{ - Evas_Object *gl_parts = NULL; - Elm_Object_Item *eoi = NULL; - Elm_Object_Item *new_eoi = NULL; - Elm_Object_Item *prev_eoi = NULL; - Elm_Object_Item *next_eoi = NULL; - Elm_Object_Item *prev_next_eoi = NULL; - Part *part = NULL; - Eina_Inlist *prev_elm = NULL; - Eina_Inlist *next_elm = NULL; - Eina_Inlist *itr = NULL; - Part *_part = NULL; - Evas_Object *nf; - Eina_Bool expanded; - - assert(object != NULL); - assert(style != NULL); - - nf = _current_naviframe_get(object); - - assert(nf != NULL); - - gl_parts = elm_object_item_part_content_get(_widget_list_get(nf), - "elm.swallow.content"); - - assert(gl_parts != NULL); - - eoi = elm_genlist_selected_item_get(gl_parts); - if (!eoi) - { - NOTIFY_INFO(3, _("No part selected")); - return false; - } - expanded = elm_genlist_item_expanded_get(eoi); - if (move_up) - { - prev_eoi = elm_genlist_item_prev_get(eoi); - if (!prev_eoi) - { - NOTIFY_INFO(3, _("Selected part is currently on top of the list")); - return false; - } - if (elm_genlist_item_parent_get(prev_eoi)) - prev_eoi = elm_genlist_item_parent_get(prev_eoi); - } - else - { - next_eoi = elm_genlist_item_next_get(eoi); - /* if actual moving item is Container */ - while (elm_genlist_item_parent_get(next_eoi)) - next_eoi = elm_genlist_item_next_get(next_eoi); - if (!next_eoi) - { - NOTIFY_INFO(3, _("Selected part is currently on bottom of the list")); - return false; - } - /* if next item is Container with expanded items */ - if (elm_genlist_item_subitems_count(next_eoi) > 0) - { - next_eoi = elm_genlist_item_next_get(next_eoi); - prev_next_eoi = next_eoi; - while (elm_genlist_item_parent_get(next_eoi)) - { - prev_next_eoi = next_eoi; - next_eoi = elm_genlist_item_next_get(next_eoi); - } - if (!next_eoi) next_eoi = prev_next_eoi; - } - } - part = elm_object_item_data_get(eoi); - - if (part->__type != PART) return false; - - if (part->type == EDJE_PART_TYPE_TABLE || - part->type == EDJE_PART_TYPE_BOX) - { - new_eoi = (move_up) ? - elm_genlist_item_insert_before(gl_parts, _itc_container, part, NULL, - prev_eoi, elm_genlist_item_type_get(eoi), - _on_part_select, nf) : - elm_genlist_item_insert_after(gl_parts, _itc_container, part, NULL, - next_eoi, elm_genlist_item_type_get(eoi), - _on_part_select, nf); - } - else - { - new_eoi = (move_up) ? - elm_genlist_item_insert_before(gl_parts, _itc_part, part, NULL, - prev_eoi, elm_genlist_item_type_get(eoi), - _on_part_select, nf) : - elm_genlist_item_insert_after(gl_parts, _itc_part, part, NULL, - next_eoi, elm_genlist_item_type_get(eoi), - _on_part_select, nf); - } - eoi = elm_genlist_selected_item_get(gl_parts); - elm_object_item_del(eoi); - elm_genlist_item_selected_set(new_eoi, EINA_TRUE); - elm_genlist_item_expanded_set(new_eoi, expanded); - - for(itr = style->parts; itr != NULL; itr = itr->next) - { - _part = EINA_INLIST_CONTAINER_GET(itr, Part); - if (_part == part) - { - prev_elm = itr->prev; - next_elm = itr->next; - style->parts = eina_inlist_remove(style->parts, itr); - style->parts = (move_up) ? eina_inlist_prepend_relative(style->parts, - itr, prev_elm): - eina_inlist_append_relative(style->parts, - itr, next_elm); - break; - } - } - - return true; -} - -Eina_Bool -ui_widget_list_selected_part_above(Evas_Object *object, Style *style) -{ - return _selected_part_move(object, style, true); -} - -Eina_Bool -ui_widget_list_selected_part_below(Evas_Object *object, Style *style) -{ - return _selected_part_move(object, style, false); -} - -Part * -ui_widget_list_selected_part_get(Evas_Object *object) -{ - Evas_Object *gl_parts; - Part *part; - Elm_Object_Item *eoi; - Elm_Object_Item *parent_item = NULL; - - assert(object != NULL); - - gl_parts = elm_object_item_part_content_get(_widget_list_get(_current_naviframe_get(object)), - "elm.swallow.content"); - - assert(gl_parts != NULL); - - eoi = elm_genlist_selected_item_get(gl_parts); - if (!eoi) return NULL; - parent_item = elm_genlist_item_parent_get(eoi); - if (parent_item) eoi = parent_item; - - part = (Part *) elm_object_item_data_get(eoi); - if ((!part) || (part->__type != PART)) return NULL; - - return part; -} - -Eina_Bool -ui_widget_list_part_selected_set(Evas_Object *object, - const char *part, - Eina_Bool selected) -{ - Evas_Object *gl_parts; - - assert(object != NULL); - assert(part != NULL); - - gl_parts = elm_object_item_part_content_get(_widget_list_get(_current_naviframe_get(object)), - "elm.swallow.content"); - - assert(gl_parts != NULL); - - Elm_Object_Item *item = _genlist_find_item_by_name(gl_parts, part); - - if (item) - { - elm_genlist_item_selected_set(item, selected); - elm_genlist_item_bring_in(item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE); - return true; - } - else - { - ERR("This should appear only in tests to skip actual part selection"); - return false; - } -} - -Eina_Bool -ui_widget_list_part_update(Evas_Object *object, const char *part) -{ - Evas_Object *gl_parts; - Elm_Object_Item *item; - - assert(object != NULL); - assert(part != NULL); - - gl_parts = elm_object_item_part_content_get(_widget_list_get(_current_naviframe_get(object)), - "elm.swallow.content"); - - assert(gl_parts != NULL); - - item = _genlist_find_item_by_name(gl_parts, part); - - assert(item != NULL); - - elm_genlist_item_update(item); - - return true; -} - -Eina_List * -ui_widget_list_selected_parts_get(Evas_Object *object) -{ - Evas_Object *gl_parts; - Part *part; - Elm_Object_Item *eoi; - Eina_List *selected, *l; - Eina_List *parts = NULL; - - assert(object != NULL); - - gl_parts = elm_object_item_part_content_get(_widget_list_get(_current_naviframe_get(object)), - "elm.swallow.content"); - - assert(gl_parts != NULL); - - selected = (Eina_List *)elm_genlist_selected_items_get(gl_parts); - if (!selected) return NULL; - - EINA_LIST_FOREACH(selected, l, eoi) - { - part = (Part *)elm_object_item_data_get(eoi); - parts = eina_list_append(parts, part); - } - - return parts; -} - -void -ui_widget_list_style_parts_reload(Evas_Object *object, Style *style) -{ - Part *_part = NULL; - Elm_Object_Item *eoi = NULL; - Evas_Object *nf = NULL, *gl_parts = NULL; - - assert(object != NULL); - assert(style != NULL); - - gl_parts = elm_object_item_part_content_get( - _widget_list_get(_current_naviframe_get(object)), - "elm.swallow.content"); - - assert(gl_parts != NULL); - - nf = evas_object_data_get(gl_parts, NAVIFRAME_DATA_KEY); - - assert(nf != NULL); - - elm_genlist_clear(gl_parts); - - EINA_INLIST_FOREACH(style->parts, _part) - { - if ((_part->type == EDJE_PART_TYPE_TABLE) || - (_part->type == EDJE_PART_TYPE_BOX)) - eoi = elm_genlist_item_append(gl_parts, _itc_container, _part, - NULL, ELM_GENLIST_ITEM_TREE, - _on_part_select, nf); - else - eoi = elm_genlist_item_append(gl_parts, _itc_part, _part, - NULL, ELM_GENLIST_ITEM_NONE, - _on_part_select, nf); - elm_object_item_data_set(eoi, _part); - } -} - -TODO("Really old function! Remove!") -Eina_Bool -ui_widget_list_tab_activate(Evas_Object *object __UNUSED__, unsigned int tab_index __UNUSED__) -{ -/* Ewe_Tabs_Item * tab_item; - const Eina_List *tabs_list; - - assert(object != NULL); - - tabs_list = ewe_tabs_items_list_get(object); - tab_item = eina_list_nth(tabs_list, tab_index); - if (!tab_item) return false; - - ewe_tabs_active_item_set(object, tab_item); */ - return true; -} - -Eina_Bool -ui_widget_list_part_items_refresh(Evas_Object *obj, Part *part, Eina_Bool addition) -{ - Elm_Object_Item *iterator = NULL; - Part *item_data = NULL; - Eina_List *l_items = NULL, *l_n_items = NULL; - Eina_Stringshare *item_name = NULL; - Evas_Object *nf = NULL; - Evas_Object *part_list = NULL; - Elm_Object_Item *eoi = NULL; - - assert(obj != NULL); - assert(part != NULL); - - part_list = elm_object_item_part_content_get( - _widget_list_get(_current_naviframe_get(obj)), - "elm.swallow.content"); - - assert(part_list != NULL); - - nf = evas_object_data_get(part_list, NAVIFRAME_DATA_KEY); - - assert(nf != NULL); - - iterator = elm_genlist_first_item_get(part_list); - if (!iterator) return false; - - while (iterator) - { - item_data = elm_object_item_data_get(iterator); - - /* We are searching through parts. - * If current item is actually BOX's or TABLE's item (contain parent), - * checking need to be skipped. */ - if (!elm_genlist_item_parent_get(iterator)) - { - assert(item_data != NULL); - assert(item_data->__type == PART); - - if (item_data == part) - { - if (!elm_genlist_item_expanded_get(iterator)) return true; - elm_genlist_item_subitems_clear(iterator); - EINA_LIST_FOREACH_SAFE(item_data->items, l_items, l_n_items, item_name) - { - - eoi = elm_genlist_item_append(part_list, _itc_part_item, item_name, - iterator, ELM_GENLIST_ITEM_NONE, - _on_part_item_select, nf); - } - if (addition) - elm_genlist_item_selected_set(eoi, true); - else - elm_genlist_item_selected_set(iterator, true); - return true; - } - } - iterator = elm_genlist_item_next_get(iterator); - } - return false; -} - diff --git a/src/bin/ui/connector.c b/src/bin/ui/connector.c deleted file mode 100644 index 9abe920..0000000 --- a/src/bin/ui/connector.c +++ /dev/null @@ -1,1412 +0,0 @@ -/* - * Edje Theme Editor - * Copyright (C) 2013-2014 Samsung Electronics. - * - * This file is part of Edje Theme Editor. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; If not, see www.gnu.org/licenses/lgpl.html. - */ - -#include "main_window.h" -#include "project_navigator.h" -#include "tabs.h" -#include "signals.h" -#include "preference.h" - -#define makefile "#! bin/sh\nedje_cc -id ./images -fd ./fonts -sd ./sounds " - -static Elm_Entry_Filter_Accept_Set accept_name = { - .accepted = NULL, - .rejected = STYLE_NAME_BANNED_SYMBOLS -}; - -/* -static Eina_Bool -_project_close_request(Eina_Bool changed); -*/ - -/* -static void -_signal_select(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - Signal *sig = (Signal *)event_info; - Part *part = NULL; - Evas_Object *prop_view = NULL; - - assert(sig != NULL); - assert(sig->style != NULL); - - evas_object_freeze_events_set(sig->style->obj, false); - wm_style_state_parts_reset(sig->style); - edje_edit_program_run(sig->style->obj, sig->program); - wm_style_current_state_parts_update(sig->style); - - prop_view = ui_block_property_get(); - part = ui_states_list_part_get(); - TODO("Explain to me this piece of code") - if (part) - { - ui_states_list_data_set(sig->style, part); - ui_property_state_set(prop_view, part); - workspace_edit_object_part_state_set(ap.workspace, part); - } - else - workspace_edit_object_recalc(ap.workspace); - evas_object_freeze_events_set(sig->style->obj, true); -} -*/ - -/* -static void -_add_state(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - State_Data *sd = (State_Data *)event_info; - char **split; - - assert(sd != NULL); - - if (sd->duplicate_state) - { - split = eina_str_split(sd->duplicate_state, " ", 2); - workspace_edit_object_part_state_copy(ap.workspace, sd->part->name, - split[0], atof(split[1]), - sd->state, sd->value); - free(split[0]); - free(split); - } - else - workspace_edit_object_part_state_add(ap.workspace, sd->part->name, - sd->state, sd->value); - project_changed(true); - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_MAIN, false); -} - -static void -_del_state(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - State_Data *sd = (State_Data *)event_info; - char **split; - - assert(sd); - - split = eina_str_split(sd->state, " ", 2); - workspace_edit_object_part_state_del(ap.workspace, sd->part->name, split[0], atof(split[1])); - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_MAIN, false); - project_changed(true); - free(split[0]); - free(split); -} -*/ -static void -_del_layout(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - ui_group_delete(LAYOUT); -} - -static Evas_Object * -_widgetlist_current_genlist_get(Type __UNUSED__ group_type) -{ -/* Evas_Object *tabs = NULL; - const Evas_Object *nf = NULL; - Elm_Object_Item *nf_item = NULL; - Ewe_Tabs_Item *current_tab_item = NULL; - - tabs = ui_block_widget_list_get(); - current_tab_item = ewe_tabs_active_item_get(tabs); - nf = ewe_tabs_item_content_get(tabs, current_tab_item); - - if ((group_type == STYLE) || (group_type == CLASS)) - nf_item = elm_naviframe_top_item_get(nf); - else - nf_item = elm_naviframe_bottom_item_get(nf); - - return elm_object_item_part_content_get(nf_item, NULL); -*/ - return NULL; -} - -static void -_job_popup_close(void *data __UNUSED__) -{ - - evas_object_del(ap.popup); - ap.popup = NULL; - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_MAIN, false); -} - -static void -_popup_close_cb(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - ecore_job_add(_job_popup_close, NULL); -} - -static void -_add_layout_cb(void *data, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - Evas_Object *widget_list, *eoi; - Style *layout = NULL; - Eina_Stringshare *name = NULL; - Evas_Object *en; - - widget_list = _widgetlist_current_genlist_get(LAYOUT); - en = (Evas_Object *)data; - - assert(en != NULL); - - name = eina_stringshare_add(elm_entry_entry_get(en)); - if (eina_stringshare_strlen(name) <= 0) - { - NOTIFY_WARNING(_("Please type layout name")); - eina_stringshare_del(name); - return; - } - - if (edje_edit_group_exist(ap.project->global_object, name)) - { - NOTIFY_INFO(3, _("Failed to create new layout: layout with this name already exist")); - eina_stringshare_del(name); - return; - } - - if (!edje_edit_group_add(ap.project->global_object, name)) - { - ERR("Can't add group"); - abort(); - } - - //pm_save_to_dev(ap.project, NULL, true); - layout = wm_style_add(name, name, LAYOUT, NULL); - ap.project->layouts = eina_inlist_append(ap.project->layouts, - EINA_INLIST_GET(layout)); - wm_style_data_load(layout, evas_object_evas_get(widget_list), - ap.project->mmap_file); - ui_widget_list_layouts_reload(widget_list, ap.project); - widget_list = _widgetlist_current_genlist_get(LAYOUT); - eoi = elm_genlist_last_item_get(widget_list); - elm_genlist_item_selected_set(eoi, true); - eina_stringshare_del(name); - - ecore_job_add(_job_popup_close, NULL); - //project_changed(true); - eina_stringshare_del(name); - return; -} - -static void -_popup_layout_add(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - Evas_Object *item, *en, *bt; - - - /* Checking if the source style is an alias. - We can't clone aliases right now, it need lots of difficult code for that. - */ - ap.popup = elm_popup_add(ap.win_layout); - elm_object_part_text_set(ap.popup, "title,text", _("Add new layout")); - elm_popup_orient_set(ap.popup, ELM_POPUP_ORIENT_CENTER); - - LAYOUT_PROP_ADD(ap.popup, "Style name:", "property", "1swallow") - ENTRY_ADD(item, en, true) - elm_object_part_text_set(en, "guide", _("Type a new layout name")); - elm_entry_markup_filter_append(en, elm_entry_filter_accept_set, &accept_name); - elm_object_part_content_set(item, "elm.swallow.content", en); - elm_object_content_set(ap.popup, item); - - BUTTON_ADD(ap.popup, bt, _("Add")); - evas_object_smart_callback_add(bt, "clicked", _add_layout_cb, en); - elm_object_part_content_set(ap.popup, "button1", bt); - - BUTTON_ADD(ap.popup, bt, _("Cancel")); - evas_object_smart_callback_add(bt, "clicked", _popup_close_cb, NULL); - elm_object_part_content_set(ap.popup, "button2", bt); - - evas_object_show(ap.popup); - elm_object_focus_set(en, true); -} - -static void -_del_style(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - ui_group_delete(STYLE); -} - -static void -_add_style_dailog(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info __UNUSED__) -{ - style_dialog_add(); -} - -Widget * -ui_widget_from_ap_get(void) -{ - Widget *widget = NULL; - Evas_Object *gl_widget = NULL; - Elm_Object_Item *eoi = NULL; - - - gl_widget = _widgetlist_current_genlist_get(WIDGET); - - assert(gl_widget != NULL); - - eoi = elm_genlist_selected_item_get(gl_widget); - - assert(eoi != NULL); - - widget = elm_object_item_data_get(eoi); - - assert(widget != NULL); - - return widget; -} - -Class * -ui_class_from_ap_get(void) -{ - Evas_Object *gl_class = NULL; - Elm_Object_Item *eoi = NULL; - Elm_Object_Item *parent_eoi = NULL; - - - gl_class = _widgetlist_current_genlist_get(CLASS); - - assert(gl_class != NULL); - - eoi = elm_genlist_selected_item_get(gl_class); - TODO("Check logic here"); - if (!eoi) - { - eoi = elm_genlist_first_item_get(gl_class); - if (!eoi) return NULL; - } - parent_eoi = elm_genlist_item_parent_get(eoi); - if (parent_eoi) eoi = parent_eoi; - return elm_object_item_data_get(eoi); -} - -static inline void -_widget_list_layouts_tab_activate(void) -{ - - if (!eina_inlist_count(ap.project->widgets)) - ui_widget_list_tab_activate(ui_block_widget_list_get(), 1); -} - -Eina_Bool -blocks_show(void) -{ - Evas_Object *wd_list; - - - wd_list = ui_widget_list_add(ap.block.left_top); - ui_widget_list_title_set(wd_list, ap.project->name); - ui_widget_list_data_set(wd_list, ap.project); - ui_block_widget_list_set(wd_list); - add_callbacks_wd(wd_list); - - _widget_list_layouts_tab_activate(); - - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_BASE, false); - ui_menu_disable_set(ap.menu, MENU_FILE_SAVE, true); - - code_edit_mode_switch(false); - - return true; -} - -static Eina_Bool -_eflete_filter(const char *path, - Eina_Bool dir, - void *data __UNUSED__) -{ - if (dir) return true; - - if (eina_str_has_extension(path, ".pro")) - return true; - return false; -} - -static void -_fs_close(void *data __UNUSED__, - Evas_Object *obj, - void *event_info __UNUSED__) -{ - - ap.modal_editor--; - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_MAIN, false); - evas_object_del(obj); -} - -static void -_progress_pm_open_end(void *data __UNUSED__, PM_Project_Result result) -{ - - switch (result) - { - case PM_PROJECT_ERROR: - { - NOTIFY_INFO(3, _("Can't open project.")); - break; - } - case PM_PROJECT_CANCEL: - { - NOTIFY_INFO(3, _("Project opening canceled.")); - break; - } - case PM_PROJECT_SUCCESS: - { - ap.project = pm_project_thread_project_get(); - assert(ap.project); - - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_MAIN, false); - ui_menu_disable_set(ap.menu, MENU_FILE_CLOSE_PROJECT, false); - project_navigator_project_set(); - - NOTIFY_INFO(3, _("Project '%s' is opened."), ap.project->name); - STATUSBAR_PROJECT_PATH(ap.project->pro_path); - STATUSBAR_PROJECT_SAVE_TIME_UPDATE(); - - break; - } - default: - { - ERR("Wrong result"); - abort(); - } - } - - splash_del(ap.splash); - ap.splash = NULL; -} - -static Eina_Bool -_progress_print(void *data, Eina_Stringshare *progress_string); - -static Eina_Bool -_setup_open_splash(void *data, Splash_Status status __UNUSED__) -{ - Eina_Stringshare *path = data; - - assert(path != NULL); - - pm_project_open(path, - _progress_print, - _progress_pm_open_end, - NULL); - - eina_stringshare_del(path); - - return true; -} - -static Eina_Bool -_teardown_open_splash(void *data __UNUSED__, Splash_Status status __UNUSED__) -{ - pm_project_thread_free(); - - return true; -} - -static Eina_Bool -_cancel_open_splash(void *data __UNUSED__, Splash_Status status __UNUSED__) -{ - pm_project_thread_cancel(); - - return true; -} - -static void -_on_fs_open_done(void *data, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - Evas_Object *win; - const char *selected; - win = (Evas_Object *)data; - - assert(win != NULL); - - selected = (const char *)event_info; - - evas_object_hide(win); - _fs_close(NULL, win, NULL); - - if (!selected) - { - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_STYLE_ONLY, true); - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_BASE, true); - return; - } - - ap.splash = splash_add(ap.win, - _setup_open_splash, - _teardown_open_splash, - _cancel_open_splash, - (void *)eina_stringshare_add(selected)); - evas_object_focus_set(ap.splash, true); - evas_object_show(ap.splash); -} -/* -Eina_Bool -project_close(void) -{ - - if (ap.project) - { - if (!_project_close_request(ap.project->changed)) - return false; - - STATUSBAR_PROJECT_PATH(_("No project opened")); - elm_layout_text_set(ap.win_layout, "eflete.project.time", _("Last saved: none")); - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_BASE, true); - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_STYLE_ONLY, true); - project_navigator_project_unset(); - tabs_clean(); - pm_project_close(ap.project); - ap.project = NULL; - } - return true; -} -*/ - -void -project_open(void) -{ - Evas_Object *win, *fs, *ic; - if (!project_close()) - return; - win = mw_add(NULL, _fs_close, NULL); - - assert(win != NULL); - - evas_object_show(win); - mw_title_set(win, "Select a project file"); - ic = elm_icon_add(win); - elm_icon_standard_set(ic, "folder"); - mw_icon_set(win, ic); - - FILESELECTOR_ADD(fs, win, _on_fs_open_done, win); - elm_fileselector_custom_filter_append(fs, _eflete_filter, NULL, "Eflete Files"); - elm_fileselector_mime_types_filter_append(fs, "*", "All Files"); - elm_win_inwin_content_set(win, fs); - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_MAIN, true); - - ap.modal_editor++; -} - -/****************************** Project save **********************************/ - -static Eina_Bool -_progress_print(void *data __UNUSED__, Eina_Stringshare *progress_string) -{ - elm_object_part_text_set(ap.splash, "label.info", progress_string); - - return true; -} - -/* -static void -_progress_end(void *data __UNUSED__, PM_Project_Result result) -{ - - switch (result) - { - case PM_PROJECT_ERROR: - { - NOTIFY_INFO(3, _("Error: project not saved.")); - break; - } - case PM_PROJECT_CANCEL: - { - NOTIFY_INFO(3, _("Saving canceled.")); - break; - } - case PM_PROJECT_SUCCESS: - { - ap.project->changed = false; - break; - } - default: - { - ERR("Wrong result"); - abort(); - } - } - -#ifdef HAVE_ENVENTOR - if (ap.enventor_mode) - { - wm_widgets_list_objects_load(ap.project->widgets, - evas_object_evas_get(ap.win), - ap.project->mmap_file); - wm_layouts_list_objects_load(ap.project->layouts, - evas_object_evas_get(ap.win), - ap.project->mmap_file); - wm_styles_build_alias(ap.project->widgets, - ap.project->layouts); - enventor_object_focus_set(ap.enventor, true); - //pm_save_to_dev(ap.project, ap.project->current_style, true); - } -#endif - - splash_del(ap.splash); - ap.splash = NULL; -} -*/ - -TODO("I think, this functionality need move to dialogs") -static void -_replace_cb(void *data, - Evas_Object *obj __UNUSED__, - void *ei __UNUSED__) -{ - Eina_Bool *res = data; - *res = true; - ecore_main_loop_quit(); -} - -static void -_ecancel_cb(void *data, - Evas_Object *obj __UNUSED__, - void *ei __UNUSED__) -{ - Eina_Bool *res = data; - *res = false; - ecore_main_loop_quit(); -} - - -Eina_Bool -export_replace_request(Evas_Object *parent, const char *msg) -{ - Eina_Bool result = false; - Evas_Object *popup, *btn; - Eina_Stringshare *title; - - assert(parent != NULL); - - title = eina_stringshare_printf(_("Export project")); - popup = elm_popup_add(parent); - elm_object_part_text_set(popup, "title,text", title); - elm_popup_content_text_wrap_type_set(popup, ELM_WRAP_WORD); - elm_object_text_set(popup, msg); - BUTTON_ADD(popup, btn, _("Replace")); - evas_object_smart_callback_add(btn, "clicked", _replace_cb, &result); - elm_object_part_content_set(popup, "button1", btn); - BUTTON_ADD(popup, btn, _("Cancel")); - evas_object_smart_callback_add(btn, "clicked", _ecancel_cb, &result); - elm_object_part_content_set(popup, "button2", btn); - evas_object_show(popup); - eina_stringshare_del(title); - - ecore_main_loop_begin(); - - evas_object_del(popup); - - return result; -} - -Eina_Bool -export_warning(Evas_Object *parent, const char *title, const char *msg) -{ - Eina_Bool result = false; - Evas_Object *popup, *btn; - - assert(parent != NULL); - - popup = elm_popup_add(parent); - elm_object_part_text_set(popup, "title,text", title); - elm_popup_content_text_wrap_type_set(popup, ELM_WRAP_WORD); - elm_object_text_set(popup, msg); - BUTTON_ADD(popup, btn, _("Ok")); - evas_object_smart_callback_add(btn, "clicked", _ecancel_cb, &result); - elm_object_part_content_set(popup, "button1", btn); - evas_object_show(popup); - - ecore_main_loop_begin(); - - evas_object_del(popup); - - return result; -} - -/* -static Eina_Bool -_export_splash_setup(void *data, Splash_Status status __UNUSED__) -{ - const char *path; - - path = (const char *)data; - assert(path != NULL); - - pm_project_develop_export(ap.project, path, - _progress_print, _progress_end, - NULL); - - return true; -} - -static Eina_Bool -_export_splash_teardown(void *data, Splash_Status status __UNUSED__) -{ - eina_stringshare_del(data); - return true; -} - -static void -_on_export_done(void *data, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - Eina_Stringshare *selected, *path, *dest_file; - Evas_Object *win; - - win = (Evas_Object *)data; - - assert(win != NULL); - - selected = (const char *)event_info; - path = elm_fileselector_path_get(obj); - if (!selected) - { - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_MAIN, false); - evas_object_del(win); - return; - } - - if (!strcmp(selected, path)) - { - export_warning(win, _("Export edj develop"), - _("Name field is empty! Please type a file name to export.")); - return; - } - - dest_file = eina_stringshare_add(selected); - if (!eina_str_has_extension(selected, ".edj")) - dest_file = eina_stringshare_printf("%s.edj", selected); - if ((ecore_file_exists(dest_file)) && - (!export_replace_request(win, _("The file already exists." - "Replacement will overwrite its contents.")))) - return; - - ap.splash = splash_add(ap.win, _export_splash_setup, _export_splash_teardown, - NULL, (void *)eina_stringshare_add(dest_file)); - evas_object_focus_set(ap.splash, true); - evas_object_show(ap.splash); - - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_MAIN, false); - eina_stringshare_del(dest_file); - evas_object_del(win); -} - -static Eina_Bool -_edje_filter(const char *path, - Eina_Bool dir, - void *data __UNUSED__) -{ - if (dir) return true; - - if (eina_str_has_extension(path, ".edj")) - return true; - return false; -} - -void -project_export_develop(void) -{ - Evas_Object *win, *fs; - - win = mw_add(NULL, _fs_close, NULL); - - assert(win != NULL); - - evas_object_show(win); - FILESELECTOR_ADD(fs, win, _on_export_done, win); - elm_object_text_set(fs, "Select a file"); - elm_fileselector_is_save_set(fs, true); - elm_fileselector_custom_filter_append(fs, _edje_filter, NULL, "Edje Files"); - elm_fileselector_mime_types_filter_append(fs, "*", "All Files"); - elm_win_inwin_content_set(win, fs); - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_MAIN, true); -} -*/ - -static void -_on_export_edc_group_done(void *data, - Evas_Object *obj, - void *event_info) -{ - const char *selected; - Evas_Object *win; - Eina_Stringshare *path = NULL; - Eina_Stringshare *dir_path = NULL; - Style *style = NULL; - - char **tmp; - unsigned int tokens_count, i; - - win = (Evas_Object *)data; - - assert(win != NULL); - - selected = (const char *)event_info; - if (!selected) - { - evas_object_del(win); - return; - } - style = ap.project->current_style; - - Eina_Stringshare *file = NULL; - - tmp = eina_str_split_full(style->full_group_name, "/", 0, &tokens_count); - if (!tmp[0]) return; - file = eina_stringshare_add(tmp[0]); - - for (i = 1; tokens_count - 1 > 0; i++, tokens_count--) - file = eina_stringshare_printf("%s_%s", file, tmp[i]); - free(tmp[0]); - free(tmp); - - dir_path = eina_stringshare_printf("%s/%s", elm_fileselector_path_get(obj), file); - if (!ecore_file_exists(dir_path)) - ecore_file_mkdir(dir_path); - path = eina_stringshare_printf("%s/%s.edc", dir_path, file); - if (!pm_project_style_source_code_export(ap.project, style, path)) - ERR("Source code of the current style was not exported to edc file %s", path); - pm_style_resource_export(ap.project, style, dir_path); - - eina_stringshare_del(file); - eina_stringshare_del(path); - eina_stringshare_del(dir_path); - evas_object_del(win); -} - -void -project_export_edc_group(void) -{ - Evas_Object *win, *fs; - win = mw_add(NULL, _fs_close, NULL); - - assert(win != NULL); - - evas_object_show(win); - FILESELECTOR_ADD(fs, win, _on_export_edc_group_done, win); - elm_fileselector_is_save_set(fs, false); - elm_fileselector_folder_only_set(fs, true); - elm_win_inwin_content_set(win, fs); -} - -/* -static void -_on_export_edc_project_done(void *data, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - const char *selected; - Evas_Object *win; - Eina_Stringshare *dir_path = NULL; - Eina_Stringshare *build_sh = NULL; - Eina_Stringshare *build_str = NULL; - Eina_Stringshare *current_dev_path = NULL; - Eina_Strbuf *request_str = NULL; - Eina_Bool chk = true; - FILE *fbuild; - - win = (Evas_Object *)data; - - assert(win != NULL); - - selected = (const char *)event_info; - if (!selected) - { - evas_object_del(win); - ap.modal_editor--; - return; - } - dir_path = eina_stringshare_printf("%s/%s", selected, ap.project->name); - - if (ecore_file_exists(dir_path)) - { - if (ecore_file_is_dir(dir_path)) - { - current_dev_path = eina_stringshare_printf("%s/develop", dir_path); - if (!strcmp(ap.project->develop_path, current_dev_path)) - { - export_warning(win, _("Export edc project"), - _("Can not delete current project folder!")); - return; - } - request_str = eina_strbuf_new(); - eina_strbuf_append_printf(request_str, - _("The <path>'%s'</path> directory " - "already exists.<br>Do you want to " - "<b><orange>delete all</orange></b>" - " content of this folder and create " - "new for project export edc in it?"), - dir_path); - - chk = export_replace_request(win, eina_strbuf_string_get(request_str)); - if (chk) - { - chk = ecore_file_recursive_rm(dir_path); - if (!chk) - { - NOTIFY_ERROR(_("Can not delete folder %s!"), - dir_path); - } - else - ecore_file_mkdir(dir_path); - } - else - return; - } - else - { - NOTIFY_ERROR(_("The name <path>'%s'</path> is " - "already used at this location."), - dir_path); - chk = false; - } - } - else - ecore_file_mkdir(dir_path); - - if (request_str) - eina_strbuf_free(request_str); - - pm_project_source_code_export(ap.project, dir_path); - pm_project_resource_export(ap.project, dir_path); - build_sh = eina_stringshare_printf("%s/build.sh", dir_path); - fbuild = fopen(build_sh, "w"); - if (!fbuild) - ERR("Could't open file '%s'", build_sh); - build_str = eina_stringshare_printf("%s%s.edc", makefile, ap.project->name); - fputs(build_str, fbuild); - fclose(fbuild); - if (chmod(build_sh, 677) != 0) - ERR("Could't set permission flags for '%s'", build_sh); - - eina_stringshare_del(dir_path); - eina_stringshare_del(build_sh); - eina_stringshare_del(build_str); - if (current_dev_path) - eina_stringshare_del(current_dev_path); - evas_object_del(win); - ap.modal_editor--; -} - -void -project_export_edc_project(void) -{ - Evas_Object *win, *fs; - - win = mw_add(NULL, _fs_close, NULL); - - assert(win != NULL); - - evas_object_show(win); - FILESELECTOR_ADD(fs, win, _on_export_edc_project_done, win); - elm_fileselector_is_save_set(fs, false); - elm_fileselector_folder_only_set(fs, true); - elm_win_inwin_content_set(win, fs); - - ap.modal_editor++; -} -*/ - -/*************************** Close request popup ******************************/ -/* -static void -_discard_cb(void *data, - Evas_Object *obj __UNUSED__, - void *ei __UNUSED__) -{ - Eina_Bool *res = data; - - assert(res != NULL); - - *res = true; - ecore_main_loop_quit(); -} - -static void -_cancel_cb(void *data, - Evas_Object *obj __UNUSED__, - void *ei __UNUSED__) -{ - Eina_Bool *res = data; - - assert(res != NULL); - - *res = false; - ecore_main_loop_quit(); -} - -static void -_save_cb(void *data, - Evas_Object *obj __UNUSED__, - void *ei __UNUSED__) -{ - Eina_Bool *res = data; - - assert(res != NULL); - - evas_object_hide(ap.popup); - project_save(); - *res = true; - ecore_main_loop_quit(); -} - -static void -_close_cb(void *data, - Evas_Object *obj __UNUSED__, - void *ei __UNUSED__) -{ - Eina_Bool *res = data; - - assert(res != NULL); - - evas_object_hide(ap.popup); - *res = true; - ecore_main_loop_quit(); -} - -static Eina_Bool -_project_close_request(Eina_Bool changed) -{ - - if (ap.project->close_request) return false; - ap.project->close_request = true; - - Eina_Bool result = false; - Evas_Object *btn, *label; - Eina_Stringshare *title; - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_MAIN, true); - title = eina_stringshare_printf(_("Close project %s"), ap.project->name); - ap.popup = elm_popup_add(ap.win_layout); - if (changed) - { - BUTTON_ADD(ap.popup, btn, _("Save")); - evas_object_smart_callback_add(btn, "clicked", _save_cb, &result); - elm_object_part_content_set(ap.popup, "button1", btn); - BUTTON_ADD(ap.popup, btn, _("Don't save")); - evas_object_smart_callback_add(btn, "clicked", _discard_cb, &result); - elm_object_part_content_set(ap.popup, "button2", btn); - - LABEL_ADD(ap.popup, label, _("Do you want to save changes?")); - } - else - { - BUTTON_ADD(ap.popup, btn, _("Close")); - evas_object_smart_callback_add(btn, "clicked", _close_cb, &result); - elm_object_part_content_set(ap.popup, "button1", btn); - - LABEL_ADD(ap.popup, label, _("Do you want to close project?")); - } - elm_object_part_text_set(ap.popup, "title,text", title); - elm_object_content_set(ap.popup, label); - - BUTTON_ADD(ap.popup, btn, _("Cancel")); - evas_object_smart_callback_add(btn, "clicked", _cancel_cb, &result); - if (changed) - elm_object_part_content_set(ap.popup, "button3", btn); - else - elm_object_part_content_set(ap.popup, "button2", btn); - eina_stringshare_del(title); - - ecore_main_loop_begin(); - - ap.project->close_request = false; - ui_menu_items_list_disable_set(ap.menu, MENU_ITEMS_LIST_MAIN, false); - evas_object_del(ap.popup); - ap.popup = NULL; - - return result; -} -*/ - -/******************************************************************************/ -static Eina_Bool -_selected_layout_delete(Evas_Object *genlist) -{ - assert(genlist != NULL); - - Elm_Object_Item *item_to_del = elm_genlist_selected_item_get(genlist), *eoi; - Style *style = elm_object_item_data_get(item_to_del);; - int i; - - if (!item_to_del) - { - NOTIFY_INFO(3, _("Select item to be deleted")); - return false; - } - - eoi = elm_genlist_item_next_get(item_to_del); - if (!eoi) - { - eoi = elm_genlist_item_prev_get(item_to_del); - i = elm_genlist_item_index_get(eoi); - } - else - { - i = elm_genlist_item_index_get(eoi); - i--; - } - - //pm_save_to_dev(ap.project, NULL, true); - evas_object_del(style->obj); - if (!edje_edit_group_del(ap.project->global_object, style->full_group_name)) - { - ERR("Can't del group"); - abort(); - } - ap.project->layouts = eina_inlist_remove(ap.project->layouts, - EINA_INLIST_GET(style)); - ui_widget_list_layouts_reload(genlist, ap.project); - genlist = _widgetlist_current_genlist_get(LAYOUT); - - for (eoi = elm_genlist_first_item_get(genlist); - eoi != elm_genlist_item_next_get(elm_genlist_last_item_get(genlist)); - eoi = elm_genlist_item_next_get(eoi)) - { - if (elm_genlist_item_index_get(eoi) == i) - { - style = elm_object_item_data_get(eoi); - elm_genlist_item_selected_set(eoi, true); - style = elm_object_item_data_get(eoi); - break; - } - } - - //project_changed(true); - return true; -} - -static Eina_Bool -_selected_style_delete(Evas_Object *genlist) -{ - Widget *widget = ui_widget_from_ap_get(); - Class *class_st = NULL; - Style *style = NULL; - Style *alias_style = NULL; - - assert(genlist != NULL); - - Elm_Object_Item *eoi = elm_genlist_selected_item_get(genlist); - Eina_List *l = NULL; - - if (!eoi) - { - NOTIFY_INFO(3, _("No one style is selected")); - return false; - } - - /* Check which type of node is selected: style or class */ - if (elm_genlist_item_parent_get(eoi)) - { - style = elm_object_item_data_get(eoi); - class_st = style->parent; - } - else - class_st = elm_object_item_data_get(eoi); - - if (class_st->__type != CLASS) return false; - - if (style) /* Deleting style */ - { - Evas_Object *st_cur = style->obj; - - if (style->isAlias) st_cur = style->main_group->obj; - - if (!edje_edit_group_exist(st_cur, style->full_group_name)) - { - NOTIFY_INFO(3, _("Style [%s] don't exist"), style->name); - return false; - } - /* Before delete groups from edj file need free tree of aliasses structures*/ - EINA_LIST_FOREACH(style->aliasses, l, alias_style) - { - if (eina_inlist_count(alias_style->parent->styles) <= 1) - wm_class_free(alias_style->parent); - else - wm_style_free(alias_style); - } - /*Delete loaded object for unlock group in edj file*/ - //pm_save_to_dev(ap.project, NULL, true); - evas_object_del(style->obj); - if (!edje_edit_group_del(ap.project->global_object, style->full_group_name)) - { - NOTIFY_INFO(3, _("Failed to delete style[%s]"), style->name); - return false; - } - if (eina_inlist_count(class_st->styles) <= 1) - wm_class_free(class_st); - else - wm_style_free(style); - } - else - return true; - /*else Deleting all styles in class. Work slow! Need patch for edje_edit_group_del - { - EINA_INLIST_FOREACH_SAFE(class_st->styles, l, style) - { - evas_object_del(style->obj); - if (!edje_edit_group_del(ap.project->global_object, style->full_group_name)) - NOTIFY_INFO(3, _("Failed to delete style[%s] in class [%s]"), - style->name, class_st->name); - } - wm_class_free(class_st); - }*/ - - //project_changed(true); - - ui_widget_list_class_data_reload(genlist, widget->classes); - - /* deleting widget */ - if (elm_genlist_items_count(genlist) == 0) - { - Evas_Object *widget_list = ui_block_widget_list_get(); - Evas_Object *naviframe = evas_object_data_get(widget_list, "nf_widgets"); - Elm_Object_Item *item_gl_widgets = elm_naviframe_item_pop(naviframe); - elm_naviframe_item_pop_to(item_gl_widgets); - genlist = elm_object_item_part_content_get(elm_naviframe_top_item_get(naviframe), - "elm.swallow.content"); - eoi = elm_genlist_selected_item_get(genlist); - elm_object_item_del(eoi); - } - - return true; -} - -Eina_Bool -ui_group_delete(Type group_type) -{ - Evas_Object *gl_groups = NULL; - - - gl_groups = _widgetlist_current_genlist_get(group_type); - - Elm_Object_Item *eoi = elm_genlist_selected_item_get(gl_groups); - if (!eoi) - return true; - - if (group_type != LAYOUT) - return _selected_style_delete(gl_groups); - else - return _selected_layout_delete(gl_groups); - return true; -} - -#ifdef HAVE_ENVENTOR -static void -_on_enventor_mode_on(void *data, - Evas_Object *enventor __UNUSED__, - void *event_info __UNUSED__) -{ - -// workspace_highlight_unset(ap.workspace); - //ui_property_part_unset(ui_block_property_get()); - ui_states_list_data_unset(); -} - -static void -_on_enventor_mode_off(void *data, - Evas_Object *enventor __UNUSED__, - void *event_info) -{ - Style *style = (Style *)event_info; - - assert(style != NULL); - - wm_style_data_reload(style, ap.project->mmap_file); - //workspace_edit_object_set(ap.workspace, style, ap.project->dev); - workspace_edit_object_recalc(ap.workspace); - ui_widget_list_style_parts_reload(ui_block_widget_list_get(), style); -// ui_property_style_set(ui_block_property_get(), style, ap.workspace); -} -#endif /* HAVE_ENVENTOR */ - -Eina_Bool -register_callbacks(void) -{ - assert(ap.block.left_top != NULL); - - evas_object_smart_callback_add(ap.block.left_top, "wl,style,add", - _add_style_dailog, NULL); - evas_object_smart_callback_add(ap.block.left_top, "wl,style,del", - _del_style, NULL); - - evas_object_smart_callback_add(ap.block.left_top, "wl,layout,add", - _popup_layout_add, NULL); //_add_layout_cb, NULL); - evas_object_smart_callback_add(ap.block.left_top, "wl,layout,del", - _del_layout, NULL); - -#ifdef HAVE_ENVENTOR - evas_object_smart_callback_add(ap.enventor, "enventor,mode,on", - _on_enventor_mode_on, NULL); - evas_object_smart_callback_add(ap.enventor, "enventor,mode,off", - _on_enventor_mode_off, NULL); -#endif /* HAVE_ENVENTOR */ - return true; -} - -/* -static void -_on_state_selected(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_info) -{ - State_Data *sd = (State_Data *)event_info; - Evas_Object *prop_view; - - - prop_view = ui_block_property_get(); - wm_part_current_state_set(sd->part, sd->state); - ui_property_state_set(prop_view, sd->part); - workspace_edit_object_part_state_set(ap.workspace, sd->part); -} -*/ - -/* -static void -_on_style_clicked(void *datai __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_data) -{ - Style *_style = (Style *)event_data; - - assert(_style != NULL); - - ui_style_clicked(_style); - workspace_zoom_factor_set(ap.workspace, 1.0); -} -*/ -static void -_on_part_selected(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_data) -{ - Part *part = (Part *) event_data; - - assert(part != NULL); - -/* Evas_Object *gl_states = ui_part_select(part); - - if (gl_states) - evas_object_smart_callback_add(gl_states, "stl,state,select", _on_state_selected, NULL);*/ -} - -/* -static void -_on_part_back(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_data __UNUSED__) -{ - workspace_zoom_factor_set(ap.workspace, 1.0); - ui_part_back(); -} -*/ - -static void -_on_part_item_selected(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_data __UNUSED__) -{ -/* - Eina_Stringshare *item_name = (Eina_Stringshare *) event_data; - workspace_edit_object_part_item_selected_set(ap.workspace, item_name, true); - ui_property_item_set(ui_block_property_get(), item_name);*/ -} - -static void -_on_part_item_unselected(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event_data __UNUSED__) -{ - -/* Eina_Stringshare *item_name = (Eina_Stringshare *) event_data; - workspace_edit_object_part_item_selected_set(ap.workspace, item_name, false); - ui_property_item_unset(ui_block_property_get());*/ -} - -TODO("remove this method") -Eina_Bool -add_callbacks_wd(Evas_Object *wd_list) -{ - assert(wd_list != NULL); - - evas_object_smart_callback_add(wd_list, "wl,part,select", _on_part_selected, NULL); - evas_object_smart_callback_add(wd_list, "wl,part,item,select", - _on_part_item_selected, NULL); - evas_object_smart_callback_add(wd_list, "wl,part,item,unselect", - _on_part_item_unselected, NULL); - - return true; -} - -static void -_panes_pos_setup(Evas_Object *panes, double value, Eina_Bool fixed) -{ - assert(panes != NULL); - - elm_panes_content_left_size_set(panes, value); - elm_panes_fixed_set(panes, fixed); -} - -Eina_Bool -code_edit_mode_switch(Eina_Bool is_on) -{ - Config *config; - double left = 0.0/*, tabs_size = 0.0*/; - - - if (is_on) - { - if (!config_panes_sizes_data_update()) return false; - } - else - { - config = config_get(); - - assert(config != NULL); - - //center = config->panes.center; - left = config->panes.left; - //tabs_size = config->panes.tabs_size; - } - - //_panes_pos_setup(ap.panes.center, center, is_on); - _panes_pos_setup(ap.panes.left, left, is_on); - //_panes_pos_setup(ap.panes.right, tabs_size, is_on); - //ui_panes_left_panes_min_size_toggle(!is_on); - - return true; -} diff --git a/src/bin/ui/menu.c b/src/bin/ui/menu.c index 11a4451..c00ba6b 100644 --- a/src/bin/ui/menu.c +++ b/src/bin/ui/menu.c @@ -108,7 +108,8 @@ _menu_cb(void *data __UNUSED__, project_save(); break; case MENU_FILE_EXPORT_EDC_GROUP: - project_export_edc_group(); + TODO("Implement me") + /* project_export_edc_group(); */ break; case MENU_FILE_EXPORT_EDC_PROJECT: project_export_edc_project(); --