Enlightenment CVS committal Author : moom16 Project : e17 Module : proto
Dir : e17/proto/exhibit/src/bin Modified Files: exhibit.h exhibit_image.c exhibit_main.c exhibit_menus.c Log Message: * Implement the "Fit to window" feature * Remove duplicated code for zoom * Some clean up =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- exhibit.h 15 Dec 2005 10:07:14 -0000 1.4 +++ exhibit.h 19 Dec 2005 19:28:31 -0000 1.5 @@ -75,6 +75,7 @@ int zoom; int brightness; int contrast; + Etk_Bool fit_window; struct { int down; =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_image.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- exhibit_image.c 19 Dec 2005 14:01:30 -0000 1.8 +++ exhibit_image.c 19 Dec 2005 19:28:31 -0000 1.9 @@ -27,14 +27,11 @@ if(ev->button == 1) { - Ecore_X_Cursor cursor; - e->mouse.down = 1; e->mouse.x = ev->canvas.x; e->mouse.y = ev->canvas.y; - if ((cursor = ecore_x_cursor_shape_get(ECORE_X_CURSOR_FLEUR))) - ecore_x_window_cursor_set(ecore_evas_software_x11_window_get(ETK_WINDOW(e->win)->ecore_evas), cursor); + etk_toplevel_widget_pointer_push(ETK_TOPLEVEL_WIDGET(e->win), ETK_POINTER_MOVE); } else if(ev->button == 3) { @@ -73,12 +70,9 @@ ev = event; if(ev->button == 1) - { - Ecore_X_Cursor cursor; - + { e->mouse.down = 0; - if ((cursor = ecore_x_cursor_shape_get(ECORE_X_CURSOR_LEFT_PTR))) - ecore_x_window_cursor_set(ecore_evas_software_x11_window_get(ETK_WINDOW(e->win)->ecore_evas), cursor); + etk_toplevel_widget_pointer_pop(ETK_TOPLEVEL_WIDGET(e->win), ETK_POINTER_MOVE); } } @@ -450,8 +444,6 @@ h /= abs(zoom); } - evas_object_resize(im->image_object, w, h); - evas_object_image_fill_set(im->image_object, 0, 0, w, h); etk_widget_size_request_set(ETK_WIDGET(im), w, h); etk_widget_redraw_queue(ETK_WIDGET(im)); } =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- exhibit_main.c 19 Dec 2005 14:01:30 -0000 1.11 +++ exhibit_main.c 19 Dec 2005 19:28:31 -0000 1.12 @@ -1,12 +1,6 @@ #include "exhibit.h" #include <Ecore_File.h> -#define EX_BUTTON_GET_RETURN(o) \ - Etk_Button *item; \ - if (!(item = ETK_BUTTON(o))) \ - return; - - extern Evas_List *thumb_list; char *viewables[] = @@ -21,7 +15,12 @@ void _ex_main_statusbar_zoom_update(Exhibit *e) { - if(e->zoom > 0) + if (e->fit_window) + { + etk_statusbar_pop(ETK_STATUSBAR(e->statusbar[2]), 0); + etk_statusbar_push(ETK_STATUSBAR(e->statusbar[2]), _("Fit to window"), 0); + } + else if(e->zoom > 0) { char zoom[6]; etk_statusbar_pop(ETK_STATUSBAR(e->statusbar[2]), 0); @@ -47,12 +46,16 @@ _ex_main_button_zoom_in_cb(Etk_Object *obj, void *data) { Exhibit *e; - Etk_Tree_Row *r; - EX_BUTTON_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); - if(!r) return; + + if (e->fit_window) + { + etk_paned_add2(ETK_PANED(e->hpaned), e->scrolled_view, TRUE); + etk_widget_size_request_set(e->alignment, -1, -1); + etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(e->scrolled_view), e->alignment); + e->fit_window = FALSE; + } if(e->zoom == ZOOM_MAX) e->zoom = ZOOM_MAX; @@ -67,12 +70,16 @@ _ex_main_button_zoom_out_cb(Etk_Object *obj, void *data) { Exhibit *e; - Etk_Tree_Row *r; - EX_BUTTON_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); - if(!r) return; + + if (e->fit_window) + { + etk_paned_add2(ETK_PANED(e->hpaned), e->scrolled_view, TRUE); + etk_widget_size_request_set(e->alignment, -1, -1); + etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(e->scrolled_view), e->alignment); + e->fit_window = FALSE; + } if(e->zoom <= ZOOM_MIN) e->zoom = ZOOM_MIN; @@ -87,12 +94,16 @@ _ex_main_button_zoom_one_to_one_cb(Etk_Object *obj, void *data) { Exhibit *e; - Etk_Tree_Row *r; - EX_BUTTON_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); - if(!r) return; + + if (e->fit_window) + { + etk_paned_add2(ETK_PANED(e->hpaned), e->scrolled_view, TRUE); + etk_widget_size_request_set(e->alignment, -1, -1); + etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(e->scrolled_view), e->alignment); + e->fit_window = FALSE; + } e->zoom = 0; e->brightness = 128; @@ -105,8 +116,18 @@ void _ex_main_button_fit_to_window_cb(Etk_Object *obj, void *data) { - EX_BUTTON_GET_RETURN(obj); - printf("fit to window\n"); + Exhibit *e; + + if (e->fit_window) + return; + + e = data; + etk_widget_size_request_set(e->alignment, 10, 10); + etk_paned_add2(ETK_PANED(e->hpaned), e->alignment, TRUE); + etk_widget_size_request_set(e->image, -1, -1); + + e->fit_window = TRUE; + _ex_main_statusbar_zoom_update(e); } void @@ -123,8 +144,7 @@ e = data; e->zoom = 0; - etk_statusbar_pop(ETK_STATUSBAR(e->statusbar[2]), 0); - etk_statusbar_push(ETK_STATUSBAR(e->statusbar[2]), "1:1", 0); + _ex_main_statusbar_zoom_update(e); tree = ETK_TREE(object); @@ -526,7 +546,7 @@ etk_widget_size_request_set(e->fit[1], 33, 27); //etk_button_image_set(ETK_BUTTON(button), ETK_IMAGE(e->fit[1])); etk_container_add(ETK_CONTAINER(e->fit[0]), e->fit[1]); - etk_signal_connect("clicked", ETK_OBJECT(e->original[0]), ETK_CALLBACK(_ex_main_button_fit_to_window_cb), e); + etk_signal_connect("clicked", ETK_OBJECT(e->fit[0]), ETK_CALLBACK(_ex_main_button_fit_to_window_cb), e); etk_table_attach(ETK_TABLE(e->table), e->fit[0], 2, 2, 1, 1, 0, 0, ETK_FILL_POLICY_NONE); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_menus.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- exhibit_menus.c 19 Dec 2005 14:01:30 -0000 1.7 +++ exhibit_menus.c 19 Dec 2005 19:28:31 -0000 1.8 @@ -1,4 +1,5 @@ #include "exhibit.h" +#include "exhibit_main.h" #define EX_MENU_ITEM_GET_RETURN(o) \ Etk_Menu_Item *item; \ @@ -33,14 +34,14 @@ return NULL; } - if (stock_id != ETK_STOCK_NO_STOCK) + if (stock_id > ETK_STOCK_NO_STOCK) { Etk_Widget *image; image = etk_image_new_from_stock(stock_id); etk_menu_item_image_set(ETK_MENU_ITEM(menu_item), ETK_IMAGE(image)); } - else + else if (stock_id < ETK_STOCK_NO_STOCK) { stock_id = abs(stock_id) - 1; if(stock_id >= 0 && stock_id < sizeof(ex_images) / sizeof(char*)) @@ -270,65 +271,25 @@ void _ex_menu_zoom_in_cb(Etk_Object *obj, void *data) { - Exhibit *e; - Etk_Tree_Row *r; - EX_MENU_ITEM_GET_RETURN(obj); - - e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); - if(!r) return; - - if(e->zoom == ZOOM_MAX) - e->zoom = ZOOM_MAX; - else - e->zoom += 2; - - _ex_image_zoom(ETK_IMAGE(e->image), e->zoom); - _ex_main_statusbar_zoom_update(e); + _ex_main_button_zoom_in_cb(NULL, data); } void _ex_menu_zoom_out_cb(Etk_Object *obj, void *data) { - Exhibit *e; - Etk_Tree_Row *r; - EX_MENU_ITEM_GET_RETURN(obj); - - e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); - if(!r) return; - - if(e->zoom <= ZOOM_MIN) - e->zoom = ZOOM_MIN; - else - e->zoom -= 2; - - _ex_image_zoom(ETK_IMAGE(e->image), e->zoom); - _ex_main_statusbar_zoom_update(e); + _ex_main_button_zoom_out_cb(NULL, data); } void _ex_menu_zoom_one_to_one_cb(Etk_Object *obj, void *data) { - Exhibit *e; - Etk_Tree_Row *r; - EX_MENU_ITEM_GET_RETURN(obj); - - e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); - if(!r) return; - - e->zoom = 0; - - _ex_image_zoom(ETK_IMAGE(e->image), e->zoom); - _ex_main_statusbar_zoom_update(e); + _ex_main_button_zoom_one_to_one_cb(NULL, data); } void _ex_menu_fit_to_window_cb(Etk_Object *obj, void *data) { - EX_MENU_ITEM_GET_RETURN(obj); - printf("fit to window\n"); + _ex_main_button_fit_to_window_cb(NULL, data); } void ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs