]> cygwin.com Git - cygwin-apps/setup.git/blame_incremental - net.cc
* net.cc (do_net): Default to direct download.
[cygwin-apps/setup.git] / net.cc
... / ...
CommitLineData
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
19static char *cvsid = "\n%%% $Id$\n";
20
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"
28#include "log.h"
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 }
46 EnableWindow (GetDlgItem (h, IDOK), e);
47 EnableWindow (GetDlgItem (h, IDC_PROXY_HOST), p);
48 EnableWindow (GetDlgItem (h, IDC_PROXY_PORT), p);
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);
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);
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:
81 save_dialog (h);
82 check_if_enable_next (h);
83 break;
84
85 case IDOK:
86 save_dialog (h);
87 switch (source)
88 {
89 case IDC_SOURCE_NETINST:
90 case IDC_SOURCE_DOWNLOAD:
91 NEXT (IDD_SITE);
92 break;
93 case IDC_SOURCE_CWD:
94 NEXT (0);
95 break;
96 default:
97 msg ("source is default? %d\n", source);
98 NEXT (0);
99 }
100 break;
101
102 case IDC_BACK:
103 save_dialog (h);
104 switch (source)
105 {
106 case IDC_SOURCE_DOWNLOAD:
107 NEXT (IDD_LOCAL_DIR);
108 break;
109 case IDC_SOURCE_NETINST:
110 case IDC_SOURCE_CWD:
111 NEXT (IDD_ROOT);
112 break;
113 }
114 break;
115
116 case IDCANCEL:
117 NEXT (0);
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:
128 load_dialog (h);
129 return FALSE;
130 case WM_COMMAND:
131 return HANDLE_WM_COMMAND (h, wParam, lParam, dialog_cmd);
132 }
133 return FALSE;
134}
135
136void
137do_net (HINSTANCE h)
138{
139 int rv = 0;
140
141 net_method = IDC_NET_DIRECT;
142 rv = DialogBox (h, MAKEINTRESOURCE (IDD_NET), 0, dialog_proc);
143 if (rv == -1)
144 fatal (IDS_DIALOG_FAILED);
145
146 log (0, "net: %s",
147 (net_method == IDC_NET_IE5) ? "IE5" :
148 (net_method == IDC_NET_DIRECT) ? "Direct" : "Proxy");
149}
150
This page took 0.0240050000000001 seconds and 5 git commands to generate.