]> cygwin.com Git - cygwin-apps/setup.git/blame - net.cc
* net.cc (do_net): Default to direct download.
[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
8507f105
DD
19static char *cvsid = "\n%%% $Id$\n";
20
23c9e63c
DD
21#include "win32.h"
22#include <stdio.h>
23#include <stdlib.h>
24#include "dialog.h"
25#include "resource.h"
26#include "state.h"
27#include "msg.h"
89b1a15b 28#include "log.h"
23c9e63c
DD
29
30static int rb[] = { IDC_NET_IE5, IDC_NET_DIRECT, IDC_NET_PROXY, 0 };
31
32static void
33check_if_enable_next (HWND h)
34{
35 int e = 0, p = 0, pu = 0;
36 if (net_method == IDC_NET_IE5)
37 pu = 1;
38 if (net_method == IDC_NET_IE5 || net_method == IDC_NET_DIRECT)
39 e = 1;
40 else if (net_method == IDC_NET_PROXY)
41 {
42 p = pu = 1;
43 if (net_proxy_host && net_proxy_port)
44 e = 1;
45 }
23c9e63c
DD
46 EnableWindow (GetDlgItem (h, IDOK), e);
47 EnableWindow (GetDlgItem (h, IDC_PROXY_HOST), p);
48 EnableWindow (GetDlgItem (h, IDC_PROXY_PORT), p);
23c9e63c
DD
49}
50
51static void
52load_dialog (HWND h)
53{
54 rbset (h, rb, net_method);
55 eset (h, IDC_PROXY_HOST, net_proxy_host);
56 if (net_proxy_port == 0)
57 net_proxy_port = 80;
58 eset (h, IDC_PROXY_PORT, net_proxy_port);
23c9e63c
DD
59 check_if_enable_next (h);
60}
61
62static void
63save_dialog (HWND h)
64{
65 net_method = rbget (h, rb);
66 net_proxy_host = eget (h, IDC_PROXY_HOST, net_proxy_host);
67 net_proxy_port = eget (h, IDC_PROXY_PORT);
23c9e63c
DD
68}
69
70static BOOL
71dialog_cmd (HWND h, int id, HWND hwndctl, UINT code)
72{
73 switch (id)
74 {
75
76 case IDC_NET_IE5:
77 case IDC_NET_DIRECT:
78 case IDC_NET_PROXY:
79 case IDC_PROXY_HOST:
80 case IDC_PROXY_PORT:
23c9e63c
DD
81 save_dialog (h);
82 check_if_enable_next (h);
83 break;
84
85 case IDOK:
1fd6d0a2 86 save_dialog (h);
23c9e63c
DD
87 switch (source)
88 {
89 case IDC_SOURCE_NETINST:
90 case IDC_SOURCE_DOWNLOAD:
1fd6d0a2 91 NEXT (IDD_SITE);
23c9e63c
DD
92 break;
93 case IDC_SOURCE_CWD:
1fd6d0a2 94 NEXT (0);
23c9e63c
DD
95 break;
96 default:
1fd6d0a2
DD
97 msg ("source is default? %d\n", source);
98 NEXT (0);
23c9e63c
DD
99 }
100 break;
101
102 case IDC_BACK:
1fd6d0a2 103 save_dialog (h);
23c9e63c
DD
104 switch (source)
105 {
106 case IDC_SOURCE_DOWNLOAD:
c92e1307 107 NEXT (IDD_LOCAL_DIR);
23c9e63c
DD
108 break;
109 case IDC_SOURCE_NETINST:
110 case IDC_SOURCE_CWD:
1fd6d0a2 111 NEXT (IDD_ROOT);
23c9e63c
DD
112 break;
113 }
114 break;
115
116 case IDCANCEL:
1fd6d0a2 117 NEXT (0);
23c9e63c
DD
118 break;
119 }
120}
121
122static BOOL CALLBACK
123dialog_proc (HWND h, UINT message, WPARAM wParam, LPARAM lParam)
124{
125 switch (message)
126 {
127 case WM_INITDIALOG:
1fd6d0a2 128 load_dialog (h);
23c9e63c
DD
129 return FALSE;
130 case WM_COMMAND:
1fd6d0a2 131 return HANDLE_WM_COMMAND (h, wParam, lParam, dialog_cmd);
23c9e63c
DD
132 }
133 return FALSE;
134}
135
136void
137do_net (HINSTANCE h)
138{
139 int rv = 0;
b5b282c4 140
8293fc16 141 net_method = IDC_NET_DIRECT;
23c9e63c
DD
142 rv = DialogBox (h, MAKEINTRESOURCE (IDD_NET), 0, dialog_proc);
143 if (rv == -1)
144 fatal (IDS_DIALOG_FAILED);
89b1a15b
DD
145
146 log (0, "net: %s",
147 (net_method == IDC_NET_IE5) ? "IE5" :
148 (net_method == IDC_NET_DIRECT) ? "Direct" : "Proxy");
23c9e63c
DD
149}
150
This page took 0.039737 seconds and 5 git commands to generate.