rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=b193bf40cc743e02364ff8217b566177cbe542a7
commit b193bf40cc743e02364ff8217b566177cbe542a7 Author: Vitalii Vorobiov <vi.vorob...@samsung.com> Date: Wed Jun 8 14:00:15 2016 +0300 property_group: simple MAP API for property --- src/bin/editor/editor.h | 18 +++++ src/bin/ui/property/property_group.c | 144 +++++++++++++++++++++++++++++++++ src/bin/ui/property/property_private.h | 9 +++ 3 files changed, 171 insertions(+) diff --git a/src/bin/editor/editor.h b/src/bin/editor/editor.h index ec5901a..e4c6cba 100644 --- a/src/bin/editor/editor.h +++ b/src/bin/editor/editor.h @@ -861,4 +861,22 @@ Eina_Bool editor_program_del(Evas_Object *edit_object, Change *change, Eina_Bool merge, Eina_Bool apply, const char *program_name) EINA_WARN_UNUSED_RESULT; +/* map */ +Eina_Bool +editor_state_map_on_set(Evas_Object *obj, Change *change, Eina_Bool merge, Eina_Bool apply, const char *part_name, const char *state_name, double state_val, + Eina_Bool new_val) EINA_WARN_UNUSED_RESULT; +Eina_Bool +editor_state_map_perspective_on_set(Evas_Object *obj, Change *change, Eina_Bool merge, Eina_Bool apply, const char *part_name, const char *state_name, double state_val, + Eina_Bool new_val) EINA_WARN_UNUSED_RESULT; +Eina_Bool +editor_state_map_smooth_set(Evas_Object *obj, Change *change, Eina_Bool merge, Eina_Bool apply, const char *part_name, const char *state_name, double state_val, + Eina_Bool new_val) EINA_WARN_UNUSED_RESULT; +Eina_Bool +editor_state_map_alpha_set(Evas_Object *obj, Change *change, Eina_Bool merge, Eina_Bool apply, const char *part_name, const char *state_name, double state_val, + Eina_Bool new_val) EINA_WARN_UNUSED_RESULT; +Eina_Bool +editor_state_map_backface_cull_set(Evas_Object *obj, Change *change, Eina_Bool merge, Eina_Bool apply, const char *part_name, const char *state_name, double state_val, + Eina_Bool new_val) EINA_WARN_UNUSED_RESULT; + + #endif /* EDITOR_H */ diff --git a/src/bin/ui/property/property_group.c b/src/bin/ui/property/property_group.c index da450f9..ab5723f 100644 --- a/src/bin/ui/property/property_group.c +++ b/src/bin/ui/property/property_group.c @@ -510,6 +510,7 @@ _subitems_get(Property_Attribute *pa) APPEND(PROPERTY_GROUP_ITEM_STATE_COLORS_TITLE); APPEND(PROPERTY_GROUP_ITEM_STATE_SIZE_TITLE); APPEND(PROPERTY_GROUP_ITEM_STATE_POSITION_TITLE); + APPEND(PROPERTY_GROUP_ITEM_STATE_MAP); APPEND(PROPERTY_GROUP_ITEM_STATE_IMAGE_TITLE); APPEND(PROPERTY_GROUP_ITEM_STATE_FILL_TITLE); APPEND(PROPERTY_GROUP_ITEM_STATE_TEXT_COMMON_TITLE); @@ -528,6 +529,16 @@ _subitems_get(Property_Attribute *pa) APPEND(PROPERTY_GROUP_ITEM_STATE_POSITION_REL1_TITLE); APPEND(PROPERTY_GROUP_ITEM_STATE_POSITION_REL2_TITLE); break; + case PROPERTY_GROUP_ITEM_STATE_MAP: + APPEND(PROPERTY_GROUP_ITEM_STATE_MAP); + APPEND(PROPERTY_GROUP_ITEM_STATE_MAP_ON); + APPEND(PROPERTY_GROUP_ITEM_STATE_MAP_PERSPECTIVE_ON); + APPEND(PROPERTY_GROUP_ITEM_STATE_MAP_PERSPECTIVE); + APPEND(PROPERTY_GROUP_ITEM_STATE_MAP_LIGHT); + APPEND(PROPERTY_GROUP_ITEM_STATE_MAP_SMOOTH); + APPEND(PROPERTY_GROUP_ITEM_STATE_MAP_ALPHA); + APPEND(PROPERTY_GROUP_ITEM_STATE_MAP_BACKFACE_CULL); + break; case PROPERTY_GROUP_ITEM_STATE_POSITION_REL1_TITLE: APPEND(PROPERTY_GROUP_ITEM_STATE_POSITION_REL1_TO_X); APPEND(PROPERTY_GROUP_ITEM_STATE_POSITION_REL1_TO_Y); @@ -817,6 +828,13 @@ _init_cb(Property_Attribute *pa, Property_Action *action) case ATTRIBUTE_PROGRAM_EMIT_SOURCE: case ATTRIBUTE_PROGRAM_STATE: case ATTRIBUTE_PROGRAM_TRANSITION_FROM_CURRENT: + case ATTRIBUTE_STATE_MAP_PERSPECTIVE: + case ATTRIBUTE_STATE_MAP_LIGHT: + case ATTRIBUTE_STATE_MAP_ON: + case ATTRIBUTE_STATE_MAP_PERSPECTIVE_ON: + case ATTRIBUTE_STATE_MAP_SMOOTH: + case ATTRIBUTE_STATE_MAP_ALPHA: + case ATTRIBUTE_STATE_MAP_BACKFACE_CULL: break; case ATTRIBUTE_STATE_TEXT_SIZE: elm_spinner_min_max_set(action->control, 1, 9999); @@ -2113,6 +2131,30 @@ _update_cb(Property_Attribute *pa, Property_Action *action) edje_edit_string_free(str_val1); edje_edit_string_free(str_val2); break; + case ATTRIBUTE_STATE_MAP_PERSPECTIVE: + break; + case ATTRIBUTE_STATE_MAP_LIGHT: + break; + case ATTRIBUTE_STATE_MAP_ON: + bool_val1 = edje_edit_state_map_on_get(EDIT_OBJ, STATE_ARGS); + elm_check_state_set(action->control, bool_val1); + break; + case ATTRIBUTE_STATE_MAP_PERSPECTIVE_ON: + bool_val1 = edje_edit_state_map_perspective_on_get(EDIT_OBJ, STATE_ARGS); + elm_check_state_set(action->control, bool_val1); + break; + case ATTRIBUTE_STATE_MAP_SMOOTH: + bool_val1 = edje_edit_state_map_smooth_get(EDIT_OBJ, STATE_ARGS); + elm_check_state_set(action->control, bool_val1); + break; + case ATTRIBUTE_STATE_MAP_ALPHA: + bool_val1 = edje_edit_state_map_alpha_get(EDIT_OBJ, STATE_ARGS); + elm_check_state_set(action->control, bool_val1); + break; + case ATTRIBUTE_STATE_MAP_BACKFACE_CULL: + bool_val1 = edje_edit_state_map_backface_cull_get(EDIT_OBJ, STATE_ARGS); + elm_check_state_set(action->control, bool_val1); + break; default: TODO("remove default case after all attributes will be added"); CRIT("update callback not found for %s (%s)", pa->name, action->name ? action->name : "unnamed"); @@ -2807,6 +2849,25 @@ _start_cb(Property_Attribute *pa, Property_Action *action) edje_edit_part_item_padding_get(EDIT_OBJ, ITEM_ARGS, NULL, NULL, NULL, &int_val1); VAL(int_val1) = int_val1; break; + case ATTRIBUTE_STATE_MAP_PERSPECTIVE: + break; + case ATTRIBUTE_STATE_MAP_LIGHT: + break; + case ATTRIBUTE_STATE_MAP_ON: + group_pd.history.format = _("map %s"); + break; + case ATTRIBUTE_STATE_MAP_PERSPECTIVE_ON: + group_pd.history.format = _("map perspective %s"); + break; + case ATTRIBUTE_STATE_MAP_SMOOTH: + group_pd.history.format = _("map smooth %s"); + break; + case ATTRIBUTE_STATE_MAP_ALPHA: + group_pd.history.format = _("map alpha %s"); + break; + case ATTRIBUTE_STATE_MAP_BACKFACE_CULL: + group_pd.history.format = _("map backface cull %s"); + break; default: TODO("remove default case after all attributes will be added"); CRIT("start callback not found for %s (%s)", pa->name, action->name ? action->name : "unnamed"); @@ -3650,6 +3711,30 @@ _change_cb(Property_Attribute *pa, Property_Action *action) CRIT_ON_FAIL(editor_part_item_padding_right_set(EDIT_OBJ, CHANGE_MERGE, ITEM_ARGS, double_val1)); edje_edit_part_item_padding_get(EDIT_OBJ, ITEM_ARGS, NULL, &group_pd.history.new.int_val1, NULL, NULL); break; + case ATTRIBUTE_STATE_MAP_PERSPECTIVE: + break; + case ATTRIBUTE_STATE_MAP_LIGHT: + break; + case ATTRIBUTE_STATE_MAP_ON: + CRIT_ON_FAIL(editor_state_map_on_set(EDIT_OBJ, CHANGE_NO_MERGE, STATE_ARGS, bool_val1)); + group_pd.history.new.bool_val1 = bool_val1; + break; + case ATTRIBUTE_STATE_MAP_PERSPECTIVE_ON: + CRIT_ON_FAIL(editor_state_map_perspective_on_set(EDIT_OBJ, CHANGE_NO_MERGE, STATE_ARGS, bool_val1)); + group_pd.history.new.bool_val1 = bool_val1; + break; + case ATTRIBUTE_STATE_MAP_SMOOTH: + CRIT_ON_FAIL(editor_state_map_smooth_set(EDIT_OBJ, CHANGE_NO_MERGE, STATE_ARGS, bool_val1)); + group_pd.history.new.bool_val1 = bool_val1; + break; + case ATTRIBUTE_STATE_MAP_ALPHA: + CRIT_ON_FAIL(editor_state_map_alpha_set(EDIT_OBJ, CHANGE_NO_MERGE, STATE_ARGS, bool_val1)); + group_pd.history.new.bool_val1 = bool_val1; + break; + case ATTRIBUTE_STATE_MAP_BACKFACE_CULL: + CRIT_ON_FAIL(editor_state_map_backface_cull_set(EDIT_OBJ, CHANGE_NO_MERGE, STATE_ARGS, bool_val1)); + group_pd.history.new.bool_val1 = bool_val1; + break; default: TODO("remove default case after all attributes will be added"); CRIT("change callback not found for %s (%s)", pa->name, action->name ? action->name : "unnamed"); @@ -3729,6 +3814,8 @@ _stop_cb(Property_Attribute *pa, Property_Action *action) case ATTRIBUTE_STATE_COLOR_CLASS: case ATTRIBUTE_STATE_TEXT: case ATTRIBUTE_STATE_FONT: + case ATTRIBUTE_STATE_MAP_PERSPECTIVE: + case ATTRIBUTE_STATE_MAP_LIGHT: case ATTRIBUTE_PROGRAM_SIGNAL: case ATTRIBUTE_PROGRAM_EMIT_SIGNAL: case ATTRIBUTE_PROGRAM_EMIT_SOURCE: @@ -3891,6 +3978,11 @@ _stop_cb(Property_Attribute *pa, Property_Action *action) case ATTRIBUTE_STATE_TEXT_ELIPSIS_ENABLE: case ATTRIBUTE_STATE_CONTAINER_MIN_V: case ATTRIBUTE_STATE_CONTAINER_MIN_H: + case ATTRIBUTE_STATE_MAP_ON: + case ATTRIBUTE_STATE_MAP_PERSPECTIVE_ON: + case ATTRIBUTE_STATE_MAP_SMOOTH: + case ATTRIBUTE_STATE_MAP_ALPHA: + case ATTRIBUTE_STATE_MAP_BACKFACE_CULL: case ATTRIBUTE_PROGRAM_TRANSITION_FROM_CURRENT: msg = eina_stringshare_printf(group_pd.history.format, (group_pd.history.new.bool_val1) ? @@ -4237,6 +4329,57 @@ _init_items() "height ratio to be kept to the maximum.")); break; + case PROPERTY_GROUP_ITEM_STATE_MAP: + IT.name = "MAP"; + IT.expandable = true; + IT.expanded = true; + IT.expand_cb = _subitems_get; + break; + case PROPERTY_GROUP_ITEM_STATE_MAP_ON: + IT.name = "Map on:"; + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_STATE_MAP_ON, + _("Enable or disable mapping for the part")); + break; + case PROPERTY_GROUP_ITEM_STATE_MAP_PERSPECTIVE_ON: + IT.name = "Perspective on:"; + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_STATE_MAP_PERSPECTIVE_ON, + _("Enable or disable perspective when rotating.")); + break; + case PROPERTY_GROUP_ITEM_STATE_MAP_SMOOTH: + IT.name = "Smooth:"; + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_STATE_MAP_SMOOTH, + _("Enable or disable smooth map rendering.<br>" + "This may be linear interpolation, anisotropic<br>" + "filtering or anything the engine decides is \"smooth\"")); + break; + case PROPERTY_GROUP_ITEM_STATE_MAP_ALPHA: + IT.name = "Alpha:"; + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_STATE_MAP_ALPHA, + _("Enable or disable alpha channel when map rendering")); + break; + case PROPERTY_GROUP_ITEM_STATE_MAP_BACKFACE_CULL: + IT.name = "Backface Cull:"; + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_STATE_MAP_BACKFACE_CULL, + _("Enables or disabled backface culling (when the rotated part<br>" + "that normally faces the camera is facing away after being<br>" + "rotated etc.). This means that the object will be hidden when<br>" + "\"backface culled\"")); + break; + case PROPERTY_GROUP_ITEM_STATE_MAP_PERSPECTIVE: + IT.name = "Perspective:"; + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_MAP_PERSPECTIVE, + _("This sets the part that is used as the \"perspective point\"<br>" + "for giving a part a \"3d look\". The perspective point should<br>" + "have a perspective section that provides zplane and focal properties.")); + break; + case PROPERTY_GROUP_ITEM_STATE_MAP_LIGHT: + IT.name = "Light"; + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_MAP_LIGHT, + _("This sets the part that is used as the \"light\" for calculating<br>" + "the brightness (based on how directly the part's surface is facing<br>" + "the light source point)")); + break; + /* part text */ case PROPERTY_GROUP_ITEM_PART_TEXT_EFFECT: IT.name = "Effect"; @@ -5032,6 +5175,7 @@ property_group_items_get() items = eina_list_append(items, &group_pd.items[PROPERTY_GROUP_ITEM_GROUP_TITLE]); items = eina_list_append(items, &group_pd.items[PROPERTY_GROUP_ITEM_PART_TITLE]); items = eina_list_append(items, &group_pd.items[PROPERTY_GROUP_ITEM_STATE_TITLE]); + items = eina_list_append(items, &group_pd.items[PROPERTY_GROUP_ITEM_STATE_MAP]); items = eina_list_append(items, &group_pd.items[PROPERTY_GROUP_ITEM_PART_ITEM_TITLE]); items = eina_list_append(items, &group_pd.items[PROPERTY_GROUP_ITEM_PROGRAM_TITLE]); items = eina_list_append(items, &group_pd.items[PROPERTY_GROUP_ITEM_GROUP_DATA_TITLE]); diff --git a/src/bin/ui/property/property_private.h b/src/bin/ui/property/property_private.h index aa27d42..50271b6 100644 --- a/src/bin/ui/property/property_private.h +++ b/src/bin/ui/property/property_private.h @@ -277,6 +277,15 @@ typedef enum { PROPERTY_GROUP_ITEM_STATE_CONTAINER_MIN, PROPERTY_GROUP_ITEM_STATE_CONTAINER_HOMOGENEOUS, + PROPERTY_GROUP_ITEM_STATE_MAP, + PROPERTY_GROUP_ITEM_STATE_MAP_ON, + PROPERTY_GROUP_ITEM_STATE_MAP_PERSPECTIVE_ON, + PROPERTY_GROUP_ITEM_STATE_MAP_PERSPECTIVE, + PROPERTY_GROUP_ITEM_STATE_MAP_LIGHT, + PROPERTY_GROUP_ITEM_STATE_MAP_SMOOTH, + PROPERTY_GROUP_ITEM_STATE_MAP_ALPHA, + PROPERTY_GROUP_ITEM_STATE_MAP_BACKFACE_CULL, + PROPERTY_GROUP_ITEM_PART_ITEM_TITLE, PROPERTY_GROUP_ITEM_PART_ITEM_NAME, PROPERTY_GROUP_ITEM_PART_ITEM_SOURCE, --