//---------------------------------------------------------------------------- #ifndef SiteAdvancedH #define SiteAdvancedH //---------------------------------------------------------------------------- #include "ComboEdit.hpp" #include "PasswordEdit.hpp" #include "UpDownEdit.hpp" #include #include #include #include #include #include #include #include #include #include //---------------------------------------------------------------------------- #include #include #include #include "PngImageList.hpp" //---------------------------------------------------------------------------- class TSiteAdvancedDialog : public TForm { __published: TPanel *MainPanel; TPageControl *PageControl; TTabSheet *AdvancedSheet; TGroupBox *ProtocolGroup; TLabel *Label37; TCheckBox *CompressionCheck; TTabSheet *EnvironmentSheet; TTabSheet *ScpSheet; TGroupBox *OtherShellOptionsGroup; TCheckBox *LookupUserGroupsCheck; TCheckBox *ClearAliasesCheck; TCheckBox *UnsetNationalVarsCheck; TCheckBox *Scp1CompatibilityCheck; TGroupBox *ShellGroup; TComboBox *ShellEdit; TPanel *LeftPanel; TTreeView *NavigationTree; TTabSheet *ConnSheet; TGroupBox *TimeoutGroup; TLabel *Label11; TLabel *Label12; TUpDownEdit *TimeoutEdit; TTabSheet *ProxySheet; TGroupBox *ProxyTypeGroup; TLabel *ProxyHostLabel; TLabel *ProxyPortLabel; TUpDownEdit *ProxyPortEdit; TEdit *ProxyHostEdit; TEdit *ProxyUsernameEdit; TLabel *ProxyUsernameLabel; TLabel *ProxyPasswordLabel; TPasswordEdit *ProxyPasswordEdit; TGroupBox *ProxySettingsGroup; TLabel *ProxyTelnetCommandLabel; TEdit *ProxyTelnetCommandEdit; TTabSheet *BugsSheet; TGroupBox *BugsGroupBox; TLabel *BugIgnore1Label; TComboBox *BugIgnore1Combo; TLabel *BugPlainPW1Label; TComboBox *BugPlainPW1Combo; TLabel *BugRSA1Label; TComboBox *BugRSA1Combo; TLabel *BugHMAC2Label; TComboBox *BugHMAC2Combo; TLabel *BugDeriveKey2Label; TComboBox *BugDeriveKey2Combo; TLabel *BugRSAPad2Label; TComboBox *BugRSAPad2Combo; TTabSheet *AuthSheet; TGroupBox *AuthenticationGroup; TCheckBox *AuthTISCheck; TCheckBox *AuthKICheck; TGroupBox *EncryptionGroup; TListBox *CipherListBox; TLabel *Label8; TCheckBox *Ssh2LegacyDESCheck; TButton *CipherUpButton; TButton *CipherDownButton; TGroupBox *EnvironmentGroup; TLabel *BugPKSessID2Label; TComboBox *BugPKSessID2Combo; TCheckBox *ProxyLocalhostCheck; TLabel *Label17; TGroupBox *PingGroup; TLabel *PingIntervalLabel; TUpDownEdit *PingIntervalSecEdit; TRadioButton *PingOffButton; TRadioButton *PingNullPacketButton; TRadioButton *PingDummyCommandButton; TCheckBox *AuthKIPasswordCheck; TTabSheet *DirectoriesSheet; TGroupBox *DirectoriesGroup; TLabel *LocalDirectoryLabel; TLabel *RemoteDirectoryLabel; TLabel *LocalDirectoryDescLabel; TDirectoryEdit *LocalDirectoryEdit; TEdit *RemoteDirectoryEdit; TCheckBox *UpdateDirectoriesCheck; TCheckBox *CacheDirectoriesCheck; TCheckBox *ResolveSymlinksCheck; TCheckBox *CacheDirectoryChangesCheck; TCheckBox *PreserveDirectoryChangesCheck; TGroupBox *DSTModeGroup; TRadioButton *DSTModeUnixCheck; TRadioButton *DSTModeWinCheck; TGroupBox *ScpLsOptionsGroup; TCheckBox *IgnoreLsWarningsCheck; TCheckBox *SCPLsFullTimeAutoCheck; TTabSheet *SftpSheet; TGroupBox *SFTPBugsGroupBox; TLabel *Label10; TLabel *Label36; TComboBox *SFTPBugSymlinkCombo; TTabSheet *KexSheet; TGroupBox *KexOptionsGroup; TLabel *Label28; TListBox *KexListBox; TButton *KexUpButton; TButton *KexDownButton; TGroupBox *KexReexchangeGroup; TLabel *Label31; TUpDownEdit *RekeyTimeEdit; TLabel *Label32; TEdit *RekeyDataEdit; TGroupBox *IPvGroup; TRadioButton *IPAutoButton; TRadioButton *IPv4Button; TRadioButton *IPv6Button; TLabel *BugRekey2Label; TComboBox *BugRekey2Combo; TGroupBox *SFTPProtocolGroup; TLabel *Label34; TComboBox *SFTPMaxVersionCombo; TComboBox *SFTPBugSignedTSCombo; TGroupBox *DirectoryOptionsGroup; TTabSheet *TunnelSheet; TGroupBox *TunnelSessionGroup; TLabel *Label6; TLabel *Label14; TLabel *Label15; TLabel *Label16; TLabel *Label18; TEdit *TunnelHostNameEdit; TEdit *TunnelUserNameEdit; TPasswordEdit *TunnelPasswordEdit; TUpDownEdit *TunnelPortNumberEdit; TFilenameEdit *TunnelPrivateKeyEdit3; TLabel *Label19; TComboBox *ReturnVarEdit; TLabel *Label20; TGroupBox *AuthenticationParamsGroup; TCheckBox *AgentFwdCheck; TCheckBox *TunnelCheck; TGroupBox *TunnelOptionsGroup; TLabel *Label21; TComboBox *TunnelLocalPortNumberEdit; TRadioButton *DSTModeKeepCheck; TGroupBox *ConnectionGroup; TCheckBox *FtpPasvModeCheck; TTabSheet *RecycleBinSheet; TGroupBox *RecycleBinGroup; TLabel *RecycleBinPathLabel; TCheckBox *DeleteToRecycleBinCheck; TCheckBox *OverwrittenToRecycleBinCheck; TEdit *RecycleBinPathEdit; TLabel *EOLTypeLabel; TComboBox *EOLTypeCombo; TLabel *UtfLabel; TComboBox *UtfCombo; TLabel *TimeDifferenceLabel; TUpDownEdit *TimeDifferenceEdit; TLabel *TimeDifferenceHoursLabel; TUpDownEdit *TimeDifferenceMinutesEdit; TLabel *TimeDifferenceMinutesLabel; TLabel *Label9; TComboBox *ListingCommandEdit; TCheckBox *SshNoUserAuthCheck; TCheckBox *TryAgentCheck; TLabel *ProxyMethodLabel; TComboBox *SshProxyMethodCombo; TComboBox *ProxyDNSCombo; TComboBox *FtpProxyMethodCombo; TLabel *ProxyLocalCommandLabel; TEdit *ProxyLocalCommandEdit; TButton *ProxyLocalCommandBrowseButton; TStaticText *ProxyTelnetCommandHintText; TStaticText *ProxyLocalCommandHintText; TGroupBox *FtpPingGroup; TLabel *FtpPingIntervalLabel; TUpDownEdit *FtpPingIntervalSecEdit; TRadioButton *FtpPingOffButton; TRadioButton *FtpPingNullPacketButton; TRadioButton *FtpPingDummyCommandButton; TLabel *Label23; TComboBox *SftpServerEdit; TTabSheet *FtpSheet; TGroupBox *FtpGroup; TLabel *Label25; TMemo *PostLoginCommandsMemo; TLabel *BugMaxPkt2Label; TComboBox *BugMaxPkt2Combo; TLabel *FtpListAllLabel; TComboBox *FtpListAllCombo; TComboBox *FtpForcePasvIpCombo; TCheckBox *AllowScpFallbackCheck; TCheckBox *BufferSizeCheck; TCheckBox *SynchronizeBrowsingCheck; TGroupBox *GSSAPIGroup; TCheckBox *AuthGSSAPICheck3; TCheckBox *GSSAPIFwdTGTCheck; TLabel *BugIgnore2Label; TComboBox *BugIgnore2Combo; TComboBox *NeonProxyMethodCombo; TLabel *Label24; TComboBox *FtpUseMlsdCombo; TLabel *FtpForcePasvIpLabel; TButton *OKBtn; TButton *CancelBtn; TButton *HelpButton; TLabel *FtpAccountLabel; TEdit *FtpAccountEdit; TLabel *PrivateKeyLabel; TFilenameEdit *PrivateKeyEdit3; TGroupBox *TunnelAuthenticationParamsGroup; TImageList *ColorImageList; TButton *ColorButton; TTabSheet *SslSheet; TGroupBox *SslGroup; TLabel *Label1; TComboBox *MinTlsVersionCombo; TLabel *Label2; TComboBox *MaxTlsVersionCombo; TCheckBox *SslSessionReuseCheck; TLabel *BugWinAdjLabel; TComboBox *BugWinAdjCombo; TButton *ProxyAutodetectButton; TTabSheet *NoteSheet; TGroupBox *NoteGroup; TMemo *NoteMemo; TCheckBox *TimeDifferenceAutoCheck; TLabel *Label3; TComboBox *FtpHostCombo; TGroupBox *TlsAuthenticationGroup; TLabel *Label4; TFilenameEdit *TlsCertificateFileEdit; TCheckBox *TrimVMSVersionsCheck; TComboBox *SshProtCombo2; TCheckBox *FollowDirectorySymlinksCheck; TImageList *ColorImageList120; TImageList *ColorImageList144; TImageList *ColorImageList192; void __fastcall DataChange(TObject *Sender); void __fastcall FormShow(TObject *Sender); void __fastcall PageControlChange(TObject *Sender); void __fastcall AlgListBoxStartDrag(TObject *Sender, TDragObject *&DragObject); void __fastcall AlgListBoxDragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept); void __fastcall AlgListBoxDragDrop(TObject *Sender, TObject *Source, int X, int Y); void __fastcall CipherButtonClick(TObject *Sender); void __fastcall AuthGSSAPICheck3Click(TObject *Sender); void __fastcall KexButtonClick(TObject *Sender); void __fastcall HelpButtonClick(TObject *Sender); void __fastcall PrivateKeyEdit3AfterDialog(TObject *Sender, UnicodeString &Name, bool &Action); void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose); void __fastcall PathEditBeforeDialog(TObject *Sender, UnicodeString &Name, bool &Action); void __fastcall PathEditAfterDialog(TObject * Sender, UnicodeString & Name, bool & Action); void __fastcall NavigationTreeCollapsing(TObject *Sender, TTreeNode *Node, bool &AllowCollapse); void __fastcall ProxyLocalCommandBrowseButtonClick(TObject *Sender); void __fastcall NavigationTreeChange(TObject * Sender, TTreeNode * Node); void __fastcall ColorButtonClick(TObject *Sender); void __fastcall MinTlsVersionComboChange(TObject *Sender); void __fastcall MaxTlsVersionComboChange(TObject *Sender); void __fastcall ProxyAutodetectButtonClick(TObject *Sender); void __fastcall NoteMemoKeyDown(TObject *Sender, WORD &Key, TShiftState Shift); void __fastcall TlsCertificateFileEditAfterDialog(TObject *Sender, UnicodeString &Name, bool &Action); public: virtual __fastcall TSiteAdvancedDialog(TComponent * AOwner); bool __fastcall Execute(TSessionData * SessionData); protected: void __fastcall ChangePage(TTabSheet * Tab); virtual void __fastcall Dispatch(void * Message); bool __fastcall AllowAlgDrag(TListBox * AlgListBox, int X, int Y); void __fastcall AlgMove(TListBox * AlgListBox, int Source, int Dest); void __fastcall InitControls(); private: int NoUpdate; int FAlgDragSource; int FAlgDragDest; int FOptions; UnicodeString FBeforeDialogPath; TFSProtocol FFSProtocol; TSessionData * FSessionData; TColor FColor; std::unique_ptr FColorPopupMenu; void __fastcall LoadSession(); void __fastcall UpdateControls(); void __fastcall SaveSession(); void __fastcall CMDialogKey(TWMKeyDown & Message); void __fastcall WMHelp(TWMHelp & Message); int __fastcall LastSupportedFtpProxyMethod(); bool __fastcall SupportedFtpProxyMethod(int Method); int __fastcall GetSupportedFtpProxyMethod(int Method); int __fastcall GetSupportedNeonProxyMethod(int Method); TProxyMethod __fastcall GetProxyMethod(); int __fastcall GetFtpProxyLogonType(); void __fastcall UpdateNavigationTree(); TSshProt __fastcall GetSshProt(); void __fastcall SetSessionColor(TColor Color); void __fastcall SessionColorChange(TColor Color); TTlsVersion __fastcall IndexToTlsVersion(int Index); int __fastcall TlsVersionToIndex(TTlsVersion TlsVersion); bool __fastcall IsNeon(TFSProtocol FSProtocol); }; //---------------------------------------------------------------------------- #endif