From a4b92c62ec6707f23264cde68a684f0bf377ee91 Mon Sep 17 00:00:00 2001 From: simon Date: Wed, 18 Dec 2002 11:49:14 +0000 Subject: [PATCH] Improve the tab order in the Tunnels box: the `Add' button should happen _after_ all the controls that set up the forwarding, since that's the obvious order you'd want to use them in. git-svn-id: svn://svn.tartarus.org/sgt/putty@2346 cda61777-01e9-0310-a592-d414129be87e --- winctrls.c | 23 +++++++++++++++++------ windlg.c | 7 +++---- winstuff.h | 3 ++- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/winctrls.c b/winctrls.c index f44a0be5..53228236 100644 --- a/winctrls.c +++ b/winctrls.c @@ -1139,14 +1139,17 @@ void progressbar(struct ctlpos *cp, int id) * Another special control: the forwarding options setter. First a * list box; next a static header line, introducing a pair of edit * boxes with associated statics, another button, and a radio - * button pair. + * button pair. Then we have a bareradioline, which is included in + * this control group because it belongs before the `Add' button in + * the tab order. */ void fwdsetter(struct ctlpos *cp, int listid, char *stext, int sid, char *e1stext, int e1sid, int e1id, char *e2stext, int e2sid, int e2id, - char *btext, int bid) + char *btext, int bid, + char *r1text, int r1id, char *r2text, int r2id) { - RECT r; + RECT r, button_r; const int height = (STATICHEIGHT > EDITHEIGHT && STATICHEIGHT > PUSHBTNHEIGHT ? STATICHEIGHT : EDITHEIGHT > @@ -1195,11 +1198,19 @@ void fwdsetter(struct ctlpos *cp, int listid, char *stext, int sid, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL, WS_EX_CLIENTEDGE, "", j == 0 ? e1id : e2id); } else if (i == 3) { - doctl(cp, r, "BUTTON", - WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON, - 0, btext, bid); + /* + * We postpone creation of the button until we've + * done everything else, since it belongs last in + * the tab order. + */ + button_r = r; /* structure copy */ } } cp->ypos += height + GAPWITHIN; } + bareradioline(cp, 2, r1text, r1id, r2text, r2id, NULL); + /* Create the postponed button. */ + doctl(cp, button_r, "BUTTON", + WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON, + 0, btext, bid); } diff --git a/windlg.c b/windlg.c index 81194648..89ead9a2 100644 --- a/windlg.c +++ b/windlg.c @@ -2037,10 +2037,9 @@ static void create_controls(HWND hwnd, int dlgtype, int panel) "Add new forwarded port:", IDC_PFWDSTATIC2, "&Source port", IDC_SPORTSTATIC, IDC_SPORTEDIT, "Dest&ination", IDC_DPORTSTATIC, IDC_DPORTEDIT, - "A&dd", IDC_PFWDADD); - bareradioline(&cp, 2, - "&Local", IDC_PFWDLOCAL, - "Re&mote", IDC_PFWDREMOTE, NULL); + "A&dd", IDC_PFWDADD, + "&Local", IDC_PFWDLOCAL, + "Re&mote", IDC_PFWDREMOTE); endbox(&cp); } diff --git a/winstuff.h b/winstuff.h index 9e626645..06fb9440 100644 --- a/winstuff.h +++ b/winstuff.h @@ -170,7 +170,8 @@ void progressbar(struct ctlpos *cp, int id); void fwdsetter(struct ctlpos *cp, int listid, char *stext, int sid, char *e1stext, int e1sid, int e1id, char *e2stext, int e2sid, int e2id, - char *btext, int bid); + char *btext, int bid, + char *r1text, int r1id, char *r2text, int r2id); /* * Exports from windlg.c. -- 2.11.0