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); ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs