diff --git a/doc/TechDoc.odt b/doc/TechDoc.odt index a07eacf..3e18af2 100644 Binary files a/doc/TechDoc.odt and b/doc/TechDoc.odt differ diff --git a/gui/gui_entry.c b/gui/gui_entry.c index 3af995f..db63f4c 100644 --- a/gui/gui_entry.c +++ b/gui/gui_entry.c @@ -1,4 +1,4 @@ -/* $Id: gui_entry.c,v 1.16 2013/06/09 20:11:30 steffen Exp $ */ +/* $Id: gui_entry.c,v 1.17 2013/06/14 23:03:05 steffen Exp $ */ /*************************************************************************** * gui_entry.c * @@ -100,6 +100,12 @@ int gui_entry_event (GUIItem *item, GUIEvent *event) { entry->curpos--; } } + else if (event->key == 0x7f) { // delete + d_printf ("gui_entry:delete"); + if (entry->curpos >= 0 && entry->curpos-1 < u8_strlen (entry->text)) { + u8_strdel (entry->text, entry->curpos, 1); + } + } else if (event->key == 0x1b) { // esc gui_close (); } diff --git a/gui/gui_list.c b/gui/gui_list.c index d059de3..e83a338 100644 --- a/gui/gui_list.c +++ b/gui/gui_list.c @@ -1,4 +1,4 @@ -/* $Id: gui_list.c,v 1.11 2013/04/05 22:36:46 steffen Exp $ */ +/* $Id: gui_list.c,v 1.12 2013/06/14 23:03:05 steffen Exp $ */ /*************************************************************************** * gui_list.c * @@ -127,5 +127,6 @@ GUIItem *gui_list_new (int x, int y, int w, int h) { list->selected = -1; list->vs = 0; list->callback_selectitem = NULL; + list->data = NULL; return item; }; diff --git a/main/gui_search.c b/main/gui_search.c index e44f581..f61c081 100644 --- a/main/gui_search.c +++ b/main/gui_search.c @@ -26,14 +26,13 @@ #include "gui.h" #include "system.h" - #define SEARCH_MAXRESULT 32 void gui_search_close (); void gui_search_refresh (); void gui_search_next (); void gui_search_prev (); -void gui_search_search (); +void gui_search_city (); void gui_search_switch (int pos); struct map_search_data search_data[SEARCH_MAXRESULT]; @@ -41,50 +40,64 @@ int search_data_cnt = 0; int search_data_cur = -1; static GUIWindow wsearch = {0}; +GUIItem *ws_entryname = NULL; +GUIItem *ws_labelname = NULL; +GUIItem *ws_entrystreet = NULL; +GUIItem *ws_labelstreet = NULL; +GUIItem *ws_btnok = NULL; +GUIItem *ws_btncancel = NULL; +GUIItem *ws_list = NULL; +GUIItem *ws_map = NULL; /* need to finish working on: gui_images and map_view */ void gui_search_show () { - if (wsearch.screen == NULL) gui_window_new (&wsearch, 220, 60, _("Search..")); - wsearch.screen_changed = 1; - - // wmmenu.callback_close = (void*)gui_mainmenu_closecallback; + if (wsearch.screen == NULL) gui_window_new (&wsearch, 220, 260, _("Search..")); wsearch.screen_changed = 1; - wsearch.style = WGUI_S_VCENTER | WGUI_S_HTOP; + wsearch.style = WGUI_S_VCENTER | WGUI_S_HCENTER; wsearch.title[0] = 0; - gui_show (&wsearch); -}; + /* Name Ok Button */ + if (ws_labelname == NULL) ws_labelname = gui_label_new (_("City:"), 5, 10); + gui_window_item_add (&wsearch, ws_labelname); + if (ws_entryname == NULL) ws_entryname = gui_entry_new (_(""), 50, 10, 100, 20); + gui_window_item_add (&wsearch, ws_entryname); + GUI_ENTRY_T (ws_entryname)->callback_enter = gui_search_city; -void gui_search_close () { - gui_close (); -}; + if (ws_btnok == NULL) ws_btnok = gui_button_new (_("Ok"), 165, 5, 50, 20); + GUI_BUTTON_T (ws_btnok)->callback_clicked = (void*) gui_search_close; + gui_window_item_add (&wsearch, ws_btnok); + /* street Cancel Button */ + if (ws_labelstreet == NULL) ws_labelstreet = gui_label_new (_("Street:"), 5, 35); + gui_window_item_add (&wsearch, ws_labelstreet); -void gui_search_refresh () { - map_refresh (view_lon, view_lat); - draw_redrawmap (); - draw (); -}; + if (ws_entrystreet == NULL) ws_entrystreet = gui_entry_new (_(""), 50, 30, 100, 20); + gui_window_item_add (&wsearch, ws_entrystreet); + if (ws_btncancel == NULL) ws_btncancel = gui_button_new (_("Cancel"), 165, 30, 50, 20); + GUI_BUTTON_T (ws_btncancel)->callback_clicked = (void*) gui_search_close; + gui_window_item_add (&wsearch, ws_btncancel); -void gui_search_prev () { - d_printf ("search_data_cur:%d", search_data_cur); - gui_search_switch (search_data_cur-1); - d_printf ("search_data_cur:%d", search_data_cur); + /* result list */ + if (ws_list == NULL) ws_list = gui_list_new (5, 55, 210, 100); + gui_window_item_add (&wsearch, ws_list); + + gui_show (&wsearch); }; -void gui_search_next () { - d_printf ("search_data_cur:%d", search_data_cur); - gui_search_switch (search_data_cur+1); - d_printf ("search_data_cur:%d", search_data_cur); +void gui_search_close () { + gui_close (); }; -void gui_search_search () { - char text[] = "ttttt..."; +void gui_search_city () { + int i; + + char text[] = "gui_search_city"; search_data_cnt = map_search (text, search_data, SEARCH_MAXRESULT); - gui_search_switch (0); + for (i = 0; i < search_data_cnt; i++) + d_printf (" %-3d:%s",i , search_data->name[i]); };