Enlightenment CVS committal
Author : davemds
Project : e17
Module : proto/edje_editor
Dir : e17/proto/edje_editor/src/bin
Modified Files:
callbacks.c interface.c interface.h main.c
Log Message:
...and finally have the ability to set the stacking of the various edje part
:)
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -3 -r1.34 -r1.35
--- callbacks.c 26 Nov 2007 17:40:12 -0000 1.34
+++ callbacks.c 27 Nov 2007 01:28:47 -0000 1.35
@@ -13,6 +13,8 @@
extern void PROTO_engrave_file_group_remove(Engrave_File *ef, Engrave_Group
*eg);
extern void PROTO_engrave_part_state_image_tween_remove_nth(Engrave_Part_State
*eps,int tween_num);
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);
int current_color_object;
@@ -61,29 +63,71 @@
etk_menu_popup(ETK_MENU(UI_RemoveMenu));
//etk_menu_popup_at_xy (ETK_MENU(AddMenu), 10, 10);
break;
- case TOOLBAR_MOVE_UP:
- printf("Clicked signal on Toolbar Button 'MoveUp' EMITTED\n");
- /* if (selected_desc){
- printf("MoveUP DESC: %s\n",selected_desc->state->str);
+ case TOOLBAR_MOVE_UP: //Lower
+ if (Cur.ep){
+ Evas_List *l;
+ Engrave_Part_State *eps;
+ printf("Lower %s\n",Cur.ep->name);
+
+ PROTO_engrave_part_lower(Cur.ep);
+
+ l = evas_list_find_list(Cur.eg->parts, Cur.ep);
+ if (!l) return ETK_TRUE;
+
+ //delete part row with all childrens
+ etk_tree_row_delete(ecore_hash_get(hash,Cur.ep));
+ ecore_hash_remove(hash,Cur.ep);
+
+ //re-add the row in correct place
+ if (l->prev)
+ AddPartToTree(Cur.ep, TRUE, l->prev->data);
+ else
+ AddPartToTree(Cur.ep, TRUE, NULL);
+
+ //re-add all childrens
+ l = Cur.ep->states;
+ while (l)
+ {
+ AddStateToTree(l->data);
+ l = l->next;
+ }
+ etk_tree_row_select (ecore_hash_get(hash,Cur.ep));
}
- else if (selected_part){
- if ((current =
g_list_find(selected_part->group->parts,selected_part))){
- if ((prev = g_list_previous(current))){
- printf("MoveUP PART: %s\n",selected_part->name->str);
- //current->data = prev->data;
- //prev->data = selected_part;
- //Update the tree
- }
+ else
+ ShowAlert("You must choose a part to lower");
+ break;
+ case TOOLBAR_MOVE_DOWN: //Raise
+ if (Cur.ep){
+ Evas_List *l;
+ Engrave_Part_State *eps;
+ printf("Raise %s\n",Cur.ep->name);
+
+ PROTO_engrave_part_raise(Cur.ep);
+
+ l = evas_list_find_list(Cur.eg->parts, Cur.ep);
+ if (!l) return ETK_TRUE;
+
+ //delete part row with all childrens
+ etk_tree_row_delete(ecore_hash_get(hash,Cur.ep));
+ ecore_hash_remove(hash,Cur.ep);
+
+ //re-add the row in correct place
+ if (l->prev)
+ AddPartToTree(Cur.ep, TRUE, l->prev->data);
+ else
+ AddPartToTree(Cur.ep, TRUE, NULL);
+
+ //re-add all childrens
+ l = Cur.ep->states;
+ while (l)
+ {
+ AddStateToTree(l->data);
+ l = l->next;
}
+ etk_tree_row_select (ecore_hash_get(hash,Cur.ep));
}
- else{
- ShowAlert("No part to move selected");
- } */
- ShowAlert("Not yet implemented");
- break;
- case TOOLBAR_MOVE_DOWN:
- printf("Clicked signal on Toolbar Button 'MoveDown' EMITTED\n");
- ShowAlert("Not yet implemented");
+ else
+ ShowAlert("You must choose a part to raise");
break;
case TOOLBAR_OPTIONS:
etk_menu_popup(ETK_MENU(UI_OptionsMenu));
@@ -1180,7 +1224,7 @@
part = engrave_part_new(ENGRAVE_PART_TYPE_RECT);
engrave_part_name_set (part, "new rectangle");
engrave_group_part_add(Cur.eg, part);
- AddPartToTree(part);
+ AddPartToTree(part, 0, NULL);
new_state = engrave_part_state_new();
engrave_part_state_name_set(new_state, "default", 0.0);
@@ -1205,7 +1249,7 @@
part = engrave_part_new(ENGRAVE_PART_TYPE_IMAGE);
engrave_part_name_set (part, "new image");
engrave_group_part_add(Cur.eg, part);
- AddPartToTree(part);
+ AddPartToTree(part, 0, NULL);
new_state = engrave_part_state_new();
engrave_part_state_name_set(new_state, "default", 0.0);
@@ -1230,7 +1274,7 @@
part = engrave_part_new(ENGRAVE_PART_TYPE_TEXT);
engrave_part_name_set (part, "new text");
engrave_group_part_add(Cur.eg, part);
- AddPartToTree(part);
+ AddPartToTree(part, 0, NULL);
new_state = engrave_part_state_new();
engrave_part_state_name_set(new_state, "default", 0.0);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -3 -r1.41 -r1.42
--- interface.c 26 Nov 2007 17:40:12 -0000 1.41
+++ interface.c 27 Nov 2007 01:28:48 -0000 1.42
@@ -37,7 +37,7 @@
}
void
-AddPartToTree(Engrave_Part* part)
+AddPartToTree(Engrave_Part* part, int place_after, Engrave_Part* after)
{
Etk_Tree_Col *col1,*col2,*col3;
Etk_Tree_Row *row=NULL;
@@ -62,12 +62,20 @@
strcpy(buf,"NONE.PNG");
break;
}
-
- row = etk_tree_row_append(ETK_TREE(UI_PartsTree),
- ecore_hash_get(hash,part->parent),
- col1, EdjeFile,buf, part->name,
- col3,ROW_PART,
- NULL);
+
+ if (place_after)
+ row = etk_tree_row_insert(ETK_TREE(UI_PartsTree),
+ ecore_hash_get(hash,part->parent),
+ ecore_hash_get(hash,after),
+ col1, EdjeFile,buf, part->name,
+ col3,ROW_PART,
+ NULL);
+ else
+ row = etk_tree_row_append(ETK_TREE(UI_PartsTree),
+ ecore_hash_get(hash,part->parent),
+ col1, EdjeFile,buf, part->name,
+ col3,ROW_PART,
+ NULL);
ecore_hash_set(hash, part, row);
etk_tree_row_data_set(row, part);
@@ -140,7 +148,7 @@
for (pp = group->parts; pp ;pp = pp->next)
{
part = pp->data;
- AddPartToTree(part);
+ AddPartToTree(part, 0, NULL);
for (sp = part->states; sp; sp = sp->next)
{
state = sp->data;
@@ -1203,12 +1211,14 @@
//MoveUp Button
button = etk_tool_button_new_from_stock( ETK_STOCK_GO_UP);
+ etk_object_properties_set(ETK_OBJECT(button),"label","Lower",NULL);
etk_signal_connect("clicked", ETK_OBJECT(button),
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_MOVE_UP);
etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), button, ETK_BOX_START);
//MoveDown Button
button = etk_tool_button_new_from_stock( ETK_STOCK_GO_DOWN);
+ etk_object_properties_set(ETK_OBJECT(button),"label","Raise",NULL);
etk_signal_connect("clicked", ETK_OBJECT(button),
ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_MOVE_DOWN);
etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), button, ETK_BOX_START);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- interface.h 25 Nov 2007 18:42:55 -0000 1.19
+++ interface.h 27 Nov 2007 01:28:48 -0000 1.20
@@ -114,7 +114,7 @@
void _embed_position_set (void *position_data, int *x, int *y);
void PopulateTree (void);
void AddGroupToTree (Engrave_Group* group);
-void AddPartToTree (Engrave_Part* part);
+void AddPartToTree (Engrave_Part* part, int place_after,
Engrave_Part* after);
void AddStateToTree (Engrave_Part_State* state);
void AddProgramToTree (Engrave_Program* prog);
void PopulateRelComboBoxes (void);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- main.c 25 Nov 2007 18:42:56 -0000 1.15
+++ main.c 27 Nov 2007 01:28:48 -0000 1.16
@@ -172,7 +172,51 @@
ef->groups = evas_list_remove(ef->groups, eg);
engrave_group_parent_set(eg, NULL);
}
-
+void
+PROTO_engrave_part_raise(Engrave_Part *ep)
+{
+ Engrave_Group *eg;
+ Engrave_Part *next;
+ Evas_List *l;
+
+ if (!ep) return;
+
+ eg = ep->parent;
+ if (!eg) return;
+
+ printf("RAISE part: '%s' in group: '%s'\n",ep->name, eg->name);
+
+ l = evas_list_find_list(eg->parts, ep);
+ if (!l || !l->next) return;
+
+ next = l->next->data;
+ eg->parts = evas_list_remove (eg->parts, ep);
+ eg->parts = evas_list_append_relative (eg->parts, ep, next);
+}
+int
+PROTO_engrave_part_lower(Engrave_Part *ep)
+{
+ Engrave_Group *eg;
+ Engrave_Part *prev;
+ Evas_List *l;
+
+ if (!ep) return FALSE;
+
+ eg = ep->parent;
+ if (!eg) return FALSE;
+
+ printf("LOWER part: '%s' in group: '%s'\n",ep->name, eg->name);
+
+ l = evas_list_find_list(eg->parts, ep);
+ if (!l || !l->prev) return FALSE;
+
+ prev = l->prev->data;
+ eg->parts = evas_list_remove (eg->parts, ep);
+ eg->parts = evas_list_prepend_relative (eg->parts, ep, prev);
+
+ //evas_object_lower(ep->object);
+ return TRUE;
+}
void
DebugInfo(int full)
{
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs