GUITools.h 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. //---------------------------------------------------------------------------
  2. #ifndef GUIToolsH
  3. #define GUIToolsH
  4. //---------------------------------------------------------------------------
  5. // from shlobj.h
  6. #define CSIDL_DESKTOP 0x0000 // <desktop>
  7. #define CSIDL_SENDTO 0x0009 // <user name>\SendTo
  8. #define CSIDL_DESKTOPDIRECTORY 0x0010 // <user name>\Desktop
  9. #define CSIDL_COMMON_DESKTOPDIRECTORY 0x0019 // All Users\Desktop
  10. #define CSIDL_APPDATA 0x001a // <user name>\Application Data
  11. #define CSIDL_PROGRAM_FILES 0x0026 // C:\Program Files
  12. #define CSIDL_PERSONAL 0x0005 // My Documents
  13. //---------------------------------------------------------------------------
  14. #include <FileMasks.H>
  15. #include <Tbx.hpp>
  16. //---------------------------------------------------------------------------
  17. class TSessionData;
  18. //---------------------------------------------------------------------------
  19. typedef void __fastcall (__closure* TProcessMessagesEvent)();
  20. //---------------------------------------------------------------------------
  21. bool __fastcall FindFile(UnicodeString & Path);
  22. bool __fastcall FindTool(const UnicodeString & Name, UnicodeString & Path);
  23. bool __fastcall ExecuteShell(const UnicodeString Path, const UnicodeString Params);
  24. bool __fastcall ExecuteShell(const UnicodeString Command);
  25. bool __fastcall ExecuteShell(const UnicodeString Path, const UnicodeString Params,
  26. HANDLE & Handle);
  27. bool __fastcall ExecuteShellAndWait(HWND Handle, const UnicodeString Path,
  28. const UnicodeString Params, TProcessMessagesEvent ProcessMessages);
  29. bool __fastcall ExecuteShellAndWait(HWND Handle, const UnicodeString Command,
  30. TProcessMessagesEvent ProcessMessages);
  31. void __fastcall OpenSessionInPutty(const UnicodeString PuttyPath,
  32. TSessionData * SessionData);
  33. bool __fastcall SpecialFolderLocation(int PathID, UnicodeString & Path);
  34. UnicodeString __fastcall GetPersonalFolder();
  35. UnicodeString __fastcall GetDesktopFolder();
  36. UnicodeString __fastcall UniqTempDir(const UnicodeString BaseDir,
  37. const UnicodeString Identity, bool Mask = false);
  38. bool __fastcall DeleteDirectory(const UnicodeString DirName);
  39. UnicodeString __fastcall FormatDateTimeSpan(const UnicodeString TimeFormat, TDateTime DateTime);
  40. void __fastcall AddSessionColorImage(TCustomImageList * ImageList, TColor Color, int MaskIndex);
  41. void __fastcall SetSubmenu(TTBXCustomItem * Item);
  42. typedef int __fastcall (*TCalculateWidth)(UnicodeString Text, void * Arg);
  43. void __fastcall ApplyTabs(
  44. UnicodeString & Text, wchar_t Padding,
  45. TCalculateWidth CalculateWidth, void * CalculateWidthArg);
  46. TPanel * __fastcall CreateLabelPanel(TPanel * Parent, const UnicodeString & Label);
  47. void __fastcall SelectScaledImageList(TImageList * ImageList);
  48. void __fastcall CopyDataModule(TDataModule * TargetModule, TDataModule * SourceModule);
  49. void __fastcall CopyImageList(TImageList * TargetList, TImageList * SourceList);
  50. void __fastcall LoadDialogImage(TImage * Image, const UnicodeString & ImageName);
  51. int __fastcall DialogImageSize();
  52. void __fastcall HideComponentsPanel(TForm * Form);
  53. namespace Webbrowserex
  54. {
  55. class TWebBrowserEx;
  56. }
  57. using namespace Webbrowserex;
  58. TWebBrowserEx * __fastcall CreateBrowserViewer(TPanel * Parent, const UnicodeString & LoadingLabel);
  59. void __fastcall SetBrowserDesignModeOff(TWebBrowserEx * WebBrowser);
  60. void __fastcall AddBrowserLinkHandler(TWebBrowserEx * WebBrowser,
  61. const UnicodeString & Url, TNotifyEvent Handler);
  62. void __fastcall NavigateBrowserToUrl(TWebBrowserEx * WebBrowser, const UnicodeString & Url);
  63. TComponent * __fastcall FindComponentRecursively(TComponent * Root, const UnicodeString & Name);
  64. //---------------------------------------------------------------------------
  65. class TLocalCustomCommand : public TFileCustomCommand
  66. {
  67. public:
  68. TLocalCustomCommand();
  69. TLocalCustomCommand(
  70. const TCustomCommandData & Data, const UnicodeString & RemotePath, const UnicodeString & LocalPath);
  71. TLocalCustomCommand(
  72. const TCustomCommandData & Data, const UnicodeString & RemotePath, const UnicodeString & LocalPath,
  73. const UnicodeString & FileName, const UnicodeString & LocalFileName,
  74. const UnicodeString & FileList);
  75. virtual bool __fastcall IsFileCommand(const UnicodeString & Command);
  76. bool __fastcall HasLocalFileName(const UnicodeString & Command);
  77. protected:
  78. virtual int __fastcall PatternLen(const UnicodeString & Command, int Index);
  79. virtual bool __fastcall PatternReplacement(int Index, const UnicodeString & Pattern,
  80. UnicodeString & Replacement, bool & Delimit);
  81. virtual void __fastcall DelimitReplacement(UnicodeString & Replacement, wchar_t Quote);
  82. private:
  83. UnicodeString FLocalPath;
  84. UnicodeString FLocalFileName;
  85. };
  86. //---------------------------------------------------------------------------
  87. namespace Pngimagelist
  88. {
  89. class TPngImageList;
  90. class TPngImageCollectionItem;
  91. }
  92. using namespace Pngimagelist;
  93. //---------------------------------------------------------------------------
  94. class TFrameAnimation
  95. {
  96. public:
  97. __fastcall TFrameAnimation();
  98. void __fastcall Init(TPaintBox * PaintBox, const UnicodeString & Name);
  99. void __fastcall Start();
  100. void __fastcall Stop();
  101. private:
  102. TPaintBox * FPaintBox;
  103. TPngImageList * FImageList;
  104. int FFirstFrame;
  105. int FFirstLoopFrame;
  106. int FLastFrame;
  107. int FCurrentFrame;
  108. DWORD FNextFrameTick;
  109. TTimer * FTimer;
  110. bool FPainted;
  111. void __fastcall DoInit(TPaintBox * PaintBox, TPngImageList * ImageList, const UnicodeString & Name, bool Null);
  112. void __fastcall PaintBoxPaint(TObject * Sender);
  113. void __fastcall CalculateNextFrameTick();
  114. TPngImageCollectionItem * __fastcall GetCurrentImage();
  115. void __fastcall Animate();
  116. void __fastcall Timer(TObject * Sender);
  117. void __fastcall Repaint();
  118. };
  119. //---------------------------------------------------------------------------
  120. class TScreenTipHintWindow : public THintWindow
  121. {
  122. public:
  123. __fastcall TScreenTipHintWindow(TComponent * Owner);
  124. virtual TRect __fastcall CalcHintRect(int MaxWidth, const UnicodeString AHint, void * AData);
  125. virtual void __fastcall ActivateHintData(const TRect & Rect, const UnicodeString AHint, void * AData);
  126. static void __fastcall CalcHintTextRect(TControl * Control, TCanvas * Canvas, TRect & Rect, const UnicodeString & Hint);
  127. protected:
  128. virtual void __fastcall Paint();
  129. virtual void __fastcall Dispatch(void * AMessage);
  130. private:
  131. bool FParentPainting;
  132. int FMargin;
  133. UnicodeString FShortHint;
  134. UnicodeString FLongHint;
  135. TControl * FHintControl;
  136. bool FHintPopup;
  137. UnicodeString __fastcall GetLongHintIfAny(const UnicodeString & AHint);
  138. static int __fastcall GetTextFlags(TControl * Control);
  139. bool __fastcall IsHintPopup(TControl * HintControl, const UnicodeString & Hint);
  140. bool __fastcall IsPathLabel(TControl * HintControl);
  141. bool __fastcall UseBoldShortHint(TControl * HintControl);
  142. int __fastcall GetMargin(TControl * HintControl, const UnicodeString & Hint);
  143. TFont * __fastcall GetFont(TControl * HintControl, const UnicodeString & Hint);
  144. TControl * __fastcall GetHintControl(void * Data);
  145. };
  146. //---------------------------------------------------------------------------
  147. extern const UnicodeString PageantTool;
  148. extern const UnicodeString PuttygenTool;
  149. //---------------------------------------------------------------------------
  150. #endif