Enlightenment CVS committal

Author  : davemds
Project : e17
Module  : proto/edje_editor

Dir     : e17/proto/edje_editor/src/bin


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


Log Message:
 * more on testing the direct-edje-editing version (need edje patch on bugzilla 
#294 version 2)
 * patch from Massimiliano to remove programs (thanks)

===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -3 -r1.37 -r1.38
--- callbacks.c 28 Nov 2007 07:10:52 -0000      1.37
+++ callbacks.c 2 Dec 2007 16:44:14 -0000       1.38
@@ -15,6 +15,7 @@
 extern void PROTO_engrave_part_state_image_tween_remove_all(Engrave_Part_State 
*eps);
 extern int PROTO_engrave_part_raise(Engrave_Part *ep);
 extern int PROTO_engrave_part_lower(Engrave_Part *ep);
+extern void PROTO_engrave_group_program_remove(Engrave_Group *eg, 
Engrave_Program *epr);
 
 int current_color_object;
 
@@ -263,8 +264,7 @@
       case ROW_PART:
 #if TEST_DIRECT_EDJE
          Cur.part = etk_string_set(Cur.part, etk_tree_row_data_get (row));
-         Cur.state = etk_string_clear(Cur.state);
-         Cur.state_n = 0;
+         Cur.state = NULL;
          
          
edje_object_signal_emit(edje_ui,"description_frame_hide","edje_editor");
          edje_object_signal_emit(edje_ui,"position_frame_hide","edje_editor");
@@ -296,15 +296,17 @@
          break;
       case ROW_DESC:
 #if TEST_DIRECT_EDJE
-         Cur.state = etk_string_set(Cur.state,etk_tree_row_data_get (row));
+         Cur.state = etk_string_set(Cur.state, etk_tree_row_data_get (row));
          //get the parent part of the row from the hidden col
          etk_tree_row_fields_get(row,
             etk_tree_nth_col_get(ETK_TREE(UI_PartsTree), 3),&part,
             NULL);
          Cur.part = etk_string_set(Cur.part, part);
        
-         UpdatePositionFrame();
+         edje_edit_part_selected_state_set(edje_o, Cur.part->string, 
Cur.state->string);  
        
+         UpdatePositionFrame();
+      
          edje_object_signal_emit(edje_ui,"part_frame_hide","edje_editor");
          edje_object_signal_emit(edje_ui,"group_frame_hide","edje_editor");
          edje_object_signal_emit(edje_ui,"program_frame_hide","edje_editor");
@@ -795,7 +797,36 @@
 on_RelOffsetSpinner_value_changed(Etk_Range *range, double value, void *data)
 {
    printf("Value Changed Signal on Offset Spinner EMITTED\n");
-
+#if TEST_DIRECT_EDJE
+   if (etk_string_length_get(Cur.state) && etk_string_length_get(Cur.part))
+   {
+      switch ((int)data)
+      {
+         case REL1X_SPINNER:
+            edje_edit_state_rel1_offset_x_set(edje_o, 
+                                    Cur.part->string, Cur.state->string,
+                                    etk_range_value_get(range));
+            break;
+         case REL1Y_SPINNER:
+            edje_edit_state_rel1_offset_y_set(edje_o, 
+                                    Cur.part->string, Cur.state->string,
+                                    etk_range_value_get(range));
+            break;
+         case REL2X_SPINNER:
+            edje_edit_state_rel2_offset_x_set(edje_o, 
+                                    Cur.part->string, Cur.state->string,
+                                    etk_range_value_get(range));
+            break;
+         case REL2Y_SPINNER:
+            edje_edit_state_rel2_offset_y_set(edje_o, 
+                                    Cur.part->string, Cur.state->string,
+                                    etk_range_value_get(range));
+            break;
+      }
+      ev_redraw();
+      //ev_draw_focus();
+   }
+#else
    if (Cur.eps)
    {
       switch ((int)data)
@@ -816,7 +847,7 @@
       ev_redraw();
       //ev_draw_focus();
    }
-
+#endif
    return ETK_TRUE;
 }
 
@@ -1507,6 +1538,25 @@
                if (row) etk_tree_row_select(row);
          }else{
             ShowAlert("No group selected");
+         }
+      break;
+      case REMOVE_PROG:
+         if (Cur.epr)
+         {
+            row = NULL;
+            row = etk_tree_row_next_get(ecore_hash_get(hash,Cur.epr));
+            if (!row) row = 
etk_tree_row_prev_get(ecore_hash_get(hash,Cur.epr));
+            etk_tree_row_delete(ecore_hash_get(hash,Cur.epr));
+            ecore_hash_remove (hash, Cur.epr);
+            PROTO_engrave_group_program_remove(Cur.eg, Cur.epr);
+            engrave_program_free(Cur.epr);
+
+            Cur.epr = NULL;
+
+            ev_redraw();
+            if (row) etk_tree_row_select(row);
+         }else{
+            ShowAlert("No program selected");
          }
       break;
    }
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/evas.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- evas.c      28 Nov 2007 07:10:52 -0000      1.18
+++ evas.c      2 Dec 2007 16:44:14 -0000       1.19
@@ -194,10 +194,15 @@
 
    //printf("DRAW FOCUS\n");
 
-   if (Cur.ep && !Cur.ep->current_state)
-      Cur.ep->current_state = Cur.ep->states->data;
-
 #if TEST_DIRECT_EDJE
+   int o1x, o1y, o2x, o2y;
+   char *state;
+   
+   state = edje_edit_part_selected_state_get(edje_o, Cur.part->string);
+   o1x = edje_edit_state_rel1_offset_x_get(edje_o, Cur.part->string, state);
+   o1y = edje_edit_state_rel1_offset_y_get(edje_o, Cur.part->string, state);
+   o2x = edje_edit_state_rel2_offset_x_get(edje_o, Cur.part->string, state);
+   o2y = edje_edit_state_rel2_offset_y_get(edje_o, Cur.part->string, state);
    // If a part is selected draw the Focus Handler (only the yellow box)
    if (etk_string_length_get(Cur.part))//&& Cur.ep->current_state)
    {
@@ -206,14 +211,18 @@
        
       evas_object_geometry_get(EV_fakewin,&wx,&wy,NULL,NULL);
       
-      edje_edit_part_real_coord_get(edje_o, Cur.part->string, &px, &py, &pw, 
&ph);
+      edje_object_part_geometry_get(edje_o, Cur.part->string, &px, &py, &pw, 
&ph);
+      
+     
+      printf("CURRENT STATE: %s   -   %d\n",state,o1x);
+       
       evas_object_move(focus_handler,
-            px + wx - 2, //- Cur.ep->current_state->rel1.offset.x - 2,
-            py + wy - 2);// - Cur.ep->current_state->rel1.offset.y - 2);
+            px + wx - o1x - 2, //- Cur.ep->current_state->rel1.offset.x - 2,
+            py + wy - o1y - 2);// - Cur.ep->current_state->rel1.offset.y - 2);
 
       evas_object_resize(focus_handler,
-            pw + 2, // + Cur.ep->current_state->rel1.offset.x - 
Cur.ep->current_state->rel2.offset.x + 2,
-            ph + 2);// + Cur.ep->current_state->rel1.offset.y - 
Cur.ep->current_state->rel2.offset.y + 2);
+            pw + o1x - o2x + 2, // + Cur.ep->current_state->rel1.offset.x - 
Cur.ep->current_state->rel2.offset.x + 2,
+            ph + o1y - o2y + 2);// + Cur.ep->current_state->rel1.offset.y - 
Cur.ep->current_state->rel2.offset.y + 2);
       evas_object_raise (focus_handler);
       evas_object_show(focus_handler);
    }else
@@ -222,31 +231,30 @@
    }
    // if a part description is selected draw also the parent handlers (the red 
and blue lines)
    //if(Cur.eps && EV_fakewin && 0)
-   if (etk_string_length_get(Cur.state))
+   if (etk_string_length_get(Cur.state) && etk_string_length_get(Cur.part))
    {
       int px,py,pw,ph;
       printf("Draw parent Handlers\n");
 
       //Get the geometry of fakewin
       evas_object_geometry_get(EV_fakewin,&fx,&fy,&fw,&fh);
-      edje_edit_part_real_coord_get(edje_o, Cur.part->string, &px, &py, &pw, 
&ph);
+      edje_object_part_geometry_get(edje_o, Cur.part->string, &px, &py, &pw, 
&ph);
       printf("FW geom: %d %d %d %d\n",fx,fy,fw,fh);
       printf("PA geom: %d %d %d %d\n",px,py,pw,ph);
        
       //Draw rel1 & rel2 point
       evas_object_move (rel1_handler,
-            fx + px - 2,
-            fy + py - 2);
+            fx + px - o1x - 2,
+            fy + py - o1y - 2);
       evas_object_show(rel1_handler);
       evas_object_raise(rel1_handler);
 
       evas_object_move (rel2_handler,
-            fx + px + pw - 4,
-            fy + py + ph - 4);
+            fx + px + pw - o2x - 4,
+            fy + py + ph - o2y - 4);
       evas_object_show(rel2_handler);
       evas_object_raise(rel2_handler);
 
-
       ParentX = fx;
       ParentY = fy;
       ParentW = fw;
@@ -345,6 +353,9 @@
       evas_object_hide(rel2_handler);
    }
 #else
+   if (Cur.ep && !Cur.ep->current_state)
+      Cur.ep->current_state = Cur.ep->states->data;
+   
    // If a part is selected draw the Focus Handler (only the yellow box)
    if (Cur.ep && Cur.ep->current_state)
    {
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.c,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -3 -r1.44 -r1.45
--- interface.c 28 Nov 2007 07:10:52 -0000      1.44
+++ interface.c 2 Dec 2007 16:44:14 -0000       1.45
@@ -71,29 +71,24 @@
 {
    Etk_Tree_Col *col1,*col2,*col3, *col4;
    Etk_Tree_Row *row;
-   
-   char buf[4096];
+
    const char *stock_key;
    col1 = etk_tree_nth_col_get(ETK_TREE(UI_PartsTree), 0);
    col2 = etk_tree_nth_col_get(ETK_TREE(UI_PartsTree), 1);
    col3 = etk_tree_nth_col_get(ETK_TREE(UI_PartsTree), 2);
    col4 = etk_tree_nth_col_get(ETK_TREE(UI_PartsTree), 3);
 
-   //snprintf(buf,4096,"%s %.2f",state->name,state->value);
-   snprintf(buf,4096,"%s",state_name);
+
    stock_key = etk_stock_key_get(ETK_STOCK_TEXT_X_GENERIC, ETK_STOCK_SMALL);
    row = etk_tree_row_append(ETK_TREE(UI_PartsTree),
             evas_hash_find(Parts_Hash,part_name),
-            col1, EdjeFile, "DESC.PNG", buf,
+            col1, EdjeFile, "DESC.PNG", state_name,
             col2, TRUE,
             col3, ROW_DESC,
             col4, part_name, NULL);
 
    etk_tree_row_data_set (row, state_name);
    //ecore_hash_set(hash, state, row);
-
-
-
 }
 #endif
 
@@ -221,12 +216,11 @@
    parts = edje_edit_parts_list_get(edje_o);
    while(parts)
    {
-      //printf("  P: %s\n", (char*)parts->data);
+      printf("  P: %s\n", (char*)parts->data);
       AddPartToTree2((char*)parts->data);
-      states = edje_edit_part_states_get(edje_o, (char*)parts->data);
+      states = edje_edit_part_states_list_get(edje_o, (char*)parts->data);
       while(states)
       {
-         //printf("    s: %s\n", (char*)states->data);
          AddStateToTree2((char*)parts->data, (char*)states->data);
          states = states->next;
       }
@@ -782,10 +776,10 @@
    etk_signal_block("value-changed", ETK_OBJECT(UI_Rel2YOffsetSpinner), 
ETK_CALLBACK(on_RelOffsetSpinner_value_changed), (void*)REL2Y_SPINNER);
 
 #if TEST_DIRECT_EDJE
-   
    if (!etk_string_length_get(Cur.state)) return;
    if (!etk_string_length_get(Cur.part)) return;
    
+   //Set relative position spinners
    etk_range_value_set(ETK_RANGE(UI_Rel1XSpinner),
       edje_edit_state_rel1_relative_x_get(edje_o, 
Cur.part->string,Cur.state->string));
    etk_range_value_set(ETK_RANGE(UI_Rel1YSpinner),
@@ -794,6 +788,15 @@
       edje_edit_state_rel2_relative_x_get(edje_o, 
Cur.part->string,Cur.state->string));
    etk_range_value_set(ETK_RANGE(UI_Rel2YSpinner),
       edje_edit_state_rel2_relative_y_get(edje_o, 
Cur.part->string,Cur.state->string));
+   
+   etk_range_value_set (ETK_RANGE(UI_Rel1XOffsetSpinner),
+         edje_edit_state_rel1_offset_x_get(edje_o, 
Cur.part->string,Cur.state->string));
+   etk_range_value_set (ETK_RANGE(UI_Rel1YOffsetSpinner),
+         edje_edit_state_rel1_offset_y_get(edje_o, 
Cur.part->string,Cur.state->string));
+   etk_range_value_set (ETK_RANGE(UI_Rel2XOffsetSpinner),
+         edje_edit_state_rel2_offset_x_get(edje_o, 
Cur.part->string,Cur.state->string));
+   etk_range_value_set (ETK_RANGE(UI_Rel2YOffsetSpinner),
+         edje_edit_state_rel2_offset_y_get(edje_o, 
Cur.part->string,Cur.state->string));
 #else
    //Set relative position spinners
    etk_range_value_set (ETK_RANGE(UI_Rel1XSpinner), Cur.eps->rel1.relative.x);
@@ -1351,6 +1354,15 @@
                ETK_CALLBACK(on_RemoveMenu_item_activated), 
(void*)REMOVE_GROUP);
    etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), 
ETK_MENU_ITEM(menu_item));
 
+      
+   //program 
+   menu_item = etk_menu_item_image_new_with_label("Selected 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_RemoveMenu_item_activated), (void*)REMOVE_PROG);
+   etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu), 
ETK_MENU_ITEM(menu_item));
+    
    sep = etk_vseparator_new();
    etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), sep, ETK_BOX_START);
 
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- main.c      28 Nov 2007 07:10:52 -0000      1.17
+++ main.c      2 Dec 2007 16:44:14 -0000       1.18
@@ -155,6 +155,26 @@
   eg->parts = evas_list_remove(eg->parts,ep);
   engrave_part_parent_set(ep, NULL);
 }
+
+/**
+ * engrave_group_program_remove - remove the given program from the group 
+ * @param eg: The Engrave_Group to remove the program too.
+ * @param ep: The Engrave_Program to remove.
+ * 
+ * @return Returns no value.
+ */
+/*EAPI*/ void 
+PROTO_engrave_group_program_remove(Engrave_Group *eg, Engrave_Program *epr) {
+  Engrave_Group * group;
+  Evas_List * list;
+
+  if (!eg || !epr) return;
+
+  eg->programs = evas_list_remove(eg->programs, epr);
+  engrave_program_parent_set(epr, NULL);
+
+}
+
 /**
  * engrave_file_group_remove - remove the group from the given file
  * @param ef: The Engrave_File to remove the group too.
@@ -217,6 +237,33 @@
    //evas_object_lower(ep->object);
    return TRUE;
 }
+#if TEST_DIRECT_EDJE
+void
+DebugInfo(int full)
+{
+   Engrave_Group *gro;
+   Engrave_Part *par;
+   Engrave_Part_State *sta;
+   Evas_List *gp,*pp,*sp;
+
+   printf("\n\n ********************* D E B U G 
***************************\n");
+   printf(" ** open file name: %s\n",Cur.edj_file_name->string);
+   printf(" ** edje_editor.edj: %s\n",EdjeFile);
+   if (etk_string_length_get(Cur.part))
+      printf(" ** Cur part: %s\n",Cur.part->string);
+   else
+      printf(" ** Cur group: (NULL)\n");
+   if (etk_string_length_get(Cur.state))
+      printf(" ** Cur state: %s\n",Cur.state->string);
+   else
+      printf(" ** Cur state: (NULL)\n");
+   /*if (Cur.epr)
+      printf(" ** Cur program: %s\n",Cur.epr->name);
+   else
+      printf(" ** Cur program: (NULL)\n");*/
+   printf(" *********************** E N D *****************************\n\n");
+}
+#else
 void
 DebugInfo(int full)
 {
@@ -282,6 +329,7 @@
 
    printf(" *********************** E N D *****************************\n\n");
 }
+#endif
 void
 TestEdjeGroup(char *File,char *Group)
 {
@@ -424,8 +472,14 @@
    printf("Testing edje direct access!!...\n");
    printf("*********************************\n");
    char *file;
-    
+   double val = 1.2;
+   printf("TEST:\n");
+   
+   setlocale(LC_NUMERIC,"C");
+   sscanf("3.2","%lf", &val);
+   printf("%f\n", val);
    
+
    
    if (argc > 1)
    {
@@ -451,10 +505,8 @@
    ecore_evas_title_set(UI_ecore_MainWin, Cur.edj_file_name->string);
 
    Cur.part = etk_string_new("");
-   Cur.state = etk_string_new("");
+   Cur.state = NULL;
    Parts_Hash = NULL;
-   Cur.part = etk_string_new("");
-   Cur.state = etk_string_new("");   
   
    //Create the main edje object to edit
    edje_o = edje_object_add(UI_evas);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- main.h      28 Nov 2007 07:10:52 -0000      1.15
+++ main.h      2 Dec 2007 16:44:14 -0000       1.16
@@ -2,6 +2,7 @@
 #define INCLUSION_GUARD
 
 #include <Engrave.h>
+#include <Edje.h>
 #include <Ecore_Data.h>
 #include <Ecore_File.h>
 #include <Ecore_Evas.h>
@@ -67,6 +68,7 @@
    REMOVE_DESCRIPTION,
    REMOVE_PART,
    REMOVE_GROUP,
+   REMOVE_PROG,
    REL1X_SPINNER,
    REL1Y_SPINNER,
    REL2X_SPINNER,
@@ -115,8 +117,9 @@
 #if TEST_DIRECT_EDJE
    Etk_String *part;
    Etk_String *state;
+   
    Etk_String *edj_file_name;
-   double *state_n;
+
 #endif
 }Cur;
 



-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to