Enlightenment CVS committal

Author  : davemds
Project : e17
Module  : proto

Dir     : e17/proto/edje_editor/src/bin


Modified Files:
        callbacks.c callbacks.h interface.c interface.h main.c main.h 


Log Message:
 * Add Tween animation support (create and manage)
 * Use an internal test app for show the edje result (instead of using 
edje_viewer)
 * some formatting
 * some shell escape inside system() invocations to handle space in file/dir 
name

 NOTE:
 You can now use edje_editor to view and test edje files.
 There is a new switch (-t) that open an edje file and show 
 the content of the given group, without load the whole editor interface. 
 Seems usefull to me.
 There was also a thread on the forum about this :)

 USAGE:
 edje_editor -t edje_file.edj "group/to/display"


===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- callbacks.c 10 Jul 2007 02:16:37 -0000      1.23
+++ callbacks.c 13 Jul 2007 16:54:57 -0000      1.24
@@ -38,6 +38,9 @@
 on_AllButton_click(Etk_Button *button, void *data)
 {
    char cmd[1024];
+   Etk_Tree_Row *sel_row;
+   int row_num;
+   
    switch ((int)data)
    {
       case TOOLBAR_NEW:
@@ -103,12 +106,13 @@
          printf("Clicked signal on Toolbar Button 'Play' EMITTED\n");
          if (Cur.open_file_name) 
          {
-            snprintf(cmd,1024,"edje_viewer %s &",Cur.open_file_name);
-            printf("TEST IN VIEWER. cmd: %s\n",cmd);
-            if (!system("type edje_viewer"))
-               system(cmd);
-            else
-               ShowAlert("<b>Could not find 'edje_viewer'.</b><br>Check that 
the executable is in your path.");
+            snprintf(cmd,1024,"edje_editor -t %s %s 
&",Cur.open_file_name,Cur.eg->name);
+            printf("TESTING EDJE. cmd: %s\n",cmd);
+            system(cmd);
+            //if (!system("type edje_viewer"))
+            //   system(cmd);
+            //else
+            //   ShowAlert("<b>Could not find 'edje_viewer'.</b><br>Check that 
the executable is in your path.");
          }else{
             ShowAlert("You need to save the file before testing it.");
          }
@@ -124,6 +128,35 @@
          if (engrave_file_font_dir_get(Cur.ef)) 
ShowFilechooser(FILECHOOSER_FONT);
          else ShowAlert("You have to save the file once for insert font.");
          break;
+      case IMAGE_TWEEN_UP:
+            ShowAlert("Up not yet implemented.");
+         break;
+      case IMAGE_TWEEN_DOWN:
+            ShowAlert("Down not yet implemented.");
+         break;
+      case IMAGE_TWEEN_DELETE:
+            sel_row = etk_tree_selected_row_get(ETK_TREE(UI_ImageTweenList));
+            if (row_num = (int)etk_tree_row_data_get (sel_row))
+            {
+               
PROTO_engrave_part_state_image_tween_remove_nth(Cur.eps,row_num-1);
+               UpdateImageFrame();
+            }
+         break;
+      case IMAGE_TWEEN_RADIO:
+            UpdateImageFrame();
+            
etk_toggle_button_active_set(ETK_TOGGLE_BUTTON(UI_ImageTweenRadio), TRUE);
+            
etk_toggle_button_active_set(ETK_TOGGLE_BUTTON(UI_ImageNormalRadio), FALSE);
+            etk_widget_show(UI_ImageTweenList);
+            etk_widget_show(UI_MoveUpTweenButton);
+            etk_widget_show(UI_MoveDownTweenButton);
+            etk_widget_show(UI_DeleteTweenButton);
+            etk_combobox_active_item_set (ETK_COMBOBOX(UI_ImageComboBox),
+               etk_combobox_nth_item_get(ETK_COMBOBOX(UI_ImageComboBox),0));
+         break;
+      case IMAGE_NORMAL_RADIO:
+            PROTO_engrave_part_state_image_tween_remove_all(Cur.eps);
+            UpdateImageFrame();
+         break;
    }
 }
 
@@ -452,18 +485,40 @@
 on_ImageComboBox_changed(Etk_Combobox *combobox, void *data)
 {
    Engrave_Image *image;
-   printf("Changed signal on Image Combo EMITED\n");
-
+   printf("Changed signal on Image Combo EMITTED\n");
+   
+   
    if ((image = etk_combobox_item_data_get(etk_combobox_active_item_get 
(combobox)))){
       //Set an existing image
       if (Cur.eps){
-         engrave_part_state_image_normal_set(Cur.eps, image);
+         if (!etk_toggle_button_active_get(UI_ImageTweenRadio))
+         {
+            engrave_part_state_image_normal_set(Cur.eps, image);
+         }else{
+            engrave_part_state_image_tween_add(Cur.eps,image);
+            UpdateImageFrame();
+         }
          ev_redraw();
       }
    }
 }
 
 void
+on_ImageTweenList_row_selected(Etk_Object *object, Etk_Tree_Row *row, void 
*data)
+{
+   printf("Row selected signal on ImageTweenList EMITTED\n");
+   if (row != etk_tree_first_row_get (ETK_TREE(UI_ImageTweenList)))
+   {
+      etk_widget_disabled_set(UI_DeleteTweenButton,FALSE);
+      etk_widget_disabled_set(UI_MoveUpTweenButton,FALSE);
+      etk_widget_disabled_set(UI_MoveDownTweenButton,FALSE);
+   }else{
+      etk_widget_disabled_set(UI_DeleteTweenButton,TRUE);
+      etk_widget_disabled_set(UI_MoveUpTweenButton,TRUE);
+      etk_widget_disabled_set(UI_MoveDownTweenButton,TRUE);
+   }
+}
+void
 on_ImageAlphaSlider_value_changed(Etk_Object *object, double va, void *data)
 {
    printf("ImageSlieder value_changed signale EMIT: %.2f\n",va);
@@ -1238,7 +1293,7 @@
 
       switch(FileChooserOperation){
          case FILECHOOSER_OPEN:
-            snprintf(cmd,4096,"edje_editor %s/%s &",
+            snprintf(cmd,4096,"edje_editor \"%s/%s\" &",
                etk_filechooser_widget_current_folder_get 
(ETK_FILECHOOSER_WIDGET(UI_FileChooser)),
                etk_filechooser_widget_selected_file_get 
(ETK_FILECHOOSER_WIDGET(UI_FileChooser)));
             system(cmd);
@@ -1258,9 +1313,9 @@
             if (Cur.eps){
                //If the new image is not in the edc dir
                if (strcmp(etk_filechooser_widget_current_folder_get 
(ETK_FILECHOOSER_WIDGET(UI_FileChooser)),engrave_file_image_dir_get(Cur.ef))){
-                  //TODO check if image already exist
+                  //TODO check if image already exist and is a valid image
                   //Copy the image to the image_dir
-                  snprintf(cmd, 4096, "cp %s %s", 
etk_entry_text_get(ETK_ENTRY(UI_FilechooserFileNameEntry)), 
engrave_file_image_dir_get(Cur.ef));
+                  snprintf(cmd, 4096, "cp \"%s\" \"%s\"", 
etk_entry_text_get(ETK_ENTRY(UI_FilechooserFileNameEntry)), 
engrave_file_image_dir_get(Cur.ef));
                   ret = system(cmd);
                   if (ret < 0) {
                      ShowAlert("Error: unable to copy image!");
@@ -1270,8 +1325,11 @@
                //Set the new image
                Engrave_Image* eimg;
                eimg = 
engrave_image_new(etk_filechooser_widget_selected_file_get(ETK_FILECHOOSER_WIDGET(UI_FileChooser)),ENGRAVE_IMAGE_TYPE_LOSSY,95);
  
-               engrave_file_image_add(Cur.ef,eimg);     
-               engrave_part_state_image_normal_set(Cur.eps,eimg);
+               engrave_file_image_add(Cur.ef,eimg);
+               if (!etk_toggle_button_active_get(UI_ImageTweenRadio))
+                  engrave_part_state_image_normal_set(Cur.eps,eimg);
+               else
+                  engrave_part_state_image_tween_add(Cur.eps,eimg);
                
                PopulateImagesComboBox();
                UpdateImageFrame();
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- callbacks.h 10 Jul 2007 02:16:37 -0000      1.11
+++ callbacks.h 13 Jul 2007 16:54:57 -0000      1.12
@@ -1,5 +1,4 @@
 
-
 /* Called when the window is destroyed */
 void etk_main_quit_cb(void *data);
 
@@ -35,6 +34,7 @@
 void on_ColorCanvas_realize            (Etk_Widget *canvas, void *data);
 void on_ImageAlphaSlider_value_changed (Etk_Object *object, double value, void 
*data);
 void on_ImageComboBox_changed          (Etk_Combobox *combobox, void *data);
+void on_ImageTweenList_row_selected    (Etk_Object *object, Etk_Tree_Row *row, 
void *data);
 void on_EffectComboBox_changed         (Etk_Combobox *combobox, void *data);
 void on_AlertDialog_response           (Etk_Dialog *dialog, int response_id, 
void *data);
 void on_StateIndexSpinner_value_changed(Etk_Range *range, double value, void 
*data);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- interface.c 10 Jul 2007 02:16:37 -0000      1.27
+++ interface.c 13 Jul 2007 16:54:57 -0000      1.28
@@ -194,7 +194,11 @@
    printf("Populate Images Combobox\n");
 
    etk_combobox_clear(ETK_COMBOBOX(UI_ImageComboBox));
-
+   
+   ComboItem = etk_combobox_item_append(ETK_COMBOBOX(UI_ImageComboBox),
+                     NULL, "<b>Choose an image</b>");
+   etk_combobox_item_data_set (ComboItem, NULL);
+   
    for (l = Cur.ef->images; l ; l = l->next)
    {
       image = l->data;
@@ -266,7 +270,8 @@
 }
 
 void
-PopulateSourceComboBox(void){
+PopulateSourceComboBox(void)
+{
    Evas_List *l;
    Engrave_Part *ep;
 
@@ -297,6 +302,39 @@
                      ETK_CALLBACK(on_SourceEntry_item_changed));
 }
 void
+PupulateTweenList(void)
+{
+   char buf[4096];
+   Engrave_Image *im;
+   Etk_Tree_Row *row;
+   Evas_List *l;
+   int row_num = 1;
+   Etk_Tree_Col *col1 = etk_tree_nth_col_get (ETK_TREE(UI_ImageTweenList),0);
+   
+   etk_tree_clear(ETK_TREE(UI_ImageTweenList));
+   if (Cur.eps->image.normal)
+   {
+      snprintf(buf,4095,"%s/%s",Cur.ef->im_dir,Cur.eps->image.normal->name);
+      etk_tree_row_append(ETK_TREE(UI_ImageTweenList), NULL,
+                           col1, buf, NULL,Cur.eps->image.normal->name,
+                           NULL);
+   }
+   // for all the frame in the tween
+   for (l = Cur.eps->image.tween; l; l = l->next)
+   {
+      im = l->data;
+      snprintf(buf,4095,"%s/%s",Cur.ef->im_dir,im->name);
+      row = etk_tree_row_append(ETK_TREE(UI_ImageTweenList), NULL,
+                           col1, buf, NULL,im->name,
+                           NULL);
+      etk_tree_row_data_set(row,(void*)row_num);
+      row_num++;
+   }
+   etk_widget_disabled_set(UI_DeleteTweenButton,TRUE);
+   etk_widget_disabled_set(UI_MoveUpTweenButton,TRUE);
+   etk_widget_disabled_set(UI_MoveDownTweenButton,TRUE);
+}
+void
 UpdateGroupFrame(void)
 {
    //Stop signal propagation
@@ -439,6 +477,9 @@
    Engrave_Image *image;
    int i;
    Etk_Combobox_Item *item = NULL;
+   Etk_Tree_Col *col1 = etk_tree_nth_col_get (ETK_TREE(UI_ImageTweenList),0);
+   char buf[4096];
+   
    //Stop signal propagation
    
etk_signal_block("value-changed",ETK_OBJECT(UI_BorderLeftSpinner),ETK_CALLBACK(on_BorderSpinner_value_changed));
    
etk_signal_block("value-changed",ETK_OBJECT(UI_BorderRightSpinner),ETK_CALLBACK(on_BorderSpinner_value_changed));
@@ -447,25 +488,48 @@
    
etk_signal_block("value-changed",ETK_OBJECT(UI_ImageAlphaSlider),ETK_CALLBACK(on_ImageAlphaSlider_value_changed));
    etk_signal_block("active-item-changed", ETK_OBJECT(UI_ImageComboBox), 
ETK_CALLBACK(on_ImageComboBox_changed));
 
-   //Set the images combobox
-   if (Cur.eps->image.normal)
+   PupulateTweenList();
+
+   if (Cur.eps->image.tween)
    {
-      i=0;
-      //Loop for all the item in the Combobox
-      while ((item = 
etk_combobox_nth_item_get(ETK_COMBOBOX(UI_ImageComboBox),i)))
+      etk_toggle_button_active_set(ETK_TOGGLE_BUTTON(UI_ImageTweenRadio), 
TRUE);
+      etk_toggle_button_active_set(ETK_TOGGLE_BUTTON(UI_ImageNormalRadio), 
FALSE);
+      etk_widget_show(UI_ImageTweenList);
+      etk_widget_show(UI_MoveUpTweenButton);
+      etk_widget_show(UI_MoveDownTweenButton);
+      etk_widget_show(UI_DeleteTweenButton);
+      etk_combobox_active_item_set (ETK_COMBOBOX(UI_ImageComboBox),
+               etk_combobox_nth_item_get(ETK_COMBOBOX(UI_ImageComboBox),0));
+   }else{
+      etk_toggle_button_active_set(ETK_TOGGLE_BUTTON(UI_ImageTweenRadio), 
FALSE);
+      etk_toggle_button_active_set(ETK_TOGGLE_BUTTON(UI_ImageNormalRadio), 
TRUE);
+      etk_widget_hide(UI_ImageTweenList);
+      etk_widget_hide(UI_MoveUpTweenButton);
+      etk_widget_hide(UI_MoveDownTweenButton);
+      etk_widget_hide(UI_DeleteTweenButton);
+      //Set the images combobox for normal image
+      if (Cur.eps->image.normal)
       {
-         if ((image = etk_combobox_item_data_get(item)))
+         i=0;
+         //Loop for all the item in the Combobox
+         while ((item = 
etk_combobox_nth_item_get(ETK_COMBOBOX(UI_ImageComboBox),i)))
          {
-            //Get the data for the item (should be an char* with the name of 
the image file)
-            if (image == Cur.eps->image.normal)
+            if ((image = etk_combobox_item_data_get(item)))
             {
-               etk_combobox_active_item_set 
(ETK_COMBOBOX(UI_ImageComboBox),item);     //If we found the item set active
-               break;
+               //Get the data for the item (should be an char* with the name 
of the image file)
+               if (image == Cur.eps->image.normal)
+               {
+                  etk_combobox_active_item_set 
(ETK_COMBOBOX(UI_ImageComboBox),item);  //If we found the item set active
+                  break;
+               }
             }
+            i++;
          }
-         i++;
+      }else{
+         etk_combobox_active_item_set (ETK_COMBOBOX(UI_ImageComboBox),
+               etk_combobox_nth_item_get(ETK_COMBOBOX(UI_ImageComboBox),0));
       }
-   }else{etk_combobox_active_item_set (ETK_COMBOBOX(UI_ImageComboBox), 
etk_combobox_nth_item_get(ETK_COMBOBOX(UI_ImageComboBox),0));}
+   }
 
    etk_range_value_set (ETK_RANGE(UI_BorderTopSpinner), 
Cur.eps->image.border.t);
    etk_range_value_set (ETK_RANGE(UI_BorderLeftSpinner), 
Cur.eps->image.border.l);
@@ -1004,30 +1068,35 @@
    //NewButton
    button = etk_tool_button_new_from_stock(ETK_STOCK_DOCUMENT_NEW);
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), button);
-   etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_NEW);
+   etk_signal_connect("clicked", ETK_OBJECT(button),
+                     ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_NEW);
 
    //OpenButton
    button = etk_tool_button_new_from_stock(ETK_STOCK_DOCUMENT_OPEN);
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), button);
-   etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_OPEN);
+   etk_signal_connect("clicked", ETK_OBJECT(button),
+                     ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_OPEN);
 
    //SaveButton
    button = etk_tool_button_new_from_stock(ETK_STOCK_DOCUMENT_SAVE);
    etk_object_properties_set(ETK_OBJECT(button),"label","Save",NULL);
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), button);
-   etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_SAVE);
+   etk_signal_connect("clicked", ETK_OBJECT(button),
+                     ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_SAVE);
    
    //SaveEDJButton
    button = etk_tool_button_new_from_stock(ETK_STOCK_DOCUMENT_SAVE_AS);
    etk_object_properties_set(ETK_OBJECT(button),"label","Save as",NULL);
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), button);
-   etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_SAVE_EDJ);
+   etk_signal_connect("clicked", ETK_OBJECT(button),
+                     ETK_CALLBACK(on_AllButton_click), 
(void*)TOOLBAR_SAVE_EDJ);
 
 /*    //SaveEDCButton
    button = etk_tool_button_new_from_stock(ETK_STOCK_DOCUMENT_SAVE);
    etk_object_properties_set(ETK_OBJECT(button),"label","Export edc",NULL);
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), button);
-   etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_SAVE_EDC);
+   etk_signal_connect("clicked", ETK_OBJECT(button),
+                     ETK_CALLBACK(on_AllButton_click), 
(void*)TOOLBAR_SAVE_EDC);
  */   
    sep = etk_hseparator_new();
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), sep);
@@ -1036,7 +1105,8 @@
 
    //AddButton
    button = etk_tool_button_new_from_stock(ETK_STOCK_LIST_ADD);
-   etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_ADD);
+   etk_signal_connect("clicked", ETK_OBJECT(button),
+                        ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_ADD);
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), button);
 
    //AddMenu
@@ -1046,28 +1116,32 @@
    menu_item = etk_menu_item_image_new_with_label("Rectangle");
    image = etk_image_new_from_edje(EdjeFile,"RECT.PNG");
    etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image));
-   etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(on_AddMenu_item_activated), (void*)NEW_RECT);
+   etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(on_AddMenu_item_activated), (void*)NEW_RECT);
    etk_menu_shell_append(ETK_MENU_SHELL(UI_AddMenu), ETK_MENU_ITEM(menu_item));
 
    //New Image
    menu_item = etk_menu_item_image_new_with_label("Image");
    image = etk_image_new_from_edje(EdjeFile,"IMAGE.PNG");
    etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image));
-   etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(on_AddMenu_item_activated),(void*) NEW_IMAGE);
+   etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(on_AddMenu_item_activated),(void*) 
NEW_IMAGE);
    etk_menu_shell_append(ETK_MENU_SHELL(UI_AddMenu), ETK_MENU_ITEM(menu_item));
    
    //New Text
    menu_item = etk_menu_item_image_new_with_label("Text");
    image = etk_image_new_from_edje(EdjeFile,"TEXT.PNG");
    etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image));
-   etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(on_AddMenu_item_activated), (void*)NEW_TEXT);
+   etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(on_AddMenu_item_activated), (void*)NEW_TEXT);
    etk_menu_shell_append(ETK_MENU_SHELL(UI_AddMenu), ETK_MENU_ITEM(menu_item));
    
    //New Program
    menu_item = etk_menu_item_image_new_with_label("Program");
    image = etk_image_new_from_edje(EdjeFile,"PROG.PNG");
    etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image));
-   etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(on_AddMenu_item_activated), (void*)NEW_PROG);
+   etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(on_AddMenu_item_activated), (void*)NEW_PROG);
    etk_menu_shell_append(ETK_MENU_SHELL(UI_AddMenu), ETK_MENU_ITEM(menu_item));
    
    //Separator
@@ -1075,37 +1149,50 @@
    etk_menu_shell_append(ETK_MENU_SHELL(UI_AddMenu), ETK_MENU_ITEM(menu_item));
 
    //New Description
-   menu_item = etk_menu_item_image_new_with_label("Add a new description");
-   etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(on_AddMenu_item_activated), (void*)NEW_DESC);
+   menu_item = etk_menu_item_image_new_with_label("A new state to part");
+   image = etk_image_new_from_edje(EdjeFile,"DESC.PNG");
+   etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image));
+   etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(on_AddMenu_item_activated), (void*)NEW_DESC);
    etk_menu_shell_append(ETK_MENU_SHELL(UI_AddMenu), ETK_MENU_ITEM(menu_item));
 
    //New Group
-   menu_item = etk_menu_item_image_new_with_label("Add a new group");
-   etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(on_AddMenu_item_activated), (void*)NEW_GROUP);
-
+   menu_item = etk_menu_item_image_new_with_label("A new group to edj");
+   image = etk_image_new_from_edje(EdjeFile,"NONE.PNG");
+   etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image));
+   etk_signal_connect("activated", ETK_OBJECT(menu_item),
+                     ETK_CALLBACK(on_AddMenu_item_activated), 
(void*)NEW_GROUP);
    etk_menu_shell_append(ETK_MENU_SHELL(UI_AddMenu), ETK_MENU_ITEM(menu_item));
 
    //RemoveButton
    button = etk_tool_button_new_from_stock(ETK_STOCK_LIST_REMOVE);
-   etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_REMOVE);
+   etk_signal_connect("clicked", ETK_OBJECT(button),
+                     ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_REMOVE);
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), button);
 
    //RemoveMenu
    UI_RemoveMenu = etk_menu_new();
 
    //description
-   menu_item = etk_menu_item_image_new_with_label("Selected Description");
-   etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(on_RemoveMenu_item_activated), (void*)REMOVE_DESCRIPTION);
+   menu_item = etk_menu_item_image_new_with_label("Selected State");
+   image = etk_image_new_from_edje(EdjeFile,"DESC.PNG");
+   etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image));
+   etk_signal_connect("activated", ETK_OBJECT(menu_item),
+         ETK_CALLBACK(on_RemoveMenu_item_activated), 
(void*)REMOVE_DESCRIPTION);
    etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), 
ETK_MENU_ITEM(menu_item));
 
    //part
    menu_item = etk_menu_item_image_new_with_label("Selected Part");
-   etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(on_RemoveMenu_item_activated), (void*)REMOVE_PART);
+   etk_signal_connect("activated", ETK_OBJECT(menu_item),
+               ETK_CALLBACK(on_RemoveMenu_item_activated), (void*)REMOVE_PART);
    etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), 
ETK_MENU_ITEM(menu_item));
 
    //group
    menu_item = etk_menu_item_image_new_with_label("Selected Group");
-   etk_signal_connect("activated", ETK_OBJECT(menu_item), 
ETK_CALLBACK(on_RemoveMenu_item_activated), (void*)REMOVE_GROUP);
+   image = etk_image_new_from_edje(EdjeFile,"NONE.PNG");
+   etk_menu_item_image_set(ETK_MENU_ITEM_IMAGE(menu_item), ETK_IMAGE(image));
+   etk_signal_connect("activated", ETK_OBJECT(menu_item),
+               ETK_CALLBACK(on_RemoveMenu_item_activated), 
(void*)REMOVE_GROUP);
    etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), 
ETK_MENU_ITEM(menu_item));
 
    sep = etk_hseparator_new();
@@ -1115,12 +1202,14 @@
 
    //MoveUp Button
    button = etk_tool_button_new_from_stock( ETK_STOCK_GO_UP);
-   etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_MOVE_UP);
+   etk_signal_connect("clicked", ETK_OBJECT(button),
+                     ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_MOVE_UP);
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), button);
 
    //MoveDown Button
    button = etk_tool_button_new_from_stock( ETK_STOCK_GO_DOWN);
-   etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_MOVE_DOWN);
+   etk_signal_connect("clicked", ETK_OBJECT(button),
+                  ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_MOVE_DOWN);
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), button);
 
    sep = etk_hseparator_new();
@@ -1128,16 +1217,18 @@
    sep = etk_vseparator_new();
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), sep);
 
-   //Compile Button
+   //Test Button
    button = etk_tool_button_new_from_stock( ETK_STOCK_MEDIA_PLAYBACK_START);
-   etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_PLAY);
-   etk_object_properties_set(ETK_OBJECT(button),"label","Test in viewer",NULL);
+   etk_signal_connect("clicked", ETK_OBJECT(button),
+                        ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_PLAY);
+   etk_object_properties_set(ETK_OBJECT(button),"label","Test group",NULL);
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), button);
 
    //DebugButton
    button = etk_tool_button_new_from_stock(ETK_STOCK_DOCUMENT_PROPERTIES);
    etk_toolbar_append(ETK_TOOLBAR(ToolBar), button);
-   etk_signal_connect("clicked", ETK_OBJECT(button), 
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_DEBUG);
+   etk_signal_connect("clicked", ETK_OBJECT(button),
+                        ETK_CALLBACK(on_AllButton_click), 
(void*)TOOLBAR_DEBUG);
    etk_object_properties_set(ETK_OBJECT(button),"label","Debug",NULL);
 
    return ToolBar;
@@ -1260,7 +1351,7 @@
    Etk_Combobox_Item *ComboItem;
 
    //DescriptionFrame
-   UI_DescriptionFrame = etk_frame_new("Description property");
+   UI_DescriptionFrame = etk_frame_new("State");
 
    //vbox
    vbox = etk_vbox_new(ETK_FALSE, 0);
@@ -1367,9 +1458,6 @@
    etk_widget_size_request_set(UI_StateMaxHSpinner, 45, 20);
    etk_box_append(ETK_BOX(hbox),UI_StateMaxHSpinner, ETK_BOX_START, 
ETK_BOX_NONE, 0);
 
-
-
-
    etk_signal_connect("text-changed", ETK_OBJECT(UI_StateEntry), 
ETK_CALLBACK(on_StateEntry_text_changed), NULL);
    etk_signal_connect("value-changed", ETK_OBJECT(UI_StateIndexSpinner), 
ETK_CALLBACK(on_StateIndexSpinner_value_changed), NULL);
    etk_signal_connect("value-changed", ETK_OBJECT(UI_AspectMinSpinner), 
ETK_CALLBACK(on_AspectSpinner_value_changed), NULL);
@@ -1400,86 +1488,141 @@
 {
    Etk_Widget *label;
    Etk_Widget *table;
+   Etk_Tree_Col *col1;
+   Etk_Widget *button;
 
    //ImageFrame
    UI_ImageFrame = etk_frame_new("Image");
 
    //table
-   table = etk_table_new (5, 4, ETK_TABLE_NOT_HOMOGENEOUS);
+   table = etk_table_new (5, 8, ETK_TABLE_NOT_HOMOGENEOUS);
    etk_container_add(ETK_CONTAINER(UI_ImageFrame), table);
 
-   label = etk_label_new("Image");
-   //etk_object_properties_set (ETK_OBJECT(label), "xalign",0.5,NULL);
-   etk_table_attach_default (ETK_TABLE(table),label, 0, 0, 0, 0);
+   //ImageTweenRadio
+   UI_ImageNormalRadio = etk_radio_button_new_with_label("Normal",NULL);
+   UI_ImageTweenRadio = etk_radio_button_new_with_label_from_widget("Tween", 
+                        ETK_RADIO_BUTTON(UI_ImageNormalRadio));
+   etk_table_attach_default (ETK_TABLE(table),UI_ImageNormalRadio, 1, 2, 0, 0);
+   etk_table_attach_default (ETK_TABLE(table),UI_ImageTweenRadio, 3, 4, 0, 0);
 
    //imageComboBox
    UI_ImageComboBox = etk_combobox_new();
    etk_combobox_column_add(ETK_COMBOBOX(UI_ImageComboBox), ETK_COMBOBOX_IMAGE, 
24, ETK_COMBOBOX_NONE, 0.0);
    etk_combobox_column_add(ETK_COMBOBOX(UI_ImageComboBox), ETK_COMBOBOX_LABEL, 
75, ETK_COMBOBOX_NONE, 0.0);
    etk_combobox_build(ETK_COMBOBOX(UI_ImageComboBox));
-   etk_table_attach_default (ETK_TABLE(table),UI_ImageComboBox, 1, 3, 0, 0);
+   etk_table_attach_default (ETK_TABLE(table),UI_ImageComboBox, 0, 3, 1, 1);
 
    //AddImageButton
    UI_ImageAddButton = etk_button_new_from_stock (ETK_STOCK_DOCUMENT_OPEN);
    etk_object_properties_set (ETK_OBJECT(UI_ImageAddButton), "label","",NULL);
-   etk_table_attach_default (ETK_TABLE(table),UI_ImageAddButton, 4, 4, 0, 0);
-
-   label = etk_label_new("Alpha");
-   etk_table_attach_default (ETK_TABLE(table),label, 0, 0, 1, 1);
+   etk_table_attach_default (ETK_TABLE(table),UI_ImageAddButton, 4, 4, 1, 1);
 
+   //ImageTweenVBox
+   UI_ImageTweenVBox = etk_vbox_new(ETK_TRUE, 2);
+   etk_table_attach_default (ETK_TABLE(table),UI_ImageTweenVBox, 0, 0, 2, 2);
+   
+   //MoveUpTweenButton
+   UI_MoveUpTweenButton = etk_button_new_from_stock (ETK_STOCK_GO_UP);
+   etk_button_style_set(UI_MoveUpTweenButton,  ETK_BUTTON_ICON);
+   etk_signal_connect("clicked", ETK_OBJECT(UI_MoveUpTweenButton), 
+      ETK_CALLBACK(on_AllButton_click), (void*)IMAGE_TWEEN_UP);
+   etk_box_append (UI_ImageTweenVBox, UI_MoveUpTweenButton, 
+                     ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
+   
+   //MoveDownTweenButton
+   UI_MoveDownTweenButton = etk_button_new_from_stock (ETK_STOCK_GO_DOWN);
+   etk_button_style_set(UI_MoveDownTweenButton,  ETK_BUTTON_ICON);
+   etk_signal_connect("clicked", ETK_OBJECT(UI_MoveDownTweenButton), 
+      ETK_CALLBACK(on_AllButton_click), (void*)IMAGE_TWEEN_DOWN);
+   etk_box_append (UI_ImageTweenVBox, UI_MoveDownTweenButton, 
+                     ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
+                     
+   //DeleteTweenButton
+   UI_DeleteTweenButton = etk_button_new_from_stock (ETK_STOCK_EDIT_DELETE);
+   etk_button_style_set(UI_DeleteTweenButton, ETK_BUTTON_ICON);
+   etk_signal_connect("clicked", ETK_OBJECT(UI_DeleteTweenButton), 
+      ETK_CALLBACK(on_AllButton_click), (void*)IMAGE_TWEEN_DELETE);
+   etk_box_append (UI_ImageTweenVBox, UI_DeleteTweenButton, 
+                     ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0);
+                     
+   //ImageTweenList
+   UI_ImageTweenList = etk_tree_new();
+   etk_tree_mode_set(ETK_TREE(UI_ImageTweenList), ETK_TREE_MODE_LIST);
+   etk_tree_headers_visible_set(ETK_TREE(UI_ImageTweenList), FALSE);
+  // etk_tree_multiple_select_set(ETK_TREE(UI_ImageTweenList), ETK_TRUE);
+   col1 = etk_tree_col_new(ETK_TREE(UI_ImageTweenList), "Tween", 130, 0.0);
+   etk_tree_col_model_add(col1, etk_tree_model_image_new());
+   etk_tree_col_model_add(col1, etk_tree_model_text_new());
+   etk_tree_build(ETK_TREE(UI_ImageTweenList));
+   etk_table_attach_default (ETK_TABLE(table),UI_ImageTweenList, 1, 4, 2, 2);  
 
+   label = etk_label_new("Alpha");
+   etk_table_attach_default (ETK_TABLE(table),label, 0, 0, 3, 3);
 
    //ImageAlphaSlider
    UI_ImageAlphaSlider = etk_hslider_new (0, 255, 15, 1,20);
-   etk_table_attach_default (ETK_TABLE(table),UI_ImageAlphaSlider, 1, 4, 1, 1);
+   etk_table_attach_default (ETK_TABLE(table),UI_ImageAlphaSlider, 1, 4, 3, 3);
 
    label = etk_label_new("Left");
    etk_object_properties_set (ETK_OBJECT(label), "xalign",0.5,NULL);
-   etk_table_attach_default (ETK_TABLE(table),label, 1, 1, 2, 2);
+   etk_table_attach_default (ETK_TABLE(table),label, 1, 1, 4, 4);
 
    label = etk_label_new("Right");
    etk_object_properties_set (ETK_OBJECT(label), "xalign",0.5,NULL);
-   etk_table_attach_default (ETK_TABLE(table),label, 2, 2, 2, 2);
+   etk_table_attach_default (ETK_TABLE(table),label, 2, 2, 4, 4);
 
    label = etk_label_new("Top");
    etk_object_properties_set (ETK_OBJECT(label), "xalign",0.5,NULL);
-   etk_table_attach_default (ETK_TABLE(table),label, 3, 3, 2, 2);
+   etk_table_attach_default (ETK_TABLE(table),label, 3, 3, 4, 4);
 
    label = etk_label_new("Bottom");
    etk_object_properties_set (ETK_OBJECT(label), "xalign",0.5,NULL);
-   etk_table_attach_default (ETK_TABLE(table),label, 4, 4, 2, 2);
+   etk_table_attach_default (ETK_TABLE(table),label, 4, 4, 4, 4);
 
    label = etk_label_new("Border");
    //etk_object_properties_set (ETK_OBJECT(label), "xalign",0.5,NULL);
-   etk_table_attach_default (ETK_TABLE(table),label, 0, 0, 3, 3);
+   etk_table_attach_default (ETK_TABLE(table),label, 0, 0, 5, 5);
 
    //UI_BorderLeftSpinner
    UI_BorderLeftSpinner = etk_spinner_new (0, 500, 0, 1, 10);
    etk_widget_size_request_set(UI_BorderLeftSpinner,45, 20);
-   etk_table_attach_default (ETK_TABLE(table),UI_BorderLeftSpinner, 1, 1, 3, 
3);
+   etk_table_attach_default (ETK_TABLE(table),UI_BorderLeftSpinner, 1, 1, 5, 
5);
 
    //UI_BorderRightSpinner
    UI_BorderRightSpinner = etk_spinner_new (0, 500, 0, 1, 10);
    etk_widget_size_request_set(UI_BorderRightSpinner,45, 20);
-   etk_table_attach_default (ETK_TABLE(table),UI_BorderRightSpinner, 2, 2, 3, 
3);
+   etk_table_attach_default (ETK_TABLE(table),UI_BorderRightSpinner, 2, 2, 5, 
5);
 
    //UI_BorderTopSpinner
    UI_BorderTopSpinner = etk_spinner_new (0, 500, 0, 1, 10);
    etk_widget_size_request_set(UI_BorderTopSpinner,45, 20);
-   etk_table_attach_default (ETK_TABLE(table),UI_BorderTopSpinner, 3, 3, 3, 3);
+   etk_table_attach_default (ETK_TABLE(table),UI_BorderTopSpinner, 3, 3, 5, 5);
 
    //UI_BorderBottomSpinner
    UI_BorderBottomSpinner = etk_spinner_new (0, 500, 0, 1, 10);
    etk_widget_size_request_set(UI_BorderBottomSpinner,45, 20);
-   etk_table_attach_default (ETK_TABLE(table),UI_BorderBottomSpinner, 4, 4, 3, 
3);
+   etk_table_attach_default (ETK_TABLE(table),UI_BorderBottomSpinner, 4, 4, 5, 
5);
 
-   etk_signal_connect("clicked", ETK_OBJECT(UI_ImageAddButton), 
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_IMAGE_FILE_ADD);
-   etk_signal_connect("active-item-changed", ETK_OBJECT(UI_ImageComboBox), 
ETK_CALLBACK(on_ImageComboBox_changed), NULL);
-   etk_signal_connect("value-changed", ETK_OBJECT(UI_ImageAlphaSlider), 
ETK_CALLBACK(on_ImageAlphaSlider_value_changed), NULL);
-   etk_signal_connect("value-changed", ETK_OBJECT(UI_BorderLeftSpinner), 
ETK_CALLBACK(on_BorderSpinner_value_changed), (void *)BORDER_LEFT);
-   etk_signal_connect("value-changed", ETK_OBJECT(UI_BorderRightSpinner), 
ETK_CALLBACK(on_BorderSpinner_value_changed), (void *)BORDER_RIGHT);
-   etk_signal_connect("value-changed", ETK_OBJECT(UI_BorderTopSpinner), 
ETK_CALLBACK(on_BorderSpinner_value_changed), (void *)BORDER_TOP);
-   etk_signal_connect("value-changed", ETK_OBJECT(UI_BorderBottomSpinner), 
ETK_CALLBACK(on_BorderSpinner_value_changed), (void *)BORDER_BOTTOM);
+   etk_signal_connect("clicked", ETK_OBJECT(UI_ImageNormalRadio), 
+            ETK_CALLBACK(on_AllButton_click), (void*)IMAGE_NORMAL_RADIO);
+   etk_signal_connect("clicked", ETK_OBJECT(UI_ImageTweenRadio), 
+            ETK_CALLBACK(on_AllButton_click), (void*)IMAGE_TWEEN_RADIO);
+   etk_signal_connect("row-selected", ETK_OBJECT(UI_ImageTweenList),
+            ETK_CALLBACK(on_ImageTweenList_row_selected), NULL);
+   etk_signal_connect("clicked", ETK_OBJECT(UI_ImageAddButton),
+            ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_IMAGE_FILE_ADD);
+   etk_signal_connect("active-item-changed", ETK_OBJECT(UI_ImageComboBox),
+            ETK_CALLBACK(on_ImageComboBox_changed), NULL);
+   etk_signal_connect("value-changed", ETK_OBJECT(UI_ImageAlphaSlider),
+            ETK_CALLBACK(on_ImageAlphaSlider_value_changed), NULL);
+   etk_signal_connect("value-changed", ETK_OBJECT(UI_BorderLeftSpinner),
+            ETK_CALLBACK(on_BorderSpinner_value_changed), (void *)BORDER_LEFT);
+   etk_signal_connect("value-changed", ETK_OBJECT(UI_BorderRightSpinner),
+            ETK_CALLBACK(on_BorderSpinner_value_changed), (void 
*)BORDER_RIGHT);
+   etk_signal_connect("value-changed", ETK_OBJECT(UI_BorderTopSpinner),
+            ETK_CALLBACK(on_BorderSpinner_value_changed), (void *)BORDER_TOP);
+   etk_signal_connect("value-changed", ETK_OBJECT(UI_BorderBottomSpinner),
+            ETK_CALLBACK(on_BorderSpinner_value_changed), (void 
*)BORDER_BOTTOM);
 
    return UI_ImageFrame;
 }
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- interface.h 10 Jul 2007 02:16:37 -0000      1.13
+++ interface.h 13 Jul 2007 16:54:57 -0000      1.14
@@ -22,7 +22,14 @@
 Etk_Widget *UI_ProgramFrame;
 Etk_Widget *UI_TextEntry;
 Etk_Widget *UI_FontComboBox;
+Etk_Widget *UI_ImageTweenList;
+Etk_Widget *UI_ImageTweenRadio;
+Etk_Widget *UI_ImageNormalRadio;
 Etk_Widget *UI_ImageComboBox;
+Etk_Widget *UI_ImageTweenVBox;
+Etk_Widget *UI_DeleteTweenButton;
+Etk_Widget *UI_MoveDownTweenButton;
+Etk_Widget *UI_MoveUpTweenButton;
 Etk_Widget *UI_FontSizeSpinner;
 Etk_Widget *UI_EffectComboBox;
 Etk_Widget *UI_PartFrame;
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- main.c      13 Mar 2007 05:27:11 -0000      1.9
+++ main.c      13 Jul 2007 16:54:57 -0000      1.10
@@ -13,7 +13,54 @@
 
 #define MAIN_EDC_NAME "edje_editor_link.edc"
 
+Evas_Object *EdjeTest_bg;
+Evas_Object *EdjeTest_edje;
 
+void
+on_test_win_resize(Ecore_Evas * ee)
+{
+       int w, h;
+       
+       evas_output_size_get(ecore_evas_get(ee), &w, &h);
+       printf("RESIZE: %d - %d\n", w,h);
+ 
+       //evas_object_move(preview, barwidth, 0);
+       evas_object_resize(EdjeTest_bg, w , h );
+       evas_object_resize(EdjeTest_edje, w , h );
+}
+/**
+ * engrave_part_state_image_tween_remove_nth - Remove the nth image from the 
tween list.
+ * @param eps: The Engrave_Part_State to remove the image to.
+ * @param tween_num: The number of the image to remove from the tween list.
+ *
+ * @return Returns no value 
+ */
+/*EAPI*/ void
+PROTO_engrave_part_state_image_tween_remove_nth(Engrave_Part_State *eps,
+                                      int tween_num)
+{
+   Evas_List *l;
+
+   if ((!eps) || (tween_num < 0)) return;
+   
+   l =         evas_list_nth_list (eps->image.tween, tween_num);
+   //printf("Remove tween num: %d 
(%s)\n",tween_num,((Engrave_Image*)(l->data))->name);
+   if (!l) return;
+
+   eps->image.tween = evas_list_remove_list (eps->image.tween, l);
+}
+/**
+ * engrave_part_state_image_tween_remove_all - Clear the tween list for a 
state.
+ * @param eps: The Engrave_Part_State that contain the list to clear.
+ *
+ * @return Returns no value 
+ */
+/*EAPI*/ void
+PROTO_engrave_part_state_image_tween_remove_all(Engrave_Part_State *eps)
+{
+   if (!eps && !eps->image.tween) return;
+   eps->image.tween = evas_list_free(eps->image.tween);
+}
 /**
  * engrave_part_state_remove - remove the state from the part.
  * @param ep: The Engrave_Part to remove the state to.
@@ -330,7 +377,7 @@
    Cur.main_source_file = strdup(buf);
    
    //Execute edje_decc through a pipe
-   snprintf(cmd, 4096, "edje_decc %s -main-out "MAIN_EDC_NAME, file);
+   snprintf(cmd, 4096, "edje_decc \"%s\" -main-out "MAIN_EDC_NAME, file);
    snprintf(buf,4096,"<b>Executing: </b>%s\n",cmd);
    etk_textview_append(UI_LoadTextView, buf);
    
@@ -436,6 +483,68 @@
    etk_widget_hide(win);
 }
 
+
+void
+TestEdjeGroup(char *File,char *Group)
+{
+   Ecore_Evas  *ee;
+   Evas        *evas;
+   
+   printf("Test EdjeFile: %s\nGroup: %s\nTheme: %s\n",File,Group,EdjeFile);
+   
+   /* ecore evas init */
+       ecore_init();      
+       ecore_evas_init();
+       ee = ecore_evas_software_x11_new(NULL, 0,  0, 0, 0, 0);
+       ecore_evas_title_set(ee, "Edje Test Application");
+   ecore_evas_callback_resize_set(ee, on_test_win_resize);
+       edje_init();
+   evas = ecore_evas_get(ee);
+   
+   /* Background */
+   EdjeTest_bg = evas_object_image_add(evas);
+   evas_object_image_file_set(EdjeTest_bg, EdjeFile, "images/0");              
//TODO Find a method to load by name and not by number
+   evas_object_image_fill_set(EdjeTest_bg,0,0,128,128);
+   evas_object_move(EdjeTest_bg, 0, 0);
+       evas_object_resize(EdjeTest_bg, 300, 300);
+   evas_object_show(EdjeTest_bg);
+
+   /* Edje Goroup */
+   EdjeTest_edje = edje_object_add(evas);
+       edje_object_file_set(EdjeTest_edje,File, Group);
+       evas_object_move(EdjeTest_edje, 0, 0);
+       evas_object_resize(EdjeTest_edje, 300, 300);
+       evas_object_show(EdjeTest_edje);
+   
+   /* Window Size */
+   int minw,minh,maxw,maxh;
+   edje_object_size_min_get(EdjeTest_edje, &minw, &minh);
+   edje_object_size_max_get(EdjeTest_edje, &maxw, &maxh);
+   if (minw <= 0) minw = 30;
+   if (minh <= 0) minh = 30;
+   ecore_evas_size_min_set(ee,minw,minh);
+   ecore_evas_size_max_set(ee,maxw,maxh);
+   ecore_evas_resize(ee, minw, minh);
+   
+   ecore_evas_show(ee);
+   
+   ecore_main_loop_begin();
+}
+void
+PrintUsage(void)
+{
+   printf("\nUsage:\n");
+   printf(" edje_editor [EDC | EDJ] [IMAGE_DIR] [FONT_DIR]\n");
+   printf("\nExample:\n");
+   printf(" edje_editor                #Open an empty file\n");
+   printf(" edje_editor default.edj    #Open the given EDJ\n");
+   printf(" edje_editor default.edc    #Open the given EDC\n");
+   printf("\nTesting Edje file:\n");
+   printf(" edje_editor -t file.edj \"group_name\"\n");
+   printf("\nNote on open an EDC:\n");
+   printf(" To open an EDC file you must pass the IMAGE_DIR and FONT_DIR\n");
+   printf(" parameters. If not given the EDC directory is assumed.\n\n");
+}
 /* main */
 int
 main(int argc, char **argv)
@@ -461,19 +570,22 @@
            (0 == strcmp(argv[1],"--help")) ||
            (0 == strcmp(argv[1],"--usage")) )
       {
-         printf("\nUsage:\n");
-         printf(" edje_editor [EDC | EDJ] [IMAGE_DIR] [FONT_DIR]\n");
-         printf("\nExample:\n");
-         printf(" edje_editor                #Open an empty file\n");
-         printf(" edje_editor default.edj    #Open the given EDJ\n");
-         printf(" edje_editor default.edc    #Open the given EDC\n");
-         printf("\nNote on open an EDC:\n");
-         printf(" To open an EDC file you must pass the IMAGE_DIR and 
FONT_DIR\n");
-         printf(" parameters. If not given the EDC directory is assumed.\n\n");
-         return 0;
+         PrintUsage();
+         return 1;
       }
    }
 
+   //Test EDJ
+   if (argc > 1 && (0 == strcmp(argv[1],"-t")))
+   {
+      if (argc < 4)
+      {
+         PrintUsage();
+         return 1;
+      }
+      TestEdjeGroup(argv[2],argv[3]);
+      return 0;
+   }
    //Init ETK
    if (!etk_init(&argc, &argv))
    {
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -3 -r1.9 -r1.10
--- main.h      10 Jul 2007 02:16:37 -0000      1.9
+++ main.h      13 Jul 2007 16:54:57 -0000      1.10
@@ -4,6 +4,7 @@
 #include <Engrave.h>
 #include <Ecore_Data.h>
 #include <Ecore_File.h>
+#include <Ecore_Evas.h>
 
 /* DEFINES */
 #define FAKEWIN_BORDER_TOP 16
@@ -81,7 +82,12 @@
    DRAG_REL1,
    DRAG_REL2,
    DRAG_MOVEBOX,
-   REL_COMBO_INTERFACE
+   REL_COMBO_INTERFACE,
+   IMAGE_TWEEN_UP,
+   IMAGE_TWEEN_DOWN,
+   IMAGE_TWEEN_DELETE,
+   IMAGE_TWEEN_RADIO,
+   IMAGE_NORMAL_RADIO
 };
 
 struct Current_State



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to