home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / Vcl / outline.hpp < prev    next >
C/C++ Source or Header  |  2000-02-01  |  17KB  |  447 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) 'Outline.pas' rev: 5.00
  6.  
  7. #ifndef OutlineHPP
  8. #define OutlineHPP
  9.  
  10. #pragma delphiheader begin
  11. #pragma option push -w-
  12. #pragma option push -Vx
  13. #include <SysUtils.hpp>    // Pascal unit
  14. #include <Controls.hpp>    // Pascal unit
  15. #include <Grids.hpp>    // Pascal unit
  16. #include <StdCtrls.hpp>    // Pascal unit
  17. #include <Menus.hpp>    // Pascal unit
  18. #include <Graphics.hpp>    // Pascal unit
  19. #include <Classes.hpp>    // Pascal unit
  20. #include <Forms.hpp>    // Pascal unit
  21. #include <Messages.hpp>    // Pascal unit
  22. #include <Windows.hpp>    // Pascal unit
  23. #include <SysInit.hpp>    // Pascal unit
  24. #include <System.hpp>    // Pascal unit
  25.  
  26. //-- user supplied -----------------------------------------------------------
  27.  
  28. namespace Outline
  29. {
  30. //-- type declarations -------------------------------------------------------
  31. class DELPHICLASS OutlineError;
  32. class PASCALIMPLEMENTATION OutlineError : public System::TObject 
  33. {
  34.     typedef System::TObject inherited;
  35.     
  36. public:
  37.     #pragma option push -w-inl
  38.     /* TObject.Create */ inline __fastcall OutlineError(void) : System::TObject() { }
  39.     #pragma option pop
  40.     #pragma option push -w-inl
  41.     /* TObject.Destroy */ inline __fastcall virtual ~OutlineError(void) { }
  42.     #pragma option pop
  43.     
  44. };
  45.  
  46.  
  47. class DELPHICLASS EOutlineError;
  48. class PASCALIMPLEMENTATION EOutlineError : public Sysutils::Exception 
  49. {
  50.     typedef Sysutils::Exception inherited;
  51.     
  52. public:
  53.     #pragma option push -w-inl
  54.     /* Exception.Create */ inline __fastcall EOutlineError(const AnsiString Msg) : Sysutils::Exception(
  55.         Msg) { }
  56.     #pragma option pop
  57.     #pragma option push -w-inl
  58.     /* Exception.CreateFmt */ inline __fastcall EOutlineError(const AnsiString Msg, const System::TVarRec 
  59.         * Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
  60.     #pragma option pop
  61.     #pragma option push -w-inl
  62.     /* Exception.CreateRes */ inline __fastcall EOutlineError(int Ident)/* overload */ : Sysutils::Exception(
  63.         Ident) { }
  64.     #pragma option pop
  65.     #pragma option push -w-inl
  66.     /* Exception.CreateResFmt */ inline __fastcall EOutlineError(int Ident, const System::TVarRec * Args
  67.         , const int Args_Size)/* overload */ : Sysutils::Exception(Ident, Args, Args_Size) { }
  68.     #pragma option pop
  69.     #pragma option push -w-inl
  70.     /* Exception.CreateHelp */ inline __fastcall EOutlineError(const AnsiString Msg, int AHelpContext) : 
  71.         Sysutils::Exception(Msg, AHelpContext) { }
  72.     #pragma option pop
  73.     #pragma option push -w-inl
  74.     /* Exception.CreateFmtHelp */ inline __fastcall EOutlineError(const AnsiString Msg, const System::TVarRec 
  75.         * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext
  76.         ) { }
  77.     #pragma option pop
  78.     #pragma option push -w-inl
  79.     /* Exception.CreateResHelp */ inline __fastcall EOutlineError(int Ident, int AHelpContext)/* overload */
  80.          : Sysutils::Exception(Ident, AHelpContext) { }
  81.     #pragma option pop
  82.     #pragma option push -w-inl
  83.     /* Exception.CreateResFmtHelp */ inline __fastcall EOutlineError(System::PResStringRec ResStringRec
  84.         , const System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Sysutils::Exception(
  85.         ResStringRec, Args, Args_Size, AHelpContext) { }
  86.     #pragma option pop
  87.     
  88. public:
  89.     #pragma option push -w-inl
  90.     /* TObject.Destroy */ inline __fastcall virtual ~EOutlineError(void) { }
  91.     #pragma option pop
  92.     
  93. };
  94.  
  95.  
  96. #pragma option push -b-
  97. enum TOutlineNodeCompare { ocLess, ocSame, ocGreater, ocInvalid };
  98. #pragma option pop
  99.  
  100. #pragma option push -b-
  101. enum TAttachMode { oaAdd, oaAddChild, oaInsert };
  102. #pragma option pop
  103.  
  104. typedef Shortint TChangeRange;
  105.  
  106. class DELPHICLASS TOutlineNode;
  107. class DELPHICLASS TCustomOutline;
  108. #pragma option push -b-
  109. enum TOutlineBitmap { obPlus, obMinus, obOpen, obClose, obLeaf };
  110. #pragma option pop
  111.  
  112. typedef Set<TOutlineBitmap, obPlus, obLeaf>  TOutlineBitmaps;
  113.  
  114. typedef Graphics::TBitmap* TBitmapArray[5];
  115.  
  116. typedef void __fastcall (__closure *EOutlineChange)(System::TObject* Sender, int Index);
  117.  
  118. #pragma option push -b-
  119. enum TOutlineStyle { osText, osPlusMinusText, osPictureText, osPlusMinusPictureText, osTreeText, osTreePictureText 
  120.     };
  121. #pragma option pop
  122.  
  123. #pragma option push -b-
  124. enum TOutlineType { otStandard, otOwnerDraw };
  125. #pragma option pop
  126.  
  127. #pragma option push -b-
  128. enum TOutlineOption { ooDrawTreeRoot, ooDrawFocusRect, ooStretchBitmaps };
  129. #pragma option pop
  130.  
  131. typedef Set<TOutlineOption, ooDrawTreeRoot, ooStretchBitmaps>  TOutlineOptions;
  132.  
  133. class PASCALIMPLEMENTATION TCustomOutline : public Grids::TCustomGrid 
  134. {
  135.     typedef Grids::TCustomGrid inherited;
  136.     
  137. private:
  138.     bool FBlockInsert;
  139.     TOutlineNode* FRootNode;
  140.     TOutlineNode* FGoodNode;
  141.     int UpdateCount;
  142.     TOutlineNode* FCurItem;
  143.     AnsiString FSeparator;
  144.     int FFontSize;
  145.     Classes::TStrings* FStrings;
  146.     TOutlineBitmaps FUserBitmaps;
  147.     TOutlineBitmaps FOldBitmaps;
  148.     Graphics::TBitmap* FPictures[5];
  149.     EOutlineChange FOnExpand;
  150.     EOutlineChange FOnCollapse;
  151.     TOutlineStyle FOutlineStyle;
  152.     int FItemHeight;
  153.     TOutlineType FStyle;
  154.     TOutlineOptions FOptions;
  155.     bool FIgnoreScrollResize;
  156.     TOutlineNode* FSelectedItem;
  157.     Stdctrls::TDrawItemEvent FOnDrawItem;
  158.     bool FSettingWidth;
  159.     bool FSettingHeight;
  160.     HIDESBASE MESSAGE void __fastcall WMSize(Messages::TWMSize &Message);
  161.     int __fastcall GetItemCount(void);
  162.     int __fastcall AttachNode(int Index, AnsiString Str, void * Ptr, TAttachMode AttachMode);
  163.     TOutlineNode* __fastcall Get(int Index);
  164.     int __fastcall GetSelectedItem(void);
  165.     void __fastcall SetSelectedItem(int Value);
  166.     TOutlineNodeCompare __fastcall CompareNodes(TOutlineNode* Value1, TOutlineNode* Value2);
  167.     void __fastcall Error(const AnsiString ErrorString);
  168.     HIDESBASE MESSAGE void __fastcall CMFontChanged(Messages::TMessage &Message);
  169.     bool __fastcall ResizeGrid(void);
  170.     void __fastcall DoExpand(TOutlineNode* Node);
  171.     void __fastcall Init(void);
  172.     void __fastcall MoveNode(int Destination, int Source, TAttachMode AttachMode);
  173.     void __fastcall ClearBitmap(Graphics::TBitmap* &Bitmap, TOutlineBitmap Kind);
  174.     void __fastcall ChangeBitmap(Graphics::TBitmap* Value, TOutlineBitmap Kind);
  175.     void __fastcall SetRowHeight(void);
  176.     void __fastcall SetCurItem(int Value);
  177.     void __fastcall CreateGlyph(void);
  178.     void __fastcall SetStrings(Classes::TStrings* Value);
  179.     Classes::TStrings* __fastcall GetStrings(void);
  180.     bool __fastcall IsCurItem(int Value);
  181.     void __fastcall SetPicture(int Index, Graphics::TBitmap* Value);
  182.     Graphics::TBitmap* __fastcall GetPicture(int Index);
  183.     void __fastcall DrawPictures(Graphics::TBitmap* const * BitMaps, const int BitMaps_Size, const Windows::TRect 
  184.         &ARect);
  185.     void __fastcall DrawText(TOutlineNode* Node, const Windows::TRect &Rect);
  186.     void __fastcall SetOutlineStyle(TOutlineStyle Value);
  187.     void __fastcall DrawTree(const Windows::TRect &ARect, TOutlineNode* Node);
  188.     void __fastcall SetItemHeight(int Value);
  189.     void __fastcall SetStyle(TOutlineType Value);
  190.     void __fastcall SetOutlineOptions(TOutlineOptions Value);
  191.     bool __fastcall StoreBitmap(int Index);
  192.     void __fastcall ReadBinaryData(Classes::TStream* Stream);
  193.     void __fastcall WriteBinaryData(Classes::TStream* Stream);
  194.     void __fastcall SetHorzScrollBar(void);
  195.     void __fastcall ResetSelectedItem(void);
  196.     void __fastcall SetRowFromNode(TOutlineNode* Node);
  197.     
  198. protected:
  199.     virtual void __fastcall Loaded(void);
  200.     DYNAMIC void __fastcall Click(void);
  201.     DYNAMIC void __fastcall KeyDown(Word &Key, Classes::TShiftState Shift);
  202.     DYNAMIC void __fastcall KeyPress(char &Key);
  203.     TOutlineNode* __fastcall SetGoodIndex(TOutlineNode* Value);
  204.     virtual void __fastcall DrawCell(int ACol, int ARow, const Windows::TRect &ARect, Grids::TGridDrawState 
  205.         AState);
  206.     DYNAMIC void __fastcall DblClick(void);
  207.     void __fastcall SetLevel(TOutlineNode* Node, unsigned CurLevel, unsigned NewLevel);
  208.     bool __fastcall BadIndex(TOutlineNode* Value);
  209.     void __fastcall DeleteNode(TOutlineNode* Node, int CurIndex);
  210.     DYNAMIC void __fastcall Expand(int Index);
  211.     DYNAMIC void __fastcall Collapse(int Index);
  212.     virtual void __fastcall DefineProperties(Classes::TFiler* Filer);
  213.     DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, 
  214.         int Y);
  215.     void __fastcall Move(int Destination, int Source, TAttachMode AttachMode);
  216.     void __fastcall SetDisplayWidth(int Value);
  217.     __property Classes::TStrings* Lines = {read=GetStrings, write=SetStrings};
  218.     __property TOutlineStyle OutlineStyle = {read=FOutlineStyle, write=SetOutlineStyle, default=5};
  219.     __property EOutlineChange OnExpand = {read=FOnExpand, write=FOnExpand};
  220.     __property EOutlineChange OnCollapse = {read=FOnCollapse, write=FOnCollapse};
  221.     __property TOutlineOptions Options = {read=FOptions, write=SetOutlineOptions, default=3};
  222.     __property TOutlineType Style = {read=FStyle, write=SetStyle, default=0};
  223.     __property int ItemHeight = {read=FItemHeight, write=SetItemHeight, nodefault};
  224.     __property Stdctrls::TDrawItemEvent OnDrawItem = {read=FOnDrawItem, write=FOnDrawItem};
  225.     __property AnsiString ItemSeparator = {read=FSeparator, write=FSeparator};
  226.     __property Graphics::TBitmap* PicturePlus = {read=GetPicture, write=SetPicture, stored=StoreBitmap, 
  227.         index=0};
  228.     __property Graphics::TBitmap* PictureMinus = {read=GetPicture, write=SetPicture, stored=StoreBitmap
  229.         , index=1};
  230.     __property Graphics::TBitmap* PictureOpen = {read=GetPicture, write=SetPicture, stored=StoreBitmap, 
  231.         index=2};
  232.     __property Graphics::TBitmap* PictureClosed = {read=GetPicture, write=SetPicture, stored=StoreBitmap
  233.         , index=3};
  234.     __property Graphics::TBitmap* PictureLeaf = {read=GetPicture, write=SetPicture, stored=StoreBitmap, 
  235.         index=4};
  236.     
  237. public:
  238.     __fastcall virtual TCustomOutline(Classes::TComponent* AOwner);
  239.     __fastcall virtual ~TCustomOutline(void);
  240.     int __fastcall Add(int Index, const AnsiString Text);
  241.     int __fastcall AddChild(int Index, const AnsiString Text);
  242.     int __fastcall AddChildObject(int Index, const AnsiString Text, const void * Data);
  243.     int __fastcall AddObject(int Index, const AnsiString Text, const void * Data);
  244.     HIDESBASE int __fastcall Insert(int Index, const AnsiString Text);
  245.     int __fastcall InsertObject(int Index, const AnsiString Text, const void * Data);
  246.     void __fastcall Delete(int Index);
  247.     int __fastcall GetDataItem(void * Value);
  248.     int __fastcall GetItem(int X, int Y);
  249.     int __fastcall GetNodeDisplayWidth(TOutlineNode* Node);
  250.     int __fastcall GetTextItem(const AnsiString Value);
  251.     TOutlineNode* __fastcall GetVisibleNode(int Index);
  252.     void __fastcall FullExpand(void);
  253.     void __fastcall FullCollapse(void);
  254.     void __fastcall LoadFromFile(const AnsiString FileName);
  255.     void __fastcall LoadFromStream(Classes::TStream* Stream);
  256.     void __fastcall SaveToFile(const AnsiString FileName);
  257.     void __fastcall SaveToStream(Classes::TStream* Stream);
  258.     void __fastcall BeginUpdate(void);
  259.     void __fastcall EndUpdate(void);
  260.     void __fastcall SetUpdateState(bool Value);
  261.     void __fastcall Clear(void);
  262.     __property int ItemCount = {read=GetItemCount, nodefault};
  263.     __property TOutlineNode* Items[int Index] = {read=Get/*, default*/};
  264.     __property int SelectedItem = {read=GetSelectedItem, write=SetSelectedItem, nodefault};
  265.     __property Row ;
  266.     __property Canvas ;
  267. public:
  268.     #pragma option push -w-inl
  269.     /* TWinControl.CreateParented */ inline __fastcall TCustomOutline(HWND ParentWindow) : Grids::TCustomGrid(
  270.         ParentWindow) { }
  271.     #pragma option pop
  272.     
  273. };
  274.  
  275.  
  276. class PASCALIMPLEMENTATION TOutlineNode : public Classes::TPersistent 
  277. {
  278.     typedef Classes::TPersistent inherited;
  279.     
  280. private:
  281.     Classes::TList* FList;
  282.     AnsiString FText;
  283.     void *FData;
  284.     TOutlineNode* FParent;
  285.     int FIndex;
  286.     bool FState;
  287.     TCustomOutline* FOutline;
  288.     int FExpandCount;
  289.     void __fastcall ChangeExpandedCount(int Value);
  290.     void __fastcall CloseNode(void);
  291.     void __fastcall Clear(void);
  292.     void __fastcall Error(const AnsiString ErrorString);
  293.     int __fastcall GetExpandedNodeCount(void);
  294.     AnsiString __fastcall GetFullPath();
  295.     int __fastcall GetIndex(void);
  296.     int __fastcall GetLastIndex(void);
  297.     unsigned __fastcall GetLevel(void);
  298.     Classes::TList* __fastcall GetList(void);
  299.     unsigned __fastcall GetMaxDisplayWidth(unsigned Value);
  300.     TOutlineNode* __fastcall GetNode(int Index);
  301.     int __fastcall GetTopItem(void);
  302.     TOutlineNode* __fastcall GetVisibleParent(void);
  303.     bool __fastcall HasChildren(void);
  304.     bool __fastcall HasVisibleParent(void);
  305.     bool __fastcall IsEqual(TOutlineNode* Value);
  306.     void __fastcall ReIndex(TOutlineNode* StartNode, TOutlineNode* EndNode, int NewIndex, bool IncludeStart
  307.         );
  308.     void __fastcall Repaint(void);
  309.     bool __fastcall Resync(int &NewIndex, TOutlineNode* EndNode);
  310.     void __fastcall SetExpandedState(bool Value);
  311.     void __fastcall SetGoodIndex(void);
  312.     void __fastcall SetHorzScrollBar(void);
  313.     void __fastcall SetLevel(unsigned Level);
  314.     void __fastcall SetText(const AnsiString Value);
  315.     
  316. protected:
  317.     TOutlineNode* __fastcall GetVisibleNode(int TargetCount);
  318.     int __fastcall AddNode(TOutlineNode* Value);
  319.     int __fastcall InsertNode(int Index, TOutlineNode* Value);
  320.     TOutlineNode* __fastcall GetNodeAtIndex(int TargetIndex);
  321.     int __fastcall GetDataItem(void * Value);
  322.     int __fastcall GetTextItem(const AnsiString Value);
  323.     bool __fastcall HasAsParent(TOutlineNode* Value);
  324.     bool __fastcall GetRowOfNode(TOutlineNode* TargetNode, int &RowCount);
  325.     void __fastcall InternalRemove(TOutlineNode* Value, int Index);
  326.     void __fastcall Remove(TOutlineNode* Value);
  327.     void __fastcall WriteNode(char * Buffer, Classes::TStream* Stream);
  328.     __property TCustomOutline* Outline = {read=FOutline};
  329.     __property Classes::TList* List = {read=GetList};
  330.     __property int ExpandCount = {read=FExpandCount, nodefault};
  331.     __property TOutlineNode* Items[int Index] = {read=GetNode/*, default*/};
  332.     
  333. public:
  334.     __fastcall TOutlineNode(TCustomOutline* AOwner);
  335.     __fastcall virtual ~TOutlineNode(void);
  336.     void __fastcall ChangeLevelBy(TChangeRange Value);
  337.     void __fastcall Collapse(void);
  338.     void __fastcall Expand(void);
  339.     void __fastcall FullExpand(void);
  340.     int __fastcall GetDisplayWidth(void);
  341.     int __fastcall getFirstChild(void);
  342.     int __fastcall GetLastChild(void);
  343.     int __fastcall GetNextChild(int Value);
  344.     int __fastcall GetPrevChild(int Value);
  345.     void __fastcall MoveTo(int Destination, TAttachMode AttachMode);
  346.     __property TOutlineNode* Parent = {read=FParent};
  347.     __property bool Expanded = {read=FState, write=SetExpandedState, nodefault};
  348.     __property AnsiString Text = {read=FText, write=SetText};
  349.     __property void * Data = {read=FData, write=FData};
  350.     __property int Index = {read=GetIndex, nodefault};
  351.     __property unsigned Level = {read=GetLevel, write=SetLevel, nodefault};
  352.     __property bool HasItems = {read=HasChildren, nodefault};
  353.     __property bool IsVisible = {read=HasVisibleParent, nodefault};
  354.     __property int TopItem = {read=GetTopItem, nodefault};
  355.     __property AnsiString FullPath = {read=GetFullPath};
  356. };
  357.  
  358.  
  359. typedef Shortint TBitmapArrayRange;
  360.  
  361. class DELPHICLASS TOutline;
  362. class PASCALIMPLEMENTATION TOutline : public TCustomOutline 
  363. {
  364.     typedef TCustomOutline inherited;
  365.     
  366. __published:
  367.     __property Lines ;
  368.     __property OutlineStyle ;
  369.     __property OnExpand ;
  370.     __property OnCollapse ;
  371.     __property Options ;
  372.     __property Style ;
  373.     __property ItemHeight ;
  374.     __property OnDrawItem ;
  375.     __property Align ;
  376.     __property Enabled ;
  377.     __property Font ;
  378.     __property Color ;
  379.     __property ParentColor ;
  380.     __property ParentCtl3D ;
  381.     __property Ctl3D ;
  382.     __property TabOrder ;
  383.     __property TabStop ;
  384.     __property Visible ;
  385.     __property OnClick ;
  386.     __property DragMode ;
  387.     __property DragKind ;
  388.     __property DragCursor ;
  389.     __property OnDragDrop ;
  390.     __property OnDragOver ;
  391.     __property OnEndDock ;
  392.     __property OnEndDrag ;
  393.     __property OnStartDock ;
  394.     __property OnStartDrag ;
  395.     __property OnEnter ;
  396.     __property OnExit ;
  397.     __property OnMouseDown ;
  398.     __property OnMouseMove ;
  399.     __property OnMouseUp ;
  400.     __property OnDblClick ;
  401.     __property OnKeyDown ;
  402.     __property OnKeyPress ;
  403.     __property OnKeyUp ;
  404.     __property BorderStyle ;
  405.     __property ItemSeparator ;
  406.     __property PicturePlus ;
  407.     __property PictureMinus ;
  408.     __property PictureOpen ;
  409.     __property PictureClosed ;
  410.     __property PictureLeaf ;
  411.     __property ParentFont ;
  412.     __property ParentShowHint ;
  413.     __property ShowHint ;
  414.     __property PopupMenu ;
  415.     __property ScrollBars ;
  416.     __property OnContextPopup ;
  417. public:
  418.     #pragma option push -w-inl
  419.     /* TCustomOutline.Create */ inline __fastcall virtual TOutline(Classes::TComponent* AOwner) : TCustomOutline(
  420.         AOwner) { }
  421.     #pragma option pop
  422.     #pragma option push -w-inl
  423.     /* TCustomOutline.Destroy */ inline __fastcall virtual ~TOutline(void) { }
  424.     #pragma option pop
  425.     
  426. public:
  427.     #pragma option push -w-inl
  428.     /* TWinControl.CreateParented */ inline __fastcall TOutline(HWND ParentWindow) : TCustomOutline(ParentWindow
  429.         ) { }
  430.     #pragma option pop
  431.     
  432. };
  433.  
  434.  
  435. //-- var, const, procedure ---------------------------------------------------
  436.  
  437. }    /* namespace Outline */
  438. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  439. using namespace Outline;
  440. #endif
  441. #pragma option pop    // -w-
  442. #pragma option pop    // -Vx
  443.  
  444. #pragma delphiheader end.
  445. //-- end unit ----------------------------------------------------------------
  446. #endif    // Outline
  447.