//--------------------------------------------------------------------------- #ifndef AuthenticateH #define AuthenticateH //--------------------------------------------------------------------------- #include #include #include #include #include #include #include "PasswordEdit.hpp" #include "WinInterface.h" #include "GUITools.h" #include #include #include #include //--------------------------------------------------------------------------- class TAuthenticateForm : public TForm { __published: TListBox *LogView; TPanel *PasswordPanel; TPanel *PromptEditPanel; TLabel *PromptLabel1; TPasswordEdit *PromptEdit1; TPanel *BannerPanel; TMemo *BannerMemo; TCheckBox *NeverShowAgainCheck; TButton *BannerCloseButton; TButton *BannerHelpButton; TPanel *SavePasswordPanel; TCheckBox *SavePasswordCheck; TPanel *ButtonsPanel; TButton *PasswordOKButton; TButton *PasswordCancelButton; TButton *PasswordHelpButton; TLabel *InstructionsLabel; TLabel *PromptLabel2; TPasswordEdit *PromptEdit2; TPanel *SessionRememberPasswordPanel; TCheckBox *SessionRememberPasswordCheck; TPanel *TopPanel; TPanel *LeftPanel; TPaintBox *AnimationPaintBox; TActionList *ActionList; TEditCopy *EditCopyAction; TEditSelectAll *EditSelectAllAction; TAction *BannerMonospacedFontAction; TPopupMenu *BannerPopupMenu; TMenuItem *CopyItem; TMenuItem *SelectAllItem; TMenuItem *N1; TMenuItem *AdjustWindowItem; TPopupMenu *LabelPopupMenu; TMenuItem *N2; TAction *LabelCopyAction; TAction *LabelOpenLinkAction2; TMenuItem *Open1; TMenuItem *Copy1; void __fastcall FormShow(TObject *Sender); void __fastcall HelpButtonClick(TObject *Sender); void __fastcall LogViewMeasureItem(TWinControl *Control, int Index, int &Height); void __fastcall LogViewDrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State); void __fastcall FormResize(TObject *Sender); void __fastcall BannerMemoContextPopup(TObject *Sender, TPoint &MousePos, bool &Handled); void __fastcall BannerMonospacedFontActionExecute(TObject *Sender); void __fastcall LogViewMouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall LabelCopyActionExecute(TObject *Sender); void __fastcall LabelOpenLinkAction2Execute(TObject *Sender); void __fastcall FormAfterMonitorDpiChanged(TObject *Sender, int OldDPI, int NewDPI); public: __fastcall TAuthenticateForm(TComponent * Owner); virtual __fastcall ~TAuthenticateForm(); void __fastcall Init(TTerminal * Terminal); void __fastcall ShowAsModal(); void __fastcall Log(const UnicodeString & Message, const UnicodeString & Additional = UnicodeString()); bool __fastcall PromptUser(TPromptKind Kind, UnicodeString Name, UnicodeString Instructions, TStrings * Prompts, TStrings * Results, bool ForceLog, bool StoredCredentialsTried); void __fastcall Banner(const UnicodeString & Banner, bool & NeverShowAgain, int Options, unsigned int & Params); __property TTerminal * Terminal = { read = FTerminal }; __property TNotifyEvent OnCancel = { read = FOnCancel, write = FOnCancel }; protected: void __fastcall AdjustControls(); bool __fastcall Execute(UnicodeString Status, TPanel * Panel, TWinControl * FocusControl, TButton * DefaultButton, TButton * CancelButton, bool FixHeight, bool Zoom, bool ForceLog); virtual void __fastcall CreateParams(TCreateParams & Params); virtual void __fastcall Dispatch(void * AMessage); void __fastcall WMNCCreate(TWMNCCreate & Message); TLabel * __fastcall GenerateLabel(int Current, UnicodeString Caption); TCustomEdit * __fastcall GenerateEdit(int Current, bool Echo); TList * __fastcall GeneratePrompt(TPromptKind Kind, const UnicodeString & Instructions, TStrings * Prompts); void __fastcall DoCancel(); void __fastcall AdjustLogView(); void __fastcall MakeLogItemVisible(int Index); int __fastcall LogItemHeight(int Index); void __fastcall RedrawLog(); void __fastcall CMShowingChanged(TMessage & Message); void __fastcall UpdateBannerFont(); void __fastcall DoAdjustWindow(); void __fastcall LabelContextPopup(TObject* Sender, const TPoint & MousePos, bool & Handled); bool ExtractUrl(const UnicodeString & Text, UnicodeString & Url); void ExternalLabel(TLabel * Label); void __fastcall LinkClick(TObject * Sender); void LabelOpen(TLabel * Label); private: void * FShowAsModalStorage; TWinControl * FFocusControl; TSessionData * FSessionData; TTerminal * FTerminal; UnicodeString FStatus; TWinControl * FPromptParent; int FPromptLeft; int FPromptTop; int FPromptRight; int FPromptEditGap; int FPromptsGap; TNotifyEvent FOnCancel; TFrameAnimation FFrameAnimation; bool FAnimationPainted; int FHorizontalLogPadding; int FVerticalLogPadding; TTextFormat FLogTextFormat; bool FShowNoActivate; std::vector FHints; int FHintIndex; TLabel * FContextLabel; INTERFACE_HOOK; }; //--------------------------------------------------------------------------- #endif