rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=e2bf5ccfd2c98fbd8cc32316b79814c2aae7b27a
commit e2bf5ccfd2c98fbd8cc32316b79814c2aae7b27a Author: Mykyta Biliavskyi <m.biliavs...@samsung.com> Date: Tue Jun 7 20:13:26 2016 +0300 Property: add tooltip text for group/part/state attributes. Specific attributes will be done in next commits. --- src/bin/ui/property/property_group.c | 328 +++++++++++++++++++++++++++-------- 1 file changed, 256 insertions(+), 72 deletions(-) diff --git a/src/bin/ui/property/property_group.c b/src/bin/ui/property/property_group.c index b8fa1a7..c2b36c4 100644 --- a/src/bin/ui/property/property_group.c +++ b/src/bin/ui/property/property_group.c @@ -3987,17 +3987,28 @@ _init_items() break; case PROPERTY_GROUP_ITEM_GROUP_NAME: IT.name = "Name"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_ENTRY, ATTRIBUTE_GROUP_NAME, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_ENTRY, ATTRIBUTE_GROUP_NAME, + _("The name that will be used by the application<br>" + "to load the resulting Edje object and to identify<br>" + "the group to swallow in a GROUP part.")); break; case PROPERTY_GROUP_ITEM_GROUP_MIN: IT.name = "Min"; - _action1(&IT, "w", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_GROUP_MIN_W, NULL); - _action2(&IT, "h", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_GROUP_MIN_H, NULL); - break; + _action1(&IT, "w", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_GROUP_MIN_W, + _("The minimum width for the container defined by<br>" + "the composition of the parts. It is not enforced.")); + _action2(&IT, "h", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_GROUP_MIN_H, + _("The minimum height for the container defined by<br>" + "the composition of the parts. It is not enforced.")); + break; case PROPERTY_GROUP_ITEM_GROUP_MAX: IT.name = "Max"; - _action1(&IT, "w", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_GROUP_MAX_W, NULL); - _action2(&IT, "h", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_GROUP_MAX_H, NULL); + _action1(&IT, "w", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_GROUP_MAX_W, + _("The maximum width for the container defined by<br>" + "the composition of the parts. It is not enforced.")); + _action2(&IT, "h", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_GROUP_MAX_H, + _("The maximum height for the container defined by<br>" + "the composition of the parts. It is not enforced.")); break; /* part block */ @@ -4009,7 +4020,10 @@ _init_items() break; case PROPERTY_GROUP_ITEM_PART_NAME: IT.name = "Name"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_ENTRY, ATTRIBUTE_PART_NAME, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_ENTRY, ATTRIBUTE_PART_NAME, + _("The part's name will be used as reference in the theme's<br>" + "relative positioning system, by programs and in some cases<br>" + "by the application. It must be unique within the group.")); break; case PROPERTY_GROUP_ITEM_PART_TYPE: IT.name = "Type"; @@ -4017,32 +4031,61 @@ _init_items() break; case PROPERTY_GROUP_ITEM_PART_SCALE: IT.name = "Scale"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_PART_SCALE, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_PART_SCALE, + _("Specifies whether the part will scale its size with an<br>" + "edje scaling factor. By default scale is off and the<br>" + "default scale factor is 1.0 - that means no scaling.<br>" + "This would be used to scale properties such as font size,<br>" + "min/max size of the part, and possibly can be used to scale<br>" + "based on DPI of the target device. The reason to be selective<br>" + "is that some things work well being scaled, others do not,<br>" + "so the designer gets to choose what works best.")); break; case PROPERTY_GROUP_ITEM_PART_MOUSE_EVENTS: IT.name = "Mouse events"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_PART_MOUSE_EVENTS, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_PART_MOUSE_EVENTS, + _("Specifies whether the part will emit signals,<br>" + "disabling it will prevent the part from emitting<br>" + "any type of signal at all.")); break; case PROPERTY_GROUP_ITEM_PART_REPEAT_EVENTS: IT.name = "Repeat events"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_PART_REPEAT_EVENTS, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_PART_REPEAT_EVENTS, + _("Specifies whether a part echoes a mouse event to other<br>" + "parts below the pointer if enabled, or not if turned off.")); break; case PROPERTY_GROUP_ITEM_PART_CLIP_TO: IT.name = "Clip to"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_CLIP_TO, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_CLIP_TO, + _("Only renders the area of part that coincides with<br>" + "another part's container. Overflowing content will<br>" + "not be displayed. Note that the part being clipped<br>" + "to can only be a rectangle part.")); break; case PROPERTY_GROUP_ITEM_PART_IGNORE_FLAGS: IT.name = "Ignore flags"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_IGNORE_FLAGS, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_IGNORE_FLAGS, + _("Specifies whether events with the given flags should<br>" + "be ignored, i.e., will not have the signals emitted to the parts.")); break; case PROPERTY_GROUP_ITEM_PART_POINTER_MODE: IT.name = "Pointer mode"; IT.filter_data.part_types &= ~PART_SPACER; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_POINTER_MODE, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_POINTER_MODE, + _("Sets the mouse pointer behavior for a given part.<br>" + "The default value is AUTOGRAB. Aviable modes:<br>" + " * AUTOGRAB, when the part is clicked and the button<br>" + " remains pressed, the part will be the source of all<br>" + " future mouse signals emitted, even outside the object,<br>" + " until the button is released.<br>" + " * NOGRAB, the effect will be limited to the part's container.")); break; case PROPERTY_GROUP_ITEM_PART_GROUP_SOURCE: IT.name = "Source"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_GROUP_SOURCE, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_GROUP_SOURCE, + _("Swallows the specified group into the part's container<br>" + "if a GROUP. If TEXTBLOCK it is used for the group to be<br>" + "loaded and used for selection display UNDER the selected text.")); IT.filter_data.part_types = PART_GROUP; break; @@ -4055,14 +4098,28 @@ _init_items() break; case PROPERTY_GROUP_ITEM_PART_DRAGABLE_ENABLE: IT.name = "Enable"; - _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_PART_DRAG_X, NULL); - _action2(&IT, "y", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_PART_DRAG_Y, NULL); - break; + _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_PART_DRAG_X, + _("Used to setup dragging events for the X axis. Enable<br>" + "or disable dragging along the axis. When enabled,<br>" + "1 will set the starting point at 0.0 and -1 at 1.0.")); + _action2(&IT, "y", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_PART_DRAG_Y, + _("Used to setup dragging events for the Y axis. Enable<br>" + "or disable dragging along the axis. When enabled,<br>" + "1 will set the starting point at 0.0 and -1 at 1.0.")); + break; case PROPERTY_GROUP_ITEM_PART_DRAGABLE_STEP: IT.name = "Step"; - _action1(&IT, "x", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_PART_DRAG_STEP_X, NULL); - _action2(&IT, "y", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_PART_DRAG_STEP_Y, NULL); - break; + _action1(&IT, "x", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_PART_DRAG_STEP_X, + _("This parameter takes any integer and will limit<br>" + "movement to values divisible by it, causing the part<br>" + "to jump from position to position. If step is set to 0<br>" + "it is calculated as width of confine part divided by count.")); + _action2(&IT, "y", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_PART_DRAG_STEP_Y, + _("This parameter takes any integer and will limit<br>" + "movement to values divisible by it, causing the part<br>" + "to jump from position to position. If step is set to 0<br>" + "it is calculated as width of confine part divided by count.")); + break; case PROPERTY_GROUP_ITEM_PART_DRAGABLE_COUNT: IT.name = "Count"; _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_PART_DRAG_COUNT_X, NULL); @@ -4070,15 +4127,24 @@ _init_items() break; case PROPERTY_GROUP_ITEM_PART_DRAGABLE_CONFINE: IT.name = "Confine"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_DRAG_CONFINE, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_DRAG_CONFINE, + _("When set, limits the movement of the dragged part to<br>" + "another part's container. When you use confine don't<br>" + "forget to set a min size for the part, or the draggie<br>" + "will not show up.")); break; case PROPERTY_GROUP_ITEM_PART_DRAGABLE_THRESHOLD: IT.name = "Threshold"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_DRAG_THRESHOLD, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_DRAG_THRESHOLD, + _("When set, the movement of the dragged part can only<br>" + "start when it get moved enough to be outside of the<br>" + "threshold part.")); break; case PROPERTY_GROUP_ITEM_PART_DRAGABLE_EVENTS: IT.name = "Events"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_DRAG_EVENT, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_DRAG_EVENT, + _("It causes the part to forward the drag events to<br>" + "another part, thus ignoring them for itself.")); break; /* state block */ @@ -4090,16 +4156,25 @@ _init_items() break; case PROPERTY_GROUP_ITEM_STATE_NAME: IT.name = "Name"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_ENTRY, ATTRIBUTE_STATE_NAME, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_ENTRY, ATTRIBUTE_STATE_NAME, + _("A name used to identify a description inside a<br>" + "given part. Multiple descriptions are used to declare<br>" + "different states of the same part, like \"clicked\"<br>" + "or \"invisible\". All states declarations are also<br>" + "coupled with an index number between 0.0 and 1.0.")); break; case PROPERTY_GROUP_ITEM_STATE_VISIBLE: IT.name = "Visible"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_STATE_VISIBLE, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_STATE_VISIBLE, + _("Takes a boolean state specifying whether part is<br>" + "visible or not. Non-visible parts do not emit signals.")); break; case PROPERTY_GROUP_ITEM_STATE_PROXY_SOURCE: - IT.name = "Vroxy source"; + IT.name = "Proxy source"; IT.filter_data.part_types = PART_PROXY; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_PROXY_SOURCE, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_PROXY_SOURCE, + _("Causes the part to use another part content as<br>" + "the content of this part.")); break; /* state size block */ @@ -4111,96 +4186,155 @@ _init_items() break; case PROPERTY_GROUP_ITEM_STATE_SIZE_MIN: IT.name = "Min"; - _action1(&IT, "w", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_MIN_W, NULL); - _action2(&IT, "h", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_MIN_H, NULL); + _action1(&IT, "w", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_MIN_W, + _("Sets the minimum width size for this state.")); + _action2(&IT, "h", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_MIN_H, + _("Sets the minimum height size for this state.")); break; case PROPERTY_GROUP_ITEM_STATE_SIZE_MAX: IT.name = "Max"; - _action1(&IT, "w", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_MAX_W, NULL); - _action2(&IT, "h", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_MAX_H, NULL); + _action1(&IT, "w", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_MAX_W, + _("Sets the maximum width size for this state.")); + _action2(&IT, "h", "px", PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_MAX_H, + _("Sets the maximum height size for this state.")); break; case PROPERTY_GROUP_ITEM_STATE_SIZE_MINMUL: IT.name = "Minmul"; - _action1(&IT, "w", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_MINMUL_W, NULL); - _action2(&IT, "h", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_MINMUL_H, NULL); + _action1(&IT, "w", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_MINMUL_W, + _("A width multiplier FORCIBLY applied to whatever<br>" + "minimum size is only during minimum size calculation.")); + _action2(&IT, "h", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_MINMUL_H, + _("A height multiplier FORCIBLY applied to whatever<br>" + "minimum size is only during minimum size calculation.")); break; case PROPERTY_GROUP_ITEM_STATE_SIZE_FIXED: IT.name = "Fixed"; - _action1(&IT, "w", NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_STATE_FIXED_W, NULL); - _action2(&IT, "h", NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_STATE_FIXED_H, NULL); + _action1(&IT, "w", NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_STATE_FIXED_W, + _("This tells the min size calculation routine that this<br>" + "part does not change size in width. On for it doesn't,<br>" + "off for it does. So the routine should not try and<br>" + "expand or contract the part.")); + _action2(&IT, "h", NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_STATE_FIXED_H, + _("This tells the min size calculation routine that this<br>" + "part does not change size in height. On for it doesn't,<br>" + "off for it does. So the routine should not try and<br>" + "expand or contract the part.")); break; case PROPERTY_GROUP_ITEM_STATE_SIZE_ASPECT_PREF: IT.name = "Aspect preference"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_ASPECT_PREF, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_ASPECT_PREF, + _("Sets the scope of the \"aspect\" property to a given dimension.")); break; case PROPERTY_GROUP_ITEM_STATE_SIZE_ASPECT: IT.name = "Aspect"; - _action1(&IT, "min", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_ASPECT_MIN, NULL); - _action2(&IT, "max", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_ASPECT_MAX, NULL); - break; + _action1(&IT, "min", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_ASPECT_MIN, + _("Normally width and height can be resized to any values<br>" + "independently. The aspect property forces the width to<br>" + "height ratio to be kept from the minimum.")); + _action2(&IT, "max", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_ASPECT_MAX, + _("Normally width and height can be resized to any values<br>" + "independently. The aspect property forces the width to<br>" + "height ratio to be kept to the maximum.")); + break; /* part text */ case PROPERTY_GROUP_ITEM_PART_TEXT_EFFECT: IT.name = "Effect"; IT.filter_data.part_types = PART_TEXT; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXT_EFFECT, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXT_EFFECT, + _("Causes Edje to draw the selected effect.")); break; case PROPERTY_GROUP_ITEM_PART_TEXT_SHADOW_DIRECTION: IT.name = "Shadow direction"; IT.filter_data.part_types = PART_TEXT; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXT_SHADOW_DIRECTION, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXT_SHADOW_DIRECTION, + _("Shadow directions.")); break; /* part textblock */ case PROPERTY_GROUP_ITEM_PART_SELECT_MODE: IT.name = "Select mode"; IT.filter_data.part_types = PART_TEXTBLOCK; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_SELECT_MODE, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_SELECT_MODE, + _("Sets the selection mode for a textblock part to one of:<br>" + " * DEFAULT selection mode is what you would expect on any<br>" + " desktop. Press mouse, drag and release to end.<br>" + " * EXPLICIT mode requires the application controlling the<br>" + " edje object has to explicitly begin and end selection modes,<br>" + " and the selection itself is dragable at both ends.")); break; case PROPERTY_GROUP_ITEM_PART_ENTRY_MODE: IT.name = "Entry mode"; IT.filter_data.part_types = PART_TEXTBLOCK; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_ENTRY_MODE, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_ENTRY_MODE, + _("Sets the edit mode for a textblock part to one of:<br>" + " * NONE<br>" + " * PLAIN<br>" + " * EDITABLE<br>" + " * PASSWORD It causes the part be editable if the<br>" + " edje object has the keyboard focus AND the part has<br>" + " the edje focus (or selectable always regardless of focus)<br>" + " and in the event of password mode, not selectable and<br>" + " all text chars replaced with *'s but editable and pastable.")); break; case PROPERTY_GROUP_ITEM_PART_CURSOR_MODE: IT.name = "Cursor mode"; IT.filter_data.part_types = PART_TEXTBLOCK; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_CURSOR_MODE, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_CURSOR_MODE, + _("Sets the cursor mode for a textblock part to one of:<br>" + " * UNDER cursor mode means the cursor will draw below<br>" + " the character pointed at. That's the default.<br>" + " * BEFORE cursor mode means the cursor is drawn as<br>" + " a vertical line before the current character, just<br>" + " like many other GUI toolkits handle it.")); break; case PROPERTY_GROUP_ITEM_PART_MULTILINE: IT.name = "Multiline"; IT.filter_data.part_types = PART_TEXTBLOCK; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_PART_MULTILINE, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_CHECK, ATTRIBUTE_PART_MULTILINE, + _("It causes a textblock that is editable to allow multiple lines for editing.")); break; case PROPERTY_GROUP_ITEM_PART_TEXTBLOCK_SELECTION_UNDER: IT.name = "Selection under"; IT.filter_data.part_types = PART_TEXTBLOCK; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXTBLOCK_SELECTION_UNDER, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXTBLOCK_SELECTION_UNDER, + _("It is used for the group to be loaded and used<br>" + "for selection display UNDER the selected text.")); break; case PROPERTY_GROUP_ITEM_PART_TEXTBLOCK_SELECTION_OVER: IT.name = "Selection over"; IT.filter_data.part_types = PART_TEXTBLOCK; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXTBLOCK_SELECTION_OVER, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXTBLOCK_SELECTION_OVER, + _("It is used for the group to be loaded and used<br>" + "for selection display OVER the selected text.")); break; case PROPERTY_GROUP_ITEM_PART_TEXTBLOCK_CURSOR_UNDER: IT.name = "Cursor under"; IT.filter_data.part_types = PART_TEXTBLOCK; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXTBLOCK_CURSOR_UNDER, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXTBLOCK_CURSOR_UNDER, + _("It is used for the group to be loaded and used<br>" + "for cursor display UNDER the cursor position.")); break; case PROPERTY_GROUP_ITEM_PART_TEXTBLOCK_CURSOR_OVER: IT.name = "Cursor over"; IT.filter_data.part_types = PART_TEXTBLOCK; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXTBLOCK_CURSOR_OVER, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXTBLOCK_CURSOR_OVER, + _("It is used for the group to be loaded and used<br>" + "for cursor display OVER the cursor position.")); break; case PROPERTY_GROUP_ITEM_PART_TEXTBLOCK_ANCHORS_UNDER: IT.name = "Anchors under"; IT.filter_data.part_types = PART_TEXTBLOCK; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXTBLOCK_ANCHORS_UNDER, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXTBLOCK_ANCHORS_UNDER, + _("It is used for the group to be loaded and used<br>" + "for anchors display UNDER the anchor position.")); break; case PROPERTY_GROUP_ITEM_PART_TEXTBLOCK_ANCHORS_OVER: IT.name = "Anchors over"; IT.filter_data.part_types = PART_TEXTBLOCK; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXTBLOCK_ANCHORS_OVER, NULL); + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_PART_TEXTBLOCK_ANCHORS_OVER, + _(" It is used for the group to be loaded and used<br>" + "for anchor display OVER the anchor position.")); break; /* state position block */ @@ -4212,8 +4346,22 @@ _init_items() break; case PROPERTY_GROUP_ITEM_STATE_POSITION_ALIGN: IT.name = "Align"; - _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_ALIGN_X, NULL); - _action2(&IT, "y", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_ALIGN_Y, NULL); + _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_ALIGN_X, + _("When the displayed object's size is smaller<br>" + "(or bigger) than its container, this property moves<br>" + "it relatively along X axis inside its container.<br>" + "0.0 means left/top edges of the object touching<br>" + "container's respective ones, while 1.0 stands for<br>" + "right/bottom edges of the object on horizonal axis.<br>" + "The default value is 0.5.")); + _action2(&IT, "y", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_ALIGN_Y, + _("When the displayed object's size is smaller<br>" + "(or bigger) than its container, this property moves<br>" + "it relatively along Y axis inside its container.<br>" + "0.0 means left/top edges of the object touching<br>" + "container's respective ones, while 1.0 stands for<br>" + "right/bottom edges of the object on vertical axis.<br>" + "The default value is 0.5.")); break; case PROPERTY_GROUP_ITEM_STATE_POSITION_REL1_TITLE: IT.name = "Rel1 (start point)"; @@ -4222,23 +4370,41 @@ _init_items() break; case PROPERTY_GROUP_ITEM_STATE_POSITION_REL1_TO_X: IT.name = "Relative to"; - _action1(&IT, "x", NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_REL1_TO_X, NULL); - break; + _action1(&IT, "x", NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_REL1_TO_X, + _("Causes a left-up corner to be positioned relatively to the X<br>" + "axis of another part's container. Simply put affects<br>" + "the first parameter of \"relative\". Setting to NONE<br>" + "will un-set this value for inherited parts.")); + break; case PROPERTY_GROUP_ITEM_STATE_POSITION_REL1_TO_Y: IT.name = ""; - _action1(&IT, "y", NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_REL1_TO_Y, NULL); - break; + _action1(&IT, "y", NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_REL1_TO_Y, + _("Causes a left-up corner to be positioned relatively to the Y<br>" + "axis of another part's container. Simply put affects<br>" + "the first parameter of \"relative\". Setting to NONE<br>" + "will un-set this value for inherited parts.")); + break; case PROPERTY_GROUP_ITEM_STATE_POSITION_REL1_RELATIVE: IT.name = "Relative"; IT.icon_name = eina_stringshare_add(_("elm/image/icon/align")); - _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL1_RELATIVE_X, NULL); - _action2(&IT, "y", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL1_RELATIVE_Y, NULL); - break; + _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL1_RELATIVE_X, + _("Moves a left-up corner to a relative position inside the<br>" + "container of the relative \"to\" part. Values from 0.0<br>" + "(0%, beginning) to 1.0 (100%, end) of X axis.")); + _action2(&IT, "y", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL1_RELATIVE_Y, + _("Moves a left-up corner to a relative position inside the<br>" + "container of the relative \"to\" part. Values from 0.0<br>" + "(0%, beginning) to 1.0 (100%, end) of Y axis.")); + break; case PROPERTY_GROUP_ITEM_STATE_POSITION_REL1_OFFSET: IT.name = "Offset"; IT.icon_name = eina_stringshare_add(_("elm/image/icon/offset")); - _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL1_OFFSET_X, NULL); - _action2(&IT, "y", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL1_OFFSET_Y, NULL); + _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL1_OFFSET_X, + _("Affects the left-up corner position a fixed<br>" + "number of pixels along X axis.")); + _action2(&IT, "y", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL1_OFFSET_Y, + _("Affects the left-up corner position a fixed<br>" + "number of pixels along Y axis.")); break; case PROPERTY_GROUP_ITEM_STATE_POSITION_REL2_TITLE: IT.name = "Rel2 (end point)"; @@ -4247,24 +4413,42 @@ _init_items() break; case PROPERTY_GROUP_ITEM_STATE_POSITION_REL2_TO_X: IT.name = "Relative to"; - _action1(&IT, "x", NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_REL2_TO_X, NULL); - break; + _action1(&IT, "x", NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_REL2_TO_X, + _("Causes a right-down corner to be positioned relatively to the X<br>" + "axis of another part's container. Simply put affects<br>" + "the first parameter of \"relative\". Setting to NONE<br>" + "will un-set this value for inherited parts.")); + break; case PROPERTY_GROUP_ITEM_STATE_POSITION_REL2_TO_Y: IT.name = ""; - _action1(&IT, "y", NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_REL2_TO_Y, NULL); - break; + _action1(&IT, "y", NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_STATE_REL2_TO_Y, + _("Causes a right-down corner to be positioned relatively to the Y<br>" + "axis of another part's container. Simply put affects<br>" + "the first parameter of \"relative\". Setting to NONE<br>" + "will un-set this value for inherited parts.")); + break; case PROPERTY_GROUP_ITEM_STATE_POSITION_REL2_RELATIVE: IT.name = "Relative"; IT.icon_name = eina_stringshare_add(_("elm/image/icon/align")); - _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL2_RELATIVE_X, NULL); - _action2(&IT, "y", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL2_RELATIVE_Y, NULL); - break; + _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL2_RELATIVE_X, + _("Moves a right-down corner to a relative position inside the<br>" + "container of the relative \"to\" part. Values from 0.0<br>" + "(0%, beginning) to 1.0 (100%, end) of X axis.")); + _action2(&IT, "y", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL2_RELATIVE_Y, + _("Moves a right-down corner to a relative position inside the<br>" + "container of the relative \"to\" part. Values from 0.0<br>" + "(0%, beginning) to 1.0 (100%, end) of Y axis.")); + break; case PROPERTY_GROUP_ITEM_STATE_POSITION_REL2_OFFSET: IT.name = "Offset"; IT.icon_name = eina_stringshare_add(_("elm/image/icon/offset")); - _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL2_OFFSET_X, NULL); - _action2(&IT, "y", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL2_OFFSET_Y, NULL); - break; + _action1(&IT, "x", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL2_OFFSET_X, + _("Affects the right-down corner position a fixed<br>" + "number of pixels along X axis.")); + _action2(&IT, "y", NULL, PROPERTY_CONTROL_SPINNER, ATTRIBUTE_STATE_REL2_OFFSET_Y, + _("Affects the right-down corner position a fixed<br>" + "number of pixels along Y axis.")); + break; /* part image */ case PROPERTY_GROUP_ITEM_STATE_IMAGE_TITLE: --