/* * Copyright (c) 2000, Red Hat, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * A copy of the GNU General Public License can be found at * http://www.gnu.org/ * * Written by DJ Delorie <dj@cygnus.com> * *//* The purpose of this file is to get the network configuration information from the user. */#include "win32.h"#include <stdio.h>#include <stdlib.h>#include "dialog.h"#include "resource.h"#include "state.h"#include "msg.h"#include "log.h"staticintrb[]={IDC_NET_IE5,IDC_NET_DIRECT,IDC_NET_PROXY,0};staticvoidcheck_if_enable_next(HWNDh){inte=0,p=0,pu=0;if(net_method==IDC_NET_IE5)pu=1;if(net_method==IDC_NET_IE5||net_method==IDC_NET_DIRECT)e=1;elseif(net_method==IDC_NET_PROXY){p=pu=1;if(net_proxy_host&&net_proxy_port)e=1;}EnableWindow(GetDlgItem(h,IDOK),e);EnableWindow(GetDlgItem(h,IDC_PROXY_HOST),p);EnableWindow(GetDlgItem(h,IDC_PROXY_PORT),p);}staticvoidload_dialog(HWNDh){rbset(h,rb,net_method);eset(h,IDC_PROXY_HOST,net_proxy_host);if(net_proxy_port==0)net_proxy_port=80;eset(h,IDC_PROXY_PORT,net_proxy_port);check_if_enable_next(h);}staticvoidsave_dialog(HWNDh){net_method=rbget(h,rb);net_proxy_host=eget(h,IDC_PROXY_HOST,net_proxy_host);net_proxy_port=eget(h,IDC_PROXY_PORT);}staticBOOLdialog_cmd(HWNDh,intid,HWNDhwndctl,UINTcode){switch(id){caseIDC_NET_IE5:caseIDC_NET_DIRECT:caseIDC_NET_PROXY:caseIDC_PROXY_HOST:caseIDC_PROXY_PORT:save_dialog(h);check_if_enable_next(h);break;caseIDOK:save_dialog(h);switch(source){caseIDC_SOURCE_NETINST:caseIDC_SOURCE_DOWNLOAD:NEXT(IDD_SITE);break;caseIDC_SOURCE_CWD:NEXT(0);break;default:msg("source is default? %d\n",source);NEXT(0);}break;caseIDC_BACK:save_dialog(h);switch(source){caseIDC_SOURCE_DOWNLOAD:NEXT(IDD_LOCAL_DIR);break;caseIDC_SOURCE_NETINST:caseIDC_SOURCE_CWD:NEXT(IDD_ROOT);break;}break;caseIDCANCEL:NEXT(0);break;}returnFALSE;}staticBOOLCALLBACKdialog_proc(HWNDh,UINTmessage,WPARAMwParam,LPARAMlParam){switch(message){caseWM_INITDIALOG:load_dialog(h);returnFALSE;caseWM_COMMAND:returnHANDLE_WM_COMMAND(h,wParam,lParam,dialog_cmd);}returnFALSE;}voiddo_net(HINSTANCEh){intrv=0;rv=DialogBox(h,MAKEINTRESOURCE(IDD_NET),0,dialog_proc);if(rv==-1)fatal(IDS_DIALOG_FAILED);log(0,"net: %s",(net_method==IDC_NET_IE5)?"IE5":(net_method==IDC_NET_DIRECT)?"Direct":"Proxy");}