hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=48e56a4c4cf04f57ab1f89c960244fdd4b115f05

commit 48e56a4c4cf04f57ab1f89c960244fdd4b115f05
Author: Jaehyun Cho <[email protected]>
Date:   Tue Dec 16 09:08:15 2014 +0900

    ctxpopup: Change slider candidate style to contain type and entry.
    
    Summary:
    Change slider candidate style to contain value type and entry.
    @feature
    
    Reviewers: Hermet
    
    Differential Revision: https://phab.enlightenment.org/D1743
---
 data/themes/default/images.edc        |  12 +--
 data/themes/default/images/minus.png  | Bin 201 -> 0 bytes
 data/themes/default/images/plus.png   | Bin 207 -> 0 bytes
 data/themes/default/layout_common.edc | 173 +++++++++++++++++++++++++++++++---
 src/lib/ctxpopup.c                    | 158 ++++++++++++++++++++++++++-----
 src/lib/edc_parser.c                  |  63 +++++++++++++
 6 files changed, 362 insertions(+), 44 deletions(-)

diff --git a/data/themes/default/images.edc b/data/themes/default/images.edc
index ac8ca4a..e152e28 100644
--- a/data/themes/default/images.edc
+++ b/data/themes/default/images.edc
@@ -1,6 +1,6 @@
 images {
-   image: "plus.png" COMP;
-   image: "minus.png" COMP;
+   image: "sym_up_light_normal.png" COMP;
+   image: "sym_down_light_normal.png" COMP;
    image: "menu.png" COMP;
    image: "find.png" COMP;
    image: "highlight.png" COMP;
@@ -106,23 +106,23 @@ group { name: "swallow_s";
    }
 }
 
-group { name: "plus";
+group { name: "up";
    parts {
       part { name: "img";
          type: IMAGE;
          description { state: "default" 0.0;
-            image.normal: "plus.png";
+            image.normal: "sym_up_light_normal.png";
          }
       }
    }
 }
 
-group { name: "minus";
+group { name: "down";
    parts {
       part { name: "img";
          type: IMAGE;
          description { state: "default" 0.0;
-            image.normal: "minus.png";
+            image.normal: "sym_down_light_normal.png";
          }
       }
    }
diff --git a/data/themes/default/images/minus.png 
b/data/themes/default/images/minus.png
deleted file mode 100644
index a2d9ce5..0000000
Binary files a/data/themes/default/images/minus.png and /dev/null differ
diff --git a/data/themes/default/images/plus.png 
b/data/themes/default/images/plus.png
deleted file mode 100644
index fe02207..0000000
Binary files a/data/themes/default/images/plus.png and /dev/null differ
diff --git a/data/themes/default/layout_common.edc 
b/data/themes/default/layout_common.edc
index b4afd73..4399ea1 100644
--- a/data/themes/default/layout_common.edc
+++ b/data/themes/default/layout_common.edc
@@ -1561,37 +1561,182 @@ group { name: "preview_layout";
 
 group { name: "slider_layout";
    parts {
-      part { name: "elm.swallow.plus";
-         type: SWALLOW;
+      part { name: "base";
+         type: RECT;
+         scale: 1;
          description { state: "default" 0.0;
-            min: 24 24;
+            min: 278 52;
+            color: 56 56 56 255;
+         }
+         description { state: "odd" 0.0;
+            inherit: "default" 0.0;
+            color: 64 64 64 255;
+         }
+      }
+      part { name: "text_base";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "base";
+            rel2.to: "base";
+            rel2.relative: 0.0 1.0;
+            align: 0.0 0.5;
+            min: 50 0;
+            fixed: 1 0;
+         }
+      }
+      part { name: "elm.text.type";
+         type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "text_base";
+            rel2.to: "text_base";
+            align: 0.0 0.5;
+            fixed: 1 0;
+            text {
+               font: FN;
+               size: 12;
+               align: 0.0 0.5;
+               min: 1 0;
+               ellipsis: -1;
+            }
+            color: COL_NM;
+         }
+      }
+      part { name: "padding1";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "text_base";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "text_base";
+            align: 0.0 0.5;
+            min: 10 0;
+            fixed: 1 0;
+         }
+      }
+      part { name: "elm.text.slider_min";
+         type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "padding1";
+            rel1.relative: 1.0 0.0;
+            rel2.to: "padding1";
+            rel2.relative: 1.0 0.0;
+            align: 0.0 0.0;
             fixed: 1 1;
-            align: 0 0.5;
-            rel1.relative: 0.0 0.5;
-            rel2.relative: 0.0 0.5;
+            text {
+               font: FN;
+               size: 10;
+               align: 0.0 0.0;
+               min: 1 1;
+               ellipsis: -1;
+            }
+            color: COL_NM;
+         }
+      }
+      part { name: "elm.text.slider_max";
+         type: TEXT;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "padding2";
+            rel1.relative: 0.0 0.0;
+            rel2.to: "padding2";
+            rel2.relative: 0.0 0.0;
+            align: 1.0 0.0;
+            fixed: 1 1;
+            text {
+               font: FN;
+               size: 10;
+               align: 0.0 0.5;
+               min: 1 1;
+               ellipsis: -1;
+            }
+            color: COL_NM;
          }
       }
-      part { name: "elm.swallow.minus";
+      part { name: "elm.swallow.slider";
          type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "padding1";
+            rel1.to_y: "elm.text.slider_min";
+            rel1.relative: 1.0 1.0;
+            rel2.to: "padding2";
+            rel2.relative: 0.0 1.0;
+         }
+      }
+      part { name: "padding2";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to_x: "entry_base";
+            rel1.to_y: "base";
+            rel2.to_x: "entry_base";
+            rel2.to_y: "base";
+            rel2.relative: 0.0 1.0;
+            align: 1.0 0.5;
+            min: 10 0;
+            fixed: 1 0;
+         }
+      }
+      part { name: "entry_base";
+         type: SPACER;
+         scale: 1;
+         description { state: "default" 0.0;
+            min: 40 0;
+            fixed: 1 0;
+            align: 1.0 0.5;
+            rel1.to_x: "elm.swallow.up";
+            rel1.to_y: "base";
+            rel2.to_x: "elm.swallow.down";
+            rel2.to_y: "base";
+            rel2.relative: 0.0 1.0;
+         }
+      }
+      part { name: "elm.swallow.entry";
+         type: SWALLOW;
+         scale: 1;
+         description { state: "default" 0.0;
+            rel1.to: "entry_base";
+            rel2.to: "entry_base";
+         }
+      }
+      part { name: "elm.swallow.up";
+         type: SWALLOW;
+         scale: 1;
          description { state: "default" 0.0;
             min: 24 24;
             fixed: 1 1;
-            align: 0 0.5;
-            rel1.to: "elm.swallow.plus";
-            rel2.to: "elm.swallow.plus";
+            align: 1.0 1.0;
+            rel1.to: "base";
             rel1.relative: 1.0 0.5;
+            rel2.to: "base";
             rel2.relative: 1.0 0.5;
          }
       }
-      part { name: "elm.swallow.slider";
+      part { name: "elm.swallow.down";
          type: SWALLOW;
+         scale: 1;
          description { state: "default" 0.0;
-            rel1.to_x: "elm.swallow.minus";
-            rel1.relative: 1 0;
-            rel1.offset: 5 0;
+            min: 24 24;
+            fixed: 1 1;
+            align: 1.0 0.0;
+            rel1.to: "base";
+            rel1.relative: 1.0 0.5;
+            rel2.to: "base";
+            rel2.relative: 1.0 0.5;
          }
       }
    }
+   programs {
+      program { name: "odd_item_set";
+         signal: "odd,item,set";
+         source: "";
+         action: STATE_SET "odd" 0.0;
+         target: "base";
+      }
+   }
 }
 
 group { name: "statusbar_layout";
diff --git a/src/lib/ctxpopup.c b/src/lib/ctxpopup.c
index 637685d..66463c7 100644
--- a/src/lib/ctxpopup.c
+++ b/src/lib/ctxpopup.c
@@ -19,27 +19,47 @@ typedef struct ctxpopup_data_s {
 /*****************************************************************************/
 
 static void
-btn_plus_cb(void *data, Evas_Object *obj EINA_UNUSED,
+btn_up_cb(void *data, Evas_Object *obj EINA_UNUSED,
             void *event_info EINA_UNUSED)
 {
-   Evas_Object *slider = data;
+   Evas_Object *layout = data;
+   Evas_Object *slider = elm_object_part_content_get(layout,
+                                                     "elm.swallow.slider");
+   Evas_Object *entry = elm_object_part_content_get(layout,
+                                                    "elm.swallow.entry");
    attr_value *attr = evas_object_data_get(slider, "attr");
+   Eina_Bool integer = (Eina_Bool)(int) evas_object_data_get(slider, 
"integer");
    double value = elm_slider_value_get(slider);
+   char buf[128];
+
+   if (attr->type & ATTR_VALUE_INTEGER) value += 1;
+   else value += 0.01;
 
-   if (attr->type & ATTR_VALUE_INTEGER) elm_slider_value_set(slider, value + 
1);
-   else elm_slider_value_set(slider, value + 0.01);
+   if (integer) snprintf(buf, sizeof(buf), "%1.0f", value);
+   else snprintf(buf, sizeof(buf), "%1.2f", value);
+   elm_object_text_set(entry, buf);
 }
 
 static void
-btn_minus_cb(void *data, Evas_Object *obj EINA_UNUSED,
+btn_down_cb(void *data, Evas_Object *obj EINA_UNUSED,
              void *event_info EINA_UNUSED)
 {
-   Evas_Object *slider = data;
+   Evas_Object *layout = data;
+   Evas_Object *slider = elm_object_part_content_get(layout,
+                                                     "elm.swallow.slider");
+   Evas_Object *entry = elm_object_part_content_get(layout,
+                                                    "elm.swallow.entry");
    attr_value *attr = evas_object_data_get(slider, "attr");
+   Eina_Bool integer = (Eina_Bool)(int) evas_object_data_get(slider, 
"integer");
    double value = elm_slider_value_get(slider);
+   char buf[128];
 
-   if (attr->type & ATTR_VALUE_INTEGER) elm_slider_value_set(slider, value - 
1);
-   else elm_slider_value_set(slider, value - 0.01);
+   if (attr->type & ATTR_VALUE_INTEGER) value -= 1;
+   else value -= 0.01;
+
+   if (integer) snprintf(buf, sizeof(buf), "%1.0f", value);
+   else snprintf(buf, sizeof(buf), "%1.2f", value);
+   elm_object_text_set(entry, buf);
 }
 
 static void
@@ -113,47 +133,136 @@ ctxpopup_del_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
    free(data);
 }
 
+static void
+slider_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+   Evas_Object *entry = data;
+   double val = elm_slider_value_get(obj);
+   char buf[128];
+   Eina_Bool integer = (Eina_Bool)(int) evas_object_data_get(obj, "integer");
+
+   if (integer) snprintf(buf, sizeof(buf), "%1.0f", val);
+   else snprintf(buf, sizeof(buf), "%1.2f", val);
+   elm_object_text_set(entry, buf);
+}
+
+static void
+entry_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+   Evas_Object *slider = data;
+   double text_val, val, min_val, max_val;
+   char buf[128];
+   Eina_Bool integer = (Eina_Bool)(int) evas_object_data_get(slider, 
"integer");
+
+   text_val = atof(elm_object_text_get(obj));
+   elm_slider_min_max_get(slider, &min_val, &max_val);
+
+   if (text_val < min_val) val = min_val;
+   else if (text_val > max_val) val = max_val;
+   else val = text_val;
+
+   if (val != text_val)
+     {
+        if (integer) snprintf(buf, sizeof(buf), "%1.0f", val);
+        else snprintf(buf, sizeof(buf), "%1.2f", val);
+        elm_object_text_set(obj, buf);
+     }
+   else
+     elm_slider_value_set(slider, val);
+}
+
 static Evas_Object *
 slider_layout_create(Evas_Object *parent, attr_value *attr,
-                     double slider_val, Eina_Bool integer)
+                     const char *type, double slider_val, Eina_Bool integer)
 {
    //Layout
    Evas_Object *layout = elm_layout_add(parent);
    elm_layout_file_set(layout, EDJE_PATH, "slider_layout");
    evas_object_show(layout);
 
+   //Type
+   if (type)
+     elm_object_part_text_set(layout, "elm.text.type", type);
+
    //Slider
    Evas_Object *slider = elm_slider_add(layout);
-   if (integer) elm_slider_unit_format_set(slider, "%1.0f");
-   else elm_slider_unit_format_set(slider, "%1.2f");
    elm_slider_span_size_set(slider, 120);
    elm_slider_indicator_show_set(slider, EINA_FALSE);
    elm_slider_min_max_set(slider, attr->min, attr->max);
    elm_slider_value_set(slider, slider_val);
    evas_object_data_set(slider, "attr", attr);
+   evas_object_data_set(slider, "integer", (void *)(int) integer);
+
+   char slider_min[16];
+   char slider_max[16];
+   if (integer)
+     {
+        snprintf(slider_min, sizeof(slider_min), "%1.0f", attr->min);
+        snprintf(slider_max, sizeof(slider_max), "%1.0f", attr->max);
+     }
+   else
+     {
+        snprintf(slider_min, sizeof(slider_min), "%1.2f", attr->min);
+        snprintf(slider_max, sizeof(slider_max), "%1.2f", attr->max);
+     }
+   elm_object_part_text_set(layout, "elm.text.slider_min", slider_min);
+   elm_object_part_text_set(layout, "elm.text.slider_max", slider_max);
    elm_object_part_content_set(layout, "elm.swallow.slider", slider);
 
+   //Entry
+   char buf[128];
+   Evas_Object *entry = elm_entry_add(layout);
+   elm_entry_context_menu_disabled_set(entry, EINA_TRUE);
+   elm_entry_single_line_set(entry, EINA_TRUE);
+   evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   if (integer) snprintf(buf, sizeof(buf), "%1.0f", slider_val);
+   else snprintf(buf, sizeof(buf), "%1.2f", slider_val);
+   elm_object_text_set(entry, buf);
+   elm_object_part_content_set(layout, "elm.swallow.entry", entry);
+
+   Elm_Entry_Filter_Accept_Set digits_filter_data;
+   Elm_Entry_Filter_Limit_Size limit_filter_data;
+   if (integer)
+     {
+        digits_filter_data.accepted = "0123456789";
+        digits_filter_data.rejected = NULL;
+        limit_filter_data.max_char_count = 4;
+     }
+   else
+     {
+        digits_filter_data.accepted = ".0123456789";
+        digits_filter_data.rejected = NULL;
+        limit_filter_data.max_char_count = 5;
+     }
+   elm_entry_markup_filter_append(entry, elm_entry_filter_accept_set,
+                                  &digits_filter_data);
+   elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size,
+                                  &limit_filter_data);
+
+   evas_object_smart_callback_add(slider, "changed", slider_changed_cb, entry);
+   evas_object_smart_callback_add(entry, "changed", entry_changed_cb, slider);
+
    Evas_Object *btn;
    Evas_Object *img;
 
-   //Minus Button
+   //Up Button
    btn = elm_button_add(layout);
-   evas_object_smart_callback_add(btn, "clicked", btn_minus_cb, slider);
-   elm_object_part_content_set(layout, "elm.swallow.minus", btn);
+   evas_object_smart_callback_add(btn, "clicked", btn_up_cb, layout);
+   elm_object_part_content_set(layout, "elm.swallow.up", btn);
 
-   //Minus Image
+   //Up Image
    img = elm_image_add(btn);
-   elm_image_file_set(img, EDJE_PATH, "minus");
+   elm_image_file_set(img, EDJE_PATH, "up");
    elm_object_content_set(btn, img);
 
-   //Plus Button
+   //Down Button
    btn = elm_button_add(layout);
-   evas_object_smart_callback_add(btn, "clicked", btn_plus_cb, slider);
-   elm_object_part_content_set(layout, "elm.swallow.plus", btn);
+   evas_object_smart_callback_add(btn, "clicked", btn_down_cb, layout);
+   elm_object_part_content_set(layout, "elm.swallow.down", btn);
 
-   //Plus Image
+   //Down Image
    img = elm_image_add(btn);
-   elm_image_file_set(img, EDJE_PATH, "plus");
+   elm_image_file_set(img, EDJE_PATH, "down");
    elm_object_content_set(btn, img);
 
    return layout;
@@ -164,7 +273,7 @@ slider_layout_set(Evas_Object *ctxpopup, attr_value *attr, 
Eina_Bool integer)
 {
    Eina_Stringshare *type;
    Eina_Array_Iterator itr;
-   int i;
+   unsigned int i;
 
    //Box
    Evas_Object *box = elm_box_add(ctxpopup);
@@ -175,9 +284,10 @@ slider_layout_set(Evas_Object *ctxpopup, attr_value *attr, 
Eina_Bool integer)
 
    //Layout
    Evas_Object *layout;
-   for (i = 0; i < attr->cnt; i++)
+   EINA_ARRAY_ITER_NEXT(attr->strs, i, type, itr)
      {
-        layout = slider_layout_create(box, attr, attr->val[i], integer);
+        layout = slider_layout_create(box, attr, type, attr->val[i], integer);
+        if (i % 2) elm_object_signal_emit(layout, "odd,item,set", "");
         elm_box_pack_end(box, layout);
      }
 
diff --git a/src/lib/edc_parser.c b/src/lib/edc_parser.c
index 77059f3..a5df883 100644
--- a/src/lib/edc_parser.c
+++ b/src/lib/edc_parser.c
@@ -393,8 +393,15 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    eina_inarray_push(td->attrs, &attr);
 
    //Type: Integer
+   Eina_Array *rgba = eina_array_new(4);
+   eina_array_push(rgba, eina_stringshare_add("R:"));
+   eina_array_push(rgba, eina_stringshare_add("G:"));
+   eina_array_push(rgba, eina_stringshare_add("B:"));
+   eina_array_push(rgba, eina_stringshare_add("A:"));
+
    memset(&attr, 0x00, sizeof(parser_attr));
    attr.keyword = eina_stringshare_add("color");
+   attr.value.strs = rgba;
    attr.value.cnt = 4;
    attr.value.min = 0;
    attr.value.max = 255;
@@ -403,8 +410,15 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    attr.value.append_str = ATTR_APPEND_SEMICOLON;
    eina_inarray_push(td->attrs, &attr);
 
+   rgba = eina_array_new(4);
+   eina_array_push(rgba, eina_stringshare_add("R:"));
+   eina_array_push(rgba, eina_stringshare_add("G:"));
+   eina_array_push(rgba, eina_stringshare_add("B:"));
+   eina_array_push(rgba, eina_stringshare_add("A:"));
+
    memset(&attr, 0x00, sizeof(parser_attr));
    attr.keyword = eina_stringshare_add("color2");
+   attr.value.strs = rgba;
    attr.value.cnt = 4;
    attr.value.min = 0;
    attr.value.max = 255;
@@ -413,8 +427,15 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    attr.value.append_str = ATTR_APPEND_SEMICOLON;
    eina_inarray_push(td->attrs, &attr);
 
+   rgba = eina_array_new(4);
+   eina_array_push(rgba, eina_stringshare_add("R:"));
+   eina_array_push(rgba, eina_stringshare_add("G:"));
+   eina_array_push(rgba, eina_stringshare_add("B:"));
+   eina_array_push(rgba, eina_stringshare_add("A:"));
+
    memset(&attr, 0x00, sizeof(parser_attr));
    attr.keyword = eina_stringshare_add("color3");
+   attr.value.strs = rgba;
    attr.value.cnt = 4;
    attr.value.min = 0;
    attr.value.max = 255;
@@ -423,8 +444,12 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    attr.value.append_str = ATTR_APPEND_SEMICOLON;
    eina_inarray_push(td->attrs, &attr);
 
+   Eina_Array *scale = eina_array_new(1);
+   eina_array_push(scale, eina_stringshare_add("Scale:"));
+
    memset(&attr, 0x00, sizeof(parser_attr));
    attr.keyword = eina_stringshare_add("scale");
+   attr.value.strs = scale;
    attr.value.cnt = 1;
    attr.value.min = 0;
    attr.value.max = 1;
@@ -433,8 +458,13 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    attr.value.append_str = ATTR_APPEND_SEMICOLON;
    eina_inarray_push(td->attrs, &attr);
 
+   Eina_Array *xy = eina_array_new(2);
+   eina_array_push(xy, eina_stringshare_add("X:"));
+   eina_array_push(xy, eina_stringshare_add("Y:"));
+
    memset(&attr, 0x00, sizeof(parser_attr));
    attr.keyword = eina_stringshare_add("fixed");
+   attr.value.strs = xy;
    attr.value.cnt = 2;
    attr.value.min = 0;
    attr.value.max = 1;
@@ -443,8 +473,12 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    attr.value.append_str = ATTR_APPEND_SEMICOLON;
    eina_inarray_push(td->attrs, &attr);
 
+   Eina_Array *size = eina_array_new(1);
+   eina_array_push(size, eina_stringshare_add("Size:"));
+
    memset(&attr, 0x00, sizeof(parser_attr));
    attr.keyword = eina_stringshare_add("size");
+   attr.value.strs = size;
    attr.value.cnt = 1;
    attr.value.min = 1;
    attr.value.max = 255;
@@ -453,8 +487,13 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    attr.value.append_str = ATTR_APPEND_SEMICOLON;
    eina_inarray_push(td->attrs, &attr);
 
+   Eina_Array *wh = eina_array_new(2);
+   eina_array_push(wh, eina_stringshare_add("W:"));
+   eina_array_push(wh, eina_stringshare_add("H:"));
+
    memset(&attr, 0x00, sizeof(parser_attr));
    attr.keyword = eina_stringshare_add("min");
+   attr.value.strs = wh;
    attr.value.cnt = 2;
    attr.value.min = 0;
    attr.value.max = 1000;
@@ -463,8 +502,13 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    attr.value.append_str = ATTR_APPEND_SEMICOLON;
    eina_inarray_push(td->attrs, &attr);
 
+   wh = eina_array_new(2);
+   eina_array_push(wh, eina_stringshare_add("W:"));
+   eina_array_push(wh, eina_stringshare_add("H:"));
+
    memset(&attr, 0x00, sizeof(parser_attr));
    attr.keyword = eina_stringshare_add("max");
+   attr.value.strs = wh;
    attr.value.cnt = 2;
    attr.value.min = 0;
    attr.value.max = 1000;
@@ -473,8 +517,12 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    attr.value.append_str = ATTR_APPEND_SEMICOLON;
    eina_inarray_push(td->attrs, &attr);
 
+   Eina_Array *mouse_events = eina_array_new(1);
+   eina_array_push(mouse_events, eina_stringshare_add("Mouse Events:"));
+
    memset(&attr, 0x00, sizeof(parser_attr));
    attr.keyword = eina_stringshare_add("mouse_events");
+   attr.value.strs = mouse_events;
    attr.value.cnt = 1;
    attr.value.min = 0;
    attr.value.max = 1;
@@ -484,8 +532,13 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    eina_inarray_push(td->attrs, &attr);
 
    //Type: Float
+   xy = eina_array_new(2);
+   eina_array_push(xy, eina_stringshare_add("X:"));
+   eina_array_push(xy, eina_stringshare_add("Y:"));
+
    memset(&attr, 0x00, sizeof(parser_attr));
    attr.keyword = eina_stringshare_add("relative");
+   attr.value.strs = xy;
    attr.value.cnt = 2;
    attr.value.min = 0.0;
    attr.value.max = 1;
@@ -494,8 +547,13 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    attr.value.append_str = ATTR_APPEND_SEMICOLON;
    eina_inarray_push(td->attrs, &attr);
 
+   wh = eina_array_new(2);
+   eina_array_push(wh, eina_stringshare_add("W:"));
+   eina_array_push(wh, eina_stringshare_add("H:"));
+
    memset(&attr, 0x00, sizeof(parser_attr));
    attr.keyword = eina_stringshare_add("aspect");
+   attr.value.strs = wh;
    attr.value.cnt = 2;
    attr.value.min = 0.0;
    attr.value.max = 1.0;
@@ -504,8 +562,13 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread 
EINA_UNUSED)
    attr.value.append_str = ATTR_APPEND_SEMICOLON;
    eina_inarray_push(td->attrs, &attr);
 
+   xy = eina_array_new(2);
+   eina_array_push(xy, eina_stringshare_add("X:"));
+   eina_array_push(xy, eina_stringshare_add("Y:"));
+
    memset(&attr, 0x00, sizeof(parser_attr));
    attr.keyword = eina_stringshare_add("align");
+   attr.value.strs = xy;
    attr.value.cnt = 2;
    attr.value.min = 0.0;
    attr.value.max = 1.0;

-- 


Reply via email to