From b8e733af9f066bd4d860947e65d2666adc6a7515 Mon Sep 17 00:00:00 2001 From: mdankov Date: Wed, 4 Jul 2012 20:47:21 +0000 Subject: [PATCH] Fix:gui_internal:Make coordinate input dilaog more usable on different screen resolutions. Allow to hide keyboard to look at samples if they are obscured. Related to http://trac.navit-project.org/ticket/951. git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@5179 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- navit/navit/gui/internal/gui_internal.c | 49 ++++++++++++++++----------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/navit/navit/gui/internal/gui_internal.c b/navit/navit/gui/internal/gui_internal.c index 222abfb..51ffa81 100644 --- a/navit/navit/gui/internal/gui_internal.c +++ b/navit/navit/gui/internal/gui_internal.c @@ -4625,7 +4625,8 @@ struct gui_internal_keyb_mode { /*24*/ {"ÄÖÜ", 2, 40, 0}, /*32*/ {"äöü", 2, 32, 8}, /*40*/ {"АБВ", 2, 48, 0}, - /*48*/ {"абв", 2, 40, 8} + /*48*/ {"абв", 2, 40, 8}, + /*56*/ {"DEG", 2, 2, 2} }; @@ -4814,13 +4815,16 @@ gui_internal_keyboard_do(struct gui_priv *this, struct widget *wkbdb, int mode) td->button_box_hide=mode<1024; } - if (mode == 1023) { /* special case for coordinates input screen (enter_coord) */ + if (mode >= 56 && mode < 64) { /* special case for coordinates input screen (enter_coord) */ KEY("0"); KEY("1"); KEY("2"); KEY("3"); KEY("4"); SPACER(); KEY("N"); KEY("S"); KEY("5"); KEY("6"); KEY("7"); KEY("8"); KEY("9"); SPACER(); KEY("E"); KEY("W"); KEY("°"); KEY("."); KEY("'"); gui_internal_keyboard_key(this, wkbd, space," ",max_w,max_h); SPACER(); - SPACER(); + + wk=gui_internal_keyboard_key_data(this, wkbd, hide, 0, gui_internal_keyboard_change, wkbdb, NULL,max_w,max_h); + wk->datai=mode+1024; + SPACER(); gui_internal_keyboard_key(this, wkbd, backspace,"\b",max_w,max_h); } @@ -6595,15 +6599,21 @@ gui_internal_cmd_enter_coord_clicked(struct gui_priv *this, struct widget *widge static void gui_internal_cmd_enter_coord(struct gui_priv *this, char *function, struct attr **in, struct attr ***out, int *valid) { - struct widget *w, *wb, *wk, *we, *wnext, *row; -/* gui_internal_enter(this, 1); - gui_internal_enter_setup(this);*/ + struct widget *w, *wb, *wk, *wr, *we, *wnext, *row; wb=gui_internal_menu(this, _("Enter Coordinates")); + w=gui_internal_box_new(this, gravity_center|orientation_vertical|flags_expand|flags_fill); + gui_internal_widget_append(wb, w); + wr=gui_internal_box_new(this, gravity_top_center|orientation_vertical|flags_expand|flags_fill); + gui_internal_widget_append(w, wr); + we=gui_internal_box_new(this, gravity_left_center|orientation_horizontal|flags_fill); + gui_internal_widget_append(wr, we); + +/* w=gui_internal_box_new(this, gravity_left_top|orientation_vertical|flags_expand|flags_fill); gui_internal_widget_append(wb, w); we=gui_internal_box_new(this, gravity_left_center|orientation_horizontal|flags_fill); - gui_internal_widget_append(w, we); + gui_internal_widget_append(w, we);*/ gui_internal_widget_append(we, wk=gui_internal_label_new(this, _("Longitude Latitude"))); wk->state |= STATE_EDIT|STATE_EDITABLE|STATE_CLEAR; wk->background=this->background; @@ -6614,31 +6624,18 @@ gui_internal_cmd_enter_coord(struct gui_priv *this, char *function, struct attr wnext->func = gui_internal_cmd_enter_coord_clicked; wnext->data=wk; wk->data=wnext; - row=gui_internal_text_new(this, " ", gravity_top_center|flags_fill|orientation_vertical); - gui_internal_widget_append(w,row); - row=gui_internal_text_new(this, " ", gravity_top_center|flags_fill|orientation_vertical); - gui_internal_widget_append(w,row); - row=gui_internal_text_new(this, _("Enter Coordinates like sample ones below"), gravity_top_center|flags_fill|orientation_vertical); - gui_internal_widget_append(w,row); - row=gui_internal_text_new(this, " ", gravity_top_center|flags_fill|orientation_vertical); - gui_internal_widget_append(w,row); + row=gui_internal_text_new(this, _("Enter coordinates, for example:"), gravity_top_center|flags_fill|orientation_vertical); + gui_internal_widget_append(wr,row); row=gui_internal_text_new(this, "52.5219N 19.4127E", gravity_top_center|flags_fill|orientation_vertical); - gui_internal_widget_append(w,row); - row=gui_internal_text_new(this, " ", gravity_top_center|flags_fill|orientation_vertical); - gui_internal_widget_append(w,row); + gui_internal_widget_append(wr,row); row=gui_internal_text_new(this, "52°31.3167N 19°24.7667E", gravity_top_center|flags_fill|orientation_vertical); - gui_internal_widget_append(w,row); - row=gui_internal_text_new(this, " ", gravity_top_center|flags_fill|orientation_vertical); - gui_internal_widget_append(w,row); + gui_internal_widget_append(wr,row); row=gui_internal_text_new(this, "52°31'19N 19°24'46E", gravity_top_center|flags_fill|orientation_vertical); - gui_internal_widget_append(w,row); - row=gui_internal_text_new(this, " ", gravity_top_center|flags_fill|orientation_vertical); - gui_internal_widget_append(w,row); + gui_internal_widget_append(wr,row); if (this->keyboard) - gui_internal_widget_append(w, gui_internal_keyboard(this,1023)); + gui_internal_widget_append(w, gui_internal_keyboard(this,56)); gui_internal_menu_render(this); -/* gui_internal_leave(this);*/ } //############################################################################################################## -- 2.7.4