// Borland C++ Builder // Copyright (c) 1995, 2002 by Borland Software Corporation // All rights reserved // (DO NOT EDIT: machine generated header) 'ThemeMgr.pas' rev: 6.00 #ifndef ThemeMgrHPP #define ThemeMgrHPP #pragma delphiheader begin #pragma option push -w- #pragma option push -Vx #include // Pascal unit #include // Pascal unit #include // Pascal unit #include // Pascal unit #include // Pascal unit #include // Pascal unit #include // Pascal unit #include // Pascal unit #include // Pascal unit #include // Pascal unit #include // Pascal unit //-- user supplied ----------------------------------------------------------- namespace Thememgr { //-- type declarations ------------------------------------------------------- #pragma option push -b- enum TThemeOption { toAllowNonClientArea, toAllowControls, toAllowWebContent, toSubclassAnimate, toSubclassButtons, toSubclassCheckListbox, toSubclassDBLookup, toSubclassFrame, toSubclassGroupBox, toSubclassListView, toSubclassPanel, toSubclassTabSheet, toSubclassSpeedButtons, toSubclassSplitter, toSubclassStatusBar, toSubclassTrackBar, toSubclassWinControl, toResetMouseCapture, toSetTransparency, toAlternateTabSheetDraw }; #pragma option pop typedef Set TThemeOptions; #pragma pack(push, 1) struct TWMPrint { unsigned Msg; HDC DC; unsigned Flags; int Result; } ; #pragma pack(pop) typedef TWMPrint TWMPrintClient; class DELPHICLASS TThemeManager; typedef void __fastcall (__closure *TAllowSubclassingEvent)(TThemeManager* Sender, Controls::TControl* Control, bool &Allow); typedef void __fastcall (__closure *TControlMessageEvent)(TThemeManager* Sender, Controls::TControl* Control, Messages::TMessage &Message, bool &Handled); typedef TControlMessageEvent *PControlMessageEvent; class DELPHICLASS TWindowProcList; class PASCALIMPLEMENTATION TWindowProcList : public Classes::TList { typedef Classes::TList inherited; private: bool FDirty; Controls::TControl* FLastControl; int FLastIndex; TThemeManager* FOwner; Classes::TWndMethod FNewWindowProc; TMetaClass*FControlClass; public: __fastcall TWindowProcList(TThemeManager* Owner, Classes::TWndMethod WindowProc, TMetaClass* ControlClass); __fastcall virtual ~TWindowProcList(void); HIDESBASE int __fastcall Add(Controls::TControl* Control); virtual void __fastcall Clear(void); void __fastcall DispatchMessage(Controls::TControl* Control, Messages::TMessage &Message); bool __fastcall Find(Controls::TControl* Control, /* out */ int &Index); HIDESBASE void __fastcall Remove(Controls::TControl* Control); }; class PASCALIMPLEMENTATION TThemeManager : public Classes::TComponent { typedef Classes::TComponent inherited; private: TThemeOptions FOptions; TWindowProcList* FPanelList; TWindowProcList* FFrameList; TWindowProcList* FListViewList; TWindowProcList* FTabSheetList; TWindowProcList* FWinControlList; TWindowProcList* FGroupBoxList; TWindowProcList* FButtonControlList; TWindowProcList* FCheckBoxList; TWindowProcList* FButtonList; TWindowProcList* FSpeedButtonList; TWindowProcList* FSplitterList; TWindowProcList* FTrackBarList; TWindowProcList* FAnimateList; TWindowProcList* FStatusBarList; TWindowProcList* FCheckListBoxList; TWindowProcList* FFormList; Classes::TList* FListeners; Classes::TList* FPendingFormsList; Classes::TList* FPendingRecreationList; bool FSubclassingDisabled; bool FHookWasInstalled; Classes::TNotifyEvent FOnThemeChange; TControlMessageEvent FOnControlMessage; TAllowSubclassingEvent FOnAllowSubclassing; void __fastcall AnimateWindowProc(Controls::TControl* Control, Messages::TMessage &Message); void __fastcall ButtonControlWindowProc(Controls::TControl* Control, Messages::TMessage &Message, TWindowProcList* List); void __fastcall CheckListBoxWindowProc(Controls::TControl* Control, Messages::TMessage &Message); void __fastcall FormWindowProc(Controls::TControl* Control, Messages::TMessage &Message); void __fastcall FrameWindowProc(Controls::TControl* Control, Messages::TMessage &Message); bool __fastcall GetIsMainManager(void); void __fastcall GroupBoxWindowProc(Controls::TControl* Control, Messages::TMessage &Message); void __fastcall ListviewWindowProc(Controls::TControl* Control, Messages::TMessage &Message); bool __fastcall MainWindowHook(Messages::TMessage &Message); void __fastcall PanelWindowProc(Controls::TControl* Control, Messages::TMessage &Message); void __fastcall SetThemeOptions(const TThemeOptions Value); void __fastcall SpeedButtonWindowProc(Controls::TControl* Control, Messages::TMessage &Message); void __fastcall SplitterWindowProc(Controls::TControl* Control, Messages::TMessage &Message); void __fastcall StatusBarWindowProc(Controls::TControl* Control, Messages::TMessage &Message); void __fastcall TabSheetWindowProc(Controls::TControl* Control, Messages::TMessage &Message); void __fastcall TrackBarWindowProc(Controls::TControl* Control, Messages::TMessage &Message); void __fastcall WinControlWindowProc(Controls::TControl* Control, Messages::TMessage &Message); void __fastcall PreAnimateWindowProc(Messages::TMessage &Message); void __fastcall PreButtonControlWindowProc(Messages::TMessage &Message); void __fastcall PreCheckBoxWindowProc(Messages::TMessage &Message); void __fastcall PreButtonWindowProc(Messages::TMessage &Message); void __fastcall PreCheckListBoxWindowProc(Messages::TMessage &Message); void __fastcall PreFormWindowProc(Messages::TMessage &Message); void __fastcall PreFrameWindowProc(Messages::TMessage &Message); void __fastcall PreGroupBoxWindowProc(Messages::TMessage &Message); void __fastcall PreListviewWindowProc(Messages::TMessage &Message); void __fastcall PrePanelWindowProc(Messages::TMessage &Message); void __fastcall PreSpeedButtonWindowProc(Messages::TMessage &Message); void __fastcall PreSplitterWindowProc(Messages::TMessage &Message); void __fastcall PreStatusBarWindowProc(Messages::TMessage &Message); void __fastcall PreTabSheetWindowProc(Messages::TMessage &Message); void __fastcall PreTrackBarWindowProc(Messages::TMessage &Message); void __fastcall PreWinControlWindowProc(Messages::TMessage &Message); bool __fastcall GetThemesEnabled(void); protected: virtual void __fastcall AddRecreationCandidate(Controls::TControl* Control); void __fastcall BroadcastThemeChange(void); /* class method */ static TThemeManager* __fastcall CurrentThemeManager(TMetaClass* vmt); virtual bool __fastcall DoAllowSubclassing(Controls::TControl* Control); virtual bool __fastcall DoControlMessage(Controls::TControl* Control, Messages::TMessage &Message); virtual void __fastcall DoOnThemeChange(void); void __fastcall DrawBitBtn(Buttons::TBitBtn* Control, tagDRAWITEMSTRUCT &DrawItemStruct); void __fastcall DrawButton(Controls::TControl* Control, Themesrv::TThemedButton Button, HDC DC, const Types::TRect &R, bool Focused); bool __fastcall FindListener(TControlMessageEvent AControlMessage, int &Index); void __fastcall FixControls(Forms::TCustomForm* Form = (Forms::TCustomForm*)(0x0)); virtual void __fastcall ForceAsMainManager(void); virtual void __fastcall HandleControlChange(Controls::TControl* Control, bool Inserting); bool __fastcall IsRecreationCandidate(Controls::TControl* Control); virtual void __fastcall Loaded(void); virtual bool __fastcall NeedsBorderPaint(Controls::TControl* Control); virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation); void __fastcall RemoveChildSubclassing(Controls::TWinControl* Control); void __fastcall RemoveRecreationCandidate(Controls::TControl* Control); void __fastcall UpdateThemes(void); void __fastcall UpdateUIState(Controls::TControl* Control, Word CharCode); public: __fastcall virtual TThemeManager(Classes::TComponent* AOwner); __fastcall virtual ~TThemeManager(void); Graphics::TColor __fastcall GetColor(Themesrv::TThemedElement Element, int PartId, int StateId, int PropId); __property bool ThemesEnabled = {read=GetThemesEnabled, nodefault}; void __fastcall ClearLists(void); void __fastcall CollectForms(Forms::TCustomForm* Form = (Forms::TCustomForm*)(0x0)); void __fastcall CollectControls(Controls::TWinControl* Parent); void __fastcall PerformEraseBackground(Controls::TControl* Control, HDC DC); void __fastcall RegisterListener(TControlMessageEvent AControlMessage); void __fastcall UnregisterListener(TControlMessageEvent AControlMessage); __property bool IsMainManager = {read=GetIsMainManager, nodefault}; __published: __property TThemeOptions Options = {read=FOptions, write=SetThemeOptions, default=524279}; __property TAllowSubclassingEvent OnAllowSubclassing = {read=FOnAllowSubclassing, write=FOnAllowSubclassing}; __property TControlMessageEvent OnControlMessage = {read=FOnControlMessage, write=FOnControlMessage}; __property Classes::TNotifyEvent OnThemeChange = {read=FOnThemeChange, write=FOnThemeChange}; }; //-- var, const, procedure --------------------------------------------------- #define TMVersion "1.10.1" static const Word CM_DENYSUBCLASSING = 0xb7d0; static const Word SPI_GETFOCUSBORDERWIDTH = 0x200e; static const Word SPI_SETFOCUSBORDERWIDTH = 0x200f; static const Word SPI_GETFOCUSBORDERHEIGHT = 0x2010; static const Word SPI_SETFOCUSBORDERHEIGHT = 0x2011; #define DefaultThemeOptions (System::Set () << TThemeOption(0) << TThemeOption(1) << TThemeOption(2) << TThemeOption(4) << TThemeOption(5) << TThemeOption(6) << TThemeOption(7) << TThemeOption(8) << TThemeOption(9) << TThemeOption(10) << TThemeOption(11) << TThemeOption(12) << TThemeOption(13) << TThemeOption(14) << TThemeOption(15) << TThemeOption(16) << TThemeOption(17) << TThemeOption(18) ) extern PACKAGE bool IsWindowsXP; } /* namespace Thememgr */ using namespace Thememgr; #pragma option pop // -w- #pragma option pop // -Vx #pragma delphiheader end. //-- end unit ---------------------------------------------------------------- #endif // ThemeMgr