home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / cb / setup / cbuilder / data.z / LIBMAIN.HPP < prev    next >
C/C++ Source or Header  |  1997-02-28  |  36KB  |  830 lines

  1. //----------------------------------------------------------------------------
  2. // LibMain.hpp - bcbdcc32 generated hdr (DO NOT EDIT) rev: 0
  3. // From: LibMain.pas
  4. //----------------------------------------------------------------------------
  5. #ifndef LibMainHPP
  6. #define LibMainHPP
  7. //----------------------------------------------------------------------------
  8. #include <OleCtrls.hpp>
  9. #include <Dialogs.hpp>
  10. #include <DsgnWnds.hpp>
  11. #include <EditIntf.hpp>
  12. #include <VirtFile.hpp>
  13. #include <Update.hpp>
  14. #include <LibIntf.hpp>
  15. #include <IStreams.hpp>
  16. #include <VirtIntf.hpp>
  17. #include <DsgnIntf.hpp>
  18. #include <Exptintf.hpp>
  19. #include <TypInfo.hpp>
  20. #include <Proxies.hpp>
  21. #include <Graphics.hpp>
  22. #include <Controls.hpp>
  23. #include <Menus.hpp>
  24. #include <Forms.hpp>
  25. #include <Messages.hpp>
  26. #include <Classes.hpp>
  27. #include <SysUtils.hpp>
  28. #include <Windows.hpp>
  29. #include <System.hpp>
  30. #pragma warn -par
  31. #pragma warn -hid 
  32. #pragma warn -inl
  33.  
  34. namespace Libmain
  35. {
  36. //-- type declarations -------------------------------------------------------
  37. class __declspec(delphiclass) TDesignerToolWindow;
  38. class __declspec(delphiclass) TWindowDesigner;
  39. class __declspec(delphiclass) TLibForm;
  40. class __declspec(pascalimplementation) TLibForm : public Libintf::TIForm
  41. {
  42.     typedef Libintf::TIForm inherited;
  43.     
  44. private:
  45.     Libintf::TEditState __fastcall GetEditState(void);
  46.     Controls::TWinControl* __fastcall GetTabParent(void);
  47.     Controls::TWinControl* __fastcall GetTabComponent(Controls::TWinControl* AParent, int Order);
  48.     void __fastcall Modified(void);
  49.     
  50. public:
  51.     Libintf::TIModule* Module;
  52.     TWindowDesigner* Designer;
  53.     Classes::TStream* FormStream;
  54.     bool Visible;
  55.     TWindowState WindowState;
  56.     __fastcall TLibForm(Libintf::TIModule* AModule, const System::AnsiString AFileName, bool Existing, 
  57.         Virtintf::TIStream* AForm, const System::AnsiString AFormName, const System::AnsiString AncestorName
  58.         , const System::AnsiString AFileSystem);
  59.     __fastcall virtual ~TLibForm(void);
  60.     virtual bool __fastcall CheckFileDate(void);
  61.     virtual void __fastcall Align(Libintf::TAffect Affect);
  62.     virtual void __fastcall CreateComponent(Libintf::TICompClass* CompClass);
  63.     void __fastcall EditAction(Libintf::TEditAction Action);
  64.     virtual System::AnsiString __fastcall FindCompClass(const System::AnsiString CompName);
  65.     virtual Virtintf::TIStream* __fastcall FormFileOpen(void);
  66.     virtual System::AnsiString __fastcall GetAncestorName(void);
  67.     virtual int __fastcall GetCompCount(void);
  68.     virtual void __fastcall GetDependentForms(Libintf::TGetFormProc Proc);
  69.     virtual Libintf::TDesignerKind __fastcall GetDesignerKind(void);
  70.     virtual void __fastcall GetFormDependencies(Libintf::TGetFormProc Proc);
  71.     virtual void * __fastcall GetNVComp(int Index);
  72.     virtual Libintf::TICompInfo* __fastcall GetCompInfo(int Index);
  73.     virtual System::AnsiString __fastcall GetFileName(void);
  74.     virtual long __fastcall GetModifyTime(void);
  75.     virtual Libintf::TIModule* __fastcall GetModule(void);
  76.     virtual System::AnsiString __fastcall GetCompName(int Index);
  77.     virtual System::AnsiString __fastcall GetFileSystem(void);
  78.     virtual Editintf::TIFormInterface* __fastcall GetFormInterface(void);
  79.     virtual System::AnsiString __fastcall GetFormName(void);
  80.     virtual HBITMAP __fastcall GetFormImage(void);
  81.     virtual void __fastcall GetFormUnits(Classes::TGetStrProc Proc);
  82.     virtual Libintf::TFormState __fastcall GetState(void);
  83.     virtual int __fastcall GetTabCompCount(void);
  84.     virtual bool __fastcall GetTabCompInfo(int Order,  System::AnsiString &Name, void * &Comp);
  85.     virtual int __fastcall GetObjectMenuItemCount(void);
  86.     virtual System::AnsiString __fastcall GetObjectMenuItem(int Index);
  87.     virtual long __fastcall GetTimeAtLoad(void);
  88.     virtual void __fastcall ObjectMenuAction(int Index);
  89.     virtual void __fastcall Rename(const System::AnsiString NewFileName);
  90.     virtual void __fastcall RenameFormMethod(const System::AnsiString CurName, const System::AnsiString 
  91.         NewName);
  92.     virtual void __fastcall RemoveDependentLinks(void);
  93.     virtual void __fastcall Save(void);
  94.     virtual void __fastcall SetFileSystem(const System::AnsiString FileSystem);
  95.     virtual void __fastcall SetFormName(const System::AnsiString AName);
  96.     virtual void __fastcall Scale(int Factor);
  97.     virtual void __fastcall SetSelection(const System::AnsiString Name);
  98.     virtual void __fastcall SetNVComp(void * Comp, int Order);
  99.     virtual void __fastcall SetTabCompOrder(void * Comp, int Order);
  100.     virtual void __fastcall Show(void);
  101.     virtual void __fastcall Hide(void);
  102.     virtual void __fastcall ShowAs(Libintf::TShowState ShowState);
  103.     virtual void __fastcall Size(Libintf::TSizeAffect Affect, int Value);
  104. };
  105.  
  106. class __declspec(delphiclass) TGrabHandles;
  107. class __declspec(delphiclass) TSelection;
  108. class __declspec(pascalimplementation) TSelection : public System::TObject
  109. {
  110.     typedef System::TObject inherited;
  111.     
  112. private:
  113.     TWindowDesigner* FDesigner;
  114.     Classes::TComponent* FComponent;
  115.     Dsgnintf::TComponentEditor* FEditor;
  116.     bool FMarked;
  117.     Byte FReserved;
  118.     
  119. protected:
  120.     virtual Windows::TRect __fastcall GetBoundsRect(void) = 0;
  121.     virtual int __fastcall GetDimension(int Index) = 0;
  122.     virtual Controls::TWinControl* __fastcall GetParent(void) = 0;
  123.     virtual void __fastcall Invalidate(void) = 0;
  124.     virtual void __fastcall SetBoundsRect(const Windows::TRect &Value) = 0;
  125.     virtual void __fastcall SetDimension(int Index, int Value) = 0;
  126.     void __fastcall SetMarked(bool Value);
  127.     
  128. public:
  129.     __fastcall TSelection(TWindowDesigner* Designer, Classes::TComponent* Component);
  130.     __fastcall virtual ~TSelection(void);
  131.     virtual void __fastcall ZOrder(bool Front) = 0;
  132.     virtual POINT __fastcall ClientToScreen(const POINT &P) = 0;
  133.     __property Classes::TComponent* Component = {read=FComponent, nodefault};
  134.     __property Dsgnintf::TComponentEditor* Editor = {read=FEditor, nodefault};
  135.     __property Windows::TRect BoundsRect = {read=GetBoundsRect, write=SetBoundsRect};
  136.     __property int Left = {read=GetDimension, write=SetDimension, index=0, nodefault};
  137.     __property int Top = {read=GetDimension, write=SetDimension, index=1, nodefault};
  138.     __property int Width = {read=GetDimension, write=SetDimension, index=2, nodefault};
  139.     __property int Height = {read=GetDimension, write=SetDimension, index=3, nodefault};
  140.     __property bool Marked = {read=FMarked, write=SetMarked, nodefault};
  141.     __property Controls::TWinControl* Parent = {read=GetParent, nodefault};
  142. };
  143.  
  144. class __declspec(pascalimplementation) TGrabHandles : public System::TObject
  145. {
  146.     typedef System::TObject inherited;
  147.     
  148. private:
  149.     TWindowDesigner* FDesigner;
  150.     void *FObjectInstance;
  151.     TSelection* FSelection;
  152.     Controls::TWinControl* FParent;
  153.     bool FVisible;
  154.     bool FActive;
  155.     HWND FHandles[8];
  156.     HICON FCursors[8];
  157.     void __fastcall SetActive(bool Value);
  158.     void __fastcall SetSelection(TSelection* NewSelection);
  159.     void __fastcall Update(void);
  160.     long __fastcall WndProc(HWND Window, Cardinal Message, long WParam, long LParam);
  161.     
  162. public:
  163.     __fastcall TGrabHandles(TWindowDesigner* ADesigner);
  164.     __fastcall virtual ~TGrabHandles(void);
  165.     void __fastcall Hide(void);
  166.     void __fastcall Show(void);
  167.     void __fastcall Invalidate(void);
  168.     __property bool Active = {read=FActive, write=SetActive, nodefault};
  169.     __property TSelection* Selection = {read=FSelection, write=SetSelection, nodefault};
  170. };
  171.  
  172. enum TDragAction { daNone, daCreate, daSelect, daMove, daSize };
  173.  
  174. enum TCoordinate { cLeft, cTop, cRight, cBottom };
  175.  
  176. typedef Set<TCoordinate, cLeft, cBottom>  TCoordinates;
  177.  
  178. class __declspec(delphiclass) TDragTarget;
  179. class __declspec(pascalimplementation) TDragTarget : public System::TObject
  180. {
  181.     typedef System::TObject inherited;
  182.     
  183. private:
  184.     Dsgnintf::TFormDesigner* FDesigner;
  185.     
  186. public:
  187.     __fastcall virtual TDragTarget(Dsgnintf::TFormDesigner* ADesigner);
  188.     virtual bool __fastcall DragOver(System::TObject* Target, System::TObject* Source, int X, int Y, Controls::TDragState 
  189.         State) = 0;
  190.     virtual void __fastcall DragDrop(System::TObject* Target, System::TObject* Source, int X, int Y) = 0
  191.         ;
  192.     __property Dsgnintf::TFormDesigner* Designer = {read=FDesigner, nodefault};
  193. public:
  194.     /* TObject.Destroy */ __fastcall virtual ~TDragTarget(void) { }
  195.     
  196. };
  197.  
  198. class __declspec(delphiclass) TFormIntf;
  199. class __declspec(pascalimplementation) TFormIntf : public Editintf::TIFormInterface
  200. {
  201.     typedef Editintf::TIFormInterface inherited;
  202.     
  203. private:
  204.     TWindowDesigner* FDesigner;
  205.     
  206. public:
  207.     __fastcall TFormIntf(TWindowDesigner* ADesigner);
  208.     __fastcall virtual ~TFormIntf(void);
  209.     virtual System::AnsiString __stdcall FileName(void);
  210.     virtual bool __stdcall FormModified(void);
  211.     virtual bool __stdcall MarkModified(void);
  212.     virtual Editintf::TIComponentInterface* __stdcall GetFormComponent(void);
  213.     virtual Editintf::TIComponentInterface* __stdcall FindComponent(const System::AnsiString Name);
  214.     virtual Editintf::TIComponentInterface* __stdcall GetComponentFromHandle(void * ComponentHandle);
  215.     virtual int __stdcall GetSelCount(void);
  216.     virtual Editintf::TIComponentInterface* __stdcall GetSelComponent(int Index);
  217.     virtual Editintf::TIComponentInterface* __stdcall GetCreateParent(void);
  218.     virtual Editintf::TIComponentInterface* __stdcall CreateComponent(Editintf::TIComponentInterface* Container
  219.         , const System::AnsiString TypeName, int X, int Y, int W, int H);
  220. };
  221.  
  222. class __declspec(delphiclass) TContainer;
  223. enum TGrabLocation { gTopLeft, gTop, gTopRight, gRight, gBottomRight, gBottom, gBottomLeft, gLeft };
  224.     
  225. class __declspec(pascalimplementation) TWindowDesigner : public Dsgnintf::TFormDesigner
  226. {
  227.     typedef Dsgnintf::TFormDesigner inherited;
  228.     
  229. public:
  230.     TLibForm* LibForm;
  231.     Classes::TList* Containers;
  232.     Controls::TWinControl* ContainerWindow;
  233.     Classes::TComponent* Root;
  234.     
  235. private:
  236.     Classes::TMemoryStream* FormStream;
  237.     long ModifyTime;
  238.     long DiskAge;
  239.     TGrabHandles* GrabHandles;
  240.     Classes::TList* Selections;
  241.     int SelectLevel;
  242.     bool SelectionChanged;
  243.     Byte Reserved;
  244.     Controls::TControlCanvas* Canvas;
  245.     POINT GridSize;
  246.     bool GridAlign;
  247.     bool DisplayGrid;
  248.     bool ShowCaptions;
  249.     Graphics::TBitmap* GridImage;
  250.     POINT ImageGridSize;
  251.     Graphics::TColor ImageColor;
  252.     TDragAction DragAction;
  253.     TCoordinates DragCoords;
  254.     Controls::TWinControl* DragParent;
  255.     POINT Anchor;
  256.     Windows::TRect DragRect;
  257.     System::AnsiString FileName;
  258.     Classes::TStream* UndoStream;
  259.     Controls::TWinControl* UndoParent;
  260.     Dsgnintf::TComponentEditor* FormEditor;
  261.     Menus::TPopupMenu* LocalMenu;
  262.     bool InUndo;
  263.     bool CreateContainers;
  264.     Update::TUpdateManager* UpdateManager;
  265.     Classes::TStrings* ImportedFormList;
  266.     Classes::TList* Dependencies;
  267.     Classes::TList* Dependents;
  268.     bool DependenciesUpToDate;
  269.     TDragTarget* VCLDragTarget;
  270.     Virtfile::TVirtualFileSystem* FFileSystem;
  271.     TFormIntf* FormInterface;
  272.     System::TMetaClass*RootBaseClass;
  273.     TWindowDesigner* AncestorDesigner;
  274.     bool ReadError;
  275.     bool IgnoringErrors;
  276.     Menus::TMenuItem* RevertItem;
  277.     bool FIgnoreRename;
  278.     bool FValidateDeletes;
  279.     __fastcall TWindowDesigner(TLibForm* AForm, const System::AnsiString AFileName, bool Existing, Virtintf::TIStream* 
  280.         IStream, const System::AnsiString AFormName, const System::AnsiString AncestorName, const System::AnsiString 
  281.         AFileSystem);
  282.     __fastcall virtual ~TWindowDesigner(void);
  283.     void __fastcall Activate(bool Activating);
  284.     void __fastcall Align(Libintf::TAffect Affect);
  285.     void __fastcall BeginSelect(void);
  286.     bool __fastcall CanPaste(void);
  287.     void __fastcall ClearDependents(void);
  288.     void __fastcall ClearDependencies(void);
  289.     void __fastcall UpdateDependencies(void);
  290.     void __fastcall ClearSelection(void);
  291.     void __fastcall Close(void);
  292.     void __fastcall ComponentInserted(Classes::TComponent* Component);
  293.     void __fastcall ComponentRemoved(Classes::TComponent* Component);
  294.     void __fastcall ComponentRead(Classes::TComponent* Component);
  295.     void __fastcall ComponentReadAdjust(Classes::TComponent* Component);
  296.     void __fastcall CopySelection(void);
  297.     void __fastcall CreateIComponent(Libintf::TICompClass* CompClass);
  298.     virtual Sysutils::TMethod __fastcall CreateMethod(const System::AnsiString Name, Typinfo::PTypeData 
  299.         TypeData);
  300.     void __fastcall CutSelection(void);
  301.     void __fastcall DeleteSelection(void);
  302.     Classes::TComponent* __fastcall DoCreateComponent(System::TMetaClass* ComponentClass, const Windows::TRect 
  303.         &Rect);
  304.     void __fastcall DoDragCreate(void);
  305.     void __fastcall DoDragSelect(void);
  306.     void __fastcall DoDragMove(void);
  307.     void __fastcall DoDragSize(void);
  308.     void __fastcall DragBegin(const POINT &Pos);
  309.     void __fastcall DragCancel(void);
  310.     void __fastcall DragEnd(const POINT &Pos, bool Accept);
  311.     void __fastcall DragTo(const POINT &Pos);
  312.     void __fastcall DrawDrag(void);
  313.     void __fastcall DrawDragRect(const Windows::TRect &R);
  314.     void __fastcall Edit(Classes::TComponent* Component);
  315.     void __fastcall EndSelect(void);
  316.     TContainer* __fastcall FindContainer(Classes::TComponent* Component);
  317.     Controls::TWinControl* __fastcall FindParentControl(Classes::TComponent* Component);
  318.     Controls::TWinControl* __fastcall FindCurrentParent(void);
  319.     Classes::TComponent* __fastcall FindNearest(Classes::TComponent* CurComponent, Word ArrowKey);
  320.     Classes::TComponent* __fastcall FindNextComponent(Classes::TComponent* CurComponent, bool GoForward
  321.         );
  322.     TSelection* __fastcall FindSelection(Classes::TComponent* Component);
  323.     void __fastcall ForceCommonSelectParent(Controls::TWinControl* CommonParent);
  324.     void __fastcall FreeSelections(void);
  325.     Windows::TRect __fastcall GetDragRect(const POINT &Pos);
  326.     void __fastcall GetDependentForms(Libintf::TGetFormProc Proc);
  327.     void __fastcall GetFormDependencies(Libintf::TGetFormProc Proc);
  328.     Editintf::TIFormInterface* __fastcall GetFormInterface(void);
  329.     Classes::TMemoryStream* __fastcall GetFormStream(void);
  330.     POINT __fastcall GetGridOffset(void);
  331.     virtual System::AnsiString __fastcall GetMethodName(const Sysutils::TMethod &Method);
  332.     virtual void __fastcall GetMethods(Typinfo::PTypeData TypeData, Classes::TGetStrProc Proc);
  333.     virtual System::AnsiString __fastcall GetPrivateDirectory(void);
  334.     virtual void __fastcall GetSelections(Dsgnintf::TComponentList* List);
  335.     void __fastcall GrabHandleMouseDown(const POINT &Pos, TGrabLocation Location);
  336.     void __fastcall InsertSelection(TSelection* Selection);
  337.     virtual bool __fastcall IsDesignMsg(Controls::TControl* Sender, Messages::TMessage &Message);
  338.     void __fastcall KeyDown(Word Key);
  339.     void __fastcall KeyPress(char Ch);
  340.     void __fastcall MenuCommand(Word Command);
  341.     virtual bool __fastcall MethodExists(const System::AnsiString Name);
  342.     virtual bool __fastcall MethodFromAncestor(const Sysutils::TMethod &Method);
  343.     virtual void __fastcall Modified(void);
  344.     void __fastcall MouseDown(Classes::TComponent* Sender, const POINT &Pos, Word Keys, bool DblClick
  345.         , bool RightMouse);
  346.     void __fastcall MoveBy(const POINT &Delta, bool Size);
  347.     virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation
  348.         );
  349.     virtual void __fastcall PaintGrid(void);
  350.     void __fastcall PasteSelection(void);
  351.     POINT __fastcall PointToGrid(const POINT &Pos, bool Force);
  352.     TSelection* __fastcall PrimarySelection(void);
  353.     virtual System::AnsiString __fastcall UniqueName(const System::AnsiString BaseName);
  354.     void __fastcall ReadStream(Classes::TStream* S, Classes::TComponent* Parent, bool AdjustPos);
  355.     void __fastcall ReaderFindMethod(Classes::TReader* Reader, const System::AnsiString MethodName, void * 
  356.         &Address, bool &Error);
  357.     void __fastcall ReaderSetName(Classes::TReader* Reader, Classes::TComponent* Component,  System::AnsiString &
  358.         Name);
  359.     void __fastcall RemoveSelection(TSelection* Selection);
  360.     void __fastcall Rename(const System::AnsiString NewFileName);
  361.     void __fastcall RenameFormMethod(const System::AnsiString CurName, const System::AnsiString NewName
  362.         );
  363.     virtual void __fastcall RenameMethod(const System::AnsiString CurName, const System::AnsiString NewName
  364.         );
  365.     void __fastcall Save(void);
  366.     void __fastcall Select(Classes::TComponent* Component, bool Extend);
  367.     void __fastcall SelectAll(void);
  368.     virtual void __fastcall SelectComponent(Classes::TComponent* Component);
  369.     Classes::TComponent* __fastcall SelectedComponent(void);
  370.     void __fastcall SetActive(bool Value);
  371.     void __fastcall SetFileSystem(const System::AnsiString FileSystem);
  372.     virtual void __fastcall SetSelections(Dsgnintf::TComponentList* List);
  373.     void __fastcall Show(void);
  374.     void __fastcall ShowAs(Libintf::TShowState ShowState);
  375.     virtual void __fastcall ShowMethod(const System::AnsiString Name);
  376.     void __fastcall Size(Libintf::TSizeAffect Affect, int Value);
  377.     void __fastcall StreamSelection(Classes::TStream* S);
  378.     int __fastcall SnapToGrid(int Coord, int GridOffset, int GridSize, bool Force);
  379.     void __fastcall UpdatingFromAncestor(System::TObject* Sender);
  380.     void __fastcall UpdatedFromAncestor(System::TObject* Sender);
  381.     void __fastcall Undo(void);
  382.     void __fastcall UpdateOptions(void);
  383.     virtual void __fastcall ValidateRename(Classes::TComponent* AComponent, const System::AnsiString CurName
  384.         , const System::AnsiString NewName);
  385.     void __fastcall ZOrder(bool Front);
  386.     void __fastcall LocalPopup(System::TObject* Sender);
  387.     void __fastcall AlignToGrid(System::TObject* Sender);
  388.     void __fastcall BringToFront(System::TObject* Sender);
  389.     void __fastcall SendToBack(System::TObject* Sender);
  390.     void __fastcall RevertComponent(System::TObject* Sender);
  391.     void __fastcall AppDialog(Libintf::TDesignDialog DesignDialog);
  392.     void __fastcall AppAlignDialog(System::TObject* Sender);
  393.     void __fastcall AppSizeDialog(System::TObject* Sender);
  394.     void __fastcall AppScaleDialog(System::TObject* Sender);
  395.     void __fastcall AppTabOrderDialog(System::TObject* Sender);
  396.     void __fastcall AppCreationOrderDialog(System::TObject* Sender);
  397.     void __fastcall AppSaveTemplateDialog(System::TObject* Sender);
  398.     void __fastcall AppViewAsText(System::TObject* Sender);
  399.     void __fastcall ComponentVerb(System::TObject* Sender);
  400.     void __fastcall InvokeLocalMenu(int X, int Y);
  401.     void __fastcall MoveContainersFront(void);
  402.     virtual void __fastcall GetComponentNames(Typinfo::PTypeData TypeData, Classes::TGetStrProc Proc);
  403.     virtual Classes::TComponent* __fastcall GetComponent(const System::AnsiString Name);
  404.     virtual System::AnsiString __fastcall GetComponentName(Classes::TComponent* Component);
  405.     void __fastcall AddImportedForm(const System::AnsiString FormName);
  406.     void __fastcall VCLDragDrop(Controls::TControl* Sender, Controls::TCMDrag &DragMsg);
  407.     virtual Classes::TComponent* __fastcall CreateComponent(System::TMetaClass* ComponentClass, Classes::TComponent* 
  408.         Parent, int Left, int Top, int Width, int Height);
  409.     void __fastcall ReadObjectFromStream(Classes::TComponent* Instance, Classes::TStream* Stream);
  410.     void __fastcall ReaderObjectError(Classes::TReader* Reader, const System::AnsiString Message, bool 
  411.         &Handled);
  412.     void __fastcall FindObjectMethod(Classes::TReader* Reader, const System::AnsiString MethodName, void * 
  413.         &Address, bool &Error);
  414.     void __fastcall CreateRootInstance(const System::AnsiString AClassName);
  415.     void __fastcall CreateRootFrom(Classes::TStream* Stream, const System::AnsiString AClassName);
  416.     void __fastcall CreateRootAs(const System::AnsiString AClassName);
  417.     void __fastcall UpdateCreateInfoFrom(Classes::TStream* Stream,  System::AnsiString &ClassName);
  418.     void __fastcall SetCreateInfo(const System::AnsiString AncestorClassName);
  419.     virtual bool __fastcall IsComponentLinkable(Classes::TComponent* Component);
  420.     virtual void __fastcall MakeComponentLinkable(Classes::TComponent* Component);
  421.     virtual Classes::TComponent* __fastcall GetRoot(void);
  422.     virtual void __fastcall Revert(Classes::TPersistent* Instance, Typinfo::PPropInfo PropInfo);
  423.     void __fastcall ResyncContainers(void);
  424.     void __fastcall RemoveDependentLinks(void);
  425.     void __fastcall RemoveDependenciesOn(Classes::TComponent* Component);
  426.     Libintf::TDesignerKind __fastcall GetDesignerKind(void);
  427. public:
  428.     /* TObject.Create */ __fastcall TWindowDesigner(void) : Dsgnintf::TFormDesigner() { }
  429.     
  430. };
  431.  
  432. class __declspec(pascalimplementation) TDesignerToolWindow : public System::TObject
  433. {
  434.     typedef System::TObject inherited;
  435.     
  436. private:
  437.     TWindowDesigner* FDesigner;
  438.     void *FObjectInstance;
  439.     HWND FHandle;
  440.     void __fastcall MainWndProc(Messages::TMessage &Message);
  441.     
  442. protected:
  443.     virtual void __fastcall WndProc(Messages::TMessage &Message);
  444.     
  445. public:
  446.     __fastcall TDesignerToolWindow(TWindowDesigner* Designer);
  447.     __fastcall virtual ~TDesignerToolWindow(void);
  448.     virtual void __fastcall Sync(void);
  449.     void __fastcall Invalidate(void);
  450.     virtual Windows::TRect __fastcall Position(void) = 0;
  451.     __property HWND Handle = {read=FHandle, nodefault};
  452.     __property TWindowDesigner* Designer = {read=FDesigner, nodefault};
  453. };
  454.  
  455. class __declspec(delphiclass) TComponentToolWindow;
  456. class __declspec(pascalimplementation) TComponentToolWindow : public TDesignerToolWindow
  457. {
  458.     typedef TDesignerToolWindow inherited;
  459.     
  460. private:
  461.     Classes::TComponent* FComponent;
  462.     
  463. protected:
  464.     virtual void __fastcall WndProc(Messages::TMessage &Message);
  465.     
  466. public:
  467.     __fastcall TComponentToolWindow(TWindowDesigner* Designer, Classes::TComponent* Component);
  468. public:
  469.     /* TDesignerToolWindow.Destroy */ __fastcall virtual ~TComponentToolWindow(void) { }
  470.     
  471. };
  472.  
  473. class __declspec(delphiclass) TContainerCaption;
  474. class __declspec(pascalimplementation) TContainerCaption : public TComponentToolWindow
  475. {
  476.     typedef TComponentToolWindow inherited;
  477.     
  478. private:
  479.     TContainer* FContainer;
  480.     Graphics::TCanvas* FCanvas;
  481.     System::AnsiString FCurrent;
  482.     
  483. protected:
  484.     virtual Windows::TRect __fastcall Position(void);
  485.     virtual void __fastcall WndProc(Messages::TMessage &Message);
  486.     
  487. public:
  488.     __fastcall TContainerCaption(TWindowDesigner* Designer, TContainer* Container);
  489.     __fastcall virtual ~TContainerCaption(void);
  490.     __property TContainer* Container = {read=FContainer, nodefault};
  491.     void __fastcall Update(void);
  492. };
  493.  
  494. class __declspec(pascalimplementation) TContainer : public TComponentToolWindow
  495. {
  496.     typedef TComponentToolWindow inherited;
  497.     
  498. private:
  499.     POINT FOffset;
  500.     TContainerCaption* FCaption;
  501.     Windows::TRect __fastcall GetBoundsRect(void);
  502.     bool __fastcall GetShowCaption(void);
  503.     int __fastcall GetLeft(void);
  504.     int __fastcall GetTop(void);
  505.     void __fastcall SetBoundsRect(const Windows::TRect &Value);
  506.     void __fastcall SetShowCaption(bool Value);
  507.     void __fastcall SetLeft(int Value);
  508.     void __fastcall SetTop(int Value);
  509.     
  510. protected:
  511.     virtual Windows::TRect __fastcall Position(void);
  512.     virtual void __fastcall WndProc(Messages::TMessage &Message);
  513.     
  514. public:
  515.     __fastcall TContainer(TWindowDesigner* Designer, Classes::TComponent* Component);
  516.     __fastcall virtual ~TContainer(void);
  517.     virtual void __fastcall Sync(void);
  518.     void __fastcall Update(void);
  519.     __property Windows::TRect BoundsRect = {read=GetBoundsRect, write=SetBoundsRect};
  520.     __property int Left = {read=GetLeft, write=SetLeft, nodefault};
  521.     __property int Top = {read=GetTop, write=SetTop, nodefault};
  522.     __property Classes::TComponent* Component = {read=FComponent, nodefault};
  523.     __property TContainerCaption* Caption = {read=FCaption, nodefault};
  524.     __property bool ShowCaption = {read=GetShowCaption, write=SetShowCaption, nodefault};
  525. };
  526.  
  527. class __declspec(delphiclass) TControlSelection;
  528. class __declspec(pascalimplementation) TControlSelection : public TSelection
  529. {
  530.     typedef TSelection inherited;
  531.     
  532. private:
  533.     void __fastcall GetPaintInfo(HWND &Handle, Windows::TRect &Rect);
  534.     
  535. protected:
  536.     virtual Windows::TRect __fastcall GetBoundsRect(void);
  537.     virtual int __fastcall GetDimension(int Index);
  538.     virtual Controls::TWinControl* __fastcall GetParent(void);
  539.     virtual void __fastcall Invalidate(void);
  540.     virtual void __fastcall SetBoundsRect(const Windows::TRect &Value);
  541.     virtual void __fastcall SetDimension(int Index, int Value);
  542.     
  543. public:
  544.     void __fastcall Paint(HDC DC);
  545.     virtual POINT __fastcall ClientToScreen(const POINT &P);
  546.     virtual void __fastcall ZOrder(bool Front);
  547. public:
  548.     /* TSelection.Create */ __fastcall TControlSelection(TWindowDesigner* Designer, Classes::TComponent* 
  549.         Component) : Libmain::TSelection(Designer, Component) { }
  550.     /* TSelection.Destroy */ __fastcall virtual ~TControlSelection(void) { }
  551.     
  552. };
  553.  
  554. class __declspec(delphiclass) TComponentSelection;
  555. class __declspec(pascalimplementation) TComponentSelection : public TSelection
  556. {
  557.     typedef TSelection inherited;
  558.     
  559. private:
  560.     TContainer* FContainer;
  561.     
  562. protected:
  563.     virtual Windows::TRect __fastcall GetBoundsRect(void);
  564.     virtual int __fastcall GetDimension(int Index);
  565.     virtual Controls::TWinControl* __fastcall GetParent(void);
  566.     virtual void __fastcall Invalidate(void);
  567.     virtual void __fastcall SetBoundsRect(const Windows::TRect &Value);
  568.     virtual void __fastcall SetDimension(int Index, int Value);
  569.     
  570. public:
  571.     __fastcall TComponentSelection(TWindowDesigner* Designer, TContainer* Container);
  572.     virtual POINT __fastcall ClientToScreen(const POINT &P);
  573.     virtual void __fastcall ZOrder(bool Front);
  574. public:
  575.     /* TSelection.Destroy */ __fastcall virtual ~TComponentSelection(void) { }
  576.     
  577. };
  578.  
  579. class __declspec(delphiclass) TNilSelection;
  580. class __declspec(pascalimplementation) TNilSelection : public TSelection
  581. {
  582.     typedef TSelection inherited;
  583.     
  584. protected:
  585.     virtual Windows::TRect __fastcall GetBoundsRect(void);
  586.     virtual int __fastcall GetDimension(int Index);
  587.     virtual Controls::TWinControl* __fastcall GetParent(void);
  588.     virtual void __fastcall Invalidate(void);
  589.     virtual void __fastcall SetBoundsRect(const Windows::TRect &Value);
  590.     virtual void __fastcall SetDimension(int Index, int Value);
  591.     
  592. public:
  593.     virtual POINT __fastcall ClientToScreen(const POINT &P);
  594.     virtual void __fastcall ZOrder(bool Front);
  595. public:
  596.     /* TSelection.Create */ __fastcall TNilSelection(TWindowDesigner* Designer, Classes::TComponent* Component
  597.         ) : Libmain::TSelection(Designer, Component) { }
  598.     /* TSelection.Destroy */ __fastcall virtual ~TNilSelection(void) { }
  599.     
  600. };
  601.  
  602. class __declspec(delphiclass) TComponentIntf;
  603. class __declspec(pascalimplementation) TComponentIntf : public Editintf::TIComponentInterface
  604. {
  605.     typedef Editintf::TIComponentInterface inherited;
  606.     
  607. private:
  608.     Classes::TPersistent* FObject;
  609.     TWindowDesigner* FDesigner;
  610.     Typinfo::TPropList *FPropList;
  611.     Editintf::TGetChildCallback FProc;
  612.     void *FParam;
  613.     Typinfo::PPropList __fastcall GetPropList(void);
  614.     void __fastcall GetChildProc(Classes::TComponent* Child);
  615.     
  616. public:
  617.     __fastcall TComponentIntf(Classes::TPersistent* AObject, TWindowDesigner* ADesigner);
  618.     __fastcall virtual ~TComponentIntf(void);
  619.     virtual System::AnsiString __stdcall GetComponentType(void);
  620.     virtual void * __stdcall GetComponentHandle(void);
  621.     virtual Editintf::TIComponentInterface* __stdcall GetParent(void);
  622.     virtual bool __stdcall IsTControl(void);
  623.     virtual int __stdcall GetPropCount(void);
  624.     virtual System::AnsiString __stdcall GetPropName(int Index);
  625.     virtual Editintf::TPropertyType __stdcall GetPropType(int Index);
  626.     virtual Editintf::TPropertyType __stdcall GetPropTypeByName(const System::AnsiString Name);
  627.     virtual bool __stdcall GetPropValue(int Index, void *Value);
  628.     virtual bool __stdcall GetPropValueByName(const System::AnsiString Name, void *Value);
  629.     virtual bool __stdcall SetProp(int Index, const void *Value);
  630.     virtual bool __stdcall SetPropByName(const System::AnsiString Name, const void *Value);
  631.     virtual bool __stdcall GetChildren(void * Param, Editintf::TGetChildCallback Proc);
  632.     virtual int __stdcall GetControlCount(void);
  633.     virtual Editintf::TIComponentInterface* __stdcall GetControl(int Index);
  634.     virtual int __stdcall GetComponentCount(void);
  635.     virtual Editintf::TIComponentInterface* __stdcall GetComponent(int Index);
  636.     virtual bool __stdcall Select(void);
  637.     virtual bool __stdcall Focus(void);
  638.     virtual bool __stdcall Delete(void);
  639. };
  640.  
  641. class __declspec(delphiclass) TProperty;
  642. class __declspec(pascalimplementation) TProperty : public Libintf::TIProperty
  643. {
  644.     typedef Libintf::TIProperty inherited;
  645.     
  646. private:
  647.     Dsgnintf::TPropertyEditor* Editor;
  648.     
  649. public:
  650.     __fastcall TProperty(Dsgnintf::TPropertyEditor* AEditor);
  651.     __fastcall virtual ~TProperty(void);
  652.     virtual void __fastcall Activate(void);
  653.     virtual bool __fastcall AllEqual(void);
  654.     virtual void __fastcall Edit(void);
  655.     virtual Dsgnintf::TPropertyAttributes __fastcall GetAttributes(void);
  656.     virtual System::AnsiString __fastcall GetCompClassName(void);
  657.     virtual int __fastcall GetEditLimit(void);
  658.     virtual bool __fastcall GetEditValue( System::AnsiString &Value);
  659.     virtual System::AnsiString __fastcall GetName(void);
  660.     virtual void __fastcall GetProperties(Libintf::TGetPropProc Proc);
  661.     virtual Typinfo::PTypeInfo __fastcall GetPropType(void);
  662.     virtual System::AnsiString __fastcall GetValue(void);
  663.     virtual void __fastcall GetValues(Classes::TGetStrProc Proc);
  664.     virtual void __fastcall Revert(void);
  665.     virtual void __fastcall SetValue(const System::AnsiString Value);
  666. };
  667.  
  668. class __declspec(delphiclass) TCompInfo;
  669. class __declspec(pascalimplementation) TCompInfo : public Libintf::TICompInfo
  670. {
  671.     typedef Libintf::TICompInfo inherited;
  672.     
  673. private:
  674.     TWindowDesigner* FDesigner;
  675.     Classes::TComponent* FComponent;
  676.     Typinfo::TPropList *FList;
  677.     int FCount;
  678.     
  679. public:
  680.     __fastcall TCompInfo(TWindowDesigner* Designer, Classes::TComponent* Component);
  681.     __fastcall virtual ~TCompInfo(void);
  682.     virtual void __fastcall ClearEvent(int Index);
  683.     virtual System::AnsiString __fastcall GetClassName(void);
  684.     virtual int __fastcall GetEventCount(void);
  685.     virtual Typinfo::PPropInfo __fastcall GetEventInfo(int Index);
  686.     virtual System::AnsiString __fastcall GetEventValue(int Index);
  687.     virtual void * __fastcall GetComponentHandle(void);
  688. };
  689.  
  690. class __declspec(delphiclass) TCompClass;
  691. class __declspec(pascalimplementation) TCompClass : public Libintf::TICompClass
  692. {
  693.     typedef Libintf::TICompClass inherited;
  694.     
  695. private:
  696.     System::TMetaClass*ComponentClass;
  697.     int ModuleIndex;
  698.     System::AnsiString DefaultPage;
  699.     int Offset;
  700.     
  701. public:
  702.     __fastcall TCompClass(System::TMetaClass* AComponentClass, int AModuleIndex, const System::AnsiString 
  703.         ADefaultPage);
  704.     virtual POINT __fastcall GetBitmapPos(bool Selected);
  705.     virtual System::AnsiString __fastcall GetClassName(void);
  706.     virtual System::AnsiString __fastcall GetDefaultPage(void);
  707.     virtual int __fastcall GetModuleIndex(void);
  708. public:
  709.     /* TObject.Destroy */ __fastcall virtual ~TCompClass(void) { }
  710.     
  711. };
  712.  
  713. class __declspec(delphiclass) TLibrary;
  714. class __declspec(pascalimplementation) TLibrary : public Libintf::TILibrary
  715. {
  716.     typedef Libintf::TILibrary inherited;
  717.     
  718. private:
  719.     Classes::TList* FormList;
  720.     TLibForm* ActiveForm;
  721.     Forms::TForm* ActiveWindow;
  722.     Dsgnintf::TComponentList* Selection;
  723.     Classes::TList* ExpertList;
  724.     Libintf::TGetPropProc PropProc;
  725.     void *ExitList;
  726.     Graphics::TBitmap* CompBitmap;
  727.     bool ControlsLocked;
  728.     void __fastcall CreateProperty(Dsgnintf::TPropertyEditor* Prop);
  729.     void __fastcall FormActivated(Libintf::TIForm* Form);
  730.     void __fastcall CreateComponentBitmap(void);
  731.     void __fastcall RegisterExperts(void);
  732.     void __fastcall UnRegisterExperts(void);
  733.     void __fastcall UpdateSelections(void);
  734.     void __fastcall UpdateFormDependents(void);
  735.     void __fastcall ShowException(System::TObject* Sender, Sysutils::Exception* E);
  736.     
  737. public:
  738.     __fastcall TLibrary(Libintf::TIAppBuilder* App);
  739.     __fastcall virtual ~TLibrary(void);
  740.     void __fastcall CancelModes(void);
  741.     virtual Libintf::TIForm* __fastcall CreateForm(Libintf::TIModule* AModule, const System::AnsiString 
  742.         AFileName, bool Existing, const System::AnsiString AFormName, const System::AnsiString AAncestor, 
  743.         const System::AnsiString AFileSystem);
  744.     virtual Libintf::TIForm* __fastcall CreateFromStream(Libintf::TIModule* AModule, const System::AnsiString 
  745.         AFileName, const System::AnsiString AFileSystem, Virtintf::TIStream* IStream);
  746.     virtual void __fastcall DesignerOptionsChanged(void);
  747.     virtual void __fastcall EditAction(Libintf::TEditAction Action);
  748.     virtual Libintf::TIFile* __fastcall FindFile(const System::AnsiString FileName);
  749.     TLibForm* __fastcall FindForm(const System::AnsiString FormName);
  750.     virtual Libintf::TIForm* __fastcall GetActiveForm(void);
  751.     virtual void __fastcall GetClassUnits(const System::AnsiString ClassName, Classes::TGetStrProc Proc
  752.         );
  753.     virtual Libintf::TICompClass* __fastcall GetCompClass(int Index);
  754.     virtual int __fastcall GetCompClassCount(void);
  755.     virtual void __fastcall GetCompHierarchy(Classes::TGetStrProc Proc);
  756.     virtual HBITMAP __fastcall GetComponentBitmap(void);
  757.     virtual Libintf::TEditState __fastcall GetEditState(void);
  758.     virtual int __fastcall GetModuleCount(void);
  759.     virtual System::AnsiString __fastcall GetModuleName(int Index);
  760.     virtual bool __fastcall GetOleCtrlHelp(const System::AnsiString Member, int &HelpCtx,  System::AnsiString &
  761.         HelpFile);
  762.     virtual void __fastcall GetProperties(Libintf::TPropKind PropKind, Libintf::TGetPropProc Proc);
  763.     virtual System::AnsiString __fastcall GetSelectionName(void);
  764.     virtual System::AnsiString __fastcall GetSelectionType(void);
  765.     virtual void __fastcall HideWindows(void);
  766.     virtual void __fastcall IsDesignMsg(MSG &Msg, bool &Handled);
  767.     virtual bool __fastcall IsTopmostForm(HWND Wnd);
  768.     virtual void __fastcall ModalEditDone(void * ReturnWindow);
  769.     virtual void __fastcall RaiseException(const System::AnsiString Message);
  770.     void __fastcall RemoveDependenciesOn(Classes::TComponent* Component);
  771.     void __fastcall SetSelection(Forms::TDesigner* Designer, Forms::TForm* DesignWindow, Dsgnintf::TComponentList* 
  772.         ASelection);
  773.     virtual void __fastcall ShowWindows(void);
  774.     virtual void __fastcall SetLockState(bool State);
  775.     virtual void __fastcall SetProjectName( System::AnsiString Name);
  776.     __property Classes::TList* FormsList = {read=FormList, nodefault};
  777. };
  778.  
  779. class __declspec(delphiclass) TLibDdeHelper;
  780. class __declspec(pascalimplementation) TLibDdeHelper : public System::TObject
  781. {
  782.     typedef System::TObject inherited;
  783.     
  784. public:
  785.     virtual void __fastcall SetProjectName( System::AnsiString Name) = 0;
  786. public:
  787.     /* TObject.Create */ __fastcall TLibDdeHelper(void) : System::TObject() { }
  788.     /* TObject.Destroy */ __fastcall virtual ~TLibDdeHelper(void) { }
  789.     
  790. };
  791.  
  792. typedef void __fastcall (*TRegisterProc)(void);
  793.  
  794. typedef System::TMetaClass*TDragTargetClass;
  795.  
  796. //-- var, const, procedure ---------------------------------------------------
  797. #define CompIconSize (Byte)(28)
  798. #define LibrarySignature "COMPLIB0054"
  799. extern Word CF_COMPONENTS;
  800. extern TLibrary* CompLib;
  801. extern Libintf::TIAppBuilder* AppBuilder;
  802. extern TLibDdeHelper* LibDdeHelper;
  803. extern char IVFLAG[8];
  804. extern long IVNUM;
  805. extern char IVCOPYRIGHT[8];
  806. extern void __fastcall RegisterModule(const System::AnsiString Name, TRegisterProc RegisterProc);
  807. extern void __fastcall RegisterDesignWindow(Dsgnwnds::TDesignWindow* Window);
  808. extern void __fastcall UnregisterDesignWindow(Dsgnwnds::TDesignWindow* Window);
  809. extern Libintf::TILibrary* __fastcall InitLibrary(Libintf::TIAppBuilder* App);
  810. extern void __fastcall GetFormNames(Classes::TStrings* Names);
  811. extern void __fastcall RegisterDragTarget(const System::AnsiString SourceName, System::TMetaClass* TargetClass
  812.     );
  813. extern void __fastcall CopyStreamToClipboard(Classes::TMemoryStream* S);
  814. extern bool __fastcall PossibleStream( System::AnsiString S);
  815. extern Classes::TMemoryStream* __fastcall GetClipboardStream(void);
  816. //-- template instantiations -------------------------------------------------
  817. template class TCoordinates ;
  818.  
  819. }    /* namespace Libmain */
  820.  
  821. #pragma warn .par
  822. #pragma warn .hid 
  823. #pragma warn .inl
  824.  
  825. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  826. using namespace Libmain;
  827. #endif
  828. //-- end unit ----------------------------------------------------------------
  829. #endif    // LibMain
  830.