/[winpt]/trunk/Src/wptCommonDlg.cpp
ViewVC logotype

Contents of /trunk/Src/wptCommonDlg.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 105 - (show annotations)
Wed Nov 30 10:22:00 2005 UTC (19 years, 3 months ago) by twoaday
File size: 3421 byte(s)
Several cleanups and improved translation.


1 /* wptCommonDlg.cpp
2 * Copyright (C) 2004, 2005 Timo Schulz
3 *
4 * This file is part of WinPT.
5 *
6 * WinPT is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * WinPT is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with WinPT; if not, write to the Free Software Foundation,
18 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
19 */
20
21 #ifdef HAVE_CONFIG_H
22 #include <config.h>
23 #endif
24
25 #include <windows.h>
26
27 #include "resource.h"
28
29 #include "wptTypes.h"
30 #include "wptW32API.h"
31 #include "wptVersion.h"
32 #include "wptGPG.h"
33 #include "wptCommonCtl.h"
34 #include "wptContext.h"
35
36
37 /* check if the given buf contains a valid URL. */
38 static int
39 check_URL (const char *buf)
40 {
41 /* XXX: be more strict */
42 if (!strchr (buf, ':'))
43 return -1;
44 if (!strstr (buf, "//"))
45 return -1;
46 return 0;
47 }
48
49
50 static BOOL CALLBACK
51 http_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
52 {
53 static struct URL_ctx_s * ctx;
54 int n;
55
56 switch (msg) {
57 case WM_INITDIALOG:
58 ctx = (struct URL_ctx_s*)lparam;
59 if (!ctx)
60 BUG (0);
61 if (ctx->desc != NULL)
62 SetWindowText (dlg, ctx->desc);
63 if (ctx->title != NULL)
64 SetDlgItemText (dlg, IDC_HTTP_TITLE, ctx->title);
65 SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));
66 SetForegroundWindow (dlg);
67 break;
68
69 case WM_COMMAND:
70 switch (LOWORD (wparam)) {
71 case IDOK:
72 n = GetDlgItemText (dlg, IDC_HTTP_URL, ctx->url, DIM (ctx->url)-1);
73 if (ctx->check && (!n || check_URL (ctx->url))) {
74 msg_box (dlg, _("Please enter a valid URL."), "HTTP", MB_ERR);
75 return FALSE;
76 }
77 ctx->cancel = 0;
78 EndDialog (dlg, TRUE);
79 break;
80
81 case IDCANCEL:
82 ctx->cancel = 1;
83 EndDialog (dlg, FALSE);
84 break;
85 }
86 }
87
88 return FALSE;
89 }
90
91
92 /* Common dialog to request a URL from the user.
93 Return value is the URL context. */
94 void*
95 get_http_file_dlg (HWND root)
96 {
97 struct URL_ctx_s *ctx;
98
99 ctx = new URL_ctx_s;
100 if (!ctx)
101 BUG (0);
102 memset (ctx, 0, sizeof *ctx);
103 ctx->check = 1;
104 DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_HTTP, root,
105 http_dlg_proc, (LPARAM)ctx);
106 return ctx;
107 }
108
109 /* Wrapper to request a preferred keyserver from the user.
110 Return value is the URL context. */
111 void*
112 get_keyserver_URL_dlg (HWND root)
113 {
114 struct URL_ctx_s *ctx;
115
116 ctx = new URL_ctx_s;
117 if (!ctx)
118 BUG (0);
119 memset (ctx, 0, sizeof *ctx);
120 ctx->check = 1;
121 ctx->desc = _("Key Edit");
122 ctx->title = _("Enter preferred keyserver URL");
123 DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_HTTP, root,
124 http_dlg_proc, (LPARAM)ctx);
125 return ctx;
126 }
127
128
129 /* Generic text input dialog. */
130 char*
131 get_input_dialog (HWND root, const char *title, const char *desc)
132 {
133 struct URL_ctx_s ctx;
134
135 memset (&ctx, 0, sizeof (ctx));
136 ctx.title = title;
137 ctx.desc = desc;
138 DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_HTTP, root,
139 http_dlg_proc, (LPARAM)&ctx);
140 if (ctx.cancel || strlen (ctx.url) == 0)
141 return NULL;
142 return m_strdup (ctx.url);
143 }

Properties

Name Value
svn:eol-style native

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26