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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs