I also want to thank you. As I am just a silly designer with almost no
coding skill, this is a great tool for me! Keep it up, man! :-)

2007/7/13, Enlightenment CVS <[EMAIL PROTECTED]>:
>
> 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
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs
>



-- 
Luchezar P. Petkov
http://luchko.wordpress.com
-------------------------------------------------------------------------
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-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to