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

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