From: <enl...@li...> - 2005-12-15 10:39:17
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit_main.c Log Message: - better up image (dir nav) - better autofoo =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- exhibit_main.c 14 Dec 2005 23:27:12 -0000 1.7 +++ exhibit_main.c 15 Dec 2005 10:39:10 -0000 1.8 @@ -211,7 +211,7 @@ snprintf(back, PATH_MAX, ".."); etk_tree_append(ETK_TREE(e->dtree), e->dcol, ETK_DEFAULT_ICON_SET_FILE, - "mimetypes/x-directory-normal", back, NULL); + "actions/go-up", back, NULL); chdir(e->dir); |
From: <enl...@li...> - 2005-12-15 10:39:18
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit Modified Files: configure.in Log Message: - better up image (dir nav) - better autofoo =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/configure.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- configure.in 15 Dec 2005 10:07:13 -0000 1.2 +++ configure.in 15 Dec 2005 10:39:10 -0000 1.3 @@ -89,25 +89,90 @@ packagesrcdir=`cd $srcdir && pwd` AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "${packagesrcdir}") -dnl ecore -ECORE_REQUIRED_VERSION=0.9.9.022 -PKG_CHECK_MODULES(ECORE, ecore >= $ECORE_REQUIRED_VERSION) - -dnl evas -EVAS_REQUIRED_VERSION=0.9.9.022 -PKG_CHECK_MODULES(EVAS, evas >= $EVAS_REQUIRED_VERSION) - -dnl edje -EDJE_REQUIRED_VERSION=0.5.0.022 -PKG_CHECK_MODULES(EDJE, edje >= $EDJE_REQUIRED_VERSION) - -dnl etk -ETK_REQUIRED_VERSION=0.1.0.001 -PKG_CHECK_MODULES(ETK, etk >= $ETK_REQUIRED_VERSION) - -dnl epsilon -EPSILON_REQUIRED_VERSION=0.3.0.004 -PKG_CHECK_MODULES(EPSILON, epsilon >= $EPSILON_REQUIRED_VERSION) +#check for ECORE +AC_PATH_EFL( + ecore, + 0.9.9.022, + [ + AC_DEFINE(HAVE_ECORE, 1, have ECORE) + ecore="ECORE " + AM_CONDITIONAL(HAVE_ECORE, true) + have_evas="yes" + ecore_libs=`ecore-config --libs` + ecore_cflags=`ecore-config --cflags` + ], + [ + AC_MSG_ERROR([No Ecore, can't build.]) + ] +) + +#check for EVAS +AC_PATH_EFL( + evas, + 0.9.9.022, + [ + AC_DEFINE(HAVE_EVAS, 1, have EVAS) + evas="EVAS " + AM_CONDITIONAL(HAVE_EVAS, true) + have_evas="yes" + evas_libs=`evas-config --libs` + evas_cflags=`evas-config --cflags` + ], + [ + AC_MSG_ERROR([No Evas, can't build.]) + ] +) + +#check for EDJE +AC_PATH_EFL( + edje, + 0.5.0.022, + [ + AC_DEFINE(HAVE_EDJE, 1, have EDJE) + edje="EDJE " + AM_CONDITIONAL(HAVE_EDJE, true) + have_edje="yes" + edje_libs=`edje-config --libs` + edje_cflags=`edje-config --cflags` + ], + [ + AC_MSG_ERROR([No Edje, can't build.]) + ] +) + +#check for ETK +AC_PATH_EFL( + etk, + 0.1.0.001, + [ + AC_DEFINE(HAVE_ETK, 1, have ETK) + etk="ETK " + AM_CONDITIONAL(HAVE_ETK, true) + have_etk="yes" + etk_libs=`etk-config --libs` + etk_cflags=`etk-config --cflags` + ], + [ + AC_MSG_ERROR([No Etk, can't build.]) + ] +) + +#check for EPSILON +AC_PATH_EFL( + epsilon, + 0.3.0.004, + [ + AC_DEFINE(HAVE_EPSILON, 1, have EPSILON) + epsilon="EPSILON " + AM_CONDITIONAL(HAVE_EPSILON, true) + have_epsilon="yes" + epsilon_libs=`epsilon-config --libs` + epsilon_cflags=`epsilon-config --cflags` + ], + [ + AC_MSG_ERROR([No Epsilon, can't build.]) + ] +) #check for E AC_PATH_EFL( @@ -127,7 +192,7 @@ AC_MSG_WARN([No E, can't build E desktop support.]) have_e="no" e_libs="" - e_cflags="" + e_cflags="" ] ) |
From: <enl...@li...> - 2005-12-15 11:13:09
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit_main.c Log Message: - window class =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- exhibit_main.c 15 Dec 2005 10:39:10 -0000 1.8 +++ exhibit_main.c 15 Dec 2005 11:12:40 -0000 1.9 @@ -422,6 +422,7 @@ e->win = etk_window_new(); etk_window_title_set(ETK_WINDOW(e->win), WINDOW_TITLE " - Image Viewing the Kewl Way!"); + etk_window_wmclass_set(ETK_WINDOW(e->win), "Exhibit", "Exhibit"); etk_window_resize(ETK_WINDOW(e->win), WINDOW_WIDTH, WINDOW_HEIGHT); etk_signal_connect("delete_event", ETK_OBJECT(e->win), ETK_CALLBACK(_ex_main_window_deleted_cb), e); |
From: <enl...@li...> - 2005-12-15 11:58:18
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit_image.c Log Message: - stretch bg =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_image.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- exhibit_image.c 15 Dec 2005 10:07:14 -0000 1.6 +++ exhibit_image.c 15 Dec 2005 11:58:10 -0000 1.7 @@ -587,7 +587,7 @@ pid_t pid; int w, h; char *file, *dir, *edj_file, *filenoext, *esetroot; - char esetroot_opt[] = "-c"; + char esetroot_opt[] = "-s"; #if HAVE_ENGRAVE Engrave_File *edj; Engrave_Image *image; |
From: <enl...@li...> - 2005-12-16 11:56:28
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit_main.c Log Message: - gui: remove extra table row =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- exhibit_main.c 15 Dec 2005 11:12:40 -0000 1.9 +++ exhibit_main.c 16 Dec 2005 11:56:19 -0000 1.10 @@ -436,7 +436,7 @@ e->vpaned = etk_vpaned_new(); etk_paned_add1(ETK_PANED(e->hpaned), e->vpaned); - e->table = etk_table_new(4, 5, FALSE); + e->table = etk_table_new(4, 4, FALSE); etk_paned_add1(ETK_PANED(e->vpaned), e->table); e->menu_bar = etk_menu_bar_new(); |
From: <enl...@li...> - 2005-12-20 11:11:21
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit Modified Files: TODO Log Message: todo++ =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/TODO,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- TODO 15 Dec 2005 10:15:23 -0000 1.3 +++ TODO 20 Dec 2005 11:11:13 -0000 1.4 @@ -8,7 +8,12 @@ - fix .spec file - make argv work with /path/to/image.png and not only /path/to/dir - wallpaper setting - center, stretch, tile +- andy's comments feature BUGS: - fix autocomplete +- if we're scrolled to the end of the dir tree, clicking on a dir needs to + reset the scrollbar to the top. +- if we're looking at a LOT of images and change dir before they have + finished loading, then the images will thumbnail and load in the current dir |
From: <enl...@li...> - 2005-12-22 09:09:48
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit_main.c Log Message: - was using local pid instead of global pid and forcing thumb regen (fixed, Simon, now it makes sense eh? hehe, thanks) =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- exhibit_main.c 21 Dec 2005 20:17:20 -0000 1.14 +++ exhibit_main.c 22 Dec 2005 09:09:37 -0000 1.15 @@ -1,6 +1,7 @@ #include "exhibit.h" #include <Ecore_File.h> +extern pid_t pid; extern Evas_List *thumb_list; static int _ex_main_dtree_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); @@ -271,7 +272,6 @@ char image[PATH_MAX]; char imagereal[PATH_MAX]; struct stat st; - pid_t pid; Epsilon *ep; /* Do not include hidden files */ @@ -315,7 +315,7 @@ thumb->e = e; thumb->name = strdup(dir_entry->d_name); thumb_list = evas_list_append(thumb_list, thumb); - if(pid == -1); _ex_thumb_generate(); + if(pid == -1) _ex_thumb_generate(); } } |
From: <enl...@li...> - 2005-12-22 09:37:04
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit_main.c Log Message: - better checking =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- exhibit_main.c 22 Dec 2005 09:09:37 -0000 1.15 +++ exhibit_main.c 22 Dec 2005 09:36:51 -0000 1.16 @@ -299,7 +299,7 @@ ep = epsilon_new(imagereal); epsilon_thumb_size(ep, EPSILON_THUMB_NORMAL); - if(epsilon_exists(ep)) + if(epsilon_exists(ep) == EPSILON_OK) { char *thumb; |
From: <enl...@li...> - 2005-12-23 01:19:43
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit_image.c exhibit_main.c exhibit_main.h exhibit_menus.c exhibit_sort.c exhibit_sort.h Log Message: - add sorting (name, size, date, resolution) - implement quit from menu =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_image.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- exhibit_image.c 23 Dec 2005 00:44:47 -0000 1.10 +++ exhibit_image.c 23 Dec 2005 01:19:34 -0000 1.11 @@ -35,12 +35,23 @@ } else if(ev->button == 3) { + Etk_Menu_Item *menu_item; + Etk_Menu *submenu; if(e->menu) { etk_menu_popup(ETK_MENU(e->menu)); return; } e->menu = etk_menu_new(); + + menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Sort"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + submenu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(submenu)); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Date"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_date_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Size"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_size_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Name"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_name_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Resolution"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_resol_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("in The Gimp"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("in XV"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("in Xpaint"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- exhibit_main.c 23 Dec 2005 00:44:48 -0000 1.17 +++ exhibit_main.c 23 Dec 2005 01:19:34 -0000 1.18 @@ -3,7 +3,9 @@ extern pid_t pid; extern Evas_List *thumb_list; -static int _ex_main_dtree_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); + +Ecore_Evas *ee_buf; +Evas *evas_buf; char *viewables[] = { @@ -205,7 +207,7 @@ } -static int +int _ex_main_dtree_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) { char *dir1, *dir2; @@ -219,6 +221,113 @@ } int +_ex_main_itree_name_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) +{ + char *f1, *f2; + + if (!row1 || !row2 || !col) + return 0; + + etk_tree_row_fields_get(row1, col, NULL, &f1, NULL,NULL); + etk_tree_row_fields_get(row2, col, NULL, &f2, NULL,NULL); + + return strcasecmp(f1, f2); +} + +int +_ex_main_itree_size_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) +{ + char *f1, *f2; + struct stat s1, s2; + + if (!row1 || !row2 || !col) + return 0; + + etk_tree_row_fields_get(row1, col, NULL, &f1, NULL,NULL); + etk_tree_row_fields_get(row2, col, NULL, &f2, NULL,NULL); + + stat(f1, &s1); + stat(f2, &s2); + + if(s1.st_size > s2.st_size) + return 1; + else + return -1; +} + +int +_ex_main_itree_date_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) +{ + char *f1, *f2; + struct stat s1, s2; + + if (!row1 || !row2 || !col) + return 0; + + etk_tree_row_fields_get(row1, col, NULL, &f1, NULL,NULL); + etk_tree_row_fields_get(row2, col, NULL, &f2, NULL,NULL); + + stat(f1, &s1); + stat(f2, &s2); + + if(s1.st_mtime > s2.st_mtime) + return 1; + else + return -1; +} + +int +_ex_main_itree_resol_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) +{ + char *f1, *f2; + Evas_Object *i1, *i2; + int w1, h1, w2, h2; + + if (!row1 || !row2 || !col) + return 0; + + etk_tree_row_fields_get(row1, col, NULL, &f1, NULL,NULL); + etk_tree_row_fields_get(row2, col, NULL, &f2, NULL,NULL); + + if(!ee_buf) + { + ee_buf = ecore_evas_buffer_new(0, 0); + evas_buf = ecore_evas_get(ee_buf); + } + + if(_ex_file_is_ebg(f1)) + { + w1 = 800; + h1 = 600; + } + else + { + i1 = evas_object_image_add(evas_buf); + evas_object_image_file_set(i1, f1, NULL); + evas_object_image_size_get(i1, &w1, &h1); + evas_object_del(i1); + } + + if(_ex_file_is_ebg(f2)) + { + w2 = 800; + h2 = 600; + } + else + { + i2 = evas_object_image_add(evas_buf); + evas_object_image_file_set(i2, f2, NULL); + evas_object_image_size_get(i2, &w2, &h2); + evas_object_del(i2); + } + + if(w1 * h1 > w2 * h2) + return 1; + else + return -1; +} + +int _ex_file_is_viewable(char *file) { char *ext; @@ -482,8 +591,8 @@ etk_table_attach(ETK_TABLE(e->table), e->menu_bar, 0, 4, 0, 0, 0, 0, ETK_FILL_POLICY_HFILL | ETK_FILL_POLICY_VFILL | ETK_FILL_POLICY_HEXPAND); { - Etk_Widget *menu; - Etk_Widget *menu_item; + Etk_Widget *menu, *submenu; + Etk_Widget *menu_item, *menu_item2; menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("File"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu_bar), NULL, NULL); menu = etk_menu_new(); @@ -499,10 +608,10 @@ _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), NULL, NULL); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Close window"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_close_window_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Quit"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_quit_cb), e); - + menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Edit"), -99, ETK_MENU_SHELL(e->menu_bar), NULL, NULL); menu = etk_menu_new(); - etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("in The Gimp"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("in XV"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("in Xpaint"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); @@ -521,6 +630,16 @@ menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("View"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu_bar), NULL, NULL); menu = etk_menu_new(); etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); + + menu_item2 = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Sort"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); + submenu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item2), ETK_MENU(submenu)); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Date"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_date_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Size"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_size_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Name"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_name_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Resolution"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_resol_cb), e); + + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Zoom in"), EX_IMAGE_ZOOM_IN, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_zoom_in_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Zoom out"), EX_IMAGE_ZOOM_OUT, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_zoom_out_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Zoom 1:1"), EX_IMAGE_ONE_TO_ONE, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_zoom_one_to_one_cb), e); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- exhibit_main.h 14 Dec 2005 15:34:28 -0000 1.2 +++ exhibit_main.h 23 Dec 2005 01:19:34 -0000 1.3 @@ -8,7 +8,12 @@ void _ex_main_button_fit_to_window_cb(Etk_Object *obj, void *data); void _ex_main_itree_item_clicked_cb(Etk_Object *object, Etk_Tree_Row *row, void *data); void _ex_main_itree_key_down_cb(Etk_Object *object, void *event, void *data); +int _ex_main_itree_name_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); +int _ex_main_itree_size_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); +int _ex_main_itree_date_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); +int _ex_main_itree_resol_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); void _ex_main_dtree_item_clicked_cb(Etk_Object *object, Etk_Tree_Row *row, void *data); +int _ex_main_dtree_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); void _ex_main_populate_files(Exhibit *e); void _ex_main_entry_dir_key_down_cb(Etk_Object *object, void *event, void *data); void _ex_main_goto_dir_clicked_cb(Etk_Object *object, void *data); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_menus.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- exhibit_menus.c 19 Dec 2005 19:28:31 -0000 1.8 +++ exhibit_menus.c 23 Dec 2005 01:19:34 -0000 1.9 @@ -114,14 +114,14 @@ _ex_menu_close_window_cb(Etk_Object *obj, void *data) { EX_MENU_ITEM_GET_RETURN(obj); - printf("close window\n"); + etk_main_quit(); } void _ex_menu_quit_cb(Etk_Object *obj, void *data) { EX_MENU_ITEM_GET_RETURN(obj); - printf("quit\n"); + etk_main_quit(); } void =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_sort.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- exhibit_sort.c 14 Dec 2005 11:33:30 -0000 1.1 +++ exhibit_sort.c 23 Dec 2005 01:19:34 -0000 1.2 @@ -1,5 +1,42 @@ #include "exhibit.h" +void +_ex_sort_name_cb(Etk_Object *obj, void *data) +{ + Exhibit *e; + + e = data; + etk_tree_sort(ETK_TREE(e->itree), _ex_main_itree_name_compare_cb, TRUE, e->icol, NULL); +} + +void +_ex_sort_size_cb(Etk_Object *obj, void *data) +{ + Exhibit *e; + + e = data; + etk_tree_sort(ETK_TREE(e->itree), _ex_main_itree_size_compare_cb, TRUE, e->icol, NULL); +} + +void +_ex_sort_resol_cb(Etk_Object *obj, void *data) +{ + Exhibit *e; + + e = data; + etk_tree_sort(ETK_TREE(e->itree), _ex_main_itree_resol_compare_cb, TRUE, e->icol, NULL); +} + +void +_ex_sort_date_cb(Etk_Object *obj, void *data) +{ + Exhibit *e; + + e = data; + etk_tree_sort(ETK_TREE(e->itree), _ex_main_itree_date_compare_cb, TRUE, e->icol, NULL); +} + + void _ex_sort_label_mouse_down_cb(Etk_Object *object, void *event_info, void *data) { =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_sort.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- exhibit_sort.h 14 Dec 2005 11:33:30 -0000 1.1 +++ exhibit_sort.h 23 Dec 2005 01:19:34 -0000 1.2 @@ -2,5 +2,9 @@ #define _EX_SORT_H void _ex_sort_label_mouse_down_cb(Etk_Object *object, void *event_info, void *data); +void _ex_sort_name_cb(Etk_Object *obj, void *data); +void _ex_sort_size_cb(Etk_Object *obj, void *data); +void _ex_sort_date_cb(Etk_Object *obj, void *data); +void _ex_sort_resol_cb(Etk_Object *obj, void *data); #endif |
From: <enl...@li...> - 2005-12-26 12:17:37
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: Makefile.am exhibit.h exhibit_image.c exhibit_main.c exhibit_main.h exhibit_menus.c exhibit_sort.c exhibit_thumb.c Added Files: exhibit_tab.c exhibit_tab.h Log Message: - begin tab support *** DO NOT TRY TO USE TABS NOW!! *** =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- Makefile.am 23 Dec 2005 09:46:14 -0000 1.2 +++ Makefile.am 26 Dec 2005 12:17:29 -0000 1.3 @@ -15,7 +15,8 @@ exhibit_main.h \ exhibit_menus.h \ exhibit_sort.h \ -exhibit_thumb.h +exhibit_thumb.h \ +exhibit_tab.h exhibit_SOURCES = \ exhibit_file.c \ @@ -24,6 +25,7 @@ exhibit_menus.c \ exhibit_sort.c \ exhibit_thumb.c \ +exhibit_tab.c \ $(exhibit_includes) exhibit_LDADD = @my_libs@ =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- exhibit.h 19 Dec 2005 19:28:31 -0000 1.5 +++ exhibit.h 26 Dec 2005 12:17:29 -0000 1.6 @@ -29,6 +29,9 @@ #define ETK_DEFAULT_ICON_SET_FILE ETK_PACKAGE_DATA_DIR "/stock_icons/default.edj" +typedef struct _Exhibit Exhibit; +typedef struct _Ex_Tab Ex_Tab; +typedef struct _Ex_Thumb Ex_Thumb; typedef enum _Ex_Images { EX_IMAGE_FIT_TO_WINDOW = -1, @@ -37,37 +40,58 @@ EX_IMAGE_ZOOM_OUT = -4 } Ex_Images; -typedef struct _Exhibit Exhibit; +struct _Ex_Tab +{ + char *dir; + char cur_path[PATH_MAX]; + + Evas_List *images; + Evas_List *dirs; + + Etk_Widget *image; + Etk_Widget *dtree; + Etk_Widget *itree; + Etk_Widget *scrolled_view; + Etk_Widget *alignment; + + Etk_Tree_Col *dcol; + Etk_Tree_Col *icol; + + Exhibit *e; +}; + + struct _Exhibit { Etk_Widget *vbox; Etk_Widget *hbox; Etk_Widget *menu_bar; Etk_Widget *statusbar[4]; - Etk_Widget *scrolled_view; - Etk_Widget *alignment; + Etk_Widget *notebook; +// Etk_Widget *scrolled_view; +// Etk_Widget *alignment; Etk_Widget *table; Etk_Widget *hpaned; Etk_Widget *vpaned; - Etk_Widget *dtree; - Etk_Widget *itree; +// Etk_Widget *dtree; +// Etk_Widget *itree; Etk_Widget *entry[2]; Etk_Widget *zoom_in[2]; Etk_Widget *zoom_out[2]; Etk_Widget *fit[2]; Etk_Widget *original[2]; - Etk_Widget *image; +// Etk_Widget *image; Etk_Widget *sort; Etk_Widget *sizebar; Etk_Widget *resbar; Etk_Widget *zoombar; - Etk_Tree_Col *dcol; - Etk_Tree_Col *icol; +// Etk_Tree_Col *dcol; +// Etk_Tree_Col *icol; Etk_Widget *menu; Etk_Widget *win; - Evas_List *images; - Evas_List *dirs; +// Evas_List *images; +// Evas_List *dirs; char *dir; char cur_path[PATH_MAX]; @@ -76,6 +100,9 @@ int brightness; int contrast; Etk_Bool fit_window; + + Evas_List *tabs; + Ex_Tab *cur_tab; struct { int down; @@ -84,7 +111,6 @@ } mouse; }; -typedef struct _Ex_Thumb Ex_Thumb; struct _Ex_Thumb { Exhibit *e; @@ -115,5 +141,6 @@ #include "exhibit_menus.h" #include "exhibit_sort.h" #include "exhibit_thumb.h" +#include "exhibit_tab.h" #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_image.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- exhibit_image.c 23 Dec 2005 09:46:14 -0000 1.14 +++ exhibit_image.c 26 Dec 2005 12:17:29 -0000 1.15 @@ -100,8 +100,8 @@ if(!e->mouse.down) return; - hs = etk_scrolled_view_hscrollbar_get(ETK_SCROLLED_VIEW(e->scrolled_view)); - vs = etk_scrolled_view_vscrollbar_get(ETK_SCROLLED_VIEW(e->scrolled_view)); + hs = etk_scrolled_view_hscrollbar_get(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view)); + vs = etk_scrolled_view_vscrollbar_get(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view)); dx = ev->prev.canvas.x - ev->cur.canvas.x; dy = ev->prev.canvas.y - ev->cur.canvas.y; =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- exhibit_main.c 23 Dec 2005 09:46:14 -0000 1.21 +++ exhibit_main.c 26 Dec 2005 12:17:29 -0000 1.22 @@ -1,6 +1,5 @@ #include "exhibit.h" #include <Ecore_File.h> -#include "exhibit_file.h" extern pid_t pid; extern Evas_List *thumb_list; @@ -56,9 +55,9 @@ 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); + etk_paned_add2(ETK_PANED(e->hpaned), e->cur_tab->scrolled_view, TRUE); + etk_widget_size_request_set(e->cur_tab->alignment, -1, -1); + etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view), e->cur_tab->alignment); e->fit_window = FALSE; } @@ -67,7 +66,7 @@ else e->zoom += 2; - _ex_image_zoom(ETK_IMAGE(e->image), e->zoom); + _ex_image_zoom(ETK_IMAGE(e->cur_tab->image), e->zoom); _ex_main_statusbar_zoom_update(e); } @@ -80,9 +79,9 @@ 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); + etk_paned_add2(ETK_PANED(e->hpaned), e->cur_tab->scrolled_view, TRUE); + etk_widget_size_request_set(e->cur_tab->alignment, -1, -1); + etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view), e->cur_tab->alignment); e->fit_window = FALSE; } @@ -91,7 +90,7 @@ else e->zoom -= 2; - _ex_image_zoom(ETK_IMAGE(e->image), e->zoom); + _ex_image_zoom(ETK_IMAGE(e->cur_tab->image), e->zoom); _ex_main_statusbar_zoom_update(e); } @@ -104,9 +103,9 @@ 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); + etk_paned_add2(ETK_PANED(e->hpaned), e->cur_tab->scrolled_view, TRUE); + etk_widget_size_request_set(e->cur_tab->alignment, -1, -1); + etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view), e->cur_tab->alignment); e->fit_window = FALSE; } @@ -114,7 +113,7 @@ e->brightness = 128; e->contrast = 0; - _ex_image_zoom(ETK_IMAGE(e->image), e->zoom); + _ex_image_zoom(ETK_IMAGE(e->cur_tab->image), e->zoom); _ex_main_statusbar_zoom_update(e); } @@ -128,9 +127,9 @@ if (e->fit_window) return; - 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); + etk_widget_size_request_set(e->cur_tab->alignment, 10, 10); + etk_paned_add2(ETK_PANED(e->hpaned), e->cur_tab->alignment, TRUE); + etk_widget_size_request_set(e->cur_tab->image, -1, -1); e->fit_window = TRUE; _ex_main_statusbar_zoom_update(e); @@ -154,7 +153,7 @@ tree = ETK_TREE(object); - etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), NULL, &icol_string, etk_tree_nth_col_get(tree, 1),NULL); + etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), NULL, &icol_string, etk_tree_nth_col_get(tree, 1),NULL); title = calloc(strlen(icol_string) + strlen(WINDOW_TITLE) + 5, sizeof(char)); snprintf(title, strlen(icol_string) + strlen(WINDOW_TITLE) + 5, "%s - %s", icol_string, WINDOW_TITLE); etk_window_title_set(ETK_WINDOW(e->win), title); @@ -162,14 +161,14 @@ if(_ex_file_is_ebg(icol_string)) { /* can we do this without the size request? it doesnt look good */ - etk_widget_size_request_set(ETK_WIDGET(e->image), 800, 600); - etk_image_set_from_edje(ETK_IMAGE(e->image), icol_string, "desktop/background"); + etk_widget_size_request_set(ETK_WIDGET(e->cur_tab->image), 800, 600); + etk_image_set_from_edje(ETK_IMAGE(e->cur_tab->image), icol_string, "desktop/background"); } else { - etk_image_set_from_file(ETK_IMAGE(e->image), icol_string); - etk_image_size_get(ETK_IMAGE(e->image), &w, &h); - etk_widget_size_request_set(ETK_WIDGET(e->image), w, h); + etk_image_set_from_file(ETK_IMAGE(e->cur_tab->image), icol_string); + etk_image_size_get(ETK_IMAGE(e->cur_tab->image), &w, &h); + etk_widget_size_request_set(ETK_WIDGET(e->cur_tab->image), w, h); } bytes = ecore_file_size(icol_string); @@ -177,13 +176,13 @@ etk_statusbar_pop(ETK_STATUSBAR(e->statusbar[0]), 0); etk_statusbar_push(ETK_STATUSBAR(e->statusbar[0]), size, 0); - etk_image_size_get(ETK_IMAGE(e->image), &w, &h); + etk_image_size_get(ETK_IMAGE(e->cur_tab->image), &w, &h); snprintf(size, sizeof(size), "( %d x %d )", w, h); etk_statusbar_pop(ETK_STATUSBAR(e->statusbar[1]), 0); etk_statusbar_push(ETK_STATUSBAR(e->statusbar[1]), size, 0); - hs = etk_scrolled_view_hscrollbar_get(ETK_SCROLLED_VIEW(e->scrolled_view)); - vs = etk_scrolled_view_vscrollbar_get(ETK_SCROLLED_VIEW(e->scrolled_view)); + hs = etk_scrolled_view_hscrollbar_get(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view)); + vs = etk_scrolled_view_vscrollbar_get(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view)); etk_range_value_set(hs, (double)w/2); etk_range_value_set(vs, (double)h/2); @@ -202,9 +201,9 @@ etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), NULL, NULL, &dcol_string, NULL); free(e->dir); - e->dir = strdup(dcol_string); - etk_tree_clear(ETK_TREE(e->itree)); - etk_tree_clear(ETK_TREE(e->dtree)); + e->cur_tab->dir = strdup(dcol_string); + etk_tree_clear(ETK_TREE(e->cur_tab->itree)); + etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); _ex_main_populate_files(e); } @@ -354,29 +353,29 @@ DIR *dir; struct dirent *dir_entry; - etk_tree_freeze(ETK_TREE(e->itree)); - etk_tree_freeze(ETK_TREE(e->dtree)); +// etk_tree_freeze(ETK_TREE(e->cur_tab->itree)); +// etk_tree_freeze(ETK_TREE(e->cur_tab->dtree)); snprintf(back, PATH_MAX, ".."); - etk_tree_append(ETK_TREE(e->dtree), e->dcol, ETK_DEFAULT_ICON_SET_FILE, - "actions/go-up", back, NULL); + etk_tree_append(ETK_TREE(e->cur_tab->dtree), e->cur_tab->dcol, + ETK_DEFAULT_ICON_SET_FILE, "actions/go-up", back, NULL); - chdir(e->dir); + chdir(e->cur_tab->dir); if ((dir = opendir(".")) == NULL) return ; - etk_tree_freeze(ETK_TREE(e->itree)); - etk_tree_freeze(ETK_TREE(e->dtree)); + etk_tree_freeze(ETK_TREE(e->cur_tab->itree)); + etk_tree_freeze(ETK_TREE(e->cur_tab->dtree)); - getcwd(e->cur_path, PATH_MAX); - if(strlen(e->cur_path) < PATH_MAX - 2) + getcwd(e->cur_tab->cur_path, PATH_MAX); + if(strlen(e->cur_tab->cur_path) < PATH_MAX - 2) { - int len = strlen(e->cur_path); - e->cur_path[len] = '/'; - e->cur_path[len + 1] = '\0'; + int len = strlen(e->cur_tab->cur_path); + e->cur_tab->cur_path[len] = '/'; + e->cur_tab->cur_path[len + 1] = '\0'; } - etk_entry_text_set(ETK_ENTRY(e->entry[0]), e->cur_path); + etk_entry_text_set(ETK_ENTRY(e->entry[0]), e->cur_tab->cur_path); while ((dir_entry = readdir(dir)) != NULL) { @@ -393,11 +392,11 @@ if(stat(image, &st) == -1) continue; if(S_ISDIR(st.st_mode)) { - etk_tree_append(ETK_TREE(e->dtree), e->dcol, + etk_tree_append(ETK_TREE(e->cur_tab->dtree), e->cur_tab->dcol, ETK_DEFAULT_ICON_SET_FILE, "mimetypes/x-directory-normal", dir_entry->d_name, NULL); - e->dirs = evas_list_append(e->dirs, dir_entry->d_name); + e->cur_tab->dirs = evas_list_append(e->cur_tab->dirs, dir_entry->d_name); continue; } @@ -415,7 +414,7 @@ char *thumb; thumb = (char*)epsilon_thumb_file_get(ep); - etk_tree_append(ETK_TREE(e->itree), e->icol, thumb, dir_entry->d_name, NULL); + etk_tree_append(ETK_TREE(e->cur_tab->itree), e->cur_tab->icol, thumb, dir_entry->d_name, NULL); free(thumb); } else { @@ -430,9 +429,9 @@ } } - etk_tree_thaw(ETK_TREE(e->itree)); - etk_tree_thaw(ETK_TREE(e->dtree)); - etk_tree_sort(ETK_TREE(e->dtree), _ex_main_dtree_compare_cb, TRUE, e->dcol, NULL); + etk_tree_thaw(ETK_TREE(e->cur_tab->itree)); + etk_tree_thaw(ETK_TREE(e->cur_tab->dtree)); + etk_tree_sort(ETK_TREE(e->cur_tab->dtree), _ex_main_dtree_compare_cb, TRUE, e->cur_tab->dcol, NULL); closedir(dir); } @@ -448,9 +447,9 @@ if(!strcmp(ev->key, "Return") || !strcmp(ev->key, "KP_Enter")) { - e->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); - etk_tree_clear(ETK_TREE(e->itree)); - etk_tree_clear(ETK_TREE(e->dtree)); + e->cur_tab->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); + etk_tree_clear(ETK_TREE(e->cur_tab->itree)); + etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); _ex_main_populate_files(e); } } @@ -489,9 +488,9 @@ struct dirent *dir_entry; struct stat st; - while(e->dirs) + while(e->cur_tab->dirs) { - e->dirs = evas_list_remove_list(e->dirs, e->dirs); + e->cur_tab->dirs = evas_list_remove_list(e->cur_tab->dirs, e->cur_tab->dirs); } if ((dirfd = opendir(dir)) == NULL) @@ -508,13 +507,13 @@ if(stat(fullpath, &st) == -1) continue; if(S_ISDIR(st.st_mode)) - e->dirs = evas_list_append(e->dirs, strdup(dir_entry->d_name)); + e->cur_tab->dirs = evas_list_append(e->cur_tab->dirs, strdup(dir_entry->d_name)); } closedir(dirfd); } - for(l = e->dirs; l; l = l->next) + for(l = e->cur_tab->dirs; l; l = l->next) { if(!strncmp(file, l->data, strlen(file))) { @@ -530,9 +529,9 @@ if(!strcmp(ev->key, "Return") || !strcmp(ev->key, "KP_Enter")) { - e->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); - etk_tree_clear(ETK_TREE(e->itree)); - etk_tree_clear(ETK_TREE(e->dtree)); + e->cur_tab->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); + etk_tree_clear(ETK_TREE(e->cur_tab->itree)); + etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); _ex_main_populate_files(e); } } @@ -544,9 +543,9 @@ e = data; - e->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); - etk_tree_clear(ETK_TREE(e->itree)); - etk_tree_clear(ETK_TREE(e->dtree)); + e->cur_tab->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); + etk_tree_clear(ETK_TREE(e->cur_tab->itree)); + etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); _ex_main_populate_files(e); } @@ -561,22 +560,75 @@ } void +_ex_main_window_key_down_cb(Etk_Object *object, void *event, void *data) +{ + Etk_Event_Key_Up_Down *ev; + Exhibit *e; + Evas *evas; + + e = data; + ev = event; + evas = ecore_evas_get(ETK_WINDOW(e->win)->ecore_evas); + + if(!strcmp(ev->key, "t") && evas_key_modifier_is_set(evas_key_modifier_get(evas), "Control")) + { + Ex_Tab *tab; + + tab = _ex_tab_new(e, "/tmp"); + _ex_main_window_tab_append(e, tab); + _ex_main_populate_files(e); + } +} + +void +_ex_main_window_tab_toggled_cb(Etk_Object *object, void *data) +{ + Exhibit *e; + Ex_Tab *tab; + + e = data; + tab = evas_list_nth(e->tabs, etk_notebook_current_page_get(ETK_WIDGET(object))); + + e->cur_tab = tab; + _ex_tab_select(tab); +} + +void +_ex_main_window_tab_append(Exhibit *e, Ex_Tab *tab) +{ + if(evas_list_count(e->tabs) == 1) + { + /* adding first "real" tab, copy existing tab, and create new one */ + e->notebook = etk_notebook_new(); + etk_paned_add2(ETK_PANED(e->hpaned), e->notebook, TRUE); + etk_notebook_page_append(ETK_NOTEBOOK(e->notebook), e->cur_tab->dir, e->cur_tab->scrolled_view); + etk_signal_connect("current_page_changed", ETK_OBJECT(e->notebook), ETK_CALLBACK(_ex_main_window_tab_toggled_cb), e); + etk_widget_show(ETK_WIDGET(e->notebook)); + } + + e->tabs = evas_list_append(e->tabs, tab); + e->cur_tab = tab; + etk_notebook_page_append(ETK_NOTEBOOK(e->notebook), e->cur_tab->dir, e->cur_tab->scrolled_view); + etk_notebook_current_page_set(e->notebook, evas_list_count(e->tabs) - 1); +} + +void _ex_main_window_show(char *dir) { Exhibit *e; - Etk_Tree_Model *imodel; + Ex_Tab *tab; e = calloc(1, sizeof(Exhibit)); e->mouse.down = 0; - e->dirs = NULL; e->menu = NULL; - e->image = NULL; + e->tabs = NULL; e->win = etk_window_new(); etk_window_title_set(ETK_WINDOW(e->win), WINDOW_TITLE " - Image Viewing the Kewl Way!"); etk_window_wmclass_set(ETK_WINDOW(e->win), "Exhibit", "Exhibit"); etk_window_resize(ETK_WINDOW(e->win), WINDOW_WIDTH, WINDOW_HEIGHT); etk_signal_connect("delete_event", ETK_OBJECT(e->win), ETK_CALLBACK(_ex_main_window_deleted_cb), e); + etk_signal_connect("key_down", ETK_OBJECT(e->win), ETK_CALLBACK(_ex_main_window_key_down_cb), e); e->vbox = etk_vbox_new(FALSE, 0); etk_container_add(ETK_CONTAINER(e->win), e->vbox); @@ -713,57 +765,20 @@ 3, 3, 2, 2, 0, 0, ETK_FILL_POLICY_NONE); etk_signal_connect("clicked", ETK_OBJECT(e->entry[1]), ETK_CALLBACK(_ex_main_goto_dir_clicked_cb), e); - - e->dtree = etk_tree_new(); - etk_widget_size_request_set(e->dtree, 180, 120); - etk_table_attach(ETK_TABLE(e->table), e->dtree, - 0, 3, 3, 3, - 0, 0, ETK_FILL_POLICY_VEXPAND|ETK_FILL_POLICY_VFILL|ETK_FILL_POLICY_HFILL); - etk_signal_connect("row_selected", ETK_OBJECT(e->dtree), ETK_CALLBACK(_ex_main_dtree_item_clicked_cb), e); - e->dcol = etk_tree_col_new(ETK_TREE(e->dtree), "Directories", etk_tree_model_icon_text_new(ETK_TREE(e->dtree), ETK_TREE_FROM_EDJE), 10); - etk_tree_headers_visible_set(ETK_TREE(e->dtree), 0); - etk_tree_build(ETK_TREE(e->dtree)); - - e->itree = etk_tree_new(); - etk_widget_size_request_set(e->itree, 180, 120); - etk_paned_add2(ETK_PANED(e->vpaned), e->itree, TRUE); - etk_tree_multiple_select_set(ETK_TREE(e->itree), TRUE); - etk_signal_connect("row_selected", ETK_OBJECT(e->itree), ETK_CALLBACK(_ex_main_itree_item_clicked_cb), e); - // todo: we want to move selections between rows with the keyboard. how? - etk_signal_connect("key_down", ETK_OBJECT(e->itree), ETK_CALLBACK(_ex_main_itree_key_down_cb), e); - imodel = etk_tree_model_icon_text_new(ETK_TREE(e->itree), ETK_TREE_FROM_FILE); - etk_tree_model_icon_text_icon_width_set(imodel, 80); - e->icol = etk_tree_col_new(ETK_TREE(e->itree), "Files", imodel, 10); - etk_tree_headers_visible_set(ETK_TREE(e->itree), 0); - etk_tree_row_height_set(ETK_TREE(e->itree), 60); - //ETK_TREE(e->itree)->image_height = 54; - etk_tree_build(ETK_TREE(e->itree)); - - if(dir) - e->dir = strdup(dir); - else - e->dir = strdup("."); - _ex_main_populate_files(e); - - e->scrolled_view = etk_scrolled_view_new(); - etk_paned_add2(ETK_PANED(e->hpaned), e->scrolled_view, TRUE); - - e->alignment = etk_alignment_new(0.5, 0.5, 0.0, 0.0); - etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(e->scrolled_view), e->alignment); - - e->image = etk_image_new(); - etk_widget_theme_set(e->image, PACKAGE_DATA_DIR"/images/images.edj", "image_bg"); - etk_signal_connect("mouse_down", ETK_OBJECT(e->image), ETK_CALLBACK(_ex_image_mouse_down), e); - etk_signal_connect("mouse_up", ETK_OBJECT(e->image), ETK_CALLBACK(_ex_image_mouse_up), e); - etk_signal_connect("mouse_move", ETK_OBJECT(e->image), ETK_CALLBACK(_ex_image_mouse_move), e); - etk_image_keep_aspect_set(ETK_IMAGE(e->image), TRUE); - etk_container_add(ETK_CONTAINER(e->alignment), e->image); + /* create first tab but dont place it in notebook */ + tab = _ex_tab_new(e, dir); + e->cur_tab = tab; + e->tabs = evas_list_append(e->tabs, tab); + _ex_tab_select(tab); + etk_paned_add2(ETK_PANED(tab->e->hpaned), tab->scrolled_view, TRUE); + _ex_main_populate_files(e); + e->hbox = etk_hbox_new(TRUE, 0); etk_box_pack_end(ETK_BOX(e->vbox), e->hbox, FALSE, FALSE, 0); e->sort = etk_label_new("Sort by date"); - /* size is difference than statusbar, how do we make it look good? */ + /* size is different than statusbar, how do we make it look good? */ //etk_box_pack_start(ETK_BOX(e->hbox), e->sort, TRUE, TRUE, 0); { Etk_Widget *menu; @@ -799,7 +814,7 @@ } int - main(int argc, char *argv[]) +main(int argc, char *argv[]) { if (!etk_init()) { =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- exhibit_main.h 23 Dec 2005 01:19:34 -0000 1.3 +++ exhibit_main.h 26 Dec 2005 12:17:29 -0000 1.4 @@ -18,6 +18,8 @@ void _ex_main_entry_dir_key_down_cb(Etk_Object *object, void *event, void *data); void _ex_main_goto_dir_clicked_cb(Etk_Object *object, void *data); Etk_Bool _ex_main_window_deleted_cb(void *data); +void _ex_main_window_key_down_cb(Etk_Object *object, void *event, void *data); +void _ex_main_window_tab_append(Exhibit *e, Ex_Tab *tab); void _ex_main_window_show(char *dir); #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_menus.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- exhibit_menus.c 23 Dec 2005 09:46:14 -0000 1.11 +++ exhibit_menus.c 26 Dec 2005 12:17:30 -0000 1.12 @@ -78,9 +78,9 @@ EX_MENU_ITEM_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); if(!r) return; - _ex_image_save(ETK_IMAGE(e->image)); + _ex_image_save(ETK_IMAGE(e->cur_tab->image)); } void @@ -153,10 +153,10 @@ EX_MENU_ITEM_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); if(!r) return; - _ex_image_flip_diagonal(ETK_IMAGE(e->image), 1); - etk_image_size_get(ETK_IMAGE(e->image), &w, &h); + _ex_image_flip_diagonal(ETK_IMAGE(e->cur_tab->image), 1); + etk_image_size_get(ETK_IMAGE(e->cur_tab->image), &w, &h); snprintf(size, sizeof(size), "( %d x %d )", w, h); etk_statusbar_pop(ETK_STATUSBAR(e->statusbar[1]), 0); etk_statusbar_push(ETK_STATUSBAR(e->statusbar[1]), size, 0); @@ -172,10 +172,10 @@ EX_MENU_ITEM_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); if(!r) return; - _ex_image_flip_diagonal(ETK_IMAGE(e->image), 2); - etk_image_size_get(ETK_IMAGE(e->image), &w, &h); + _ex_image_flip_diagonal(ETK_IMAGE(e->cur_tab->image), 2); + etk_image_size_get(ETK_IMAGE(e->cur_tab->image), &w, &h); snprintf(size, sizeof(size), "( %d x %d )", w, h); etk_statusbar_pop(ETK_STATUSBAR(e->statusbar[1]), 0); etk_statusbar_push(ETK_STATUSBAR(e->statusbar[1]), size, 0); @@ -189,9 +189,9 @@ EX_MENU_ITEM_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); if(!r) return; - _ex_image_flip_horizontal(ETK_IMAGE(e->image)); + _ex_image_flip_horizontal(ETK_IMAGE(e->cur_tab->image)); } void @@ -202,9 +202,9 @@ EX_MENU_ITEM_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); if(!r) return; - _ex_image_flip_vertical(ETK_IMAGE(e->image)); + _ex_image_flip_vertical(ETK_IMAGE(e->cur_tab->image)); } void @@ -215,9 +215,9 @@ EX_MENU_ITEM_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); if(!r) return; - _ex_image_blur(ETK_IMAGE(e->image)); + _ex_image_blur(ETK_IMAGE(e->cur_tab->image)); } void @@ -228,9 +228,9 @@ EX_MENU_ITEM_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); if(!r) return; - _ex_image_sharpen(ETK_IMAGE(e->image)); + _ex_image_sharpen(ETK_IMAGE(e->cur_tab->image)); } void @@ -241,13 +241,13 @@ EX_MENU_ITEM_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); if(!r) return; e->brightness += 10; if(e->brightness > 255) e->brightness = 255; - _ex_image_brightness(ETK_IMAGE(e->image), e->brightness); + _ex_image_brightness(ETK_IMAGE(e->cur_tab->image), e->brightness); } void @@ -258,13 +258,13 @@ EX_MENU_ITEM_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); if(!r) return; e->brightness -= 10; if(e->brightness < 0) e->brightness = 0; - _ex_image_brightness(ETK_IMAGE(e->image), e->brightness); + _ex_image_brightness(ETK_IMAGE(e->cur_tab->image), e->brightness); } void @@ -275,9 +275,9 @@ EX_MENU_ITEM_GET_RETURN(obj); e = data; - r = etk_tree_selected_row_get(ETK_TREE(e->itree)); + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); if(!r) return; - _ex_image_wallpaper_set(ETK_IMAGE(e->image)); + _ex_image_wallpaper_set(ETK_IMAGE(e->cur_tab->image)); } void =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_sort.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- exhibit_sort.c 23 Dec 2005 01:19:34 -0000 1.2 +++ exhibit_sort.c 26 Dec 2005 12:17:30 -0000 1.3 @@ -6,7 +6,7 @@ Exhibit *e; e = data; - etk_tree_sort(ETK_TREE(e->itree), _ex_main_itree_name_compare_cb, TRUE, e->icol, NULL); + etk_tree_sort(ETK_TREE(e->cur_tab->itree), _ex_main_itree_name_compare_cb, TRUE, e->cur_tab->icol, NULL); } void @@ -15,7 +15,7 @@ Exhibit *e; e = data; - etk_tree_sort(ETK_TREE(e->itree), _ex_main_itree_size_compare_cb, TRUE, e->icol, NULL); + etk_tree_sort(ETK_TREE(e->cur_tab->itree), _ex_main_itree_size_compare_cb, TRUE, e->cur_tab->icol, NULL); } void @@ -24,7 +24,7 @@ Exhibit *e; e = data; - etk_tree_sort(ETK_TREE(e->itree), _ex_main_itree_resol_compare_cb, TRUE, e->icol, NULL); + etk_tree_sort(ETK_TREE(e->cur_tab->itree), _ex_main_itree_resol_compare_cb, TRUE, e->cur_tab->icol, NULL); } void @@ -33,7 +33,7 @@ Exhibit *e; e = data; - etk_tree_sort(ETK_TREE(e->itree), _ex_main_itree_date_compare_cb, TRUE, e->icol, NULL); + etk_tree_sort(ETK_TREE(e->cur_tab->itree), _ex_main_itree_date_compare_cb, TRUE, e->cur_tab->icol, NULL); } =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_thumb.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- exhibit_thumb.c 24 Dec 2005 09:44:27 -0000 1.3 +++ exhibit_thumb.c 26 Dec 2005 12:17:30 -0000 1.4 @@ -23,7 +23,7 @@ if (ext) { thumb->image = (char*)epsilon_thumb_file_get(thumb->ep); - etk_tree_append(ETK_TREE(thumb->e->itree), thumb->e->icol, thumb->image, thumb->name, NULL); + etk_tree_append(ETK_TREE(thumb->e->cur_tab->itree), thumb->e->cur_tab->icol, thumb->image, thumb->name, NULL); free(thumb->image); free(thumb->name); epsilon_free(thumb->ep); |
From: <enl...@li...> - 2005-12-26 13:55:41
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit.h exhibit_main.c exhibit_tab.c Log Message: - more work on tabs. =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- exhibit.h 26 Dec 2005 12:17:29 -0000 1.6 +++ exhibit.h 26 Dec 2005 13:55:35 -0000 1.7 @@ -44,6 +44,9 @@ { char *dir; char cur_path[PATH_MAX]; + int num; + + Etk_Bool fit_window; Evas_List *images; Evas_List *dirs; @@ -99,7 +102,6 @@ int zoom; int brightness; int contrast; - Etk_Bool fit_window; Evas_List *tabs; Ex_Tab *cur_tab; =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- exhibit_main.c 26 Dec 2005 12:17:29 -0000 1.22 +++ exhibit_main.c 26 Dec 2005 13:55:35 -0000 1.23 @@ -19,7 +19,7 @@ void _ex_main_statusbar_zoom_update(Exhibit *e) { - if (e->fit_window) + if (e->cur_tab->fit_window) { etk_statusbar_pop(ETK_STATUSBAR(e->statusbar[2]), 0); etk_statusbar_push(ETK_STATUSBAR(e->statusbar[2]), _("Fit to window"), 0); @@ -53,12 +53,16 @@ e = data; - if (e->fit_window) + if (e->cur_tab->fit_window) { - etk_paned_add2(ETK_PANED(e->hpaned), e->cur_tab->scrolled_view, TRUE); + if(evas_list_count(e->tabs) == 1) + etk_paned_add2(ETK_PANED(e->hpaned), e->cur_tab->scrolled_view, TRUE); + else + etk_notebook_page_child_set(ETK_NOTEBOOK(e->notebook), e->cur_tab->num, e->cur_tab->scrolled_view); + etk_widget_size_request_set(e->cur_tab->alignment, -1, -1); etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view), e->cur_tab->alignment); - e->fit_window = FALSE; + e->cur_tab->fit_window = FALSE; } if(e->zoom == ZOOM_MAX) @@ -77,12 +81,16 @@ e = data; - if (e->fit_window) + if (e->cur_tab->fit_window) { - etk_paned_add2(ETK_PANED(e->hpaned), e->cur_tab->scrolled_view, TRUE); + if(evas_list_count(e->tabs) == 1) + etk_paned_add2(ETK_PANED(e->hpaned), e->cur_tab->scrolled_view, TRUE); + else + etk_notebook_page_child_set(ETK_NOTEBOOK(e->notebook), e->cur_tab->num, e->cur_tab->scrolled_view); + etk_widget_size_request_set(e->cur_tab->alignment, -1, -1); etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view), e->cur_tab->alignment); - e->fit_window = FALSE; + e->cur_tab->fit_window = FALSE; } if(e->zoom <= ZOOM_MIN) @@ -101,12 +109,16 @@ e = data; - if (e->fit_window) + if (e->cur_tab->fit_window) { - etk_paned_add2(ETK_PANED(e->hpaned), e->cur_tab->scrolled_view, TRUE); + if(evas_list_count(e->tabs) == 1) + etk_paned_add2(ETK_PANED(e->hpaned), e->cur_tab->scrolled_view, TRUE); + else + etk_notebook_page_child_set(ETK_NOTEBOOK(e->notebook), e->cur_tab->num, e->cur_tab->scrolled_view); + etk_widget_size_request_set(e->cur_tab->alignment, -1, -1); etk_scrolled_view_add_with_viewport(ETK_SCROLLED_VIEW(e->cur_tab->scrolled_view), e->cur_tab->alignment); - e->fit_window = FALSE; + e->cur_tab->fit_window = FALSE; } e->zoom = 0; @@ -124,14 +136,18 @@ e = data; - if (e->fit_window) + if (e->cur_tab->fit_window) return; etk_widget_size_request_set(e->cur_tab->alignment, 10, 10); - etk_paned_add2(ETK_PANED(e->hpaned), e->cur_tab->alignment, TRUE); + if(evas_list_count(e->tabs) == 1) + etk_paned_add2(ETK_PANED(e->hpaned), e->cur_tab->alignment, TRUE); + else + etk_notebook_page_child_set(ETK_NOTEBOOK(e->notebook), e->cur_tab->num, e->cur_tab->alignment); + etk_widget_size_request_set(e->cur_tab->image, -1, -1); - e->fit_window = TRUE; + e->cur_tab->fit_window = TRUE; _ex_main_statusbar_zoom_update(e); } @@ -767,7 +783,7 @@ etk_signal_connect("clicked", ETK_OBJECT(e->entry[1]), ETK_CALLBACK(_ex_main_goto_dir_clicked_cb), e); /* create first tab but dont place it in notebook */ - tab = _ex_tab_new(e, dir); + tab = _ex_tab_new(e, dir); e->cur_tab = tab; e->tabs = evas_list_append(e->tabs, tab); _ex_tab_select(tab); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_tab.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- exhibit_tab.c 26 Dec 2005 12:17:30 -0000 1.1 +++ exhibit_tab.c 26 Dec 2005 13:55:35 -0000 1.2 @@ -7,6 +7,7 @@ Etk_Tree_Model *imodel; tab = calloc(1, sizeof(Ex_Tab)); + tab->num = evas_list_count(e->tabs); tab->dirs = NULL; tab->images = NULL; tab->e = e; @@ -79,16 +80,6 @@ etk_widget_show(tab->image); etk_widget_show(tab->alignment); etk_widget_show(tab->scrolled_view); - -// etk_widget_size_recalc_queue(tab->e->table); -// etk_widget_size_recalc_queue(tab->itree); -// etk_widget_size_recalc_queue(tab->dtree); -// etk_widget_size_recalc_queue(tab->alignment); - -// etk_widget_redraw_queue(tab->e->table); -// etk_widget_redraw_queue(tab->itree); -// etk_widget_redraw_queue(tab->dtree); -// etk_widget_redraw_queue(tab->alignment); - -// etk_widget_show_all(tab->e->win); + + etk_widget_show_all(tab->e->win); } |
From: <enl...@li...> - 2005-12-26 13:59:27
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit_tab.c Log Message: - small fit-to-window fix for tabs =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_tab.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- exhibit_tab.c 26 Dec 2005 13:55:35 -0000 1.2 +++ exhibit_tab.c 26 Dec 2005 13:59:21 -0000 1.3 @@ -11,6 +11,7 @@ tab->dirs = NULL; tab->images = NULL; tab->e = e; + tab->fit_window = FALSE; tab->dtree = etk_tree_new(); etk_widget_size_request_set(tab->dtree, 180, 120); @@ -69,6 +70,9 @@ { chdir(tab->cur_path); + if(tab->fit_window) + etk_notebook_page_child_set(ETK_NOTEBOOK(tab->e->notebook), tab->num, tab->alignment); + etk_table_attach(ETK_TABLE(tab->e->table), tab->dtree, 0, 3, 3, 3, 0, 0, ETK_FILL_POLICY_VEXPAND|ETK_FILL_POLICY_VFILL|ETK_FILL_POLICY_HFILL); |
From: <enl...@li...> - 2005-12-26 14:29:02
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit.h exhibit_file.c exhibit_main.c Log Message: - change dir in entry when tabs are changed - smaller tab names =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- exhibit.h 26 Dec 2005 13:55:35 -0000 1.7 +++ exhibit.h 26 Dec 2005 14:28:55 -0000 1.8 @@ -4,6 +4,7 @@ #include <Evas.h> #include <Ecore.h> #include <Ecore_X.h> +#include <Ecore_File.h> #include <Ecore_X_Cursor.h> #include <Epsilon.h> #include <etk/Etk.h> =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_file.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- exhibit_file.c 19 Dec 2005 14:01:30 -0000 1.3 +++ exhibit_file.c 26 Dec 2005 14:28:55 -0000 1.4 @@ -52,3 +52,24 @@ file[i] = '\0'; return file; } + +char * +_ex_file_get(char *path) +{ + if(!path[0]) return NULL; + + if(path[strlen(path) - 1] == '/' && strlen(path) >= 2) + { + char *ret; + + ret = &path[strlen(path) - 2]; + while(ret != path) + { + if(*ret == '/') + return ++ret; + --ret; + } + return path; + } + else return ecore_file_get_file(path); +} =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- exhibit_main.c 26 Dec 2005 13:55:35 -0000 1.23 +++ exhibit_main.c 26 Dec 2005 14:28:55 -0000 1.24 @@ -590,7 +590,7 @@ { Ex_Tab *tab; - tab = _ex_tab_new(e, "/tmp"); + tab = _ex_tab_new(e, e->cur_tab->cur_path); _ex_main_window_tab_append(e, tab); _ex_main_populate_files(e); } @@ -606,7 +606,8 @@ tab = evas_list_nth(e->tabs, etk_notebook_current_page_get(ETK_WIDGET(object))); e->cur_tab = tab; - _ex_tab_select(tab); + _ex_tab_select(tab); + etk_entry_text_set(ETK_ENTRY(e->entry[0]), e->cur_tab->cur_path); } void @@ -617,15 +618,15 @@ /* adding first "real" tab, copy existing tab, and create new one */ e->notebook = etk_notebook_new(); etk_paned_add2(ETK_PANED(e->hpaned), e->notebook, TRUE); - etk_notebook_page_append(ETK_NOTEBOOK(e->notebook), e->cur_tab->dir, e->cur_tab->scrolled_view); + etk_notebook_page_append(ETK_NOTEBOOK(e->notebook), _ex_file_get(e->cur_tab->dir), e->cur_tab->scrolled_view); etk_signal_connect("current_page_changed", ETK_OBJECT(e->notebook), ETK_CALLBACK(_ex_main_window_tab_toggled_cb), e); etk_widget_show(ETK_WIDGET(e->notebook)); } e->tabs = evas_list_append(e->tabs, tab); e->cur_tab = tab; - etk_notebook_page_append(ETK_NOTEBOOK(e->notebook), e->cur_tab->dir, e->cur_tab->scrolled_view); - etk_notebook_current_page_set(e->notebook, evas_list_count(e->tabs) - 1); + etk_notebook_page_append(ETK_NOTEBOOK(e->notebook), _ex_file_get(e->cur_tab->dir), e->cur_tab->scrolled_view); + etk_notebook_current_page_set(e->notebook, evas_list_count(e->tabs) - 1); } void |
From: <enl...@li...> - 2005-12-26 14:48:49
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit_main.c Log Message: - update tab label when we change dirs. =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- exhibit_main.c 26 Dec 2005 14:28:55 -0000 1.24 +++ exhibit_main.c 26 Dec 2005 14:48:37 -0000 1.25 @@ -221,6 +221,7 @@ etk_tree_clear(ETK_TREE(e->cur_tab->itree)); etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); _ex_main_populate_files(e); + etk_notebook_page_tab_label_set(ETK_NOTEBOOK(e->notebook), e->cur_tab->num, _ex_file_get(e->cur_tab->cur_path)); } |
From: <enl...@li...> - 2005-12-28 11:14:24
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit_image.c exhibit_image.h exhibit_main.c exhibit_tab.c Log Message: - patch from Chady to zoom on wheel (made it zoom on Control+Wheel) - add ability to change images (cycle through them) when wheel is scrolled. =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_image.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- exhibit_image.c 26 Dec 2005 12:17:29 -0000 1.15 +++ exhibit_image.c 28 Dec 2005 11:14:17 -0000 1.16 @@ -15,6 +15,47 @@ #define G_VAL(p) ((DATA8 *)(p))[1] #define B_VAL(p) ((DATA8 *)(p))[0] +void +_ex_image_mouse_wheel(Etk_Object *object, void *event, void *data) +{ + Exhibit *e; + Etk_Event_Mouse_Wheel *ev; + Evas *evas; + + ev = event; + e = data; + evas = ecore_evas_get(ETK_WINDOW(e->win)->ecore_evas); + + + if(evas_key_modifier_is_set(evas_key_modifier_get(evas), "Control")) + { + if (ev->z > 0) + _ex_main_button_zoom_in_cb(NULL, data); + else + _ex_main_button_zoom_out_cb(NULL, data); + } + else + { + Etk_Tree_Row *row; + + if (ev->z > 0) + { + row = etk_tree_next_row_get( + etk_tree_selected_row_get(e->cur_tab->itree), + FALSE, FALSE); + etk_tree_row_select(row); + etk_tree_row_scroll_to(row, FALSE); + } + else + { + row = etk_tree_prev_row_get( + etk_tree_selected_row_get(e->cur_tab->itree), + FALSE, FALSE); + etk_tree_row_select(row); + etk_tree_row_scroll_to(row, FALSE); + } + } +} void _ex_image_mouse_down(Etk_Object *object, void *event, void *data) =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_image.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- exhibit_image.h 23 Dec 2005 09:46:14 -0000 1.4 +++ exhibit_image.h 28 Dec 2005 11:14:18 -0000 1.5 @@ -1,6 +1,7 @@ #ifndef _EX_IMAGE_H #define _EX_IMAGE_H +void _ex_image_mouse_wheel(Etk_Object *object, void *event, void *data); void _ex_image_mouse_down(Etk_Object *object, void *event, void *data); void _ex_image_mouse_up(Etk_Object *object, void *event, void *data); void _ex_image_mouse_move(Etk_Object *object, void *event, void *data); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- exhibit_main.c 26 Dec 2005 14:48:37 -0000 1.25 +++ exhibit_main.c 28 Dec 2005 11:14:18 -0000 1.26 @@ -587,13 +587,24 @@ ev = event; evas = ecore_evas_get(ETK_WINDOW(e->win)->ecore_evas); - if(!strcmp(ev->key, "t") && evas_key_modifier_is_set(evas_key_modifier_get(evas), "Control")) + if(evas_key_modifier_is_set(evas_key_modifier_get(evas), "Control")) { - Ex_Tab *tab; - - tab = _ex_tab_new(e, e->cur_tab->cur_path); - _ex_main_window_tab_append(e, tab); - _ex_main_populate_files(e); + if(!strcmp(ev->key, "t")) + { + Ex_Tab *tab; + + tab = _ex_tab_new(e, e->cur_tab->cur_path); + _ex_main_window_tab_append(e, tab); + _ex_main_populate_files(e); + } + else if(!strcmp(ev->key, "w")) + { + if(evas_list_count(e->tabs) > 1) + { + //_ex_main_window_tab_remove(e->cur_tab); + //_ex_tab_del(e->cur_tab); + } + } } } @@ -612,6 +623,12 @@ } void +_ex_main_window_tab_remove(Ex_Tab *tab) +{ + +} + +void _ex_main_window_tab_append(Exhibit *e, Ex_Tab *tab) { if(evas_list_count(e->tabs) == 1) =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_tab.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- exhibit_tab.c 26 Dec 2005 13:59:21 -0000 1.3 +++ exhibit_tab.c 28 Dec 2005 11:14:18 -0000 1.4 @@ -44,6 +44,7 @@ etk_signal_connect("mouse_down", ETK_OBJECT(tab->image), ETK_CALLBACK(_ex_image_mouse_down), e); etk_signal_connect("mouse_up", ETK_OBJECT(tab->image), ETK_CALLBACK(_ex_image_mouse_up), e); etk_signal_connect("mouse_move", ETK_OBJECT(tab->image), ETK_CALLBACK(_ex_image_mouse_move), e); + etk_signal_connect("mouse_wheel", ETK_OBJECT(tab->image), ETK_CALLBACK(_ex_image_mouse_wheel), e); etk_image_keep_aspect_set(ETK_IMAGE(tab->image), TRUE); etk_container_add(ETK_CONTAINER(tab->alignment), tab->image); |
From: <enl...@li...> - 2005-12-29 21:46:46
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit Modified Files: configure.in Log Message: good catch Chris! Thanks (= =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/configure.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- configure.in 15 Dec 2005 10:39:10 -0000 1.3 +++ configure.in 29 Dec 2005 21:46:40 -0000 1.4 @@ -97,7 +97,7 @@ AC_DEFINE(HAVE_ECORE, 1, have ECORE) ecore="ECORE " AM_CONDITIONAL(HAVE_ECORE, true) - have_evas="yes" + have_ecore="yes" ecore_libs=`ecore-config --libs` ecore_cflags=`ecore-config --cflags` ], |
From: <enl...@li...> - 2006-01-01 13:24:13
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit_main.c Log Message: exhibit: - too used to this, quit on ctrl+q =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -3 -r1.26 -r1.27 --- exhibit_main.c 28 Dec 2005 11:14:18 -0000 1.26 +++ exhibit_main.c 1 Jan 2006 13:23:50 -0000 1.27 @@ -605,6 +605,10 @@ //_ex_tab_del(e->cur_tab); } } + else if(!strcmp(ev->key, "q")) + { + etk_main_quit(); + } } } |
From: <enl...@li...> - 2006-01-01 23:49:35
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit.h exhibit_file.h exhibit_image.c exhibit_main.c exhibit_main.h exhibit_tab.c exhibit_thumb.c Log Message: exhibit: - cleanup(s) - allow exhit /path/to/file to directly select and display that file. =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- exhibit.h 26 Dec 2005 14:28:55 -0000 1.8 +++ exhibit.h 1 Jan 2006 23:49:22 -0000 1.9 @@ -117,9 +117,10 @@ struct _Ex_Thumb { Exhibit *e; - char *name; - char *image; - Epsilon *ep; + char *name; + char *image; + Etk_Bool selected; + Epsilon *ep; }; #define WINDOW_TITLE "Exhibit" =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_file.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- exhibit_file.h 23 Dec 2005 09:46:14 -0000 1.3 +++ exhibit_file.h 1 Jan 2006 23:49:22 -0000 1.4 @@ -4,5 +4,6 @@ int _ex_file_is_ebg(char *file); int _ex_file_is_viewable(char *file); char *_ex_file_strip_extention(char *path); - +char *_ex_file_get(char *path); + #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_image.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- exhibit_image.c 28 Dec 2005 11:14:17 -0000 1.16 +++ exhibit_image.c 1 Jan 2006 23:49:22 -0000 1.17 @@ -41,7 +41,7 @@ if (ev->z > 0) { row = etk_tree_next_row_get( - etk_tree_selected_row_get(e->cur_tab->itree), + etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)), FALSE, FALSE); etk_tree_row_select(row); etk_tree_row_scroll_to(row, FALSE); @@ -49,7 +49,7 @@ else { row = etk_tree_prev_row_get( - etk_tree_selected_row_get(e->cur_tab->itree), + etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)), FALSE, FALSE); etk_tree_row_select(row); etk_tree_row_scroll_to(row, FALSE); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -3 -r1.27 -r1.28 --- exhibit_main.c 1 Jan 2006 13:23:50 -0000 1.27 +++ exhibit_main.c 1 Jan 2006 23:49:22 -0000 1.28 @@ -220,7 +220,7 @@ e->cur_tab->dir = strdup(dcol_string); etk_tree_clear(ETK_TREE(e->cur_tab->itree)); etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); - _ex_main_populate_files(e); + _ex_main_populate_files(e, NULL); etk_notebook_page_tab_label_set(ETK_NOTEBOOK(e->notebook), e->cur_tab->num, _ex_file_get(e->cur_tab->cur_path)); } @@ -364,15 +364,14 @@ } void -_ex_main_populate_files(Exhibit *e) +_ex_main_populate_files(Exhibit *e, char *selected_file) { char back[PATH_MAX]; DIR *dir; struct dirent *dir_entry; + Etk_Tree_Row *row, *selected_row; -// etk_tree_freeze(ETK_TREE(e->cur_tab->itree)); -// etk_tree_freeze(ETK_TREE(e->cur_tab->dtree)); - + selected_row = NULL; snprintf(back, PATH_MAX, ".."); etk_tree_append(ETK_TREE(e->cur_tab->dtree), e->cur_tab->dcol, ETK_DEFAULT_ICON_SET_FILE, "actions/go-up", back, NULL); @@ -431,7 +430,10 @@ char *thumb; thumb = (char*)epsilon_thumb_file_get(ep); - etk_tree_append(ETK_TREE(e->cur_tab->itree), e->cur_tab->icol, thumb, dir_entry->d_name, NULL); + row = etk_tree_append(ETK_TREE(e->cur_tab->itree), e->cur_tab->icol, thumb, dir_entry->d_name, NULL); + if(selected_file) + if(!strcmp(selected_file, dir_entry->d_name)) + selected_row = row; free(thumb); } else { @@ -442,6 +444,10 @@ thumb->e = e; thumb->name = strdup(dir_entry->d_name); thumb_list = evas_list_append(thumb_list, thumb); + if(!strcmp(selected_file, dir_entry->d_name)) + thumb->selected = TRUE; + else + thumb->selected = FALSE; if(pid == -1) _ex_thumb_generate(); } } @@ -450,6 +456,12 @@ etk_tree_thaw(ETK_TREE(e->cur_tab->dtree)); etk_tree_sort(ETK_TREE(e->cur_tab->dtree), _ex_main_dtree_compare_cb, TRUE, e->cur_tab->dcol, NULL); + if(selected_row) + { + etk_tree_row_select(selected_row); + etk_tree_row_scroll_to(selected_row, TRUE); + } + closedir(dir); } @@ -467,7 +479,7 @@ e->cur_tab->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); etk_tree_clear(ETK_TREE(e->cur_tab->itree)); etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); - _ex_main_populate_files(e); + _ex_main_populate_files(e, NULL); } } @@ -488,7 +500,7 @@ Evas_List *l; path = etk_entry_text_get(ETK_ENTRY(e->entry[0])); - dir = ecore_file_get_dir(path); + dir = (const char*)ecore_file_get_dir((char*)path); file = ecore_file_get_file(path); if(!dir || !strcmp(dir, "")) @@ -549,7 +561,7 @@ e->cur_tab->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); etk_tree_clear(ETK_TREE(e->cur_tab->itree)); etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); - _ex_main_populate_files(e); + _ex_main_populate_files(e, NULL); } } @@ -563,7 +575,7 @@ e->cur_tab->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); etk_tree_clear(ETK_TREE(e->cur_tab->itree)); etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); - _ex_main_populate_files(e); + _ex_main_populate_files(e, NULL); } Etk_Bool @@ -595,7 +607,7 @@ tab = _ex_tab_new(e, e->cur_tab->cur_path); _ex_main_window_tab_append(e, tab); - _ex_main_populate_files(e); + _ex_main_populate_files(e, NULL); } else if(!strcmp(ev->key, "w")) { @@ -619,7 +631,7 @@ Ex_Tab *tab; e = data; - tab = evas_list_nth(e->tabs, etk_notebook_current_page_get(ETK_WIDGET(object))); + tab = evas_list_nth(e->tabs, etk_notebook_current_page_get(ETK_NOTEBOOK(object))); e->cur_tab = tab; _ex_tab_select(tab); @@ -648,7 +660,7 @@ e->tabs = evas_list_append(e->tabs, tab); e->cur_tab = tab; etk_notebook_page_append(ETK_NOTEBOOK(e->notebook), _ex_file_get(e->cur_tab->dir), e->cur_tab->scrolled_view); - etk_notebook_current_page_set(e->notebook, evas_list_count(e->tabs) - 1); + etk_notebook_current_page_set(ETK_NOTEBOOK(e->notebook), evas_list_count(e->tabs) - 1); } void @@ -656,11 +668,15 @@ { Exhibit *e; Ex_Tab *tab; + char *file; e = calloc(1, sizeof(Exhibit)); e->mouse.down = 0; e->menu = NULL; e->tabs = NULL; + + file = NULL; + tab = NULL; e->win = etk_window_new(); etk_window_title_set(ETK_WINDOW(e->win), WINDOW_TITLE " - Image Viewing the Kewl Way!"); @@ -806,12 +822,25 @@ etk_signal_connect("clicked", ETK_OBJECT(e->entry[1]), ETK_CALLBACK(_ex_main_goto_dir_clicked_cb), e); /* create first tab but dont place it in notebook */ - tab = _ex_tab_new(e, dir); + if(ecore_file_is_dir(dir)) + tab = _ex_tab_new(e, dir); + else if(ecore_file_exists(dir)) + { + char *dir2; + + dir2 = ecore_file_get_dir(dir); + tab = _ex_tab_new(e, dir2); + free(dir2); + file = (const char*)ecore_file_get_file((const char*)dir); + } + else + tab = _ex_tab_new(e, "."); + e->cur_tab = tab; e->tabs = evas_list_append(e->tabs, tab); _ex_tab_select(tab); etk_paned_add2(ETK_PANED(tab->e->hpaned), tab->scrolled_view, TRUE); - _ex_main_populate_files(e); + _ex_main_populate_files(e, file); e->hbox = etk_hbox_new(TRUE, 0); etk_box_pack_end(ETK_BOX(e->vbox), e->hbox, FALSE, FALSE, 0); @@ -868,12 +897,7 @@ epsilon_init(); if(argc > 1) - { - if(ecore_file_is_dir(argv[1])) - _ex_main_window_show(argv[1]); - else - _ex_main_window_show(NULL); - } + _ex_main_window_show(argv[1]); else _ex_main_window_show(NULL); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- exhibit_main.h 26 Dec 2005 12:17:29 -0000 1.4 +++ exhibit_main.h 1 Jan 2006 23:49:22 -0000 1.5 @@ -14,7 +14,7 @@ int _ex_main_itree_resol_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); void _ex_main_dtree_item_clicked_cb(Etk_Object *object, Etk_Tree_Row *row, void *data); int _ex_main_dtree_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); -void _ex_main_populate_files(Exhibit *e); +void _ex_main_populate_files(Exhibit *e, char *selected_file); void _ex_main_entry_dir_key_down_cb(Etk_Object *object, void *event, void *data); void _ex_main_goto_dir_clicked_cb(Etk_Object *object, void *data); Etk_Bool _ex_main_window_deleted_cb(void *data); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_tab.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- exhibit_tab.c 28 Dec 2005 11:14:18 -0000 1.4 +++ exhibit_tab.c 1 Jan 2006 23:49:22 -0000 1.5 @@ -4,8 +4,10 @@ _ex_tab_new(Exhibit *e, char *dir) { Ex_Tab *tab; - Etk_Tree_Model *imodel; + Etk_Tree_Model *imodel; + char *file; + file = NULL; tab = calloc(1, sizeof(Ex_Tab)); tab->num = evas_list_count(e->tabs); tab->dirs = NULL; =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_thumb.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- exhibit_thumb.c 26 Dec 2005 12:17:30 -0000 1.4 +++ exhibit_thumb.c 1 Jan 2006 23:49:22 -0000 1.5 @@ -22,8 +22,15 @@ if (ext) { + Etk_Tree_Row *row; + thumb->image = (char*)epsilon_thumb_file_get(thumb->ep); - etk_tree_append(ETK_TREE(thumb->e->cur_tab->itree), thumb->e->cur_tab->icol, thumb->image, thumb->name, NULL); + row = etk_tree_append(ETK_TREE(thumb->e->cur_tab->itree), thumb->e->cur_tab->icol, thumb->image, thumb->name, NULL); + if(thumb->selected) + { + etk_tree_row_select(row); + etk_tree_row_scroll_to(row, TRUE); + } free(thumb->image); free(thumb->name); epsilon_free(thumb->ep); |
From: <enl...@li...> - 2006-01-02 14:47:51
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: Makefile.am exhibit.h exhibit_main.c exhibit_main.h exhibit_menus.c Added Files: exhibit_slideshow.c exhibit_slideshow.h Log Message: exhibit: - couple of bug fixes (and a segv) - add slideshow support (ctrl-s to start / stop, delay is 5.0 secs right now, when options window is added, the user can change that) =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- Makefile.am 26 Dec 2005 12:17:29 -0000 1.3 +++ Makefile.am 2 Jan 2006 14:47:45 -0000 1.4 @@ -16,7 +16,8 @@ exhibit_menus.h \ exhibit_sort.h \ exhibit_thumb.h \ -exhibit_tab.h +exhibit_tab.h \ +exhibit_slideshow.h exhibit_SOURCES = \ exhibit_file.c \ @@ -26,6 +27,7 @@ exhibit_sort.c \ exhibit_thumb.c \ exhibit_tab.c \ +exhibit_slideshow.c \ $(exhibit_includes) exhibit_LDADD = @my_libs@ =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- exhibit.h 1 Jan 2006 23:49:22 -0000 1.9 +++ exhibit.h 2 Jan 2006 14:47:45 -0000 1.10 @@ -72,31 +72,21 @@ Etk_Widget *menu_bar; Etk_Widget *statusbar[4]; Etk_Widget *notebook; -// Etk_Widget *scrolled_view; -// Etk_Widget *alignment; Etk_Widget *table; Etk_Widget *hpaned; Etk_Widget *vpaned; -// Etk_Widget *dtree; -// Etk_Widget *itree; Etk_Widget *entry[2]; Etk_Widget *zoom_in[2]; Etk_Widget *zoom_out[2]; Etk_Widget *fit[2]; Etk_Widget *original[2]; -// Etk_Widget *image; Etk_Widget *sort; Etk_Widget *sizebar; Etk_Widget *resbar; Etk_Widget *zoombar; -// Etk_Tree_Col *dcol; -// Etk_Tree_Col *icol; Etk_Widget *menu; Etk_Widget *win; -// Evas_List *images; -// Evas_List *dirs; - char *dir; char cur_path[PATH_MAX]; @@ -112,6 +102,12 @@ int x; int y; } mouse; + + struct { + double interval; + Ecore_Timer *timer; + Etk_Bool active; + } slideshow; }; struct _Ex_Thumb @@ -146,5 +142,6 @@ #include "exhibit_sort.h" #include "exhibit_thumb.h" #include "exhibit_tab.h" - +#include "exhibit_slideshow.h" + #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -3 -r1.28 -r1.29 --- exhibit_main.c 1 Jan 2006 23:49:22 -0000 1.28 +++ exhibit_main.c 2 Jan 2006 14:47:45 -0000 1.29 @@ -212,8 +212,9 @@ Exhibit *e; e = data; + _ex_slideshow_stop(e); + tree = ETK_TREE(object); - etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), NULL, NULL, &dcol_string, NULL); free(e->dir); @@ -444,8 +445,11 @@ thumb->e = e; thumb->name = strdup(dir_entry->d_name); thumb_list = evas_list_append(thumb_list, thumb); - if(!strcmp(selected_file, dir_entry->d_name)) - thumb->selected = TRUE; + if(selected_file) + { + if(!strcmp(selected_file, dir_entry->d_name)) + thumb->selected = TRUE; + } else thumb->selected = FALSE; if(pid == -1) _ex_thumb_generate(); @@ -558,6 +562,7 @@ if(!strcmp(ev->key, "Return") || !strcmp(ev->key, "KP_Enter")) { + _ex_slideshow_stop(e); e->cur_tab->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); etk_tree_clear(ETK_TREE(e->cur_tab->itree)); etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); @@ -621,6 +626,23 @@ { etk_main_quit(); } + else if(!strcmp(ev->key, "s")) + { + _ex_main_window_slideshow_toggle(e); + } + } +} + +void +_ex_main_window_slideshow_toggle(Exhibit *e) +{ + if(e->slideshow.active) + { + _ex_slideshow_stop(e); + } + else + { + _ex_slideshow_start(e); } } @@ -631,6 +653,7 @@ Ex_Tab *tab; e = data; + _ex_slideshow_stop(e); tab = evas_list_nth(e->tabs, etk_notebook_current_page_get(ETK_NOTEBOOK(object))); e->cur_tab = tab; @@ -674,7 +697,9 @@ e->mouse.down = 0; e->menu = NULL; e->tabs = NULL; - + e->slideshow.active = FALSE; + e->slideshow.interval = 5.0; + file = NULL; tab = NULL; @@ -873,7 +898,7 @@ e->statusbar[2] = etk_statusbar_new(); etk_statusbar_has_resize_grip_set(ETK_STATUSBAR(e->statusbar[2]), FALSE); etk_box_pack_start(ETK_BOX(e->hbox), e->statusbar[2], TRUE, TRUE, 0); - etk_statusbar_push(ETK_STATUSBAR(e->statusbar[2]), "1:1", 0); // <=- temp. + etk_statusbar_push(ETK_STATUSBAR(e->statusbar[2]), "1:1", 0); e->statusbar[3] = etk_statusbar_new(); etk_box_pack_start(ETK_BOX(e->hbox), e->statusbar[3], FALSE, FALSE, 0); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- exhibit_main.h 1 Jan 2006 23:49:22 -0000 1.5 +++ exhibit_main.h 2 Jan 2006 14:47:45 -0000 1.6 @@ -16,6 +16,8 @@ int _ex_main_dtree_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); void _ex_main_populate_files(Exhibit *e, char *selected_file); void _ex_main_entry_dir_key_down_cb(Etk_Object *object, void *event, void *data); +int _ex_main_window_slideshow_next(void *data); +void _ex_main_window_slideshow_toggle(Exhibit *e); void _ex_main_goto_dir_clicked_cb(Etk_Object *object, void *data); Etk_Bool _ex_main_window_deleted_cb(void *data); void _ex_main_window_key_down_cb(Etk_Object *object, void *event, void *data); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_menus.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- exhibit_menus.c 26 Dec 2005 12:17:30 -0000 1.12 +++ exhibit_menus.c 2 Jan 2006 14:47:45 -0000 1.13 @@ -307,8 +307,11 @@ void _ex_menu_toggle_slideshow_cb(Etk_Object *obj, void *data) { + Exhibit *e; EX_MENU_ITEM_GET_RETURN(obj); - printf("toggle slideshow\n"); + + e = data; + _ex_main_window_slideshow_toggle(e); } void |
From: <enl...@li...> - 2006-01-02 14:54:03
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit Modified Files: AUTHORS Log Message: exhibit: - more credits =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/AUTHORS,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- AUTHORS 14 Dec 2005 11:33:28 -0000 1.1 +++ AUTHORS 2 Jan 2006 14:53:55 -0000 1.2 @@ -1,11 +1,16 @@ Main author: +============ Hisham 'CodeWarrior' Mardambey <his...@gm...> Contributions: +============== Simon 'MoOm' Treny <sim...@fr...> Thanks: -Etk - Simon 'MoOm' Treny <sim...@fr...> -Epsilon - Corey Donohoe <at...@at...> -Testing - Brian Miculcy <mor...@gm...> - Valtteri Vainikka <val...@he...> +======= +Etk Simon 'MoOm' Treny <sim...@fr...> +Epsilon Corey 'atmos' Donohoe <at...@at...> +Misc EFL Casten 'The Rasterman' Haitzler <ra...@ra...> + team +Testing Brian 'morlenxus' Miculcy <mor...@gm...> + Valtteri 'vrln' Vainikka <val...@he...> +Tabs Concept Tuomo 'Vendu' Venalainen <http://wizard.nightelves.org> |
From: <enl...@li...> - 2006-01-02 23:50:26
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: exhibit_main.c Log Message: exhibit: - null check =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- exhibit_main.c 2 Jan 2006 14:47:45 -0000 1.29 +++ exhibit_main.c 2 Jan 2006 23:50:18 -0000 1.30 @@ -847,19 +847,25 @@ etk_signal_connect("clicked", ETK_OBJECT(e->entry[1]), ETK_CALLBACK(_ex_main_goto_dir_clicked_cb), e); /* create first tab but dont place it in notebook */ - if(ecore_file_is_dir(dir)) - tab = _ex_tab_new(e, dir); - else if(ecore_file_exists(dir)) - { - char *dir2; - - dir2 = ecore_file_get_dir(dir); - tab = _ex_tab_new(e, dir2); - free(dir2); - file = (const char*)ecore_file_get_file((const char*)dir); - } - else + if(dir) + { + if(ecore_file_is_dir(dir)) + tab = _ex_tab_new(e, dir); + else if(ecore_file_exists(dir)) + { + char *dir2; + + dir2 = ecore_file_get_dir(dir); + tab = _ex_tab_new(e, dir2); + free(dir2); + file = (const char*)ecore_file_get_file((const char*)dir); + } + else + tab = _ex_tab_new(e, "."); + } + else tab = _ex_tab_new(e, "."); + e->cur_tab = tab; e->tabs = evas_list_append(e->tabs, tab); |
From: <enl...@li...> - 2006-01-03 15:02:23
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: Makefile.am exhibit.h exhibit_file.c exhibit_file.h exhibit_image.c exhibit_image.h exhibit_main.c exhibit_menus.c exhibit_menus.h Added Files: exhibit_favorites.c exhibit_favorites.h Log Message: exhibit: - add favorites support. - add / delete from favorites. - browse to favorites. - todo: subdirs in favorites. =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/Makefile.am,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- Makefile.am 2 Jan 2006 14:47:45 -0000 1.4 +++ Makefile.am 3 Jan 2006 15:02:15 -0000 1.5 @@ -17,7 +17,8 @@ exhibit_sort.h \ exhibit_thumb.h \ exhibit_tab.h \ -exhibit_slideshow.h +exhibit_slideshow.h \ +exhibit_favorites.h exhibit_SOURCES = \ exhibit_file.c \ @@ -28,6 +29,7 @@ exhibit_thumb.c \ exhibit_tab.c \ exhibit_slideshow.c \ +exhibit_favorites.c \ $(exhibit_includes) exhibit_LDADD = @my_libs@ =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- exhibit.h 2 Jan 2006 14:47:45 -0000 1.10 +++ exhibit.h 3 Jan 2006 15:02:15 -0000 1.11 @@ -87,8 +87,7 @@ Etk_Widget *menu; Etk_Widget *win; - char *dir; - char cur_path[PATH_MAX]; + char fav_path[PATH_MAX]; int zoom; int brightness; @@ -133,6 +132,8 @@ #define DATA8 unsigned char #endif +#define E_FREE(ptr) do { if(ptr) { free(ptr); ptr = NULL; } } while(0); + #include "exhibit_menus.h" #include "exhibit_file.h" #include "exhibit.h" @@ -143,5 +144,6 @@ #include "exhibit_thumb.h" #include "exhibit_tab.h" #include "exhibit_slideshow.h" +#include "exhibit_favorites.h" #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_file.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- exhibit_file.c 26 Dec 2005 14:28:55 -0000 1.4 +++ exhibit_file.c 3 Jan 2006 15:02:15 -0000 1.5 @@ -1,6 +1,31 @@ #include "exhibit.h" #include <Edje.h> +char *viewables[] = +{ + ".jpg", + ".png", + ".edj" +}; + +int +_ex_file_is_viewable(char *file) +{ + char *ext; + int i; + + ext = strrchr(file, '.'); + if(!ext) return 0; + + for(i = 0; i < VIEWABLES; i++) + { + if(!strcasecmp(ext, viewables[i])) + return 1; + } + + return 0; +} + int _ex_file_is_ebg(char *file) { =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_file.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- exhibit_file.h 1 Jan 2006 23:49:22 -0000 1.4 +++ exhibit_file.h 3 Jan 2006 15:02:15 -0000 1.5 @@ -1,8 +1,8 @@ #ifndef _EX_FILE_H #define _EX_FILE_H -int _ex_file_is_ebg(char *file); int _ex_file_is_viewable(char *file); +int _ex_file_is_ebg(char *file); char *_ex_file_strip_extention(char *path); char *_ex_file_get(char *path); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_image.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- exhibit_image.c 1 Jan 2006 23:49:22 -0000 1.17 +++ exhibit_image.c 3 Jan 2006 15:02:15 -0000 1.18 @@ -78,11 +78,14 @@ { Etk_Widget *menu_item; Etk_Widget *submenu; +#if 0 + /* do this better */ if(e->menu) { etk_menu_popup(ETK_MENU(e->menu)); return; } +#endif e->menu = etk_menu_new(); menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Sort"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_run_in_cb), e); @@ -107,6 +110,9 @@ _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Brighten"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_brighten_cb), e); //_ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Darken"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_darken_cb), e); _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), NULL, NULL); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Add to favorites"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_add_to_fav_cb), e); + if(_ex_image_is_favorite(e)) + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Remove from favorites"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_remove_from_fav_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Set as wallpaper"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu), ETK_CALLBACK(_ex_menu_set_wallpaper_cb), e); etk_menu_popup(ETK_MENU(e->menu)); } @@ -773,3 +779,20 @@ exit(0); } } + +Etk_Bool +_ex_image_is_favorite(Exhibit *e) +{ + Etk_Tree_Row *r; + char *icol_string; + char path[PATH_MAX]; + + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); + if(!r) return FALSE; + + etk_tree_row_fields_get(r, etk_tree_nth_col_get(ETK_TREE(e->cur_tab->itree), 0), NULL, &icol_string, etk_tree_nth_col_get(ETK_TREE(e->cur_tab->itree), 1),NULL); + snprintf(path, sizeof(path), "%s/%s", e->fav_path, icol_string); + if(ecore_file_exists(path)) + return TRUE; + return FALSE; +} =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_image.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- exhibit_image.h 28 Dec 2005 11:14:18 -0000 1.5 +++ exhibit_image.h 3 Jan 2006 15:02:15 -0000 1.6 @@ -14,5 +14,6 @@ void _ex_image_zoom(Etk_Image *im, int zoom); void _ex_image_brightness(Etk_Image *im, int brightness); void _ex_image_wallpaper_set(Etk_Image *im); - +Etk_Bool _ex_image_is_favorite(Exhibit *e); + #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -3 -r1.30 -r1.31 --- exhibit_main.c 2 Jan 2006 23:50:18 -0000 1.30 +++ exhibit_main.c 3 Jan 2006 15:02:15 -0000 1.31 @@ -6,15 +6,7 @@ Ecore_Evas *ee_buf; Evas *evas_buf; - -char *viewables[] = -{ - ".jpg", - ".png", - ".edj" -}; - -Evas_List *event_handlers; +Evas_List *event_handlers; void _ex_main_statusbar_zoom_update(Exhibit *e) @@ -217,7 +209,7 @@ tree = ETK_TREE(object); etk_tree_row_fields_get(row, etk_tree_nth_col_get(tree, 0), NULL, NULL, &dcol_string, NULL); - free(e->dir); + E_FREE(e->cur_tab->dir); e->cur_tab->dir = strdup(dcol_string); etk_tree_clear(ETK_TREE(e->cur_tab->itree)); etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); @@ -346,24 +338,6 @@ return -1; } -int -_ex_file_is_viewable(char *file) -{ - char *ext; - int i; - - ext = strrchr(file, '.'); - if(!ext) return 0; - - for(i = 0; i < VIEWABLES; i++) - { - if(!strcasecmp(ext, viewables[i])) - return 1; - } - - return 0; -} - void _ex_main_populate_files(Exhibit *e, char *selected_file) { @@ -435,7 +409,7 @@ if(selected_file) if(!strcmp(selected_file, dir_entry->d_name)) selected_row = row; - free(thumb); + E_FREE(thumb); } else { Ex_Thumb *thumb; @@ -557,7 +531,7 @@ } } - free(dir); + E_FREE(dir); } if(!strcmp(ev->key, "Return") || !strcmp(ev->key, "KP_Enter")) @@ -630,6 +604,17 @@ { _ex_main_window_slideshow_toggle(e); } + else if(!strcmp(ev->key, "d")) + { + Etk_Tree_Row *r; + char *icol_string; + + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); + if(!r) return; + + etk_tree_row_fields_get(r, etk_tree_nth_col_get(ETK_TREE(e->cur_tab->itree), 0), NULL, &icol_string, etk_tree_nth_col_get(ETK_TREE(e->cur_tab->itree), 1),NULL); + _ex_favorites_add(e, icol_string); + } } } @@ -692,6 +677,7 @@ Exhibit *e; Ex_Tab *tab; char *file; + char *homedir; e = calloc(1, sizeof(Exhibit)); e->mouse.down = 0; @@ -700,6 +686,23 @@ e->slideshow.active = FALSE; e->slideshow.interval = 5.0; + homedir = getenv("HOME"); + if (!homedir) + snprintf(e->fav_path, sizeof(e->fav_path), "%s", "/tmp/exhibit_favorites"); + else + { + snprintf(e->fav_path, sizeof(e->fav_path), "%s/.e", homedir); + if(!ecore_file_is_dir(e->fav_path)) + ecore_file_mkdir(e->fav_path); + snprintf(e->fav_path, sizeof(e->fav_path), "%s/.e/exhibit", homedir); + if(!ecore_file_is_dir(e->fav_path)) + ecore_file_mkdir(e->fav_path); + snprintf(e->fav_path, sizeof(e->fav_path), "%s/.e/exhibit/favorites", homedir); + } + + if(!ecore_file_is_dir(e->fav_path)) + ecore_file_mkdir(e->fav_path); + file = NULL; tab = NULL; @@ -774,15 +777,17 @@ _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Size"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_size_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Name"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_name_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Resolution"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(submenu), ETK_CALLBACK(_ex_sort_resol_cb), e); - - + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Zoom in"), EX_IMAGE_ZOOM_IN, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_zoom_in_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Zoom out"), EX_IMAGE_ZOOM_OUT, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_zoom_out_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Zoom 1:1"), EX_IMAGE_ONE_TO_ONE, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_zoom_one_to_one_cb), e); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Fit to window"), EX_IMAGE_FIT_TO_WINDOW, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_fit_to_window_cb), e); _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), NULL, NULL); _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Toggle slideshow"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_toggle_slideshow_cb), e); - _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Refresh"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_refresh_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Refresh"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_refresh_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_SEPERATOR, NULL, ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), NULL, NULL); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Add to favorites"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_add_to_fav_cb), e); + _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("View favorites"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menu), ETK_CALLBACK(_ex_menu_go_to_fav_cb), e); menu_item = _ex_menu_item_new(EX_MENU_ITEM_NORMAL, _("Help"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(e->menu_bar), NULL, NULL); menu = etk_menu_new(); @@ -857,7 +862,7 @@ dir2 = ecore_file_get_dir(dir); tab = _ex_tab_new(e, dir2); - free(dir2); + E_FREE(dir2); file = (const char*)ecore_file_get_file((const char*)dir); } else =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_menus.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- exhibit_menus.c 2 Jan 2006 14:47:45 -0000 1.13 +++ exhibit_menus.c 3 Jan 2006 15:02:15 -0000 1.14 @@ -126,12 +126,8 @@ EX_MENU_ITEM_GET_RETURN(obj); e = (Exhibit *)data; - if (e) - { - if (e->dir) - free(e->dir); - free(e); - } + if (e) + free(e); etk_main_quit(); } @@ -322,6 +318,56 @@ } void +_ex_menu_add_to_fav_cb(Etk_Object *obj, void *data) +{ + Exhibit *e; + Etk_Tree_Row *r; + char *icol_string; + EX_MENU_ITEM_GET_RETURN(obj); + + e = data; + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); + if(!r) return; + + etk_tree_row_fields_get(r, etk_tree_nth_col_get(ETK_TREE(e->cur_tab->itree), 0), NULL, &icol_string, etk_tree_nth_col_get(ETK_TREE(e->cur_tab->itree), 1),NULL); + _ex_favorites_add(e, icol_string); + //free(icol_string); +} + +void +_ex_menu_remove_from_fav_cb(Etk_Object *obj, void *data) +{ + Exhibit *e; + Etk_Tree_Row *r; + char *icol_string; + EX_MENU_ITEM_GET_RETURN(obj); + + e = data; + r = etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)); + if(!r) return; + + etk_tree_row_fields_get(r, etk_tree_nth_col_get(ETK_TREE(e->cur_tab->itree), 0), NULL, &icol_string, etk_tree_nth_col_get(ETK_TREE(e->cur_tab->itree), 1),NULL); + _ex_favorites_del(e, icol_string); + //free(icol_string); +} + +void +_ex_menu_go_to_fav_cb(Etk_Object *obj, void *data) +{ + Exhibit *e; + EX_MENU_ITEM_GET_RETURN(obj); + + e = data; + + _ex_slideshow_stop(e); + E_FREE(e->cur_tab->dir); + e->cur_tab->dir = strdup(e->fav_path); + etk_tree_clear(ETK_TREE(e->cur_tab->itree)); + etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); + _ex_main_populate_files(e, NULL); +} + +void _ex_menu_release_notes_cb(Etk_Object *obj, void *data) { EX_MENU_ITEM_GET_RETURN(obj); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_menus.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- exhibit_menus.h 19 Dec 2005 14:01:30 -0000 1.3 +++ exhibit_menus.h 3 Jan 2006 15:02:15 -0000 1.4 @@ -32,6 +32,9 @@ void _ex_menu_fit_to_window_cb(Etk_Object *obj, void *data); void _ex_menu_toggle_slideshow_cb(Etk_Object *obj, void *data); void _ex_menu_refresh_cb(Etk_Object *obj, void *data); +void _ex_menu_add_to_fav_cb(Etk_Object *obj, void *data); +void _ex_menu_remove_from_fav_cb(Etk_Object *obj, void *data); +void _ex_menu_go_to_fav_cb(Etk_Object *obj, void *data); void _ex_menu_release_notes_cb(Etk_Object *obj, void *data); void _ex_menu_about_cb(Etk_Object *obj, void *data); |
From: <enl...@li...> - 2006-01-06 14:38:41
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/exhibit/src/bin Modified Files: Makefile.am exhibit.h exhibit_main.c Added Files: exhibit_options.c exhibit_options.h Log Message: exhibit: - begin options work - rename class (better eap support, thanks morlenxus) =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/Makefile.am,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- Makefile.am 3 Jan 2006 15:02:15 -0000 1.5 +++ Makefile.am 6 Jan 2006 14:38:34 -0000 1.6 @@ -18,7 +18,8 @@ exhibit_thumb.h \ exhibit_tab.h \ exhibit_slideshow.h \ -exhibit_favorites.h +exhibit_favorites.h \ +exhibit_options.h exhibit_SOURCES = \ exhibit_file.c \ @@ -30,6 +31,7 @@ exhibit_tab.c \ exhibit_slideshow.c \ exhibit_favorites.c \ +exhibit_options.c \ $(exhibit_includes) exhibit_LDADD = @my_libs@ =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- exhibit.h 3 Jan 2006 15:02:15 -0000 1.11 +++ exhibit.h 6 Jan 2006 14:38:34 -0000 1.12 @@ -30,7 +30,15 @@ #define ETK_DEFAULT_ICON_SET_FILE ETK_PACKAGE_DATA_DIR "/stock_icons/default.edj" +#define EX_DEFAULT_BLUR_THRESH 2 +#define EX_DEFAULT_SHARPEN_THRESH 2 +#define EX_DEFAULT_BRIGHTEN_THRESH 100 +#define EX_DEFAULT_SLIDE_INTERVAL 5.0 +#define EX_DEFAULT_COMMENTS_VISIBLE 0 + + typedef struct _Exhibit Exhibit; +typedef struct _Ex_Options Ex_Options; typedef struct _Ex_Tab Ex_Tab; typedef struct _Ex_Thumb Ex_Thumb; typedef enum _Ex_Images @@ -41,6 +49,24 @@ EX_IMAGE_ZOOM_OUT = -4 } Ex_Images; +struct _Ex_Options +{ + char *app1; + char *app2; + char *app3; + char *app4; + + char *fav_path; + + double blur_thresh; + double sharpen_thresh; + double brighten_thresh; + + double slide_interval; + + int comments_visible; +}; + struct _Ex_Tab { char *dir; @@ -96,6 +122,8 @@ Evas_List *tabs; Ex_Tab *cur_tab; + Ex_Options *options; + struct { int down; int x; @@ -106,7 +134,7 @@ double interval; Ecore_Timer *timer; Etk_Bool active; - } slideshow; + } slideshow; }; struct _Ex_Thumb @@ -145,5 +173,6 @@ #include "exhibit_tab.h" #include "exhibit_slideshow.h" #include "exhibit_favorites.h" +#include "exhibit_options.h" #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -3 -r1.31 -r1.32 --- exhibit_main.c 3 Jan 2006 15:02:15 -0000 1.31 +++ exhibit_main.c 6 Jan 2006 14:38:34 -0000 1.32 @@ -708,7 +708,7 @@ e->win = etk_window_new(); etk_window_title_set(ETK_WINDOW(e->win), WINDOW_TITLE " - Image Viewing the Kewl Way!"); - etk_window_wmclass_set(ETK_WINDOW(e->win), "Exhibit", "Exhibit"); + etk_window_wmclass_set(ETK_WINDOW(e->win), "exhibit", "Exhibit"); etk_window_resize(ETK_WINDOW(e->win), WINDOW_WIDTH, WINDOW_HEIGHT); etk_signal_connect("delete_event", ETK_OBJECT(e->win), ETK_CALLBACK(_ex_main_window_deleted_cb), e); etk_signal_connect("key_down", ETK_OBJECT(e->win), ETK_CALLBACK(_ex_main_window_key_down_cb), e); |
From: <enl...@li...> - 2006-01-16 00:52:24
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk/src/lib Modified Files: etk_image.c Log Message: - nasty float was causing calculation problems that would remove a pixel from the image's width / height =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_image.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- etk_image.c 15 Jan 2006 11:07:16 -0000 1.13 +++ etk_image.c 16 Jan 2006 00:52:15 -0000 1.14 @@ -482,12 +482,12 @@ { if (image->keep_aspect) { - float aspect_ratio; + double aspect_ratio; int image_w, image_h; int new_size; evas_object_image_size_get(image->image_object, &image_w, &image_h); - aspect_ratio = (float)image_w / image_h; + aspect_ratio = (double)image_w / image_h; if (geometry.h * aspect_ratio > geometry.w) { |
From: <enl...@li...> - 2006-01-16 01:15:24
|
Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto Dir : e17/proto/etk/src/lib Modified Files: etk_image.c Log Message: - make sure we have a double =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/etk/src/lib/etk_image.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- etk_image.c 16 Jan 2006 00:52:15 -0000 1.14 +++ etk_image.c 16 Jan 2006 01:15:12 -0000 1.15 @@ -487,7 +487,7 @@ int new_size; evas_object_image_size_get(image->image_object, &image_w, &image_h); - aspect_ratio = (double)image_w / image_h; + aspect_ratio = (double)image_w / (double)image_h; if (geometry.h * aspect_ratio > geometry.w) { |