Enlightenment CVS committal Author : handyande Project : misc Module : enotes
Dir : misc/enotes/src Modified Files: note.c note.h saveload.c saveload.h Log Message: Merge the two save / load dialogs This needs more work, but makes things easier to follow. There will be duplicates for now if you have a saved note visible. Sorting... =================================================================== RCS file: /cvsroot/enlightenment/misc/enotes/src/note.c,v retrieving revision 1.57 retrieving revision 1.58 diff -u -3 -r1.57 -r1.58 --- note.c 12 Mar 2006 17:20:46 -0000 1.57 +++ note.c 15 Mar 2006 01:25:28 -0000 1.58 @@ -91,19 +91,8 @@ free(p); gbl_notes = evas_list_remove_list(gbl_notes, note); - /** - * FIXME: When you can get the row and its child text, compare - * it to the ewl_text_text_get(p->title) value and remove the row - * from the tree at this point. Reporting that you've done so with - * dml ("Removed note from save/load list", 2); or something. When ewl - * will let you do these things. - */ - - if (saveload != NULL) { - dml("Removing note entry from saveload list", 2); - ewl_tree_row_destroy((Ewl_Tree *) saveload->tree, - p->saveload_row); - } + /* FIXME more intelligent things once we have sorted saveload */ + ewl_saveload_revert(NULL, NULL, NULL); /* Check if it was the last note */ if (evas_list_next(note) == NULL && evas_list_prev(note) == NULL && @@ -317,7 +306,9 @@ if (saveload != NULL) { char *title; title = get_title_by_note(*note); - setup_saveload_opt(saveload->tree, title, *note); + + /* FIXME more intelligent things once we have sorted saveload */ + ewl_saveload_revert(NULL, NULL, NULL); dml("Added new note to saveload list", 2); if (title) =================================================================== RCS file: /cvsroot/enlightenment/misc/enotes/src/note.h,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- note.h 3 Feb 2006 22:19:15 -0000 1.24 +++ note.h 15 Mar 2006 01:25:28 -0000 1.25 @@ -79,7 +79,6 @@ Ewl_Widget *content; Ewl_Widget *pane; - Ewl_Row *saveload_row; Menu *menu; /* Comparison Strings and Timer */ =================================================================== RCS file: /cvsroot/enlightenment/misc/enotes/src/saveload.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- saveload.c 25 Oct 2005 01:07:53 -0000 1.23 +++ saveload.c 15 Mar 2006 01:25:28 -0000 1.24 @@ -16,10 +16,6 @@ char *saveload_selected; SaveLoad *saveload = NULL; -char *load_selected; -Load *load = NULL; - - /** SAVE/LOAD WINDOW **/ @@ -95,6 +91,7 @@ saveload_setup_button(saveload->hbox, &saveload->savebtn, "Save."); saveload_setup_button(saveload->hbox, &saveload->loadbtn, "Load."); + saveload_setup_button(saveload->hbox, &saveload->deletebtn, "Delete."); saveload_setup_button(saveload->hbox, &saveload->refreshbtn, "Refresh."); saveload_setup_button(saveload->hbox, &saveload->closebtn, "Close."); @@ -112,7 +109,9 @@ ewl_callback_append(saveload->savebtn, EWL_CALLBACK_CLICKED, ewl_saveload_save, NULL); ewl_callback_append(saveload->loadbtn, EWL_CALLBACK_CLICKED, - ewl_saveload_load, NULL); + ewl_load_load, NULL); + ewl_callback_append(saveload->deletebtn, EWL_CALLBACK_CLICKED, + ewl_load_delete, NULL); return; } @@ -155,6 +154,8 @@ } } } + + fill_load_tree(); return; } @@ -171,7 +172,7 @@ setup_saveload_opt(Ewl_Widget * tree, char *caption, Evas_List * p) { Ewl_Widget *capt; - Note *d = evas_list_data(p); + Ewl_Row *row; capt = (Ewl_Widget *) ewl_text_new(); ewl_text_text_set(EWL_TEXT(capt), caption); @@ -179,10 +180,8 @@ ewl_saveload_listitem_click, NULL); ewl_object_fill_policy_set((Ewl_Object *) capt, EWL_FLAG_FILL_ALL); ewl_widget_show(capt); - d->saveload_row = - (Ewl_Row *) ewl_tree_row_add((Ewl_Tree *) tree, 0, &capt); - ewl_object_fill_policy_set((Ewl_Object *) d->saveload_row, - EWL_FLAG_FILL_ALL); + row = (Ewl_Row *) ewl_tree_row_add((Ewl_Tree *) tree, 0, &capt); + ewl_object_fill_policy_set((Ewl_Object *) row, EWL_FLAG_FILL_ALL); return; } @@ -199,10 +198,17 @@ void ewl_saveload_revert(Ewl_Widget * widget, void *ev_data, void * ud) { - Ewl_Widget *p=ud; dml("Refreshing the Saveload List", 2); - ewl_container_reset((Ewl_Container *) p); + ewl_container_reset((Ewl_Container *) saveload->tree); + ewl_widget_enable(saveload->savebtn); + ewl_widget_state_set(saveload->savebtn, "enabled"); + ewl_widget_enable(saveload->loadbtn); + ewl_widget_state_set(saveload->loadbtn, "enabled"); + + saveload_selected = NULL; + ewl_text_text_set((Ewl_Text *) saveload->txt_selected, "Selected: N/A"); + ewl_tree_selected_clear((Ewl_Tree *) saveload->tree); fill_saveload_tree(); return; @@ -237,6 +243,11 @@ { char *tmp = malloc(MAX_TITLE); + ewl_widget_enable(saveload->savebtn); + ewl_widget_state_set(saveload->savebtn, "enabled"); + ewl_widget_disable(saveload->loadbtn); + ewl_widget_state_set(saveload->loadbtn, "disabled"); + saveload_selected = ewl_text_text_get((Ewl_Text *) o); snprintf(tmp, MAX_TITLE, "Selected: %s", saveload_selected); ewl_text_text_set((Ewl_Text *) saveload->txt_selected, tmp); @@ -244,20 +255,6 @@ return; } -/** - * @param o: Widget which was clicked. We don't use this. - * @param ev_data: Event data, we don't use this. - * @param null: A NULL pointer to please the compiler. We don't use this. - * @brief: The load button callback, we call the function which does the - * work (setup_load) so we get a nice load window up. :-) - */ -void -ewl_saveload_load(Ewl_Widget * o, void *ev_data, void *null) -{ - setup_load(); - return; -} - void ewl_saveload_save_by_name(char *p) { @@ -308,105 +305,6 @@ return; } - - -/** LOAD WINDOW **/ - -/** - * @brief: Checks whether the load window is open and if not, opens it. - */ -void -setup_load(void) -{ - if (load == NULL) { - dml("Opening the Load Note Window", 2); - load = malloc(sizeof(Load)); - setup_load_win(); - fill_load_tree(); - } else { - ewl_window_raise((Ewl_Window*)load->win); - } - return; -} - -/** - * @brief: Sets up the widgets, objects, callbacks and window for the - * loading window. - */ -void -setup_load_win(void) -{ - char *headers[1]; - - /* Setup the Window */ - load->win = ewl_window_new(); - ewl_window_title_set((Ewl_Window *) load->win, "E-Notes Load"); - ewl_object_fill_policy_set((Ewl_Object *) load->win, EWL_FLAG_FILL_ALL); - ewl_object_size_request((Ewl_Object *) load->win, 400, 350); - ewl_widget_show(load->win); - - load->vbox = ewl_vbox_new(); - ewl_container_child_append((Ewl_Container *) load->win, load->vbox); - ewl_object_fill_policy_set((Ewl_Object *) load->vbox, - EWL_FLAG_FILL_ALL); - ewl_widget_show(load->vbox); - - ewl_callback_append(load->win, EWL_CALLBACK_CONFIGURE, - save_and_load_move_embed, load->vbox); - - load->tree = ewl_tree_new(1); - ewl_container_child_append((Ewl_Container *) load->vbox, load->tree); - - headers[0] = strdup("Note Title"); - ewl_tree_headers_set((Ewl_Tree *) load->tree, headers); - free(headers[0]); - - ewl_widget_show(load->tree); - - load->txt_selected = ewl_text_new(); - ewl_text_text_set(EWL_TEXT(load->txt_selected), "Selected: N/A"); - ewl_container_child_append((Ewl_Container *) load->vbox, - load->txt_selected); - ewl_widget_show(load->txt_selected); - - load->hbox = ewl_hbox_new(); - ewl_container_child_append((Ewl_Container *) load->vbox, load->hbox); - ewl_object_fill_policy_set((Ewl_Object *) load->hbox, - EWL_FLAG_FILL_VSHRINK); - ewl_object_fill_policy_set((Ewl_Object *) load->hbox, - EWL_FLAG_FILL_HFILL); - ewl_widget_show(load->hbox); - - load_setup_button(load->hbox, &load->loadbtn, "Load."); - load_setup_button(load->hbox, &load->deletebtn, "Delete."); - load_setup_button(load->hbox, &load->refreshbtn, "Refresh."); - load_setup_button(load->hbox, &load->closebtn, "Close."); - - /* EWL Callbacks */ - ewl_callback_append(load->refreshbtn, EWL_CALLBACK_CLICKED, - ewl_load_revert, load->tree); - ewl_callback_append(load->closebtn, EWL_CALLBACK_CLICKED, - ewl_load_close, load->win); - ewl_callback_append(load->win, EWL_CALLBACK_DELETE_WINDOW, - ewl_load_close, load->win); - ewl_callback_append(load->loadbtn, EWL_CALLBACK_CLICKED, - ewl_load_load, NULL); - ewl_callback_append(load->deletebtn, EWL_CALLBACK_CLICKED, - ewl_load_delete, NULL); - - return; -} - -void -load_setup_button(Ewl_Widget * c, Ewl_Widget ** b, char *label) -{ - *b = ewl_button_new(); - ewl_button_label_set(EWL_BUTTON(*b), label); - ewl_container_child_append((Ewl_Container *) c, *b); - ewl_widget_show(*b); - return; -} - /** * @param: Reads through all of the saved notes in the xml storage file * and in a cycle appends new rows to the tree. @@ -428,7 +326,7 @@ sprintf(targetf, "%s/%s", target, p->d_name); stat(targetf, &buf); if (S_ISREG(buf.st_mode)) { - setup_load_opt(load->tree, p->d_name); + setup_load_opt(saveload->tree, p->d_name); } } closedir(dir); @@ -449,48 +347,16 @@ setup_load_opt(Ewl_Widget * tree, char *caption) { Ewl_Widget *capt; + Ewl_Row *row; capt = ewl_text_new(); ewl_text_text_set(EWL_TEXT(capt), caption); ewl_callback_append(capt, EWL_CALLBACK_CLICKED, ewl_load_listitem_click, NULL); + ewl_object_fill_policy_set((Ewl_Object *) capt, EWL_FLAG_FILL_ALL); ewl_widget_show(capt); - ewl_tree_row_add((Ewl_Tree *) tree, 0, &capt); - - return; -} - -/** - * @param widget: The widget clicked (we don't use this). - * @param ev_data: Event data, we don't use this either. - * @param p: Thats our data, its the tree we're going to empty and refill. - * @brief: Callback for the refresh button being clicked. This is the - * complete refreshing, so we clear all contents of the tree and - * rebuild it from scratch. :) - */ -void -ewl_load_revert(Ewl_Widget * widget, void *ev_data, void*ud) -{ - dml("Refreshing the Load Note List", 2); - ewl_container_reset((Ewl_Container *) load->tree); - fill_load_tree(); - return; -} - -/** - * @param o: The widget clicked. We don't use this. - * @param ev_data: The event data, we don't use this either. - * @param ee: Our predefined Ecore_Evas (window) which has been closed, - * so we can supply it to the ecore close callback. :-) - * @brief: Ewl close button clicked callback. So we call the ecore close - * callback which does the work. :) - */ -void -ewl_load_close(Ewl_Widget * o, void *ev_data, void*ud) -{ - ewl_widget_destroy(load->win); - free(load); - load = NULL; + row = (Ewl_Row *) ewl_tree_row_add((Ewl_Tree *) tree, 0, &capt); + ewl_object_fill_policy_set((Ewl_Object *) row, EWL_FLAG_FILL_ALL); return; } @@ -508,11 +374,11 @@ char *p = malloc(PATH_MAX); dml("Loading Saved Note", 2); - if (load_selected == NULL) { + if (saveload_selected == NULL) { free(p); return; } - sprintf(p, "%s/.e/apps/enotes/notes/%s", getenv("HOME"), load_selected); + sprintf(p, "%s/.e/apps/enotes/notes/%s", getenv("HOME"), saveload_selected); note_load(p); /* This function calls the animation */ free(p); return; @@ -522,7 +388,7 @@ * @param o: Ewl widget which was clicked. We don't use this. * @param ev_data: The event data. We don't use this either. * @param null: A NULL pointer to please the compiler. We don't use this. - * @brief: When a row from the tree is clicked, we set the load_selected + * @brief: When a row from the tree is clicked, we set the saveload_selected * string so when we wanna do soemthing, we know what to do it to. */ void @@ -530,9 +396,14 @@ { char *tmp = malloc(MAX_TITLE); - load_selected = ewl_text_text_get((Ewl_Text *) o); - snprintf(tmp, MAX_TITLE, "Selected: %s", load_selected); - ewl_text_text_set((Ewl_Text *) load->txt_selected, tmp); + ewl_widget_disable(saveload->savebtn); + ewl_widget_state_set(saveload->savebtn, "disabled"); + ewl_widget_enable(saveload->loadbtn); + ewl_widget_state_set(saveload->loadbtn, "enabled"); + + saveload_selected = ewl_text_text_get((Ewl_Text *) o); + snprintf(tmp, MAX_TITLE, "Selected: %s", saveload_selected); + ewl_text_text_set((Ewl_Text *) saveload->txt_selected, tmp); free(tmp); return; } @@ -549,10 +420,10 @@ char *p = malloc(PATH_MAX); dml("Deleting Saved Note", 2); - sprintf(p, "%s/.e/apps/enotes/notes/%s", getenv("HOME"), load_selected); + sprintf(p, "%s/.e/apps/enotes/notes/%s", getenv("HOME"), saveload_selected); unlink(p); - ewl_load_revert(NULL, NULL, NULL); + ewl_saveload_revert(NULL, NULL, NULL); free(p); return; } =================================================================== RCS file: /cvsroot/enlightenment/misc/enotes/src/saveload.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- saveload.h 25 Oct 2005 01:07:53 -0000 1.11 +++ saveload.h 15 Mar 2006 01:25:28 -0000 1.12 @@ -43,25 +43,13 @@ Ewl_Widget *hbox; Ewl_Widget *savebtn; Ewl_Widget *loadbtn; + Ewl_Widget *deletebtn; Ewl_Widget *refreshbtn; Ewl_Widget *closebtn; } SaveLoad; -typedef struct { - Ewl_Widget *win; - Ewl_Widget *vbox; - Ewl_Widget *txt_selected; - Ewl_Widget *tree; - Ewl_Widget *hbox; - Ewl_Widget *loadbtn; - Ewl_Widget *refreshbtn; - Ewl_Widget *deletebtn; - Ewl_Widget *closebtn; -} Load; - extern MainConfig *main_config; extern SaveLoad *saveload; -extern Load *load; /** SAVE/LOAD **/ @@ -76,7 +64,6 @@ void *ud); void ewl_saveload_close(Ewl_Widget * o, void *ev_data, void *ud); -void ewl_saveload_load(Ewl_Widget * o, void *ev_data, void *null); void ewl_saveload_save(Ewl_Widget * o, void *ev_data, void *null); void ewl_saveload_save_by_name(char *p); void ewl_saveload_listitem_click(Ewl_Widget * o, void *ev_data, @@ -84,14 +71,8 @@ /** LOAD **/ -void setup_load(void); -void setup_load_win(void); -void load_setup_button(Ewl_Widget * c, Ewl_Widget ** b, char *label); void fill_load_tree(void); void setup_load_opt(Ewl_Widget * tree, char *caption); -void ewl_load_revert(Ewl_Widget * widget, void *ev_data, - void*ud); -void ewl_load_close(Ewl_Widget * o, void *ev_data, void*ud); void ewl_load_load(Ewl_Widget * o, void *ev_data, void *null); void ewl_load_delete(Ewl_Widget * o, void *ev_data, void *null); void ewl_load_listitem_click(Ewl_Widget * o, void *ev_data, ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs