]> cygwin.com Git - cygwin-apps/setup.git/blame - net.cc
* Replace everything with a new GUI version
[cygwin-apps/setup.git] / net.cc
CommitLineData
23c9e63c
DD
1/*
2 * Copyright (c) 2000, Red Hat, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * A copy of the GNU General Public License can be found at
10 * http://www.gnu.org/
11 *
12 * Written by DJ Delorie <dj@cygnus.com>
13 *
14 */
15
16/* The purpose of this file is to get the network configuration
17 information from the user. */
18
19#include "win32.h"
20#include <stdio.h>
21#include <stdlib.h>
22#include "dialog.h"
23#include "resource.h"
24#include "state.h"
25#include "msg.h"
26
27static int rb[] = { IDC_NET_IE5, IDC_NET_DIRECT, IDC_NET_PROXY, 0 };
28
29static void
30check_if_enable_next (HWND h)
31{
32 int e = 0, p = 0, pu = 0;
33 if (net_method == IDC_NET_IE5)
34 pu = 1;
35 if (net_method == IDC_NET_IE5 || net_method == IDC_NET_DIRECT)
36 e = 1;
37 else if (net_method == IDC_NET_PROXY)
38 {
39 p = pu = 1;
40 if (net_proxy_host && net_proxy_port)
41 e = 1;
42 }
43 if (pu && (net_proxy_user && !net_proxy_passwd
44 || !net_proxy_user && net_proxy_passwd))
45 e = 0;
46 EnableWindow (GetDlgItem (h, IDOK), e);
47 EnableWindow (GetDlgItem (h, IDC_PROXY_HOST), p);
48 EnableWindow (GetDlgItem (h, IDC_PROXY_PORT), p);
49 EnableWindow (GetDlgItem (h, IDC_PROXY_USER), pu);
50 EnableWindow (GetDlgItem (h, IDC_PROXY_PASSWD), pu);
51}
52
53static void
54load_dialog (HWND h)
55{
56 rbset (h, rb, net_method);
57 eset (h, IDC_PROXY_HOST, net_proxy_host);
58 if (net_proxy_port == 0)
59 net_proxy_port = 80;
60 eset (h, IDC_PROXY_PORT, net_proxy_port);
61 eset (h, IDC_PROXY_USER, net_proxy_user);
62 eset (h, IDC_PROXY_PASSWD, net_proxy_passwd);
63 check_if_enable_next (h);
64}
65
66static void
67save_dialog (HWND h)
68{
69 net_method = rbget (h, rb);
70 net_proxy_host = eget (h, IDC_PROXY_HOST, net_proxy_host);
71 net_proxy_port = eget (h, IDC_PROXY_PORT);
72 net_proxy_user = eget (h, IDC_PROXY_USER, net_proxy_user);
73 net_proxy_passwd = eget (h, IDC_PROXY_PASSWD, net_proxy_passwd);
74}
75
76static BOOL
77dialog_cmd (HWND h, int id, HWND hwndctl, UINT code)
78{
79 switch (id)
80 {
81
82 case IDC_NET_IE5:
83 case IDC_NET_DIRECT:
84 case IDC_NET_PROXY:
85 case IDC_PROXY_HOST:
86 case IDC_PROXY_PORT:
87 case IDC_PROXY_USER:
88 case IDC_PROXY_PASSWD:
89 save_dialog (h);
90 check_if_enable_next (h);
91 break;
92
93 case IDOK:
94 save_dialog(h);
95 switch (source)
96 {
97 case IDC_SOURCE_NETINST:
98 case IDC_SOURCE_DOWNLOAD:
99 NEXT(IDD_SITE);
100 break;
101 case IDC_SOURCE_CWD:
102 NEXT(0);
103 break;
104 default:
105 msg("source is default? %d\n", source);
106 NEXT(0);
107 }
108 break;
109
110 case IDC_BACK:
111 save_dialog(h);
112 switch (source)
113 {
114 case IDC_SOURCE_DOWNLOAD:
115 NEXT(IDD_SOURCE);
116 break;
117 case IDC_SOURCE_NETINST:
118 case IDC_SOURCE_CWD:
119 NEXT(IDD_ROOT);
120 break;
121 }
122 break;
123
124 case IDCANCEL:
125 NEXT(0);
126 break;
127 }
128}
129
130static BOOL CALLBACK
131dialog_proc (HWND h, UINT message, WPARAM wParam, LPARAM lParam)
132{
133 switch (message)
134 {
135 case WM_INITDIALOG:
136 load_dialog(h);
137 return FALSE;
138 case WM_COMMAND:
139 return HANDLE_WM_COMMAND(h, wParam, lParam, dialog_cmd);
140 }
141 return FALSE;
142}
143
144void
145do_net (HINSTANCE h)
146{
147 int rv = 0;
148 rv = DialogBox (h, MAKEINTRESOURCE (IDD_NET), 0, dialog_proc);
149 if (rv == -1)
150 fatal (IDS_DIALOG_FAILED);
151}
152
This page took 0.032053 seconds and 5 git commands to generate.