|
|
1.1 root 1: /* Synchronet Control Panel (GUI Borland C++ Builder Project for Win32) */
2:
1.1.1.2 ! root 3: /* $Id: MainFormUnit.h,v 1.70 2004/12/22 02:39:44 rswindell Exp $ */
1.1 root 4:
5: /****************************************************************************
6: * @format.tab-size 4 (Plain Text/Source Code File Header) *
7: * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
8: * *
1.1.1.2 ! root 9: * Copyright 2004 Rob Swindell - http://www.synchro.net/copyright.html *
1.1 root 10: * *
11: * This program is free software; you can redistribute it and/or *
12: * modify it under the terms of the GNU General Public License *
13: * as published by the Free Software Foundation; either version 2 *
14: * of the License, or (at your option) any later version. *
15: * See the GNU General Public License for more details: gpl.txt or *
16: * http://www.fsf.org/copyleft/gpl.html *
17: * *
18: * Anonymous FTP access to the most recent released source is available at *
19: * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net *
20: * *
21: * Anonymous CVS access to the development source and modification history *
22: * is available at cvs.synchro.net:/cvsroot/sbbs, example: *
23: * cvs -d :pserver:[email protected]:/cvsroot/sbbs login *
24: * (just hit return, no password is necessary) *
25: * cvs -d :pserver:[email protected]:/cvsroot/sbbs checkout src *
26: * *
27: * For Synchronet coding style and modification guidelines, see *
28: * http://www.synchro.net/source.html *
29: * *
30: * You are encouraged to submit any modifications (preferably in Unix diff *
31: * format) via e-mail to [email protected] *
32: * *
33: * Note: If this box doesn't appear square, then you need to fix your tabs. *
34: ****************************************************************************/
35:
36: //---------------------------------------------------------------------------
37: #ifndef MainFormUnitH
38: #define MainFormUnitH
39: //---------------------------------------------------------------------------
40: #include <Classes.hpp>
41: #include <Controls.hpp>
42: #include <StdCtrls.hpp>
43: #include <Forms.hpp>
44: #include <Menus.hpp>
45: #include <ComCtrls.hpp>
46: #include <ToolWin.hpp>
47: #include <ExtCtrls.hpp>
48: #include <ActnList.hpp>
49: //---------------------------------------------------------------------------
1.1.1.2 ! root 50: #include <io.h> // Undefined symbol '_chmod' ???
1.1 root 51: #include "scfgdefs.h" // scfg_t
1.1.1.2 ! root 52: #include "ftpsrvr.h" // ftp_startup_t
! 53: #include "websrvr.h" // web_startup_t
! 54: #include "mailsrvr.h" // mail_startup_t
! 55: #include "services.h" // services_startup_t
1.1 root 56: #include <ImgList.hpp>
57: #include <Buttons.hpp>
58: #include <Graphics.hpp>
1.1.1.2 ! root 59: #include <vcl\Registry.hpp> /* TRegistry */
! 60: #include "trayicon.h"
! 61: #include "Trayicon.h"
! 62: #include <Dialogs.hpp>
! 63: //---------------------------------------------------------------------------
! 64: #define APP_TITLE "Synchronet Control Panel"
! 65: #define REG_KEY "\\Software\\Swindell\\"APP_TITLE"\\"
1.1 root 66: //---------------------------------------------------------------------------
67: class TMainForm : public TForm
68: {
69: __published: // IDE-managed Components
70: TMainMenu *MainMenu;
71: TMenuItem *FileMenuItem;
72: TMenuItem *ViewMenuItem;
73: TMenuItem *ViewNodesMenuItem;
74: TMenuItem *FileExitMenuItem;
75: TMenuItem *ViewTelnetMenuItem;
76: TMenuItem *ViewMailServerMenuItem;
77: TToolBar *Toolbar;
78: TToolButton *ViewTelnetButton;
79: TMenuItem *ViewToolbarMenuItem;
80: TMenuItem *TelnetMenuItem;
81: TMenuItem *TelnetConfigureMenuItem;
82: TMenuItem *TelnetStartMenuItem;
83: TMenuItem *TelnetStopMenuItem;
84: TActionList *ActionList;
85: TAction *TelnetStart;
86: TAction *TelnetStop;
87: TAction *TelnetConfigure;
88: TImageList *ImageList;
89: TAction *NodeListStart;
90: TAction *NodeListStop;
91: TAction *MailStart;
92: TAction *MailStop;
93: TMenuItem *MailMenuItem;
94: TMenuItem *MailConfigureMenuItem;
95: TMenuItem *MailStartMenuItem;
96: TAction *MailConfigure;
97: TToolButton *ViewNodesButton;
98: TToolButton *ViewMailServerButton;
99: TMenuItem *MailStopMenuItem;
100: TAction *ViewTelnet;
101: TAction *ViewNodes;
102: TAction *ViewMailServer;
103: TAction *ViewFtpServer;
104: TAction *FtpStart;
105: TAction *FtpStop;
106: TToolButton *ViewFtpServerButton;
107: TMenuItem *ViewFtpServerMenuItem;
108: TAction *FtpConfigure;
109: TMenuItem *FtpMenuItem;
110: TMenuItem *FtpConfigureMenuItem;
111: TMenuItem *FtpStartMenuItem;
112: TMenuItem *FtpStopMenuItem;
113: TMenuItem *BBSMenuItem;
114: TMenuItem *BBSConfigureMenuItem;
115: TPanel *TopPanel;
116: TSplitter *HorizontalSplitter;
117: TPanel *BottomPanel;
118: TTimer *StatsTimer;
119: TAction *ViewStats;
120: TToolButton *ViewStatsButton;
121: TMenuItem *ViewStatsMenuItem;
122: TPageControl *LowerLeftPageControl;
123: TSplitter *BottomVerticalSplitter;
124: TPageControl *LowerRightPageControl;
125: TStatusBar *StatusBar;
126: TPageControl *UpperLeftPageControl;
127: TSplitter *TopVerticalSplitter;
128: TPageControl *UpperRightPageControl;
129: TTimer *StartupTimer;
130: TMenuItem *ViewStatusBarMenuItem;
131: TImage *Logo;
132: TMenuItem *HelpMenuItem;
133: TMenuItem *HelpAboutMenuItem;
134: TMenuItem *FileSoundMenuItem;
135: TToolButton *SoundButton;
136: TAction *SoundToggle;
137: TMenuItem *ForceNetworkCalloutMenuItem;
138: TMenuItem *ForceTimedEventMenuItem;
139: TMenuItem *N1;
140: TMenuItem *BBSEditMenuItem;
141: TMenuItem *BBSEditGuruBrain;
142: TMenuItem *BBSEditTextStrings;
143: TMenuItem *BBSEditColors;
144: TMenuItem *BBSEditAnswer;
145: TMenuItem *BBSEditSystemInfo;
146: TMenuItem *BBSEditNewUserMsg;
147: TMenuItem *BBSEditFeedbackMsg;
148: TMenuItem *BBSEditFilters;
149: TMenuItem *BBSEditNameFilter;
150: TMenuItem *BBSEditIPFilter;
151: TMenuItem *PhoneNumberPHONECAN1;
152: TMenuItem *BBSEditFilenameFilter;
153: TMenuItem *BBSEditNameFilterBadMsg;
154: TMenuItem *BBSEditPhoneFilterBadMsg;
155: TMenuItem *BBSEditFileFilterBadMsg;
156: TMenuItem *BBSEditZipComment;
157: TMenuItem *N2;
158: TMenuItem *MailEditMenuItem;
159: TMenuItem *MailEditAliasList;
160: TTimer *UpTimer;
161: TAction *ChatToggle;
162: TMenuItem *SysopAvailableforChat1;
163: TToolButton *SysopAvailButton;
164: TAction *ViewClients;
165: TToolButton *ViewClientsButton;
166: TMenuItem *Clients1;
167: TMenuItem *UserMenuItem;
168: TMenuItem *UserEditMenuItem;
169: TToolButton *EditUserButton;
170: TAction *UserEdit;
171: TToolButton *ToolButton1;
172: TMenuItem *N3;
173: TMenuItem *FtpEditMenuItem;
174: TMenuItem *FtpEditAliasList;
175: TMenuItem *FtpEditLoginMessage;
176: TMenuItem *FtpEditHelloMessage;
177: TMenuItem *FtpEditGoodbyeMessage;
178: TMenuItem *N4;
1.1.1.2 ! root 179: TMenuItem *FileEditMenuItem;
1.1 root 180: TMenuItem *N5;
181: TMenuItem *BBSEditIPFilterMsg;
182: TMenuItem *BBSEditHostFilter;
183: TMenuItem *BBSEditHostFilterMsg;
1.1.1.2 ! root 184: TMenuItem *AllowedRelayList;
! 185: TMenuItem *SaveSettingsMenuItem;
1.1 root 186: TMenuItem *N6;
187: TMenuItem *TelnetEditMenuItem;
188: TMenuItem *TelnetEditRLoginList;
189: TMenuItem *BBSLoginMenuItem;
190: TMenuItem *UserListMenuItem;
191: TMenuItem *MailViewMenuItem;
192: TMenuItem *MailViewTodaysLog;
193: TMenuItem *MailViewDatesLog;
194: TMenuItem *FtpViewMenuItem;
195: TMenuItem *FtpViewTodaysLog;
196: TMenuItem *FtpViewDatesLog;
197: TMenuItem *MailViewYesterdaysLog;
198: TMenuItem *FtpViewYesterdaysLog;
199: TToolButton *ToolButton2;
200: TMenuItem *BBSViewMenuItem;
201: TMenuItem *BBSViewAnotherDaysLog;
202: TMenuItem *BBSViewYesterdaysLog;
203: TMenuItem *BBSViewTodaysLog;
1.1.1.2 ! root 204: TMenuItem *ViewErrorLog;
! 205: TMenuItem *ViewStatisticsLog;
1.1 root 206: TAction *UserList;
207: TToolButton *UserListButton;
1.1.1.2 ! root 208: TMenuItem *HelpIndexMenuItem;
! 209: TMenuItem *N7;
! 210: TMenuItem *FilePropertiesMenuItem;
! 211: TMenuItem *N8;
! 212: TTrayIcon *TrayIcon;
! 213: TAction *Properties;
! 214: TPopupMenu *TrayPopupMenu;
! 215: TMenuItem *RestoreTrayMenuItem;
! 216: TMenuItem *CloseTrayMenuItem;
! 217: TMenuItem *HelpSysopMenuItem;
! 218: TAction *ViewEvents;
! 219: TMenuItem *ViewEventsMenuItem;
! 220: TMenuItem *ConfigureTrayMenuItem;
! 221: TMenuItem *BBSEditAutoMsg;
! 222: TMenuItem *BBSEditLogonMessage;
! 223: TMenuItem *BBSEditNoNodesMessage;
! 224: TMenuItem *BBSConfigWizardMenuItem;
! 225: TMenuItem *N9;
! 226: TMenuItem *UserEditTrayMenuItem;
! 227: TMenuItem *BBSEditNupGuessMenuItem;
! 228: TMenuItem *BBSEditEmailFilterMenuItem;
! 229: TMenuItem *BBSEditBadEmailMessageMenuItem;
! 230: TMenuItem *ViewHackAttemptLogMenuItem;
! 231: TMenuItem *ConfigureBBSTrayMenuItem;
! 232: TMenuItem *ConfigureTelnetTrayMenuItem;
! 233: TMenuItem *ConfigureFtpTrayMenuItem;
! 234: TMenuItem *ConfigureMailTrayMenuItem;
! 235: TAction *ReloadConfig;
! 236: TMenuItem *ReloadConfigurationFiles1;
! 237: TToolButton *ToolButton3;
! 238: TToolButton *ReloadConfigButton;
! 239: TMenuItem *MailViewSpamLog;
! 240: TMenuItem *DomainList;
! 241: TMenuItem *BBSEditSubjectFilterMenuItem;
! 242: TAction *ServicesStart;
! 243: TAction *ServicesStop;
! 244: TMenuItem *ServicesMenuItem;
! 245: TMenuItem *ServicesConfigureMenuItem;
! 246: TMenuItem *ServicesStartMenuItem;
! 247: TMenuItem *ServicesStopMenuItem;
! 248: TAction *ServicesConfigure;
! 249: TMenuItem *UserTruncateMenuItem;
! 250: TMenuItem *HelpFAQMenuItem;
! 251: TAction *MailRecycle;
! 252: TAction *FtpRecycle;
! 253: TAction *ServicesRecycle;
! 254: TMenuItem *Recycle1;
! 255: TMenuItem *Recycle2;
! 256: TMenuItem *Recycle3;
! 257: TAction *TelnetRecycle;
! 258: TMenuItem *DnsBlacklists;
! 259: TMenuItem *ExportSettingsMenuItem;
! 260: TMenuItem *ImportSettingsMenuItem;
! 261: TMenuItem *DNSBLExemptions;
! 262: TMenuItem *BBSEditIPFilterSilent;
! 263: TMenuItem *ExternalMailProc;
! 264: TOpenDialog *OpenDialog;
! 265: TSaveDialog *SaveDialog;
! 266: TMenuItem *BBSEditNewUserEmail;
! 267: TMenuItem *BBSPreviewMenuItem;
! 268: TMenuItem *FileEditTextFiles;
! 269: TMenuItem *FileEditConfigFiles;
! 270: TMenuItem *FileEditJavaScript;
! 271: TMenuItem *BBSEditBajaMenuItem;
! 272: TMenuItem *BBSEditFile;
! 273: TMenuItem *N10;
! 274: TMenuItem *SpamBaitList;
! 275: TMenuItem *SpamBlockList;
! 276: TTimer *LogTimer;
! 277: TTimer *ServiceStatusTimer;
! 278: TMenuItem *ViewWebServerMenuItem;
! 279: TAction *ViewWebServer;
! 280: TToolButton *ViewWebServerButton;
! 281: TAction *WebStart;
! 282: TAction *WebStop;
! 283: TAction *WebRecycle;
! 284: TAction *WebConfigure;
! 285: TMenuItem *WebMenuItem;
! 286: TMenuItem *Configure1;
! 287: TMenuItem *Start1;
! 288: TMenuItem *Stop1;
! 289: TMenuItem *Recycle4;
! 290: TMenuItem *N11;
! 291: TMenuItem *WebEditMenuItem;
! 292: TMenuItem *WebEditMimeTypesMenuItem;
! 293: TMenuItem *N12;
! 294: TMenuItem *ServicesEditMenuItem;
! 295: TMenuItem *ServicesEditIniMenuOption;
! 296: TAction *ViewServices;
! 297: TMenuItem *ViewServicesMenuItem;
! 298: TMenuItem *BBSEditTwitList;
! 299: void __fastcall FileExitMenuItemClick(TObject *Sender);
1.1 root 300: void __fastcall ViewToolbarMenuItemClick(TObject *Sender);
301: void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
302: void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
303: void __fastcall TelnetStartExecute(TObject *Sender);
304: void __fastcall TelnetStopExecute(TObject *Sender);
305: void __fastcall TelnetConfigureExecute(TObject *Sender);
306: void __fastcall NodeListStartExecute(TObject *Sender);
307: void __fastcall NodeListStopExecute(TObject *Sender);
308: void __fastcall MailConfigureExecute(TObject *Sender);
309: void __fastcall MailStartExecute(TObject *Sender);
310: void __fastcall MailStopExecute(TObject *Sender);
311: void __fastcall ViewTelnetExecute(TObject *Sender);
312: void __fastcall ViewNodesExecute(TObject *Sender);
313: void __fastcall ViewMailServerExecute(TObject *Sender);
314: void __fastcall ViewFtpServerExecute(TObject *Sender);
315: void __fastcall FtpStartExecute(TObject *Sender);
316: void __fastcall FtpStopExecute(TObject *Sender);
317: void __fastcall FtpConfigureExecute(TObject *Sender);
318: void __fastcall BBSConfigureMenuItemClick(TObject *Sender);
319: void __fastcall FormCreate(TObject *Sender);
320: void __fastcall FormShow(TObject *Sender);
321: void __fastcall NodeCloseButtonClick(TObject *Sender);
322: void __fastcall TelnetCloseButtonClick(TObject *Sender);
323: void __fastcall MailCloseButtonClick(TObject *Sender);
324: void __fastcall FtpCloseButtonClick(TObject *Sender);
325: void __fastcall StatsTimerTick(TObject *Sender);
326: void __fastcall ViewStatsExecute(TObject *Sender);
327: void __fastcall StatsCloseButtonClick(TObject *Sender);
328: void __fastcall StartupTimerTick(TObject *Sender);
329: void __fastcall ViewStatusBarMenuItemClick(TObject *Sender);
330: void __fastcall HelpAboutMenuItemClick(TObject *Sender);
331: void __fastcall SoundToggleExecute(TObject *Sender);
332: void __fastcall BBSStatisticsLogMenuItemClick(TObject *Sender);
333: void __fastcall ForceTimedEventMenuItemClick(TObject *Sender);
334: void __fastcall ForceNetworkCalloutMenuItemClick(TObject *Sender);
335: void __fastcall TextMenuItemEditClick(TObject *Sender);
336: void __fastcall CtrlMenuItemEditClick(TObject *Sender);
337: void __fastcall UpTimerTick(TObject *Sender);
1.1.1.2 ! root 338: void __fastcall LogTimerTick(TObject *Sender);
1.1 root 339: void __fastcall BBSViewErrorLogMenuItemClick(TObject *Sender);
340: void __fastcall ChatToggleExecute(TObject *Sender);
341: void __fastcall ViewClientsExecute(TObject *Sender);
342: void __fastcall UserEditExecute(TObject *Sender);
343: void __fastcall SaveSettings(TObject *Sender);
1.1.1.2 ! root 344: bool __fastcall SaveIniSettings(TObject* Sender);
! 345: void __fastcall SaveRegistrySettings(TObject* Sender);
! 346: void __fastcall ImportSettings(TObject *Sender);
! 347: void __fastcall ImportFormSettings(TMemIniFile* IniFile, const char* section, TForm* form);
! 348: void __fastcall ExportFormSettings(TMemIniFile* IniFile, const char* section, TForm* form);
! 349: void __fastcall ImportFont(TMemIniFile* IniFile, const char* section, AnsiString prefix, TFont* Font);
! 350: void __fastcall ExportFont(TMemIniFile* IniFile, const char* section, AnsiString prefix, TFont* Font);
! 351: void __fastcall ExportSettings(TObject *Sender);
1.1 root 352: void __fastcall BBSLoginMenuItemClick(TObject *Sender);
353: void __fastcall ViewLogClick(TObject *Sender);
354: void __fastcall UserListExecute(TObject *Sender);
1.1.1.2 ! root 355: void __fastcall WebPageMenuItemClick(TObject *Sender);
! 356: void __fastcall TrayIconRestore(TObject *Sender);
! 357: void __fastcall PropertiesExecute(TObject *Sender);
! 358: void __fastcall CloseTrayMenuItemClick(TObject *Sender);
! 359: void __fastcall RestoreTrayMenuItemClick(TObject *Sender);
! 360: void __fastcall ViewEventsExecute(TObject *Sender);
! 361: void __fastcall DataMenuItemClick(TObject *Sender);
! 362: void __fastcall BBSConfigWizardMenuItemClick(TObject *Sender);
! 363: void __fastcall PageControlUnDock(TObject *Sender,
! 364: TControl *Client, TWinControl *NewTarget, bool &Allow);
! 365: void __fastcall ReloadConfigExecute(TObject *Sender);
! 366: void __fastcall ServicesStartExecute(TObject *Sender);
! 367: void __fastcall ServicesStopExecute(TObject *Sender);
! 368: void __fastcall ServicesConfigureExecute(TObject *Sender);
! 369: void __fastcall UserTruncateMenuItemClick(TObject *Sender);
! 370: void __fastcall MailRecycleExecute(TObject *Sender);
! 371: void __fastcall FtpRecycleExecute(TObject *Sender);
! 372: void __fastcall ServicesRecycleExecute(TObject *Sender);
! 373: void __fastcall TelnetRecycleExecute(TObject *Sender);
! 374: void __fastcall BBSPreviewMenuItemClick(TObject *Sender);
! 375: void __fastcall FileEditTextFilesClick(TObject *Sender);
! 376: void __fastcall BBSEditBajaMenuItemClick(TObject *Sender);
! 377: void __fastcall FileEditJavaScriptClick(TObject *Sender);
! 378: void __fastcall FileEditConfigFilesClick(TObject *Sender);
! 379: void __fastcall BBSEditFileClick(TObject *Sender);
! 380: void __fastcall ServiceStatusTimerTick(TObject *Sender);
! 381: void __fastcall ViewWebServerExecute(TObject *Sender);
! 382: void __fastcall WebStartExecute(TObject *Sender);
! 383: void __fastcall WebStopExecute(TObject *Sender);
! 384: void __fastcall WebRecycleExecute(TObject *Sender);
! 385: void __fastcall WebConfigureExecute(TObject *Sender);
! 386: void __fastcall ViewServicesExecute(TObject *Sender);
1.1 root 387: private: // User declarations
388: public: // User declarations
389: __fastcall TMainForm(TComponent* Owner);
1.1.1.2 ! root 390: bool Initialized;
! 391: BOOL SysAutoStart;
! 392: BOOL FtpAutoStart;
! 393: BOOL WebAutoStart;
! 394: BOOL MailAutoStart;
! 395: BOOL ServicesAutoStart;
1.1 root 396: bool MailLogFile;
397: bool FtpLogFile;
398: AnsiString LoginCommand;
399: AnsiString ConfigCommand;
1.1.1.2 ! root 400: AnsiString Password;
! 401: bool MinimizeToSysTray;
! 402: bool UndockableForms;
! 403: bool UseFileAssociations;
1.1 root 404: scfg_t cfg;
1.1.1.2 ! root 405: char ini_file[MAX_PATH+1];
1.1 root 406: bbs_startup_t bbs_startup;
407: ftp_startup_t ftp_startup;
1.1.1.2 ! root 408: web_startup_t web_startup;
! 409: mail_startup_t mail_startup;
! 410: services_startup_t services_startup;
! 411: global_startup_t global;
! 412: HANDLE bbs_log;
! 413: HANDLE event_log;
! 414: HANDLE ftp_log;
! 415: HANDLE web_log;
! 416: HANDLE mail_log;
! 417: HANDLE services_log;
! 418: int NodeDisplayInterval;
! 419: int ClientDisplayInterval;
1.1 root 420: int SpyTerminalWidth;
421: int SpyTerminalHeight;
422: TFont* SpyTerminalFont;
423: bool SpyTerminalKeyboardActive;
424: TPageControl* __fastcall PageControl(int num);
425: int __fastcall PageNum(TPageControl* obj);
1.1.1.2 ! root 426: void __fastcall FormMinimize(TObject *Sender);
! 427: TColor __fastcall ReadColor(TRegistry*, AnsiString);
! 428: void __fastcall WriteColor(TRegistry*, AnsiString, TColor);
! 429: void __fastcall ReadFont(AnsiString, TFont*);
! 430: void __fastcall WriteFont(AnsiString, TFont*);
! 431: void __fastcall EditFile(AnsiString filename, AnsiString Caption="Edit");
! 432: void __fastcall ViewFile(AnsiString filename, AnsiString Caption);
1.1 root 433: };
434:
435: //---------------------------------------------------------------------------
436: extern PACKAGE TMainForm *MainForm;
437: //---------------------------------------------------------------------------
438: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.