Enlightenment CVS committal
Author : davemds
Project : e17
Module : proto/edje_editor
Dir : e17/proto/edje_editor/src/bin
Modified Files:
callbacks.c callbacks.h interface.c interface.h main.c main.h
Log Message:
* Add shortcuts 'engine'
ctrl+q = quit
ctrl+f = fullscreen
ctrl+s = save
...and more to come
* Disable not in context menu items (but etk should grey-out disabled
menu entry)
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.c,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -3 -r1.68 -r1.69
--- callbacks.c 19 Apr 2008 21:24:54 -0000 1.68
+++ callbacks.c 21 Jun 2008 21:40:27 -0000 1.69
@@ -87,7 +87,7 @@
ShowFilechooser(FILECHOOSER_SAVE_EDJ);
break;
}
-
+
edje_edit_save(edje_o);
if (!ecore_file_cp(Cur.edj_temp_name->string, Cur.edj_file_name->string))
{
@@ -101,12 +101,27 @@
ShowFilechooser(FILECHOOSER_SAVE_EDJ);
break;
case TOOLBAR_ADD:
+ if (!etk_string_length_get(Cur.part))
+ etk_widget_disabled_set(UI_AddStateButton, 1);
+ else etk_widget_disabled_set(UI_AddStateButton, 0);
etk_menu_popup(ETK_MENU(UI_AddMenu));
break;
case TOOLBAR_REMOVE:
+ if (!etk_string_length_get(Cur.state))
+ etk_widget_disabled_set(UI_RemoveStateButton, 1);
+ else etk_widget_disabled_set(UI_RemoveStateButton, 0);
+ if (!etk_string_length_get(Cur.part))
+ etk_widget_disabled_set(UI_RemovePartButton, 1);
+ else etk_widget_disabled_set(UI_RemovePartButton, 0);
+ if (!etk_string_length_get(Cur.prog))
+ etk_widget_disabled_set(UI_RemoveProgramButton, 1);
+ else etk_widget_disabled_set(UI_RemoveProgramButton, 0);
+
etk_menu_popup(ETK_MENU(UI_RemoveMenu));
break;
-
+ case TOOLBAR_QUIT:
+ etk_main_quit();
+ break;
case TOOLBAR_MOVE_UP: //Lower
if (!etk_string_length_get(Cur.part))
{
@@ -215,6 +230,10 @@
case TOOLBAR_OPTION_BG4:
edje_object_signal_emit(edje_ui,"set_bg4","edje_editor");
break;
+ case TOOLBAR_OPTION_FULLSCREEN:
+ Cur.fullscreen = !Cur.fullscreen;
+ ecore_evas_fullscreen_set(UI_ecore_MainWin, Cur.fullscreen);
+ break;
case TOOLBAR_PLAY:
TogglePlayButton(-1);
break;
@@ -248,6 +267,58 @@
return ETK_TRUE;
}
+void
+on_Editing_click(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ Evas_Object *o2;
+ int x, y;
+ Evas_Event_Mouse_Down *ev = event_info;
+
+ evas_pointer_output_xy_get(e, &x, &y);
+
+ printf("CLIK\n");
+ //o2 = evas_object_top_at_pointer_get(e);
+ Evas_List *l = evas_objects_at_xy_get (e, ev->canvas.x, ev->canvas.y,
1, 1);
+ printf("CLIK %x [%d %d] num: %d\n", obj, ev->canvas.x, ev->canvas.y,
evas_list_count(l));
+
+}
+
+void
+on_Mainwin_key_press(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ Evas_Event_Key_Down *ev = event_info;
+
+ printf("*** Logo receive key pressed\n");
+ printf(" keyname: %s\n", ev->keyname);
+ printf(" key: %s\n", ev->key);
+ printf(" string: %s\n", ev->string);
+ printf(" compose: %s\n", ev->compose);
+
+
+ /* NOTE: To add new bindings you must add a keygrab for the key
+ you want in create_main_window(). And remember to update the README */
+
+ /* quit */
+ if (!strcmp(ev->key, "q") &&
+ evas_key_modifier_is_set(ev->modifiers, "Control"))
+ etk_main_quit();
+
+ /* fullscreen */
+ else if (!strcmp(ev->key, "f") &&
+ evas_key_modifier_is_set(ev->modifiers, "Control"))
+ {
+ Cur.fullscreen = !Cur.fullscreen;
+ ecore_evas_fullscreen_set(UI_ecore_MainWin, Cur.fullscreen);
+ }
+
+ /* save (TODO make some sort of feedback for the user)*/
+ else if (!strcmp(ev->key, "s") &&
+ evas_key_modifier_is_set(ev->modifiers, "Control"))
+ on_AllButton_click(NULL, TOOLBAR_SAVE);
+
+
+}
+
/* Tree callbacks */
Etk_Bool
on_PartsTree_row_selected(Etk_Object *object, Etk_Tree_Row *row, void *data)
@@ -359,7 +430,7 @@
Etk_Bool
on_GroupNameEntry_key_down(Etk_Object *object, Etk_Event_Key_Down *event, void
*data)
{
- printf("PRESSED %s\n", event->keyname);
+ //printf("PRESSED %s\n", event->keyname);
if (!strcmp(event->keyname, "Return"))
on_GroupNameEntryImage_mouse_clicked(
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/callbacks.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -3 -r1.25 -r1.26
--- callbacks.h 26 Feb 2008 01:33:35 -0000 1.25
+++ callbacks.h 21 Jun 2008 21:40:27 -0000 1.26
@@ -21,6 +21,8 @@
Etk_Bool on_StateEntry_key_down (Etk_Object *object,
Etk_Event_Key_Down *event, void *data);
Etk_Bool on_StateEntryImage_mouse_clicked (Etk_Object *object, void *data);
Etk_Bool on_AllButton_click (Etk_Button *button, void *data);
+void on_Mainwin_key_press (void *data, Evas *e, Evas_Object
*obj, void *event_info);
+void on_Editing_click (void *data, Evas *e, Evas_Object
*obj, void *event_info);
Etk_Bool on_AddMenu_item_activated (Etk_Object *object, void *data);
Etk_Bool on_RemoveMenu_item_activated (Etk_Object *object, void *data);
Etk_Bool on_RelToComboBox_changed (Etk_Combobox *combobox, void
*data);
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.c,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -3 -r1.70 -r1.71
--- interface.c 19 Apr 2008 22:58:48 -0000 1.70
+++ interface.c 21 Jun 2008 21:40:27 -0000 1.71
@@ -38,11 +38,11 @@
stack = evas_list_remove_list(stack, evas_list_last(stack));
}
- edje_object_part_text_set(Consolle, "line1", evas_list_nth(stack, 0));
- edje_object_part_text_set(Consolle, "line2", evas_list_nth(stack, 1));
- edje_object_part_text_set(Consolle, "line3", evas_list_nth(stack, 2));
- edje_object_part_text_set(Consolle, "line4", evas_list_nth(stack, 3));
- edje_object_part_text_set(Consolle, "line5", evas_list_nth(stack, 4));
+ edje_object_part_text_set(Consolle, "line1", evas_list_nth(stack, 0));
+ edje_object_part_text_set(Consolle, "line2", evas_list_nth(stack, 1));
+ edje_object_part_text_set(Consolle, "line3", evas_list_nth(stack, 2));
+ edje_object_part_text_set(Consolle, "line4", evas_list_nth(stack, 3));
+ edje_object_part_text_set(Consolle, "line5", evas_list_nth(stack, 4));
}
void
@@ -1537,12 +1537,12 @@
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("A new state to part");
+ UI_AddStateButton = 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_menu_item_image_set(ETK_MENU_ITEM_IMAGE(UI_AddStateButton),
ETK_IMAGE(image));
+ etk_signal_connect("activated", ETK_OBJECT(UI_AddStateButton),
ETK_CALLBACK(on_AddMenu_item_activated), (void*)NEW_DESC);
- etk_menu_shell_append(ETK_MENU_SHELL(UI_AddMenu), ETK_MENU_ITEM(menu_item));
+ etk_menu_shell_append(ETK_MENU_SHELL(UI_AddMenu),
ETK_MENU_ITEM(UI_AddStateButton));
//New Group
menu_item = etk_menu_item_image_new_with_label("A new group to edj");
@@ -1562,38 +1562,38 @@
UI_RemoveMenu = etk_menu_new();
//description
- menu_item = etk_menu_item_image_new_with_label("Selected State");
+ UI_RemoveStateButton = 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_menu_item_image_set(ETK_MENU_ITEM_IMAGE(UI_RemoveStateButton),
ETK_IMAGE(image));
+ etk_signal_connect("activated", ETK_OBJECT(UI_RemoveStateButton),
ETK_CALLBACK(on_RemoveMenu_item_activated),
(void*)REMOVE_DESCRIPTION);
- etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu),
ETK_MENU_ITEM(menu_item));
+ etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu),
ETK_MENU_ITEM(UI_RemoveStateButton));
//part
- menu_item = etk_menu_item_image_new_with_label("Selected Part");
- etk_signal_connect("activated", ETK_OBJECT(menu_item),
+ UI_RemovePartButton = etk_menu_item_image_new_with_label("Selected Part");
+ etk_signal_connect("activated", ETK_OBJECT(UI_RemovePartButton),
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");
- 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));
+ etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu),
ETK_MENU_ITEM(UI_RemovePartButton));
//program
- menu_item = etk_menu_item_image_new_with_label("Selected Program");
+ UI_RemoveProgramButton = 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_menu_item_image_set(ETK_MENU_ITEM_IMAGE(UI_RemoveProgramButton),
ETK_IMAGE(image));
+ etk_signal_connect("activated", ETK_OBJECT(UI_RemoveProgramButton),
ETK_CALLBACK(on_RemoveMenu_item_activated), (void*)REMOVE_PROG);
- etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu),
ETK_MENU_ITEM(menu_item));
+ etk_menu_shell_append(ETK_MENU_SHELL(UI_RemoveMenu),
ETK_MENU_ITEM(UI_RemoveProgramButton));
sep = etk_vseparator_new();
etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), sep, ETK_BOX_START);
+ //group
+ menu_item = etk_menu_item_image_new_with_label("Current 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));
+
//MoveUp Button
button = etk_tool_button_new_from_stock( ETK_STOCK_GO_UP);
etk_object_properties_set(ETK_OBJECT(button),"label","Lower",NULL);
@@ -1639,7 +1639,7 @@
//set bg3
menu_item = etk_menu_item_image_new_with_label("White background");
- image = etk_image_new_from_edje(EdjeFile,"NONE.PNG");
+ image = etk_image_new_from_edje(EdjeFile,"BG3_I.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_AllButton_click), (void*)TOOLBAR_OPTION_BG3);
@@ -1647,12 +1647,24 @@
//set bg4
menu_item = etk_menu_item_image_new_with_label("Black background");
- image = etk_image_new_from_edje(EdjeFile,"NONE.PNG");
+ image = etk_image_new_from_edje(EdjeFile,"BG4_I.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_AllButton_click), (void*)TOOLBAR_OPTION_BG4);
etk_menu_shell_append(ETK_MENU_SHELL(UI_OptionsMenu),
ETK_MENU_ITEM(menu_item));
+ //Separator
+ menu_item = etk_menu_item_separator_new();
+ etk_menu_shell_append(ETK_MENU_SHELL(UI_OptionsMenu),
ETK_MENU_ITEM(menu_item));
+
+ //Fullscreen
+ menu_item = etk_menu_item_image_new_with_label("Toggle fullscreen");
+ image = etk_image_new_from_stock(ETK_STOCK_VIDEO_DISPLAY, ETK_STOCK_SMALL);
+ 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_AllButton_click),
(void*)TOOLBAR_OPTION_FULLSCREEN);
+ etk_menu_shell_append(ETK_MENU_SHELL(UI_OptionsMenu),
ETK_MENU_ITEM(menu_item));
+
sep = etk_vseparator_new();
etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), sep, ETK_BOX_START);
@@ -1678,6 +1690,14 @@
ETK_CALLBACK(on_AllButton_click),
(void*)TOOLBAR_DEBUG);
etk_object_properties_set(ETK_OBJECT(button),"label","Debug",NULL);
#endif
+
+ //QuitButton
+ button = etk_tool_button_new_from_stock(ETK_STOCK_SYSTEM_LOG_OUT);
+ etk_object_properties_set(ETK_OBJECT(button),"label","Quit",NULL);
+ etk_toolbar_append(ETK_TOOLBAR(UI_Toolbar), button, ETK_BOX_START);
+ etk_signal_connect("clicked", ETK_OBJECT(button),
+ ETK_CALLBACK(on_AllButton_click), (void*)TOOLBAR_QUIT);
+
return UI_Toolbar;
}
@@ -2909,10 +2929,23 @@
_embed_position_set, UI_ecore_MainWin);
etk_widget_show_all(UI_PartsTreeEmbed);
- //Logo
+ //Logo (keygrabber)
Evas_Object *logo;
logo = edje_object_add(UI_evas);
edje_object_file_set(logo, EdjeFile, "Logo");
+ evas_object_event_callback_add(logo, EVAS_CALLBACK_KEY_DOWN,
+ on_Mainwin_key_press, NULL);
+ Evas_Modifier_Mask mask;
+ mask = evas_key_modifier_mask_get(UI_evas, "Control");
+ evas_object_key_grab(logo, "q", mask, 0, 0); // quit
+ evas_object_key_grab(logo, "f", mask, 0, 0); // fullscreen
+ evas_object_key_grab(logo, "s", mask, 0, 0); // save
+ evas_object_key_grab(logo, "c", mask, 0, 0); // copy selection (TODO)
+ evas_object_key_grab(logo, "v", mask, 0, 0); // paste selection (TODO)
+ evas_object_key_grab(logo, "x", mask, 0, 0); // cut selection (TODO)
+ evas_object_key_grab(logo, "d", mask, 0, 0); // duplicate selection (TODO)
+ evas_object_key_grab(logo, "n", mask, 0, 0); // new object (TODO)
+
evas_object_show(logo);
//GroupEmbed
@@ -3021,6 +3054,9 @@
//Create the main edje object to edit
edje_o = edje_object_add(UI_evas);
edje_object_signal_callback_add(edje_o, "*", "*", signal_cb, NULL);
+ evas_object_event_callback_add(edje_o, EVAS_CALLBACK_MOUSE_DOWN,
+ on_Editing_click, NULL);
+
/*edje_object_signal_emit(edje_ui,"group_frame_show","edje_editor");
edje_object_signal_emit(edje_ui,"part_frame_show","edje_editor");
@@ -3032,6 +3068,3 @@
edje_object_signal_emit(edje_ui,"program_frame_show","edje_editor");
edje_object_signal_emit(edje_ui,"script_frame_show","edje_editor");*/
}
-
-
-
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/interface.h,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -3 -r1.35 -r1.36
--- interface.h 26 Feb 2008 01:33:36 -0000 1.35
+++ interface.h 21 Jun 2008 21:40:27 -0000 1.36
@@ -35,6 +35,11 @@
Etk_Widget *UI_PlayButton;
Etk_Widget *UI_PlayImage;
Etk_Widget *UI_PauseImage;
+Etk_Widget *UI_AddStateButton;
+Etk_Widget *UI_RemoveStateButton;
+Etk_Widget *UI_RemovePartButton;
+Etk_Widget *UI_RemoveProgramButton;
+
/* group frame objects */
Etk_Widget *UI_GroupNameEntry;
Etk_Widget *UI_GroupNameEntryImage;
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -3 -r1.39 -r1.40
--- main.c 8 Mar 2008 23:20:41 -0000 1.39
+++ main.c 21 Jun 2008 21:40:27 -0000 1.40
@@ -292,6 +292,7 @@
Cur.open_file_name = NULL;
Cur.source_dir = NULL;
Cur.main_source_file = NULL;
+ Cur.fullscreen = 0;
stack = NULL;
//Setting Globals
===================================================================
RCS file: /cvs/e/e17/proto/edje_editor/src/bin/main.h,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -3 -r1.32 -r1.33
--- main.h 26 Feb 2008 01:33:36 -0000 1.32
+++ main.h 21 Jun 2008 21:40:27 -0000 1.33
@@ -13,7 +13,7 @@
#define FAKEWIN_BORDER_BOTTOM 4
#define USE_GL_ENGINE 0
-#define DEBUG_MODE 0
+#define DEBUG_MODE 1
#if DEBUG_MODE
#define TREE_WIDTH 365
@@ -59,8 +59,10 @@
TOOLBAR_OPTION_BG2,
TOOLBAR_OPTION_BG3,
TOOLBAR_OPTION_BG4,
+ TOOLBAR_OPTION_FULLSCREEN,
TOOLBAR_IMAGE_FILE_ADD,
TOOLBAR_FONT_FILE_ADD,
+ TOOLBAR_QUIT,
COLOR_OBJECT_RECT,
COLOR_OBJECT_TEXT,
COLOR_OBJECT_SHADOW,
@@ -125,7 +127,8 @@
Etk_String *edj_file_name;
Etk_String *edj_temp_name;
-
+
+ int fullscreen; //The current main window state
}Cur;
/* GLOBALS */
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs