home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 December / Chip_2002-12_cd1.bin / zkuste / delphi / kompon / d234567 / MAGNET.ZIP / BCB4 / FormMagnet.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  2002-09-23  |  6.3 KB  |  208 lines

  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 1999 by Borland International
  3. // All rights reserved
  4.  
  5. // (DO NOT EDIT: machine generated header) 'FormMagnet.pas' rev: 4.00
  6.  
  7. #ifndef FormMagnetHPP
  8. #define FormMagnetHPP
  9.  
  10. #pragma delphiheader begin
  11. #pragma option push -w-
  12. #include <Forms.hpp>    // Pascal unit
  13. #include <Classes.hpp>    // Pascal unit
  14. #include <Messages.hpp>    // Pascal unit
  15. #include <Windows.hpp>    // Pascal unit
  16. #include <SysInit.hpp>    // Pascal unit
  17. #include <System.hpp>    // Pascal unit
  18.  
  19. //-- user supplied -----------------------------------------------------------
  20.  
  21. namespace Formmagnet
  22. {
  23. //-- type declarations -------------------------------------------------------
  24. class DELPHICLASS TMagnetFormHookComponent;
  25. #pragma pack(push, 4)
  26. class PASCALIMPLEMENTATION TMagnetFormHookComponent : public Classes::TComponent 
  27. {
  28.     typedef Classes::TComponent inherited;
  29.     
  30. private:
  31.     bool Hooked;
  32.     Forms::TForm* FParentForm;
  33.     unsigned FParentHandle;
  34.     void *FOldWndProc;
  35.     void *FNewWndProc;
  36.     void __fastcall HookWndProc(Messages::TMessage &Message);
  37.     
  38. protected:
  39.     virtual void __fastcall MessageBefore(Messages::TMessage &Message, bool &Handled);
  40.     virtual void __fastcall MessageAfter(Messages::TMessage &Message);
  41.     virtual void __fastcall FormRecreate(void);
  42.     virtual unsigned __fastcall GetParentHandle(void);
  43.     
  44. public:
  45.     __fastcall virtual TMagnetFormHookComponent(Classes::TComponent* aOwner);
  46.     __fastcall virtual ~TMagnetFormHookComponent(void);
  47.     __property Forms::TForm* ParentForm = {read=FParentForm};
  48.     __property unsigned ParentHandle = {read=FParentHandle, nodefault};
  49.     __property void * OldWndProc = {read=FOldWndProc};
  50. };
  51.  
  52. #pragma pack(pop)
  53.  
  54. #pragma option push -b-
  55. enum TScreenArea { saFullScreen, saWorkArea };
  56. #pragma option pop
  57.  
  58. class DELPHICLASS TScreenMagnet;
  59. #pragma pack(push, 4)
  60. class PASCALIMPLEMENTATION TScreenMagnet : public Classes::TPersistent 
  61. {
  62.     typedef Classes::TPersistent inherited;
  63.     
  64. private:
  65.     TScreenArea FArea;
  66.     Byte FDesktopPower;
  67.     bool FTop;
  68.     bool FBottom;
  69.     bool FLeft;
  70.     bool FRight;
  71.     
  72. public:
  73.     __fastcall TScreenMagnet(void);
  74.     
  75. __published:
  76.     __property TScreenArea Area = {read=FArea, write=FArea, nodefault};
  77.     __property Byte DesktopPower = {read=FDesktopPower, write=FDesktopPower, nodefault};
  78.     __property bool Top = {read=FTop, write=FTop, nodefault};
  79.     __property bool Bottom = {read=FBottom, write=FBottom, nodefault};
  80.     __property bool Left = {read=FLeft, write=FLeft, nodefault};
  81.     __property bool Right = {read=FRight, write=FRight, nodefault};
  82. public:
  83.     #pragma option push -w-inl
  84.     /* TPersistent.Destroy */ inline __fastcall virtual ~TScreenMagnet(void) { }
  85.     #pragma option pop
  86.     
  87. };
  88.  
  89. #pragma pack(pop)
  90.  
  91. class DELPHICLASS TGluedObject;
  92. class DELPHICLASS TFormMagnet;
  93. #pragma option push -b-
  94. enum TMagnetType { mkOnMoving, mkAfterMoving };
  95. #pragma option pop
  96.  
  97. typedef void __fastcall (__closure *TOnGlue)(System::TObject* Sender, Forms::TForm* AnotherForm, bool 
  98.     &AllowGlue);
  99.  
  100. typedef void __fastcall (__closure *TOnMagnet)(System::TObject* Sender, Forms::TForm* AnotherForm, bool 
  101.     &AllowMagnet);
  102.  
  103. class DELPHICLASS TGlueList;
  104. #pragma pack(push, 4)
  105. class PASCALIMPLEMENTATION TGlueList : public Classes::TList 
  106. {
  107.     typedef Classes::TList inherited;
  108.     
  109. public:
  110.     bool __fastcall IsGluedTo(TFormMagnet* Magnet);
  111.     Windows::TPoint __fastcall GetFormPositionByMagnet(TFormMagnet* Magnet);
  112. public:
  113.     #pragma option push -w-inl
  114.     /* TList.Destroy */ inline __fastcall virtual ~TGlueList(void) { }
  115.     #pragma option pop
  116.     
  117. public:
  118.     #pragma option push -w-inl
  119.     /* TObject.Create */ inline __fastcall TGlueList(void) : Classes::TList() { }
  120.     #pragma option pop
  121.     
  122. };
  123.  
  124. #pragma pack(pop)
  125.  
  126. #pragma pack(push, 4)
  127. class PASCALIMPLEMENTATION TFormMagnet : public TMagnetFormHookComponent 
  128. {
  129.     typedef TMagnetFormHookComponent inherited;
  130.     
  131. private:
  132.     bool FActive;
  133.     bool FGlue;
  134.     bool FFormDragable;
  135.     TMagnetType FMagnetType;
  136.     Byte FPower;
  137.     TScreenMagnet* FScreenMagnet;
  138.     TOnGlue FOnGlue;
  139.     TOnMagnet FOnMagnet;
  140.     Classes::TNotifyEvent FOnDragMove;
  141.     bool Suspended;
  142.     TGlueList* GluedTo;
  143.     bool Moving;
  144.     Windows::TPoint BeginMovingPos;
  145.     void __fastcall SetActive(bool Value);
  146.     bool __fastcall AllowGlueTo(TFormMagnet* AnotherMagnet);
  147.     bool __fastcall AllowMagnetTo(TFormMagnet* AnotherMagnet);
  148.     void __fastcall RecalculateGluing(void);
  149.     void __fastcall MagnetByDraggingRect(Windows::TRect &DraggingRect, bool CalculateRelativePlacement, 
  150.         bool GlueOnly);
  151.     
  152. protected:
  153.     virtual void __fastcall MessageBefore(Messages::TMessage &Message, bool &Handled);
  154.     virtual void __fastcall MessageAfter(Messages::TMessage &Message);
  155.     virtual void __fastcall Loaded(void);
  156.     
  157. public:
  158.     __fastcall virtual TFormMagnet(Classes::TComponent* aOwner);
  159.     __fastcall virtual ~TFormMagnet(void);
  160.     void __fastcall DoMagnet(void);
  161.     
  162. __published:
  163.     __property bool Active = {read=FActive, write=SetActive, nodefault};
  164.     __property bool Glue = {read=FGlue, write=FGlue, nodefault};
  165.     __property bool FormDragable = {read=FFormDragable, write=FFormDragable, nodefault};
  166.     __property TMagnetType MagnetType = {read=FMagnetType, write=FMagnetType, nodefault};
  167.     __property Byte Power = {read=FPower, write=FPower, nodefault};
  168.     __property TScreenMagnet* ScreenMagnet = {read=FScreenMagnet, write=FScreenMagnet};
  169.     __property TOnGlue OnGlue = {read=FOnGlue, write=FOnGlue};
  170.     __property TOnMagnet OnMagnet = {read=FOnMagnet, write=FOnMagnet};
  171.     __property Classes::TNotifyEvent OnDragMove = {read=FOnDragMove, write=FOnDragMove};
  172. };
  173.  
  174. #pragma pack(pop)
  175.  
  176. #pragma pack(push, 4)
  177. class PASCALIMPLEMENTATION TGluedObject : public System::TObject 
  178. {
  179.     typedef System::TObject inherited;
  180.     
  181. private:
  182.     TFormMagnet* Magnet;
  183.     Windows::TPoint Position;
  184.     
  185. public:
  186.     __fastcall TGluedObject(TFormMagnet* aMagnet, int aLeft, int aTop);
  187. public:
  188.     #pragma option push -w-inl
  189.     /* TObject.Destroy */ inline __fastcall virtual ~TGluedObject(void) { }
  190.     #pragma option pop
  191.     
  192. };
  193.  
  194. #pragma pack(pop)
  195.  
  196. //-- var, const, procedure ---------------------------------------------------
  197. extern PACKAGE void __fastcall Register(void);
  198.  
  199. }    /* namespace Formmagnet */
  200. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  201. using namespace Formmagnet;
  202. #endif
  203. #pragma option pop    // -w-
  204.  
  205. #pragma delphiheader end.
  206. //-- end unit ----------------------------------------------------------------
  207. #endif    // FormMagnet
  208.