home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / Vcl / mxgrid.hpp < prev    next >
C/C++ Source or Header  |  2000-02-01  |  17KB  |  446 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) 'mxgrid.pas' rev: 5.00
  6.  
  7. #ifndef mxgridHPP
  8. #define mxgridHPP
  9.  
  10. #pragma delphiheader begin
  11. #pragma option push -w-
  12. #pragma option push -Vx
  13. #include <ImgList.hpp>    // Pascal unit
  14. #include <mxcommon.hpp>    // Pascal unit
  15. #include <mxbutton.hpp>    // Pascal unit
  16. #include <mxDB.hpp>    // Pascal unit
  17. #include <mxConsts.hpp>    // Pascal unit
  18. #include <mxarrays.hpp>    // Pascal unit
  19. #include <Forms.hpp>    // Pascal unit
  20. #include <Grids.hpp>    // Pascal unit
  21. #include <Menus.hpp>    // Pascal unit
  22. #include <Db.hpp>    // Pascal unit
  23. #include <Graphics.hpp>    // Pascal unit
  24. #include <StdCtrls.hpp>    // Pascal unit
  25. #include <Controls.hpp>    // Pascal unit
  26. #include <Dialogs.hpp>    // Pascal unit
  27. #include <Classes.hpp>    // Pascal unit
  28. #include <SysUtils.hpp>    // Pascal unit
  29. #include <Windows.hpp>    // Pascal unit
  30. #include <SysInit.hpp>    // Pascal unit
  31. #include <System.hpp>    // Pascal unit
  32.  
  33. //-- user supplied -----------------------------------------------------------
  34.  
  35. namespace Mxgrid
  36. {
  37. //-- type declarations -------------------------------------------------------
  38. class DELPHICLASS TValueArray;
  39. class PASCALIMPLEMENTATION TValueArray : public Mxarrays::TSmallIntArray 
  40. {
  41.     typedef Mxarrays::TSmallIntArray inherited;
  42.     
  43. public:
  44.     #pragma option push -w-inl
  45.     /* TSmallIntArray.Create */ inline __fastcall virtual TValueArray(int itemcount, int dummy) : Mxarrays::TSmallIntArray(
  46.         itemcount, dummy) { }
  47.     #pragma option pop
  48.     
  49. public:
  50.     #pragma option push -w-inl
  51.     /* TBaseArray.Destroy */ inline __fastcall virtual ~TValueArray(void) { }
  52.     #pragma option pop
  53.     
  54. };
  55.  
  56.  
  57. #pragma option push -b-
  58. enum TDecisionGridOption { cgGridLines, cgOutliner, cgPivotable };
  59. #pragma option pop
  60.  
  61. typedef Set<TDecisionGridOption, cgGridLines, cgPivotable>  TDecisionGridOptions;
  62.  
  63. #pragma option push -b-
  64. enum TDecisionGridState { csNormal, csPivoting };
  65. #pragma option pop
  66.  
  67. #pragma option push -b-
  68. enum TDecisionDrawStates { dsGroupStart, dsRowCaption, dsColCaption, dsSum, dsRowValue, dsColValue, 
  69.     dsData, dsOpenAfter, dsCloseAfter, dsCloseBefore, dsOpenBefore, dsRowIndicator, dsColIndicator, dsRowPlus, 
  70.     dsColPlus, dsNone };
  71. #pragma option pop
  72.  
  73. #pragma option push -b-
  74. enum TDecisionPivotState { psNone, psLeftPivot, psMiddlePivot, psRightPivot, psTopPivot };
  75. #pragma option pop
  76.  
  77. typedef Set<TDecisionDrawStates, dsGroupStart, dsNone>  TDecisionDrawState;
  78.  
  79. typedef void __fastcall (__closure *TDecisionDrawCellEvent)(System::TObject* Sender, int Col, int Row
  80.     , AnsiString &Value, Graphics::TFont* &aFont, Graphics::TColor &aColor, Grids::TGridDrawState AState
  81.     , TDecisionDrawState aDrawState);
  82.  
  83. typedef void __fastcall (__closure *TDecisionExamineCellEvent)(System::TObject* Sender, int iCol, int 
  84.     iRow, int iSum, const TValueArray* ValueArray);
  85.  
  86. #pragma option push -b-
  87. enum TDecisionCellType { ctNone, ctCaptionRow, ctCaptionCol, ctNewCaptionCol, ctRowLabel, ctColLabel, 
  88.     ctData, ctRowPlus, ctColPlus, ctRowIndicator, ctColIndicator };
  89. #pragma option pop
  90.  
  91. #pragma option push -b-
  92. enum TButtonPlace { bpLeft, bpMiddle, bpRight };
  93. #pragma option pop
  94.  
  95. class DELPHICLASS TDecisionGridDataLink;
  96. class DELPHICLASS TCustomDecisionGrid;
  97. class DELPHICLASS TDisplayDims;
  98. class DELPHICLASS TDisplayDim;
  99. typedef TMetaClass*TDisplayDimClass;
  100.  
  101. #pragma option push -b-
  102. enum TDDNotifyType { tdDisplay, tdSubTotals, tdMetaData };
  103. #pragma option pop
  104.  
  105. class PASCALIMPLEMENTATION TDisplayDims : public Classes::TCollection 
  106. {
  107.     typedef Classes::TCollection inherited;
  108.     
  109. private:
  110.     bool bQuiet;
  111.     TDisplayDim* __fastcall GetDisplayDim(int Index);
  112.     void __fastcall SetDisplayDim(int Index, TDisplayDim* Value);
  113.     __fastcall TDisplayDims(TCustomDecisionGrid* Grid, TMetaClass* ItemClass);
  114.     
  115. protected:
  116.     TCustomDecisionGrid* FGrid;
  117.     DYNAMIC Classes::TPersistent* __fastcall GetOwner(void);
  118.     void __fastcall NotifyOwner(TDDNotifyType aType);
  119.     
  120. public:
  121.     __property TDisplayDim* Items[int Index] = {read=GetDisplayDim, write=SetDisplayDim/*, default*/};
  122. public:
  123.         
  124.     #pragma option push -w-inl
  125.     /* TCollection.Create */ inline __fastcall TDisplayDims(TMetaClass* ItemClass) : Classes::TCollection(
  126.         ItemClass) { }
  127.     #pragma option pop
  128.     #pragma option push -w-inl
  129.     /* TCollection.Destroy */ inline __fastcall virtual ~TDisplayDims(void) { }
  130.     #pragma option pop
  131.     
  132. };
  133.  
  134.  
  135. class PASCALIMPLEMENTATION TCustomDecisionGrid : public Grids::TCustomGrid 
  136. {
  137.     typedef Grids::TCustomGrid inherited;
  138.     
  139. private:
  140.     bool FActiveGrid;
  141.     Mxbutton::TQuickMenu* FMenu;
  142.     TDecisionGridDataLink* FDataLink;
  143.     TDisplayDims* FDisplayDims;
  144.     TDecisionGridOptions FOptions;
  145.     Controls::TImageList* FIndicators;
  146.     Grids::TGridCoord FSourceCell;
  147.     Grids::TGridCoord FTargetCell;
  148.     bool FTargetSwitch;
  149.     Byte FCaptionRow;
  150.     Byte FCaptionCol;
  151.     bool FChanging;
  152.     Byte FRowOffset;
  153.     Byte fColOffset;
  154.     int FActRows;
  155.     int FActCols;
  156.     int FTotRows;
  157.     int FTotCols;
  158.     int FColWidth;
  159.     int FRowHeight;
  160.     Graphics::TFont* FLabelFont;
  161.     Graphics::TColor FLabelColor;
  162.     Graphics::TColor FLabelSumColor;
  163.     Graphics::TColor FCaptionColor;
  164.     Graphics::TFont* FCaptionFont;
  165.     Graphics::TFont* FDataFont;
  166.     Graphics::TColor FDataColor;
  167.     Graphics::TColor FDataSumColor;
  168.     Graphics::TColor FGridLineColor;
  169.     int FGridLineWidth;
  170.     bool FShowCubeEditor;
  171.     TDecisionExamineCellEvent FOnDecisionExamineCell;
  172.     TDecisionDrawCellEvent FOnDecisionDrawCell;
  173.     Classes::TNotifyEvent FOnTopLeftChanged;
  174.     void __fastcall InvalidateTargetCell(void);
  175.     TButtonPlace __fastcall GetHorzButtonPlace(int X, int Y);
  176.     void __fastcall PerformPivot(void);
  177.     void __fastcall RawToDataCoord(int &X, int &Y);
  178.     void __fastcall DataToRawCoord(int &X, int &Y);
  179.     int __fastcall DataToRawX(int X);
  180.     int __fastcall DataToRawY(int Y);
  181.     void __fastcall DrawSpecialState(Graphics::TCanvas* ACanvas, const Windows::TRect &ARect, TDecisionDrawState 
  182.         DrawState, TDecisionPivotState PivotState);
  183.     TDecisionPivotState __fastcall GetSpecialState(int ARow, int AColumn);
  184.     AnsiString __fastcall GetDataPoint(int ARow, int AColumn, TDecisionDrawState &State, Classes::TAlignment 
  185.         &Alignment);
  186.     TDecisionCellType __fastcall WhichCoord(const Grids::TGridCoord &Coord);
  187.     TDecisionCellType __fastcall WhichCoordExCap(const Grids::TGridCoord &Coord);
  188.     int __fastcall GetDimensionIndex(TDecisionCellType cellType, const Grids::TGridCoord &Coord, Mxdb::TDimGroup 
  189.         &dimGroup, bool &bExists);
  190.     Grids::TGridCoord __fastcall MouseToDataCoord(int X, int Y);
  191.     void __fastcall SetNearestTargetCell(int X, int Y);
  192.     void __fastcall GetHitTypes(int ARow, int AColumn, int &ValueIndex, TDecisionDrawState &DrawState, 
  193.         TDecisionCellType &CellType);
  194.     void __fastcall NewDataStructure(void);
  195.     void __fastcall NewGridLayout(void);
  196.     AnsiString __fastcall GetData(int ARow, int AColumn, int &SubLevel);
  197.     AnsiString __fastcall GetCaption(Mxdb::TDimGroup dimGroup, int Index);
  198.     AnsiString __fastcall GetLabel(Mxdb::TDimGroup dimGroup, int Index, int ValueIndex);
  199.     Mxdb::TDecisionSource* __fastcall GeTDecisionSource(void);
  200.     void __fastcall SeTDecisionSource(Mxdb::TDecisionSource* Value);
  201.     void __fastcall SetColWidth(int Value);
  202.     void __fastcall SetRowHeight(int Value);
  203.     HIDESBASE void __fastcall SetGridLineWidth(int Value);
  204.     void __fastcall SetGridLineColor(Graphics::TColor Value);
  205.     void __fastcall SetLabelFont(Graphics::TFont* Value);
  206.     void __fastcall SetLabelColor(Graphics::TColor Value);
  207.     void __fastcall SetLabelSumColor(Graphics::TColor Value);
  208.     void __fastcall SetCaptionFont(Graphics::TFont* Value);
  209.     void __fastcall SetCaptionColor(Graphics::TColor Value);
  210.     void __fastcall SetDataFont(Graphics::TFont* Value);
  211.     void __fastcall SetDataColor(Graphics::TColor Value);
  212.     void __fastcall SetDataSumColor(Graphics::TColor Value);
  213.     HIDESBASE void __fastcall FontChanged(System::TObject* Sender);
  214.     HIDESBASE void __fastcall SetOptions(TDecisionGridOptions Value);
  215.     HIDESBASE MESSAGE void __fastcall CMDesignHitTest(Messages::TWMMouse &Msg);
  216.     void __fastcall RightMouse(System::TObject* Sender);
  217.     void __fastcall SelectDimOptions(System::TObject* Sender);
  218.     void __fastcall SelectGridOptions(System::TObject* Sender);
  219.     void __fastcall InitializeGridCells(void);
  220.     void __fastcall SetTotals(bool Value);
  221.     bool __fastcall GetTotals(void);
  222.     int __fastcall GetFixedRows(void);
  223.     int __fastcall GetFixedCols(void);
  224.     int __fastcall GetRowCount(void);
  225.     int __fastcall GetColCount(void);
  226.     __property int ColWidth = {read=FColWidth, write=SetColWidth, nodefault};
  227.     __property int RowHeight = {read=FRowHeight, write=SetRowHeight, nodefault};
  228.     
  229. protected:
  230.     TDecisionGridState FGridStateX;
  231.     DYNAMIC void __fastcall MouseDown(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, 
  232.         int Y);
  233.     DYNAMIC void __fastcall MouseMove(Classes::TShiftState Shift, int X, int Y);
  234.     DYNAMIC void __fastcall MouseUp(Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int 
  235.         Y);
  236.     virtual void __fastcall DrawCell(int ACol, int ARow, const Windows::TRect &ARect, Grids::TGridDrawState 
  237.         AState);
  238.     virtual bool __fastcall SelectCell(int Arow, int AColumn);
  239.     DYNAMIC void __fastcall TopLeftChanged(void);
  240.     DYNAMIC void __fastcall ColWidthsChanged(void);
  241.     DYNAMIC void __fastcall RowHeightsChanged(void);
  242.     virtual void __fastcall Paint(void);
  243.     __property TDecisionGridOptions Options = {read=FOptions, write=SetOptions, default=7};
  244.     __property int GridLineWidth = {read=FGridLineWidth, write=SetGridLineWidth, nodefault};
  245.     __property Graphics::TColor GridLineColor = {read=FGridLineColor, write=SetGridLineColor, nodefault
  246.         };
  247.     __property Graphics::TFont* CaptionFont = {read=FCaptionFont, write=SetCaptionFont};
  248.     __property Graphics::TColor CaptionColor = {read=FCaptionColor, write=SetCaptionColor, nodefault};
  249.     __property Graphics::TFont* DataFont = {read=FDataFont, write=SetDataFont};
  250.     __property Graphics::TColor DataColor = {read=FDataColor, write=SetDataColor, nodefault};
  251.     __property Graphics::TColor DataSumColor = {read=FDataSumColor, write=SetDataSumColor, nodefault};
  252.     __property Graphics::TFont* LabelFont = {read=FLabelFont, write=SetLabelFont};
  253.     __property Graphics::TColor LabelColor = {read=FLabelColor, write=SetLabelColor, nodefault};
  254.     __property Graphics::TColor LabelSumColor = {read=FLabelSumColor, write=SetLabelSumColor, nodefault
  255.         };
  256.     __property TDisplayDims* Dimensions = {read=FDisplayDims, write=FDisplayDims};
  257.     AnsiString __fastcall GetCells(int ACol, int ARow);
  258.     __property int FixedRows = {read=GetFixedRows, nodefault};
  259.     __property int RowCount = {read=GetRowCount, nodefault};
  260.     __property int FixedCols = {read=GetFixedCols, nodefault};
  261.     __property int ColCount = {read=GetColCount, nodefault};
  262.     __property int DefaultColWidth = {read=FColWidth, write=SetColWidth, nodefault};
  263.     __property int DefaultRowHeight = {read=FRowHeight, write=SetRowHeight, nodefault};
  264.     
  265. public:
  266.     __fastcall virtual TCustomDecisionGrid(Classes::TComponent* AOwner);
  267.     __fastcall virtual ~TCustomDecisionGrid(void);
  268.     virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation
  269.         );
  270.     __property Mxdb::TDecisionSource* DecisionSource = {read=GeTDecisionSource, write=SeTDecisionSource
  271.         };
  272.     HIDESBASE Windows::TRect __fastcall CellRect(int ACol, int ARow);
  273.     bool __fastcall CellValueArray(int ACol, int ARow, TValueArray* &ValueArray);
  274.     bool __fastcall CellDrawState(int ACol, int ARow, AnsiString &Value, TDecisionDrawState &DrawState)
  275.         ;
  276.     __property bool Totals = {read=GetTotals, write=SetTotals, nodefault};
  277.     __property TDecisionExamineCellEvent OnDecisionExamineCell = {read=FOnDecisionExamineCell, write=FOnDecisionExamineCell
  278.         };
  279.     __property TDecisionDrawCellEvent OnDecisionDrawCell = {read=FOnDecisionDrawCell, write=FOnDecisionDrawCell
  280.         };
  281.     __property Classes::TNotifyEvent OnTopLeftChanged = {read=FOnTopLeftChanged, write=FOnTopLeftChanged
  282.         };
  283.     __property AnsiString Cells[int ACol][int ARow] = {read=GetCells};
  284.     __property bool ShowCubeEditor = {read=FShowCubeEditor, write=FShowCubeEditor, nodefault};
  285. public:
  286.     #pragma option push -w-inl
  287.     /* TWinControl.CreateParented */ inline __fastcall TCustomDecisionGrid(HWND ParentWindow) : Grids::TCustomGrid(
  288.         ParentWindow) { }
  289.     #pragma option pop
  290.     
  291. };
  292.  
  293.  
  294. class PASCALIMPLEMENTATION TDecisionGridDataLink : public Mxdb::TDecisionDataLink 
  295. {
  296.     typedef Mxdb::TDecisionDataLink inherited;
  297.     
  298. private:
  299.     TCustomDecisionGrid* FGrid;
  300.     
  301. protected:
  302.     virtual void __fastcall DecisionDataEvent(Mxdb::TDecisionDataEvent Event);
  303.     
  304. public:
  305.     __fastcall TDecisionGridDataLink(TCustomDecisionGrid* AGrid);
  306.     __fastcall virtual ~TDecisionGridDataLink(void);
  307. };
  308.  
  309.  
  310. class PASCALIMPLEMENTATION TDisplayDim : public Classes::TCollectionItem 
  311. {
  312.     typedef Classes::TCollectionItem inherited;
  313.     
  314. private:
  315.     AnsiString FName;
  316.     AnsiString FFieldName;
  317.     AnsiString FFormat;
  318.     Classes::TAlignment FAlignment;
  319.     Graphics::TColor FColor;
  320.     bool FSubs;
  321.     Classes::TCollection* FOwner;
  322.     void __fastcall SetName(AnsiString Value);
  323.     void __fastcall SetFieldName(AnsiString Value);
  324.     void __fastcall SetFormat(AnsiString Value);
  325.     void __fastcall SetAlignment(Classes::TAlignment Value);
  326.     void __fastcall SetColor(Graphics::TColor Value);
  327.     void __fastcall SetSubs(bool Value);
  328.     void __fastcall NotifyCollection(TDDNotifyType aType);
  329.     
  330. public:
  331.     __fastcall virtual TDisplayDim(Classes::TCollection* Collection);
  332.     virtual void __fastcall assign(Classes::TPersistent* Value);
  333.     
  334. __published:
  335.     __property AnsiString DisplayName = {read=FName, write=SetName};
  336.     __property AnsiString FieldName = {read=FFieldName, write=SetFieldName};
  337.     __property Graphics::TColor Color = {read=FColor, write=SetColor, nodefault};
  338.     __property AnsiString Format = {read=FFormat, write=SetFormat};
  339.     __property Classes::TAlignment Alignment = {read=FAlignment, write=SetAlignment, nodefault};
  340.     __property bool Subtotals = {read=FSubs, write=SetSubs, nodefault};
  341. public:
  342.     #pragma option push -w-inl
  343.     /* TCollectionItem.Destroy */ inline __fastcall virtual ~TDisplayDim(void) { }
  344.     #pragma option pop
  345.     
  346. };
  347.  
  348.  
  349. class DELPHICLASS TDecisionGrid;
  350. class PASCALIMPLEMENTATION TDecisionGrid : public TCustomDecisionGrid 
  351. {
  352.     typedef TCustomDecisionGrid inherited;
  353.     
  354. public:
  355.     __property RowCount ;
  356.     __property ColCount ;
  357.     __property FixedRows ;
  358.     __property FixedCols ;
  359.     
  360. __published:
  361.     __property Options ;
  362.     __property DefaultColWidth ;
  363.     __property DefaultRowHeight ;
  364.     __property CaptionColor ;
  365.     __property CaptionFont ;
  366.     __property DataColor ;
  367.     __property DataSumColor ;
  368.     __property DataFont ;
  369.     __property LabelFont ;
  370.     __property LabelColor ;
  371.     __property LabelSumColor ;
  372.     __property DecisionSource ;
  373.     __property Dimensions ;
  374.     __property Totals ;
  375.     __property ShowCubeEditor ;
  376.     __property Align ;
  377.     __property Anchors ;
  378.     __property BorderStyle ;
  379.     __property Color ;
  380.     __property Constraints ;
  381.     __property Ctl3D ;
  382.     __property DefaultDrawing ;
  383.     __property DragCursor ;
  384.     __property DragMode ;
  385.     __property Enabled ;
  386.     __property GridLineWidth ;
  387.     __property GridLineColor ;
  388.     __property ParentColor ;
  389.     __property ParentCtl3D ;
  390.     __property ParentFont ;
  391.     __property ParentShowHint ;
  392.     __property PopupMenu ;
  393.     __property ScrollBars ;
  394.     __property ShowHint ;
  395.     __property TabOrder ;
  396.     __property TabStop ;
  397.     __property Visible ;
  398.     __property OnClick ;
  399.     __property OnDblClick ;
  400.     __property OnDragDrop ;
  401.     __property OnDragOver ;
  402.     __property OnDecisionDrawCell ;
  403.     __property OnDecisionExamineCell ;
  404.     __property OnEndDrag ;
  405.     __property OnEnter ;
  406.     __property OnExit ;
  407.     __property OnKeyDown ;
  408.     __property OnKeyPress ;
  409.     __property OnKeyUp ;
  410.     __property OnMouseDown ;
  411.     __property OnMouseMove ;
  412.     __property OnMouseUp ;
  413.     __property OnResize ;
  414.     __property OnStartDrag ;
  415.     __property OnTopLeftChanged ;
  416. public:
  417.     #pragma option push -w-inl
  418.     /* TCustomDecisionGrid.Create */ inline __fastcall virtual TDecisionGrid(Classes::TComponent* AOwner
  419.         ) : TCustomDecisionGrid(AOwner) { }
  420.     #pragma option pop
  421.     #pragma option push -w-inl
  422.     /* TCustomDecisionGrid.Destroy */ inline __fastcall virtual ~TDecisionGrid(void) { }
  423.     #pragma option pop
  424.     
  425. public:
  426.     #pragma option push -w-inl
  427.     /* TWinControl.CreateParented */ inline __fastcall TDecisionGrid(HWND ParentWindow) : TCustomDecisionGrid(
  428.         ParentWindow) { }
  429.     #pragma option pop
  430.     
  431. };
  432.  
  433.  
  434. //-- var, const, procedure ---------------------------------------------------
  435.  
  436. }    /* namespace Mxgrid */
  437. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  438. using namespace Mxgrid;
  439. #endif
  440. #pragma option pop    // -w-
  441. #pragma option pop    // -Vx
  442.  
  443. #pragma delphiheader end.
  444. //-- end unit ----------------------------------------------------------------
  445. #endif    // mxgrid
  446.