#ifndef Tabelle_H #define Tabelle_H #include "Array.h" #include "Drawing.h" namespace Framework { class Border; //! Border.h class AlphaField; //! AlphaField.h class VScrollBar; //! Scroll.h class HScrollBar; //! Scroll.h class Text; //! Text.h class ObjTable; //! from this file //! Manages a table of drawings class ObjTable : public DrawableBackground { public: class Style : public DrawableBackground::Style { public: //! If this flag is set, the user can resize the columns //! with the mouse static const __int64 ColumnWidthChangeable = 0x00001000; //! If this flag is set, the user can resize the rows //! with the mouse static const __int64 RowHeightChangeable = 0x00002000; //! If this flag is set, the user cannot make the column //! width smaller than a certain limit despite the //! ColumnWidthChangeable flag static const __int64 ColumnWidthMin = 0x00004000; //! If this flag is set, the user cannot make the column //! width larger than a certain limit despite the //! ColumnWidthChangeable flag static const __int64 ColumnWidthMax = 0x00008000; //! If this flag is set, the user cannot make the row //! height smaller than a certain limit despite the //! RowHeightChangeable flag static const __int64 RowHeightMin = 0x00010000; //! If this flag is set, the user cannot make the row //! height larger than a certain limit despite the //! RowHeightChangeable flag static const __int64 RowHeightMax = 0x00020000; //! If this flag is set, the user can reorder the columns //! by dragging and dropping them static const __int64 ColumnsMovable = 0x00040000; //! If this flag is set, the user can reorder the rows //! by dragging and dropping them static const __int64 RowsMovable = 0x00800000; //! If this flag is set, the field that the user can select //! with the Allowed flag gets a different border static const __int64 SelectionBorder = 0x0080000; //! If this flag is set, the field that the user can select //! with the Allowed flag gets a different AlphaField static const __int64 SelectionBuffer = 0x00100000; //! If this flag is set, each field can have different //! borders and AlphaFields when selected static const __int64 SelectionMultistyled = 0x00200000; //! If this flag is set, lines are drawn between the fields static const __int64 Raster = 0x00400000; //! Combines the flags: ColumnWidthChangeable, //! RowHeightChangeable, ColumnsMovable, //! RowsMovable static const __int64 beweglich = ColumnWidthChangeable | RowHeightChangeable | ColumnsMovable | RowsMovable; //! Combines the flags: ColumnWidthMax, //! ColumnWidthMin, RowHeightMax, //! RowHeightMax static const __int64 min_max = ColumnWidthMax | ColumnWidthMin | RowHeightMax | RowHeightMax; //! Combines the flags: VScroll, HScroll static const __int64 scroll = VScroll | HScroll; //! Combines the flags: Border, Allowed, //! Visible, ColumnsMovable, //! SelectionBuffer, SelectionBorder, Raster static const __int64 normal = Border | Allowed | Visible | SelectionBuffer | SelectionBorder | Raster | MEIgnoreInside | MEIgnoreParentInside | MEIgnoreVisible | MEIgnoreProcessed; }; private: RCArray>* members; RCArray* spaltenNamen; RCArray* zeilenNamen; Array* columnWidth; Array* zeilenHeight; Array* minSpaltenWidth; Array* maxSpaltenWidth; Array* minZeilenHeight; Array* maxZeilenHeight; int spaltenAnzahl, zeilenAnzahl; int klickSpalte; int klickZeile; double mSpalte, mZeile; int mx, my; Point selected; int rasterColor; int gridWidth; Border* aRam; AlphaField* aAf; RCArray>* msaRam; RCArray>* msaAf; RCArray>* styles; //! Processes mouse messages //! \param me The event triggered by the mouse input DLLEXPORT void doMouseEvent(MouseEvent& me, bool userRet) override; public: //! Constructor DLLEXPORT ObjTable(); //! Destructor DLLEXPORT virtual ~ObjTable(); //! Adds a column to the table //! \param name The name of the column DLLEXPORT void addColumn(const char* name); //! Adds a column to the table //! \param name The name of the column DLLEXPORT void addColumn(Text* name); //! Adds a column to the table at a specific position //! \param sNum The index of the new column //! \param name The name of the new column DLLEXPORT void addColumn(int sNum, const char* name); //! Adds a column to the table at a specific position //! \param sNum The index of the new column //! \param name The name of the new column DLLEXPORT void addColumn(int sNum, Text* name); //! Adds a row to the table //! \param name The name of the row DLLEXPORT void addRow(const char* name); //! Adds a row to the table //! \param name The name of the row DLLEXPORT void addRow(Text* name); //! Adds a row to the table at a specific position //! \param zNum The index of the new row //! \param name The name of the new row DLLEXPORT void addRow(int zNum, const char* name); //! Adds a row to the table at a specific position //! \param sNum The index of the new row //! \param name The name of the new row DLLEXPORT void addRow(int zNum, Text* name); //! Removes a column //! \param sNum The index of the column DLLEXPORT void removeColumn(int sNum); //! Removes a column //! \param name The name of the column DLLEXPORT void removeColumn(const char* name); //! Removes a column //! \param name The name of the column DLLEXPORT void removeColumn(Text* name); //! Removes a row //! \param zNum The index of the row DLLEXPORT void removeRow(int zNum); //! Removes a row //! \param name The name of the row DLLEXPORT void removeRow(const char* name); //! Removes a row //! \param name The name of the row DLLEXPORT void removeRow(Text* name); //! Sets the index of a column //! \param name The name of the column //! \param pos The new index of the column DLLEXPORT void setColumnPosition(const char* name, int pos); //! Sets the index of a column //! \param name The name of the column //! \param pos The new index of the column DLLEXPORT void setColumnPosition(Text* name, int pos); //! Sets the index of a column //! \param sNum The old index of the column //! \param pos The new index of the column DLLEXPORT void setColumnPosition(int sNum, int pos); //! Sets the index of a row //! \param name The name of the row //! \param pos The new index of the row DLLEXPORT void setRowPosition(const char* name, int pos); //! Sets the index of a row //! \param name The name of the row //! \param pos The new index of the row DLLEXPORT void setRowPosition(Text* name, int pos); //! Sets the index of a row //! \param zNum The old index of the row //! \param pos The new index of the row DLLEXPORT void setRowPosition(int zNum, int pos); //! Sets a drawing to be placed in a specific cell. //! If a drawing already exists in the cell, it will be overwritten. //! \param sNum The index of the column //! \param zNum The index of the row //! \param obj The drawing to place in the cell DLLEXPORT void setDrawableZ(int sNum, int zNum, Drawable* obj); //! Sets a drawing to be placed in a specific cell. //! If a drawing already exists in the cell, it will be overwritten. //! \param spaltenName The name of the column //! \param zeilenName The name of the row //! \param obj The drawing to place in the cell DLLEXPORT void setDrawableZ( const char* spaltenName, const char* zeilenName, Drawable* obj); //! Sets a drawing to be placed in a specific cell. //! If a drawing already exists in the cell, it will be overwritten. //! \param spaltenName The name of the column //! \param zeilenName The name of the row //! \param obj The drawing to place in the cell DLLEXPORT void setDrawableZ( Text* spaltenName, Text* zeilenName, Drawable* obj); //! Sets the column width //! \param sNum The index of the column //! \param br The width in pixels DLLEXPORT void setColumnWidth(int sNum, int br); //! Sets the column width //! \param name The name of the column //! \param br The width in pixels DLLEXPORT void setColumnWidth(const char* name, int br); //! Sets the column width //! \param name The name of the column //! \param br The width in pixels DLLEXPORT void setColumnWidth(Text* name, int br); //! Sets the row height //! \param zNum The index of the row //! \param hi The height in pixels DLLEXPORT void setRowHeight(int zNum, int hi); //! Sets the row height //! \param name The name of the row //! \param hi The height in pixels DLLEXPORT void setRowHeight(const char* name, int hi); //! Sets the row height //! \param name The name of the row //! \param hi The height in pixels DLLEXPORT void setRowHeight(Text* name, int hi); //! Sets the minimum column width (requires flags: //! ColumnWidthChangeable, ColumnWidthMin) \param sNum The index of //! the column \param minBr The minimum width in pixels DLLEXPORT void setMinColumnWidth(int sNum, int minBr); //! Sets the minimum column width (requires flags: //! ColumnWidthChangeable, ColumnWidthMin) \param name The name of //! the column \param minBr The minimum width in pixels DLLEXPORT void setMinColumnWidth(const char* name, int minBr); //! Sets the minimum column width (requires flags: //! ColumnWidthChangeable, ColumnWidthMin) \param name The name of //! the column \param minBr The minimum width in pixels DLLEXPORT void setMinColumnWidth(Text* name, int minBr); //! Sets the maximum column width (requires flags: //! ColumnWidthChangeable, ColumnWidthMax) \param sNum The index of //! the column \param maxBr The maximum width in pixels DLLEXPORT void setMaxColumnWidth(int sNum, int maxBr); //! Sets the maximum column width (requires flags: //! ColumnWidthChangeable, ColumnWidthMax) \param name The name of //! the column \param maxBr The maximum width in pixels DLLEXPORT void setMaxColumnWidth(const char* name, int maxBr); //! Sets the maximum column width (requires flags: //! ColumnWidthChangeable, ColumnWidthMax) \param name The name of //! the column \param maxBr The maximum width in pixels DLLEXPORT void setMaxColumnWidth(Text* name, int maxBr); //! Sets the minimum row height (requires flags: //! RowHeightChangeable, RowHeightMin) \param zNum The index of //! the row \param minHi The minimum height in pixels DLLEXPORT void setMinRowHeight(int zNum, int minHi); //! Sets the minimum row height (requires flags: //! RowHeightChangeable, RowHeightMin) \param name The name of //! the row \param minHi The minimum height in pixels DLLEXPORT void setMinRowHeight(const char* name, int minHi); //! Sets the minimum row height (requires flags: //! RowHeightChangeable, RowHeightMin) \param name The name of //! the row \param minHi The minimum height in pixels DLLEXPORT void setMinRowHeight(Text* name, int minHi); //! Sets the maximum row height (requires flags: //! RowHeightChangeable, RowHeightMax) \param zNum The index of //! the row \param maxHi The maximum height in pixels DLLEXPORT void setMaxRowHeight(int zNum, int maxHi); //! Sets the maximum row height (requires flags: //! RowHeightChangeable, RowHeightMax) \param name The name of //! the row \param maxHi The maximum height in pixels DLLEXPORT void setMaxRowHeight(const char* name, int maxHi); //! Sets the maximum row height (requires flags: //! RowHeightChangeable, RowHeightMax) \param name The name of //! the row \param maxHi The maximum height in pixels DLLEXPORT void setMaxRowHeight(Text* name, int maxHi); //! Sets which cell is selected (requires flag: Allowed) //! \param sNum The index of the column //! \param zNum The index of the row DLLEXPORT void setSelection(int sNum, int zNum); //! Sets which cell is selected (requires flag: Allowed) //! \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT void setSelection( const char* spaltenName, const char* zeilenName); //! Sets which cell is selected (requires flag: Allowed) //! \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT void setSelection(Text* spaltenName, Text* zeilenName); //! Sets the color of the grid displayed between cells //! \param f The color in A8R8G8B8 format DLLEXPORT void setGridColor(int f); //! Sets the width of the grid displayed between cells //! \param br The width in pixels DLLEXPORT void setGridWidth(int br); //! Sets a pointer to the border drawn around the selected cell //! \param ram The border DLLEXPORT void setABorderZ(Border* ram); //! Sets the color of the border drawn around the selected cell //! \param f The color in A8R8G8B8 format DLLEXPORT void setARColor(int f); //! Sets the width of the border drawn around the selected cell //! \param br The width in pixels DLLEXPORT void setARWidth(int br); //! Sets a pointer to the AlphaField used for the selected cell //! \param af The AlphaField DLLEXPORT void setAAlphaFieldZ(AlphaField* af); //! Sets the color of the AlphaField used for the selected cell //! \param f The color in A8R8G8B8 format DLLEXPORT void setAAfColor(int f); //! Sets the strength of the AlphaField used for the selected cell //! \param st The strength DLLEXPORT void setAAfStrength(int st); //! Sets a pointer to a border used with the SelectionMultistyled flag //! when selecting a specific cell \param sNum The index of the column //! \param zNum The index of the row \param ram The border DLLEXPORT void setABorderZ(int sNum, int zNum, Border* ram); //! Sets a pointer to a border used with the SelectionMultistyled flag //! when selecting a specific cell \param spaltenName The name of the //! column \param zeilenName The name of the row //! \param ram The border DLLEXPORT void setABorderZ( const char* spaltenName, const char* zeilenName, Border* ram); //! Sets a pointer to a border used with the SelectionMultistyled flag //! when selecting a specific cell \param spaltenName The name of the //! column \param zeilenName The name of the row //! \param ram The border DLLEXPORT void setABorderZ( Text* spaltenName, Text* zeilenName, Border* ram); //! Sets the color of a border used with the SelectionMultistyled flag //! when selecting a specific cell \param sNum The index of the column //! \param zNum The index of the row \param f The color in A8R8G8B8 //! format DLLEXPORT void setARColor(int sNum, int zNum, int f); //! Sets the color of a border used with the SelectionMultistyled flag //! when selecting a specific cell \param spaltenName The name of the //! column \param zeilenName The name of the row //! \param f The color in A8R8G8B8 format DLLEXPORT void setARColor( const char* spaltenName, const char* zeilenName, int f); //! Sets the color of a border used with the SelectionMultistyled flag //! when selecting a specific cell \param spaltenName The name of the //! column \param zeilenName The name of the row //! \param f The color in A8R8G8B8 format DLLEXPORT void setARColor(Text* spaltenName, Text* zeilenName, int f); //! Sets the width of a border used with the SelectionMultistyled flag //! when selecting a specific cell \param sNum The index of the column //! \param zNum The index of the row \param br The width in pixels DLLEXPORT void setARWidth(int sNum, int zNum, int br); //! Sets the width of a border used with the SelectionMultistyled flag //! when selecting a specific cell \param spaltenName The name of the //! column \param zeilenName The name of the row //! \param br The width in pixels DLLEXPORT void setARWidth( const char* spaltenName, const char* zeilenName, int br); //! Sets the width of a border used with the SelectionMultistyled flag //! when selecting a specific cell \param spaltenName The name of the //! column \param zeilenName The name of the row //! \param br The width in pixels DLLEXPORT void setARWidth(Text* spaltenName, Text* zeilenName, int br); //! Sets the color gradient used with the SelectionMultistyled flag //! when selecting a specific cell \param sNum The index of the column //! \param zNum The index of the row \param af The color gradient DLLEXPORT void setAAlphaFieldZ(int sNum, int zNum, AlphaField* af); //! Sets the color gradient used with the SelectionMultistyled flag //! when selecting a specific cell \param spaltenName The name of the //! column \param zeilenName The name of the row \param af The color //! gradient DLLEXPORT void setAAlphaFieldZ( const char* spaltenName, const char* zeilenName, AlphaField* af); //! Sets the color gradient used with the SelectionMultistyled flag //! when selecting a specific cell \param spaltenName The name of the //! column \param zeilenName The name of the row \param af The color //! gradient DLLEXPORT void setAAlphaFieldZ( Text* spaltenName, Text* zeilenName, AlphaField* af); //! Sets the color of the color gradient used with the //! SelectionMultistyled flag when selecting a specific cell //! \param sNum The index of the column \param zNum The index of the //! row \param f The color in A8R8G8B8 format DLLEXPORT void setAAfColor(int sNum, int zNum, int f); //! Sets the color of the color gradient used with the //! SelectionMultistyled flag when selecting a specific cell //! \param spaltenName The name of the column //! \param zeilenName The name of the row //! \param f The color in A8R8G8B8 format DLLEXPORT void setAAfColor( const char* spaltenName, const char* zeilenName, int f); //! Sets the color of the color gradient used with the //! SelectionMultistyled flag when selecting a specific cell //! \param spaltenName The name of the column //! \param zeilenName The name of the row //! \param f The color in A8R8G8B8 format DLLEXPORT void setAAfColor(Text* spaltenName, Text* zeilenName, int f); //! Sets the strength of the color gradient used with the //! SelectionMultistyled flag when selecting a specific cell //! \param sNum The index of the column \param zNum The index of the //! row \param st The strength DLLEXPORT void setAAfStrength(int sNum, int zNum, int st); //! Sets the strength of the color gradient used with the //! SelectionMultistyled flag when selecting a specific cell //! \param spaltenName The name of the column //! \param zeilenName The name of the row //! \param st The strength DLLEXPORT void setAAfStrength( const char* spaltenName, const char* zeilenName, int st); //! Sets the strength of the color gradient used with the //! SelectionMultistyled flag when selecting a specific cell //! \param spaltenName The name of the column //! \param zeilenName The name of the row //! \param st The strength DLLEXPORT void setAAfStrength( Text* spaltenName, Text* zeilenName, int st); //! Adds styles used with the SelectionMultistyled flag when selecting //! a specific cell \param sNum The index of the column //! \param zNum The index of the row \param style The style to add DLLEXPORT void addMsStyle(int sNum, int zNum, __int64 style); //! Adds styles used with the SelectionMultistyled flag when selecting //! a specific cell \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style to add DLLEXPORT void addMsStyle( const char* spaltenName, const char* zeilenName, __int64 style); //! Adds styles used with the SelectionMultistyled flag when selecting //! a specific cell \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style to add DLLEXPORT void addMsStyle( Text* spaltenName, Text* zeilenName, __int64 style); //! Sets the styles used with the SelectionMultistyled flag when selecting //! a specific cell \param sNum The index of the column //! \param zNum The index of the row \param style The style to use DLLEXPORT void setMsStyle(int sNum, int zNum, __int64 style); //! Sets the styles used with the SelectionMultistyled flag when selecting //! a specific cell \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style to use DLLEXPORT void setMsStyle( const char* spaltenName, const char* zeilenName, __int64 style); //! Sets the styles used with the SelectionMultistyled flag when selecting //! a specific cell \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style to use DLLEXPORT void setMsStyle( Text* spaltenName, Text* zeilenName, __int64 style); //! Sets the styles used with the SelectionMultistyled flag when selecting //! a specific cell \param sNum The index of the column //! \param zNum The index of the row \param style The style to use //! add_remove: 1 if the given styles should be added. //! 0 if they should be removed DLLEXPORT void setMsStyle( int sNum, int zNum, __int64 style, bool add_remove); //! Sets the styles used with the SelectionMultistyled flag when selecting //! a specific cell \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style to use //! add_remove: 1 if the given styles should be added. //! 0 if they should be removed DLLEXPORT void setMsStyle(const char* spaltenName, const char* zeilenName, __int64 style, bool add_remove); //! Sets the styles used with the SelectionMultistyled flag when selecting //! a specific cell \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style to use //! add_remove: 1 if the given styles should be added. //! 0 if they should be removed DLLEXPORT void setMsStyle(Text* spaltenName, Text* zeilenName, __int64 style, bool add_remove); //! Removes styles from the styles used with the SelectionMultistyled flag //! when selecting a specific cell \param sNum The index of the column //! \param zNum The index of the row \param style The style to remove DLLEXPORT void removeMsStyle(int sNum, int zNum, __int64 style); //! Removes styles from the styles used with the SelectionMultistyled flag //! when selecting a specific cell \param spaltenName The name of the //! column \param zeilenName The name of the row \param style The style //! to remove DLLEXPORT void removeMsStyle( const char* spaltenName, const char* zeilenName, __int64 style); //! Removes styles from the styles used with the SelectionMultistyled flag //! when selecting a specific cell \param spaltenName The name of the //! column \param zeilenName The name of the row \param style The style //! to remove DLLEXPORT void removeMsStyle( Text* spaltenName, Text* zeilenName, __int64 style); //! Updates the object. Called by the framework //! \param tickVal The time in seconds since the last call of this //! function \return 1 if something changed and the image needs to be //! redrawn. 0 otherwise DLLEXPORT bool tick(double tickVal) override; //! Processes keyboard messages //! \param me The event triggered by the keyboard input DLLEXPORT void doKeyboardEvent(KeyboardEvent& te) override; //! Draws the object to zRObj if it is visible //! \param zRObj The image to draw into DLLEXPORT void render(Image& zRObj) override; //! Returns the number of columns DLLEXPORT int getColumnCount() const; //! Returns the number of rows DLLEXPORT int getRowCount() const; //! Returns the index of a column //! \param name The name of the column DLLEXPORT int getColumnNumber(const char* name) const; //! Returns the index of a column //! \param name The name of the column DLLEXPORT int getColumnNumber(Text* name) const; //! Returns the name of a column //! \param num The index of the column DLLEXPORT Text* getColumnName(int num) const; //! Returns the name of a column without increased reference counter //! \param num The index of the column DLLEXPORT Text* zColumnName(int num) const; //! Returns the index of a row //! \param name The name of the row DLLEXPORT int getRowNumber(const char* name) const; //! Returns the index of a row //! \param name The name of the row DLLEXPORT int getRowNumber(Text* name) const; //! Returns the name of a row //! \param num The index of the row DLLEXPORT Text* getRowName(int num) const; //! Returns the name of a row without increased reference counter //! \param num The index of the row DLLEXPORT Text* zRowName(int num) const; //! Searches for a drawing in the table and returns the column index //! as x and the row index as y. (-1, -1) if the object was not found //! \param zObj The drawing (without increased reference counter) DLLEXPORT Point getDrawablePosition(Drawable* zObj) const; //! Returns the drawing in a specific cell of the table //! (without increased reference counter) \param sNum The index of //! the column \param zNum The index of the row DLLEXPORT Drawable* zDrawable(int sNum, int zNum) const; //! Returns the drawing in a specific cell of the table //! (without increased reference counter) \param spaltenName The name //! of the column \param zeilenName The name of the row DLLEXPORT Drawable* zDrawable( const char* spaltenName, const char* zeilenName) const; //! Returns the drawing in a specific cell of the table //! (without increased reference counter) \param spaltenName The name //! of the column \param zeilenName The name of the row DLLEXPORT Drawable* zDrawable( Text* spaltenName, Text* zeilenName) const; //! Returns the drawing in a specific cell of the table //! \param sNum The index of the column \param zNum The index of the row DLLEXPORT Drawable* getDrawable(int sNum, int zNum) const; //! Returns the drawing in a specific cell of the table //! \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT Drawable* getDrawable( const char* spaltenName, const char* zeilenName) const; //! Returns the drawing in a specific cell of the table //! \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT Drawable* getDrawable( Text* spaltenName, Text* zeilenName) const; //! Returns the width of a column in pixels //! \param num The index of the column DLLEXPORT int getColumnWidth(int num) const; //! Returns the width of a column in pixels //! \param name The name of the column DLLEXPORT int getColumnWidth(const char* name) const; //! Returns the width of a column in pixels //! \param name The name of the column DLLEXPORT int getColumnWidth(Text* name) const; //! Returns the height of a row in pixels //! \param num The index of the row DLLEXPORT int getRowHeight(int num) const; //! Returns the height of a row in pixels //! \param name The name of the row DLLEXPORT int getRowHeight(const char* name) const; //! Returns the height of a row in pixels //! \param name The name of the row DLLEXPORT int getRowHeight(Text* name) const; //! Returns the minimum column width in pixels //! \param num The index of the column DLLEXPORT int getMinColumnWidth(int num) const; //! Returns the minimum column width in pixels //! \param name The name of the column DLLEXPORT int getMinColumnWidth(const char* name) const; //! Returns the minimum column width in pixels //! \param name The name of the column DLLEXPORT int getMinColumnWidth(Text* name) const; //! Returns the maximum column width in pixels //! \param num The index of the column DLLEXPORT int getMaxColumnWidth(int num) const; //! Returns the maximum column width in pixels //! \param name The name of the column DLLEXPORT int getMaxColumnWidth(const char* name) const; //! Returns the maximum column width in pixels //! \param name The name of the column DLLEXPORT int getMaxColumnWidth(Text* name) const; //! Returns the minimum row height in pixels //! \param num The index of the row DLLEXPORT int getMinRowHeight(int num) const; //! Returns the minimum row height in pixels //! \param name The name of the row DLLEXPORT int getMinRowHeight(const char* name) const; //! Returns the minimum row height in pixels //! \param name The name of the row DLLEXPORT int getMinRowHeight(Text* name) const; //! Returns the maximum row height in pixels //! \param num The index of the row DLLEXPORT int getMaxRowHeight(int num) const; //! Returns the maximum row height in pixels //! \param name The name of the row DLLEXPORT int getMaxRowHeight(const char* name) const; //! Returns the maximum row height in pixels //! \param name The name of the row DLLEXPORT int getMaxRowHeight(Text* name) const; //! Returns the index of the column the mouse points to //! \param mx The x coordinate of the mouse position relative to the //! left edge of the table in pixels DLLEXPORT double getMouseColumn(int mx) const; //! Returns the name of the column the mouse points to //! \param mx The x coordinate of the mouse position relative to the //! left edge of the table in pixels DLLEXPORT Text* getMouseColumnnName(int mx) const; //! Returns the name of the column the mouse points to without increased //! reference counter \param mx The x coordinate of the mouse position //! relative to the left edge of the table in pixels DLLEXPORT Text* zMouseColumnName(int mx) const; //! Returns the index of the row the mouse points to //! \param my The Y coordinate of the mouse position relative to the //! top edge of the table in pixels DLLEXPORT double getMouseRow(int my) const; //! Returns the name of the row the mouse points to //! \param my The Y coordinate of the mouse position relative to the //! top edge of the table in pixels DLLEXPORT Text* getMouseRownName(int my) const; //! Returns the name of the row the mouse points to without increased //! reference counter \param my The Y coordinate of the mouse position //! relative to the top edge of the table in pixels DLLEXPORT Text* zMouseRowName(int my) const; //! Returns the column index as x and the row index as y of the //! selected field DLLEXPORT const Point& getSelahlPosition() const; //! Returns the color of the grid in A8R8G8B8 format DLLEXPORT int getGridColor() const; //! Returns the width of the grid in pixels DLLEXPORT int getGridWidth() const; //! Returns a pointer to the border used for the selected field DLLEXPORT Border* getABorder() const; //! Returns a pointer to the border without increased reference counter //! used for the selected field DLLEXPORT Border* zABorder() const; //! Returns a pointer to the color gradient used for the selected field DLLEXPORT AlphaField* getAAlphaField() const; //! Returns a pointer to the color gradient without increased reference //! counter used for the selected field DLLEXPORT AlphaField* zAAlphaField() const; //! Returns a pointer to the border used with the SelectionMultistyled //! flag when selecting a specific cell \param sNum The index of the //! column \param zNum The index of the row DLLEXPORT Border* getABorder(int sNum, int zNum) const; //! Returns a pointer to the border without increased reference counter //! used with the SelectionMultistyled flag when selecting a specific cell //! \param sNum The index of the column \param zNum The index of the row DLLEXPORT Border* zABorder(int sNum, int zNum) const; //! Returns a pointer to the color gradient used with the //! SelectionMultistyled flag when selecting a specific cell //! \param sNum The index of the column \param zNum The index of the row DLLEXPORT AlphaField* getAAlphaField(int sNum, int zNum) const; //! Returns a pointer to the color gradient without increased reference //! counter used with the SelectionMultistyled flag when selecting a //! specific cell \param sNum The index of the column //! \param zNum The index of the row DLLEXPORT AlphaField* zAAlphaField(int sNum, int zNum) const; //! Returns a pointer to the border used with the SelectionMultistyled //! flag when selecting a specific cell \param spaltenName The name of //! the column \param zeilenName The name of the row DLLEXPORT Border* getABorder( const char* spaltenName, const char* zeilenName) const; //! Returns a pointer to the border without increased reference counter //! used with the SelectionMultistyled flag when selecting a specific cell //! \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT Border* zABorder( const char* spaltenName, const char* zeilenName) const; //! Returns a pointer to the color gradient used with the //! SelectionMultistyled flag when selecting a specific cell //! \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT AlphaField* getAAlphaField( const char* spaltenName, const char* zeilenName) const; //! Returns a pointer to the color gradient without increased reference //! counter used with the SelectionMultistyled flag when selecting a //! specific cell \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT AlphaField* zAAlphaField( const char* spaltenName, const char* zeilenName) const; //! Returns a pointer to the border used with the SelectionMultistyled //! flag when selecting a specific cell \param spaltenName The name of //! the column \param zeilenName The name of the row DLLEXPORT Border* getABorder(Text* spaltenName, Text* zeilenName) const; //! Returns a pointer to the border without increased reference counter //! used with the SelectionMultistyled flag when selecting a specific cell //! \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT Border* zABorder(Text* spaltenName, Text* zeilenName) const; //! Returns a pointer to the color gradient used with the //! SelectionMultistyled flag when selecting a specific cell //! \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT AlphaField* getAAlphaField( Text* spaltenName, Text* zeilenName) const; //! Returns a pointer to the color gradient without increased reference //! counter used with the SelectionMultistyled flag when selecting a //! specific cell \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT AlphaField* zAAlphaField( Text* spaltenName, Text* zeilenName) const; //! Checks whether a specific style is set for a specific cell with the //! SelectionMultistyled flag \param sNum The index of the column //! \param zNum The index of the row //! \param style The style to check DLLEXPORT inline bool hasMsStyle( int sNum, int zNum, __int64 style) const; //! Checks whether a specific style is not set for a specific cell with //! the SelectionMultistyled flag \param sNum The index of the column //! \param zNum The index of the row \param style The style to check DLLEXPORT inline bool hasMsStyleNot( int sNum, int zNum, __int64 style) const; //! Checks whether a specific style is set for a specific cell with the //! SelectionMultistyled flag \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style //! to check DLLEXPORT inline bool hasMsStyle(const char* spaltenName, const char* zeilenName, __int64 style) const; //! Checks whether a specific style is not set for a specific cell with //! the SelectionMultistyled flag \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style //! to check DLLEXPORT inline bool hasMsStyleNot(const char* spaltenName, const char* zeilenName, __int64 style) const; //! Checks whether a specific style is set for a specific cell with the //! SelectionMultistyled flag \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style //! to check DLLEXPORT inline bool hasMsStyle( Text* spaltenName, Text* zeilenName, __int64 style) const; //! Checks whether a specific style is not set for a specific cell with //! the SelectionMultistyled flag \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style //! to check DLLEXPORT inline bool hasMsStyleNot( Text* spaltenName, Text* zeilenName, __int64 style) const; //! Creates a copy of the table that can be modified without //! affecting the original DLLEXPORT Drawable* duplicate() const override; }; } // namespace Framework #endif