Enlightenment CVS committal Author : titan Project : e17 Module : proto
Dir : e17/proto/ephoto/src Modified Files: config.h.in ephoto_viewer.c Log Message: Add a menu to the image viewer. Also add flip horizontal and flip horizontal functions. =================================================================== RCS file: /cvs/e/e17/proto/ephoto/src/config.h.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- config.h.in 6 Oct 2006 02:22:53 -0000 1.3 +++ config.h.in 6 Oct 2006 02:25:11 -0000 1.4 @@ -4,6 +4,14 @@ language is requested. */ #undef ENABLE_NLS +/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYCURRENT + +/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE + /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT =================================================================== RCS file: /cvs/e/e17/proto/ephoto/src/ephoto_viewer.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- ephoto_viewer.c 6 Oct 2006 02:22:53 -0000 1.15 +++ ephoto_viewer.c 6 Oct 2006 02:25:11 -0000 1.16 @@ -68,6 +68,68 @@ ewl_widget_configure(ibox); } +void flip_horizontal(Ewl_Widget *w, void *event, void *data) +{ + unsigned int *im_data, *im_data_new; + int index, ind, i, j, ni, nj, ew, eh; + + im_data = evas_object_image_data_get(EWL_IMAGE(image_view)->image, FALSE); + evas_object_image_size_get(EWL_IMAGE(image_view)->image, &ew, &eh); + index = 0; + + im_data_new = malloc(sizeof(unsigned int) * ew * eh); + + for (i = 0; i < eh; i++) + { + for (j = 0; j < ew; j++) + { + ni = i; + nj = ew - j - 1; + + ind = ni * ew + nj; + im_data_new[index] = im_data[ind]; + index++; + } + } + + evas_object_image_size_set(EWL_IMAGE(image_view)->image, ew, eh); + evas_object_image_data_set(EWL_IMAGE(image_view)->image, im_data_new); + evas_object_image_data_update_add(EWL_IMAGE(image_view)->image, 0, 0, ew, eh); + ewl_widget_configure(image_view); + ewl_widget_configure(ibox); +} + +void flip_vertical(Ewl_Widget *w, void *event, void *data) +{ + unsigned int *im_data, *im_data_new; + int index, ind, i, j, ni, nj, ew, eh; + + im_data = evas_object_image_data_get(EWL_IMAGE(image_view)->image, FALSE); + evas_object_image_size_get(EWL_IMAGE(image_view)->image, &ew, &eh); + index = 0; + + im_data_new = malloc(sizeof(unsigned int) * ew * eh); + + for (i = 0; i < eh; i++) + { + for (j = 0; j < ew; j++) + { + ni = eh - i - 1; + nj = j; + + ind = ni * ew + nj; + im_data_new[index] = im_data[ind]; + index++; + } + } + + evas_object_image_size_set(EWL_IMAGE(image_view)->image, ew, eh); + evas_object_image_data_set(EWL_IMAGE(image_view)->image, im_data_new); + evas_object_image_data_update_add(EWL_IMAGE(image_view)->image, 0, 0, ew, eh); + ewl_widget_configure(image_view); + ewl_widget_configure(ibox); +} + void rotate_left(Ewl_Widget *w, void *event, void *data) { unsigned int *im_data, *im_data_new; @@ -141,14 +203,8 @@ void view_images(Ewl_Widget *w, void *event, void *data) { char *current_image; - Ewl_Widget *button; - Ewl_Widget *vbox; - Ewl_Widget *scrollpane; - Ewl_Widget *freebox; - Ewl_Widget *icon; - Ewl_Widget *image; - Ewl_Widget *hbox; - Ewl_Widget *cell; + Ewl_Widget *button, *vbox, *scrollpane, *freebox, *icon; + Ewl_Widget *image, *hbox, *cell, *menubar, *menu, *menu_item; Ecore_List *view_thumbs; view_thumbs = current_thumbs; @@ -172,7 +228,114 @@ ewl_container_child_append(EWL_CONTAINER(vwin), vbox); ewl_box_spacing_set(EWL_BOX(vbox), 10); ewl_widget_show(vbox); - + + menubar = ewl_hmenubar_new(); + ewl_container_child_append(EWL_CONTAINER(vbox), menubar); + ewl_object_fill_policy_set(EWL_OBJECT(menubar), EWL_FLAG_FILL_HFILL); + ewl_widget_show(menubar); + + menu = ewl_menu_new(); + ewl_button_label_set(EWL_BUTTON(menu), "File"); + ewl_container_child_append(EWL_CONTAINER(menubar), menu); + ewl_object_fill_policy_set(EWL_OBJECT(menu), EWL_FLAG_FILL_NONE); + ewl_widget_show(menu); + + menu_item = ewl_menu_item_new(); + ewl_button_image_set(EWL_BUTTON(menu_item), + PACKAGE_DATA_DIR "/images/stock_save.png", NULL); + ewl_button_label_set(EWL_BUTTON(menu_item), "Save Image"); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + //ewl_callback_append(menu_item, EWL_CALLBACK_CLICKED, destroy_vwin, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); + + menu_item = ewl_menu_item_new(); + ewl_button_image_set(EWL_BUTTON(menu_item), + PACKAGE_DATA_DIR "/images/exit.png", NULL); + ewl_button_label_set(EWL_BUTTON(menu_item), "Exit"); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + ewl_callback_append(menu_item, EWL_CALLBACK_CLICKED, destroy_vwin, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); + + menu = ewl_menu_new(); + ewl_button_label_set(EWL_BUTTON(menu), "Actions"); + ewl_container_child_append(EWL_CONTAINER(menubar), menu); + ewl_object_fill_policy_set(EWL_OBJECT(menu), EWL_FLAG_FILL_NONE); + ewl_widget_show(menu); + + menu_item = ewl_menu_item_new(); + ewl_button_image_set(EWL_BUTTON(menu_item), + PACKAGE_DATA_DIR "/images/search.png", NULL); + ewl_button_label_set(EWL_BUTTON(menu_item), "Zoom In"); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + ewl_callback_append(menu_item, EWL_CALLBACK_CLICKED, zoom_in, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); + + menu_item = ewl_menu_item_new(); + ewl_button_image_set(EWL_BUTTON(menu_item), + PACKAGE_DATA_DIR "/images/search.png", NULL); + ewl_button_label_set(EWL_BUTTON(menu_item), "Zoom Out"); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + ewl_callback_append(menu_item, EWL_CALLBACK_CLICKED, zoom_out, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); + + menu_item = ewl_menu_item_new(); + ewl_button_image_set(EWL_BUTTON(menu_item), + PACKAGE_DATA_DIR "/images/search.png", NULL); + ewl_button_label_set(EWL_BUTTON(menu_item), "Zoom 1:1"); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + ewl_callback_append(menu_item, EWL_CALLBACK_CLICKED, zoom_out, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); + + menu_item = ewl_menu_item_new(); + ewl_button_image_set(EWL_BUTTON(menu_item), + PACKAGE_DATA_DIR "/images/go-next.png", NULL); + ewl_button_label_set(EWL_BUTTON(menu_item), "Flip Horizontally"); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + ewl_callback_append(menu_item, EWL_CALLBACK_CLICKED, flip_horizontal, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); + + menu_item = ewl_menu_item_new(); + ewl_button_image_set(EWL_BUTTON(menu_item), + PACKAGE_DATA_DIR "/images/go-down.png", NULL); + ewl_button_label_set(EWL_BUTTON(menu_item), "Flip Vertically"); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + ewl_callback_append(menu_item, EWL_CALLBACK_CLICKED, flip_vertical, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); + + menu_item = ewl_menu_item_new(); + ewl_button_image_set(EWL_BUTTON(menu_item), + PACKAGE_DATA_DIR "/images/undo.png", NULL); + ewl_button_label_set(EWL_BUTTON(menu_item), "Rotate Left"); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + ewl_callback_append(menu_item, EWL_CALLBACK_CLICKED, rotate_left, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); + + menu_item = ewl_menu_item_new(); + ewl_button_image_set(EWL_BUTTON(menu_item), + PACKAGE_DATA_DIR "/images/redo.png", NULL); + ewl_button_label_set(EWL_BUTTON(menu_item), "Rotate Right"); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + ewl_callback_append(menu_item, EWL_CALLBACK_CLICKED, rotate_right, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); + scrollpane = ewl_scrollpane_new(); ewl_container_child_append(EWL_CONTAINER(vbox), scrollpane); ewl_object_fill_policy_set(EWL_OBJECT(scrollpane), EWL_FLAG_FILL_ALL); ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs