hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=478e0582002c1f61ccfff6a05c19b4c96dc06b72

commit 478e0582002c1f61ccfff6a05c19b4c96dc06b72
Author: Kateryna Fesyna <[email protected]>
Date:   Tue Aug 12 11:31:06 2014 +0900

    Enventor: Prototipe of Drag-n-Drop feature. Patch 2.
    
    Summary:
    Second patch of Drag-n-Drop feature contains new layout for editing parts 
relative sizes before insertion.
    This patch improves parts templates in order to allow set parts sizes.
    
    Reviewers: Hermet
    
    Projects: #enventor
    
    Differential Revision: https://phab.enlightenment.org/D1309
---
 .../default/images/live_edit_icons/bg_glow_in.png  | Bin 0 -> 148 bytes
 .../images/live_edit_icons/rel1.dragable.png       | Bin 0 -> 162 bytes
 .../images/live_edit_icons/rel2.dragable.png       | Bin 0 -> 158 bytes
 data/themes/default/layout_common.edc              | 175 +++++++++++++++++++++
 src/bin/live_edit.c                                | 170 ++++++++++++++++++--
 src/bin/main.c                                     |   1 +
 src/bin/template.c                                 |  51 +++++-
 src/include/template.h                             |   2 +-
 src/include/template_code.h                        |  62 +++-----
 9 files changed, 400 insertions(+), 61 deletions(-)

diff --git a/data/themes/default/images/live_edit_icons/bg_glow_in.png 
b/data/themes/default/images/live_edit_icons/bg_glow_in.png
new file mode 100644
index 0000000..5a32fed
Binary files /dev/null and 
b/data/themes/default/images/live_edit_icons/bg_glow_in.png differ
diff --git a/data/themes/default/images/live_edit_icons/rel1.dragable.png 
b/data/themes/default/images/live_edit_icons/rel1.dragable.png
new file mode 100644
index 0000000..59341a6
Binary files /dev/null and 
b/data/themes/default/images/live_edit_icons/rel1.dragable.png differ
diff --git a/data/themes/default/images/live_edit_icons/rel2.dragable.png 
b/data/themes/default/images/live_edit_icons/rel2.dragable.png
new file mode 100644
index 0000000..5e19305
Binary files /dev/null and 
b/data/themes/default/images/live_edit_icons/rel2.dragable.png differ
diff --git a/data/themes/default/layout_common.edc 
b/data/themes/default/layout_common.edc
index 8ce166d..131c339 100644
--- a/data/themes/default/layout_common.edc
+++ b/data/themes/default/layout_common.edc
@@ -7,6 +7,15 @@ images {
    image: "shine.png" COMP;
    image: "bub_over_bot.png" COMP;
    image: "disabler.png" COMP;
+   image: "live_edit_icons/rel1.dragable.png" COMP;
+   image: "live_edit_icons/rel2.dragable.png" COMP;
+   image: "live_edit_icons/bg_glow_in.png" COMP;
+}
+
+styles {
+     style { name: "entry_live_edit_style";
+        base: "font="FN" font_size=11 text_class=entry color=#ffffff 
style=shadow,bottom shadow_color=#00000080 glow_color=#3399ff18 valign=1 
ellipsis=1.0 wrap=none";
+     }
 }
 
 group { name: "about_layout";
@@ -1279,6 +1288,166 @@ group { name: "search_layout";
    }
 }
 
+#define BG_COLOR 88 99 122
+#define BORDER_COLOR 220 250 255
+#define REL_SIZE 70 35
+#define INFO_SIZE 130 50
+
+group { name: "viewer_layout_dragable_container";
+   parts {
+      part { name: "bg";
+         type: RECT;
+         description { state: "default" 0.0;
+            color: 255 255 255 0;
+         }
+         description { state: "show" 0.0;
+            color: 255 255 255 30;
+         }
+      }
+      part { name: "new_part_bg";
+         type: RECT;
+         scale: 1;
+         description { state: "default" 0.0;
+            color: BG_COLOR 0;
+            rel1.to: "rel1.dragable";
+            rel2.to: "rel2.dragable";
+         }
+         description { state: "show" 0.0;
+            inherit:"default" 0.0;
+            color: BG_COLOR 230;
+         }
+      }
+      part { name: "new_part_bg_decorations";
+         scale: 1;
+         description { state: "default" 0.0;
+            image.normal: "live_edit_icons/bg_glow_in.png";
+            image.border: 1 1 1 1;
+            rel1.to: "new_part_bg";
+            rel2.to: "new_part_bg";
+            color: BORDER_COLOR 0;
+         }
+         description { state: "show" 0.0;
+            inherit:"default" 0.0;
+            color: BORDER_COLOR 255;
+         }
+      }
+      part { name: "rel1.dragable";
+         scale: 1;
+         description { state: "default" 0.0;
+            image.normal: "live_edit_icons/rel1.dragable.png";
+            image.border: 3 3 3 3;
+            min: REL_SIZE;
+            max: REL_SIZE;
+            color: BORDER_COLOR 0;
+         }
+         description { state: "show" 0.0;
+            inherit:"default" 0.0;
+            color: BORDER_COLOR 255;
+         }
+         dragable {
+            confine: "bg";
+            x: 1 1 0;
+            y: 1 1 0;
+         }
+      }
+      part { name: "elm.text.live_edit.rel1";
+         type: TEXTBLOCK;
+         scale: 1;
+         repeat_events: 1;
+         description {
+            text.style: "entry_live_edit_style";
+            rel1.to: "rel1.dragable";
+            rel2.to: "rel1.dragable";
+         }
+      }
+      part { name: "rel2.dragable";
+         scale: 1;
+         description { state: "default" 0.0;
+            image.normal: "live_edit_icons/rel2.dragable.png";
+            image.border: 3 3 3 3;
+            min: REL_SIZE;
+            max: REL_SIZE;
+            color: BORDER_COLOR 0;
+         }
+         description { state: "show" 0.0;
+            inherit:"default" 0.0;
+            color: BORDER_COLOR 255;
+         }
+         dragable {
+            confine: "bg";
+            x: 1 1 0;
+            y: 1 1 0;
+         }
+      }
+      part { name: "elm.text.live_edit.rel2";
+         type: TEXTBLOCK;
+         scale: 1;
+         repeat_events: 1;
+         description {
+            text.style: "entry_live_edit_style";
+            rel1.to: "rel2.dragable";
+            rel2.to: "rel2.dragable";
+         }
+      }
+      part { name: "info_bg";
+         scale: 1;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+            image.normal: "live_edit_icons/rel2.dragable.png";
+            image.border: 3 3 3 3;
+            min: INFO_SIZE;
+            max: INFO_SIZE;
+            color: BORDER_COLOR 0;
+            align: 1.0 1.0;
+         }
+         description { state: "show" 0.0;
+            inherit:"default" 0.0;
+            color: BORDER_COLOR 122;
+         }
+      }
+      part { name: "elm.text.live_edit.new_part_info";
+         type: TEXTBLOCK;
+         scale: 1;
+         repeat_events: 1;
+         description {
+            text.style: "entry_live_edit_style";
+            rel1.to: "info_bg";
+            rel2.to: "info_bg";
+            color: 255 255 255 120;
+         }
+      }
+   }
+   programs {
+      program { name: "on_load_init";
+         signal: "load";
+         source: "";
+         script {
+            set_drag(PART:"rel1.dragable", 0.2, 0.2);
+            set_drag(PART:"rel2.dragable", 0.8, 0.8);
+         }
+         after: "on_load_show";
+      }
+      program { name: "on_load_show";
+         action: STATE_SET "show" 0.0;
+         target: "bg";
+         target: "new_part_bg_decorations";
+         target: "new_part_bg";
+         target: "rel1.dragable";
+         target: "rel2.dragable";
+         target: "info_bg";
+         transition: DECELERATE 0.25;
+         after: "emit_drag_signal";
+      }
+      program { name: "emit_drag_signal";
+         action: SIGNAL_EMIT "drag" "rel2.dragable";
+      }
+   }
+}
+#undef BG_COLOR
+#undef BORDER_COLOR
+#undef REL_SIZE
+#undef INFO_SIZE
+
 group { name: "viewer_layout";
    parts {
       part { name: "prev_clipper";
@@ -1316,6 +1485,12 @@ group { name: "viewer_layout";
             rel2.to: "cur_clipper";
          }
       }
+      part { name: "elm.swallow.live_edit";
+         type: SWALLOW;
+         repeat_events: 1;
+         description { state: "default" 0.0;
+         }
+      }
    }
    programs {
       program { name: "switch_instant";
diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c
index e19bf64..62deb4e 100644
--- a/src/bin/live_edit.c
+++ b/src/bin/live_edit.c
@@ -7,10 +7,21 @@ typedef struct menu_data_s
    int type;
 } menu_data;
 
+typedef struct cur_part_data_s
+{
+   unsigned int type;
+   float rel1_x, rel1_y, rel2_x, rel2_y;
+   Evas_Coord x, y, w, h;
+} cur_part_data;
+
 typedef struct live_editor_s
 {
    Evas_Object *menu;
+   Evas_Object *layout;
    edit_data *ed;
+   cur_part_data *cur_part_data;
+
+   Ecore_Event_Handler *key_down_handler;
 } live_data;
 
 const int MENU_ITEMS_NUM = 6;
@@ -27,22 +38,149 @@ static const menu_data MENU_ITEMS[] =
 
 static live_data *g_ld = NULL;
 
+#define LIVE_EDIT_NEW_PART_DATA_MAX_LEN 80
+static const char *LIVE_EDIT_NEW_PART_DATA_STR =
+                   "    %s<br/>"
+                   "    X: %5d  Y: %5d<br/>"
+                   "    W: %5d H: %5d";
+
+#define LIVE_EDIT_NEW_PART_REL_STR_MAX_LEN 16
+static const char *LIVE_EDIT_NEW_PART_REL_STR = "   %.2f %.2f";
+
 static void
-menu_it_selected_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
+live_edit_current_part_values_update(live_data *ld, Evas_Object *layout)
+{
+   Evas_Coord x, y, w, h;
+   Evas_Coord view_w, view_h;
+
+   config_view_size_get(&view_w, &view_h);
+   edje_object_part_geometry_get(layout, "new_part_bg", &x, &y, &w, &h);
+
+   ld->cur_part_data->rel1_x = (float)x/view_w;
+   ld->cur_part_data->rel1_y = (float)y/view_h;
+   ld->cur_part_data->rel2_x = (float)(x + w)/view_w;
+   ld->cur_part_data->rel2_y = (float)(y + h)/view_h;
+   ld->cur_part_data->x = x;
+   ld->cur_part_data->y = y;
+   ld->cur_part_data->w = w;
+   ld->cur_part_data->h = h;
+}
+
+static Evas_Object *
+create_dragable_container(live_data *led)
+{
+   Evas_Object *viewer_layout = edj_mgr_obj_get();
+   Evas_Object *layout = elm_layout_add(viewer_layout);
+   elm_layout_file_set(layout, EDJE_PATH,  "viewer_layout_dragable_container");
+   evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_object_part_content_set(viewer_layout, "elm.swallow.live_edit", layout);
+   return layout;
+}
+
+static void
+live_edit_part_info_update(live_data *ld)
+{
+   Evas_Object *layout = elm_layout_edje_get(ld->layout);
+
+   live_edit_current_part_values_update(ld, layout);
+
+   char part_info[LIVE_EDIT_NEW_PART_DATA_MAX_LEN];
+
+   snprintf(part_info,
+            LIVE_EDIT_NEW_PART_DATA_MAX_LEN, LIVE_EDIT_NEW_PART_DATA_STR,
+            MENU_ITEMS[ld->cur_part_data->type].name,
+            ld->cur_part_data->x, ld->cur_part_data->y,
+            ld->cur_part_data->w, ld->cur_part_data->h);
+   edje_object_part_text_set(layout,
+                             "elm.text.live_edit.new_part_info", part_info);
+   snprintf(part_info,
+            LIVE_EDIT_NEW_PART_REL_STR_MAX_LEN, LIVE_EDIT_NEW_PART_REL_STR,
+            ld->cur_part_data->rel1_x, ld->cur_part_data->rel1_y);
+   edje_object_part_text_set(layout,
+                             "elm.text.live_edit.rel1", part_info);
+   snprintf(part_info,
+            LIVE_EDIT_NEW_PART_REL_STR_MAX_LEN, LIVE_EDIT_NEW_PART_REL_STR,
+            ld->cur_part_data->rel2_x, ld->cur_part_data->rel2_y);
+   edje_object_part_text_set(layout,
+                             "elm.text.live_edit.rel2", part_info);
+}
+
+static void
+live_edit_part_geometry_changed_cb(void *data,
+                                   Evas_Object *obj EINA_UNUSED,
+                                   const char *emission EINA_UNUSED,
+                                   const char *source EINA_UNUSED)
+{
+   //TODO: recalc on viewport size changed
+   live_edit_part_info_update(data);
+}
+
+static void
+live_edit_reset(live_data *ld)
 {
+   edje_object_signal_callback_del(elm_layout_edje_get(ld->layout),
+                                   "drag", "rel1.dragable",
+                                   live_edit_part_geometry_changed_cb);
+   edje_object_signal_callback_del(elm_layout_edje_get(ld->layout),
+                                   "drag", "rel2.dragable",
+                                   live_edit_part_geometry_changed_cb);
+   ecore_event_handler_del(ld->key_down_handler);
+   ld->key_down_handler = NULL;
+
+   evas_object_del(ld->layout);
+   ld->layout = NULL;
+}
+
+static Eina_Bool
+drag_n_drop_mode_toggle_cb(void *data, int type EINA_UNUSED, void *ev)
+{
+   Ecore_Event_Key *event = ev;
    live_data *ld = data;
-   const Elm_Object_Item *it = event_info;
-   unsigned int idx = elm_menu_item_index_get(it);
-   template_live_edit_part_insert(ld->ed, MENU_ITEMS[idx].type,
-                                  view_group_name_get(VIEW_DATA));
-   evas_object_del(ld->menu);
-   ld->menu = NULL;
+
+   if (!strcmp(event->key, "Return"))
+     {
+        template_live_edit_part_insert(ld->ed,
+                                       
MENU_ITEMS[ld->cur_part_data->type].type,
+                                       ld->cur_part_data->rel1_x,
+                                       ld->cur_part_data->rel1_y,
+                                       ld->cur_part_data->rel2_x,
+                                       ld->cur_part_data->rel2_y,
+                                       view_group_name_get(VIEW_DATA));
+     }
+   else if (strcmp(event->key, "Delete")) return EINA_TRUE;
+
+   live_edit_reset(ld);
+   return EINA_TRUE;
+}
+
+static void
+setup_layout(live_data *ld)
+{
+   ld->key_down_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN,
+                                                  drag_n_drop_mode_toggle_cb,
+                                                  ld);
+   Evas_Object *layout = create_dragable_container(ld);
+   ld->layout = layout;
+   
+   edje_object_signal_callback_add(elm_layout_edje_get(layout),
+                                   "drag", "rel1.dragable",
+                                   live_edit_part_geometry_changed_cb, ld);
+   edje_object_signal_callback_add(elm_layout_edje_get(layout),
+                                   "drag", "rel2.dragable",
+                                   live_edit_part_geometry_changed_cb, ld);
+   
+   live_edit_part_info_update(ld);
 }
 
 static void
-menu_dismissed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
+menu_it_selected_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
 {
    live_data *ld = data;
+   const Elm_Object_Item *it = event_info;
+   ld->cur_part_data->type = elm_menu_item_index_get(it);
+   setup_layout(ld);
+
    evas_object_del(ld->menu);
    ld->menu = NULL;
 }
@@ -64,8 +202,6 @@ menu_create(Evas_Object *parent, live_data *ld)
         elm_object_item_part_content_set(it, NULL, icon);
      }
 
-   evas_object_smart_callback_add(menu, "dismissed", menu_dismissed_cb, ld);
-
    return menu;
 }
 
@@ -103,6 +239,7 @@ live_edit_toggle(void)
      {
         evas_object_event_callback_del(event_obj, EVAS_CALLBACK_MOUSE_UP,
                                        layout_mouse_up_cb);
+        live_edit_reset(ld);
      }
 
    edit_disabled_set(ld->ed, on);
@@ -124,7 +261,18 @@ live_edit_init(edit_data *ed)
      }
    g_ld = ld;
 
+   ld->cur_part_data = calloc(1, sizeof(cur_part_data));
+   if (!ld->cur_part_data)
+     {
+        EINA_LOG_ERR("Faild to allocate Memory!");
+        return;
+     }
+
    ld->ed = ed;
+
+   ld->menu = NULL;
+   ld->layout = NULL;
+   ld->key_down_handler = NULL;
 }
 
 void
@@ -132,6 +280,8 @@ live_edit_term()
 {
    live_data *ld = g_ld;
    if (ld->menu) evas_object_del(ld->menu);
+   if (ld->layout) live_edit_reset(ld);
+   free(ld->cur_part_data);
    free(ld);
    g_ld = NULL;
 }
diff --git a/src/bin/main.c b/src/bin/main.c
index 0a729b0..e23fe36 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -410,6 +410,7 @@ config_update_cb(void *data)
    base_statusbar_toggle(EINA_FALSE);
    edit_part_highlight_toggle(ad->ed, EINA_FALSE);
    view_dummy_toggle(VIEW_DATA, EINA_FALSE);
+   if (config_live_edit_get()) live_edit_toggle();
 
    //previous build was failed, Need to rebuild then reload the edj.
    if (edj_mgr_reload_need_get())
diff --git a/src/bin/template.c b/src/bin/template.c
index 558bdf2..b535bc5 100644
--- a/src/bin/template.c
+++ b/src/bin/template.c
@@ -26,6 +26,21 @@ template_part_first_line_get(void)
    return (const char *) buf;
 }
 
+static const char *
+template_part_relative_line_get(char rel_no, float relative_x, float 
relative_y)
+{
+   if ((rel_no != 1) && (rel_no != 2))
+     return NULL;
+
+   static char buf[40];
+   int i;
+
+   snprintf(buf, sizeof(buf), "      rel%d.relative: %.2f %.2f;<br/>",
+            rel_no, relative_x, relative_y);
+
+   return (const char *) buf;
+}
+
 void
 template_insert(edit_data *ed)
 {
@@ -91,7 +106,7 @@ template_insert(edit_data *ed)
         elm_entry_entry_insert(entry, p);
         elm_entry_entry_insert(entry, t[i]);
      }
-   edit_line_increase(ed, (line_cnt -1));
+   edit_line_increase(ed, line_cnt);
    elm_entry_entry_insert(entry, p);
    elm_entry_entry_insert(entry, t[i]);
 
@@ -136,7 +151,6 @@ image_description_add(edit_data *ed)
    elm_entry_cursor_pos_set(edit_entry, cursor_pos_to_restore);
 }
 
-
 static int
 template_part_insert_cursor_pos_set(edit_data *ed,
                                     Template_Part_Insert_Type insert_type,
@@ -158,10 +172,11 @@ template_part_insert_cursor_pos_set(edit_data *ed,
    return cursor_pos;
 }
 
-
 static void
 internal_template_part_insert(edit_data *ed,
                               Edje_Part_Type type,
+                              float rel1_x, float rel1_y,
+                              float rel2_x, float rel2_y,
                               Template_Part_Insert_Type insert_type,
                               const Eina_Stringshare *group_name)
 {
@@ -229,13 +244,15 @@ internal_template_part_insert(edit_data *ed,
            break;
      }
 
+   // insert the first line of the part block with generated name.
    elm_entry_entry_insert(edit_entry, p);
    const char *first_line = template_part_first_line_get();
    elm_entry_entry_insert(edit_entry, first_line);
    edit_line_increase(ed, 1);
 
+   // insert the body of the part
    int i;
-   for (i = 0; i < (line_cnt - 1); i++)
+   for (i = 0; i < line_cnt; i++)
      {
         elm_entry_entry_insert(edit_entry, p);
         elm_entry_entry_insert(edit_entry, t[i]);
@@ -243,7 +260,21 @@ internal_template_part_insert(edit_data *ed,
         edit_line_increase(ed, 1);
      }
 
-   elm_entry_entry_insert(edit_entry, t[i]);
+   // insert relatives
+   elm_entry_entry_insert(edit_entry, p);
+   elm_entry_entry_insert(edit_entry, template_part_relative_line_get(1, 
rel1_x, rel1_y));
+   elm_entry_entry_insert(edit_entry, p);
+   elm_entry_entry_insert(edit_entry, template_part_relative_line_get(2, 
rel2_x, rel2_y));
+   edit_line_increase(ed, 2);
+
+   // insert the tale of the part that contains closing brackets
+   t = (char **) &TEMPLATE_PART_TALE;
+   for (i = 0; i < TEMPLATE_PART_TALE_LINE_CNT; i++)
+     {
+        elm_entry_entry_insert(edit_entry, p);
+        elm_entry_entry_insert(edit_entry, t[i]);
+        edit_line_increase(ed, 1);
+     }
 
    int cursor_pos2 = elm_entry_cursor_pos_get(edit_entry);
    edit_redoundo_region_push(ed, cursor_pos1, cursor_pos2);
@@ -258,15 +289,19 @@ internal_template_part_insert(edit_data *ed,
 
 void
 template_live_edit_part_insert(edit_data *ed, Edje_Part_Type type,
+                               float rel1_x, float rel1_y,
+                               float rel2_x, float rel2_y,
                                const Eina_Stringshare *group_name)
 {
-   internal_template_part_insert(ed, type, TEMPLATE_PART_INSERT_LIVE_EDIT,
+   internal_template_part_insert(ed, type,
+                                 rel1_x, rel1_y, rel2_x, rel2_y,
+                                 TEMPLATE_PART_INSERT_LIVE_EDIT,
                                  group_name);
 }
 
 void
 template_part_insert(edit_data *ed, Edje_Part_Type type)
 {
-   internal_template_part_insert(ed, type,
-                                 TEMPLATE_PART_INSERT_DEFAULT, NULL);
+   internal_template_part_insert(ed, type, TEMPLATE_PART_INSERT_DEFAULT,
+                                 0.25, 0.25, 0.75, 0.75, NULL);
 }
diff --git a/src/include/template.h b/src/include/template.h
index ddc3a10..071de95 100644
--- a/src/include/template.h
+++ b/src/include/template.h
@@ -1,3 +1,3 @@
 void template_insert(edit_data *ed);
 void template_part_insert(edit_data *ed, Edje_Part_Type type);
-void template_live_edit_part_insert(edit_data *ed, Edje_Part_Type type, const 
Eina_Stringshare *group_name);
+void template_live_edit_part_insert(edit_data *ed, Edje_Part_Type type, float 
rel1_x, float rel1_y, float rel2_x, float rel2_y, const Eina_Stringshare 
*group_name);
diff --git a/src/include/template_code.h b/src/include/template_code.h
index dd69adb..7f8fb9c 100644
--- a/src/include/template_code.h
+++ b/src/include/template_code.h
@@ -32,7 +32,15 @@ const char *TEMPLATE_GROUP[TEMPLATE_GROUP_LINE_CNT] =
    "}"
 };
 
-#define TEMPLATE_PART_IMAGE_LINE_CNT 15
+#define TEMPLATE_PART_TALE_LINE_CNT 2
+
+const char *TEMPLATE_PART_TALE[TEMPLATE_PART_TALE_LINE_CNT] = 
+{
+   "   }<br/>",
+   "}<br/>"
+};
+
+#define TEMPLATE_PART_IMAGE_LINE_CNT 10
 
 const char *TEMPLATE_PART_IMAGE[TEMPLATE_PART_IMAGE_LINE_CNT] =
 {
@@ -40,20 +48,15 @@ const char 
*TEMPLATE_PART_IMAGE[TEMPLATE_PART_IMAGE_LINE_CNT] =
    "   scale: 1;<br/>",
    "   mouse_events: 1;<br/>",
    "   description { state: \"default\" 0.0;<br/>",
-   "      rel1 { relative: 0.25 0.25; offset: 0 0; /*to: \"XXX\";*/ }<br/>",
-   "      rel2 { relative: 0.75 0.75; offset: -1 -1; /*to: \"XXX\";*/ }<br/>",
    "      align: 0.5 0.5;<br/>",
    "      fixed: 0 0;<br/>",
    "      min: 0 0;<br/>",
    "      visible: 1;<br/>",
    "      image.normal: \"logo.png\";<br/>",
-   "      //aspect: 1 1;<br/>",
-   "   }<br/>",
-   "}<br/>",
-   ""
+   "      //aspect: 1 1;<br/>"
 };
 
-#define TEMPLATE_PART_RECT_LINE_CNT 14
+#define TEMPLATE_PART_RECT_LINE_CNT 9
 
 const char *TEMPLATE_PART_RECT[TEMPLATE_PART_RECT_LINE_CNT] =
 {
@@ -61,19 +64,14 @@ const char *TEMPLATE_PART_RECT[TEMPLATE_PART_RECT_LINE_CNT] 
=
    "   scale: 1;<br/>",
    "   mouse_events: 1;<br/>",
    "   description { state: \"default\" 0.0;<br/>",
-   "      rel1 { relative: 0.25 0.25; offset: 0 0; /*to: \"XXX\";*/ }<br/>",
-   "      rel2 { relative: 0.75 0.75; offset: -1 -1; /*to: \"XXX\";*/ }<br/>",
    "      color: 255 255 255 255;<br/>",
    "      align: 0.5 0.5;<br/>",
    "      fixed: 0 0;<br/>",
    "      min: 0 0;<br/>",
-   "      visible: 1;<br/>",
-   "   }<br/>",
-   "}<br/>",
-   ""
+   "      visible: 1;<br/>"
 };
 
-#define TEMPLATE_PART_SWALLOW_LINE_CNT 13
+#define TEMPLATE_PART_SWALLOW_LINE_CNT 8
 
 const char *TEMPLATE_PART_SWALLOW[TEMPLATE_PART_SWALLOW_LINE_CNT] =
 {
@@ -81,35 +79,25 @@ const char 
*TEMPLATE_PART_SWALLOW[TEMPLATE_PART_SWALLOW_LINE_CNT] =
    "   scale: 1;<br/>",
    "   mouse_events: 1;<br/>",
    "   description { state: \"default\" 0.0;<br/>",
-   "      rel1 { relative: 0.25 0.25; offset: 0 0; /*to: \"XXXX\";*/ }<br/>",
-   "      rel2 { relative: 0.75 0.75; offset: -1 -1; /*to: \"XXX\";*/ }<br/>",
    "      align: 0.5 0.5;<br/>",
    "      fixed: 0 0;<br/>",
    "      min: 0 0;<br/>",
-   "      visible: 1;<br/>",
-   "   }<br/>",
-   "}<br/>",
-   ""
+   "      visible: 1;<br/>"
 };
 
-#define TEMPLATE_PART_SPACER_LINE_CNT 11
+#define TEMPLATE_PART_SPACER_LINE_CNT 6
 
 const char *TEMPLATE_PART_SPACER[TEMPLATE_PART_SPACER_LINE_CNT] =
 {
    "   type: SPACER;<br/>",
    "   scale: 1;<br/>",
    "   description { state: \"default\" 0.0;<br/>",
-   "      rel1 { relative: 0.25 0.25; offset: 0 0; /*to: \"XXX\";*/ }<br/>",
-   "      rel2 { relative: 0.75 0.75; offset: -1 -1; /*to: \"XXX\";*/ }<br/>",
    "      align: 0.5 0.5;<br/>",
    "      fixed: 0 0;<br/>",
-   "      min: 0 0;<br/>",
-   "   }<br/>",
-   "}<br/>",
-   ""
+   "      min: 0 0;<br/>"
 };
 
-#define TEMPLATE_PART_TEXT_LINE_CNT 24
+#define TEMPLATE_PART_TEXT_LINE_CNT 19
 
 const char *TEMPLATE_PART_TEXT[TEMPLATE_PART_TEXT_LINE_CNT] =
 {
@@ -118,8 +106,6 @@ const char *TEMPLATE_PART_TEXT[TEMPLATE_PART_TEXT_LINE_CNT] 
=
    "   mouse_events: 1;<br/>",
    "   //effect: SHADOW;<br/>",
    "   description { state: \"default\" 0.0;<br/>",
-   "      rel1 { relative: 0.25 0.25; offset: 0 0; /*to: \"XXX\";*/ }<br/>",
-   "      rel2 { relative: 0.75 0.75; offset: -1 -1; /*to: \"XXX\";*/ }<br/>",
    "      align: 0.5 0.5;<br/>",
    "      fixed: 0 0;<br/>",
    "      min: 0 0;<br/>",
@@ -133,20 +119,15 @@ const char 
*TEMPLATE_PART_TEXT[TEMPLATE_PART_TEXT_LINE_CNT] =
    "         text: \"TEXT\";<br/>",
    "         align: 0.5 0.5;<br/>",
    "         min: 0 0;<br/>",
-   "      }<br/>",
-   "   }<br/>",
-   "}<br/>",
-   ""
+   "      }<br/>"
 };
 
-#define TEMPLATE_PART_TEXTBLOCK_LINE_CNT 17
+#define TEMPLATE_PART_TEXTBLOCK_LINE_CNT 12
 
 const char *TEMPLATE_PART_TEXTBLOCK[TEMPLATE_PART_TEXTBLOCK_LINE_CNT] =
 {
    "   type: TEXTBLOCK;<br/>",
    "   description { state: \"default\" 0.0;<br/>",
-   "      rel1 { relative: 0.25 0.25; offset: 0 0; /*to: \"XXX\";*/ }<br/>",
-   "      rel2 { relative: 0.75 0.75; offset: -1 -1; /*to: \"XXX\";*/ }<br/>",
    "      align: 0.5 0.5;<br/>",
    "      fixed: 0 0;<br/>",
    "      min: 0 0;<br/>",
@@ -156,10 +137,7 @@ const char 
*TEMPLATE_PART_TEXTBLOCK[TEMPLATE_PART_TEXTBLOCK_LINE_CNT] =
    "         text: \"TEXTBLOCK\";<br/>",
    "         align: 0.5 0.5;<br/>",
    "         min: 0 0;<br/>",
-   "      }<br/>",
-   "   }<br/>",
-   "}<br/>",
-   ""
+   "      }<br/>"
 };
 
 #define TEMPLATE_DESC_LINE_CNT 10

-- 


Reply via email to