home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 9 / CDACTUAL9.iso / progs / CB / DATA.Z / OUTLINE.HPP < prev    next >
Encoding:
C/C++ Source or Header  |  1996-11-06  |  17.8 KB  |  426 lines

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