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

Annotation of /trunk/Src/wptCommonDlg.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 36 - (hide annotations)
Thu Oct 27 15:25:13 2005 UTC (19 years, 4 months ago) by werner
File size: 3397 byte(s)
First set of changes to use autotools for building.
1 werner 36 /* 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     #include <windows.h>
27    
28     #include "../resource.h"
29    
30     #include "wptTypes.h"
31     #include "wptW32API.h"
32     #include "wptVersion.h"
33     #include "wptGPG.h"
34     #include "wptCommonCtl.h"
35     #include "wptContext.h"
36    
37    
38     /* check if the given buf contains a valid URL. */
39     static int
40     check_URL (const char *buf)
41     {
42     /* XXX: be more strict */
43     if (!strchr (buf, ':'))
44     return -1;
45     if (!strstr (buf, "//"))
46     return -1;
47     return 0;
48     }
49    
50    
51     static BOOL CALLBACK
52     http_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
53     {
54     static struct URL_ctx_s * ctx;
55     int n;
56    
57     switch (msg) {
58     case WM_INITDIALOG:
59     ctx = (struct URL_ctx_s*)lparam;
60     if (!ctx)
61     BUG (0);
62     if (ctx->desc != NULL)
63     SetWindowText (dlg, ctx->desc);
64     if (ctx->title != NULL)
65     SetDlgItemText (dlg, IDC_HTTP_TITLE, ctx->title);
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