#ifndef Tabelle_H #define Tabelle_H #include "Array.h" #include "Drawing.h" namespace Framework { class Border; //! Border.h class AlphaFeld; //! AlphaField.h class VScrollBar; //! Scroll.h class HScrollBar; //! Scroll.h class Text; //! Text.h class ObjTabelle; //! from this file //! Manages a table of drawings class ObjTabelle : 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 SpaltenBreiteChangeable = 0x00001000; //! If this flag is set, the user can resize the rows //! with the mouse static const __int64 ZeilenHeightChangeable = 0x00002000; //! If this flag is set, the user cannot make the column //! width smaller than a certain limit despite the //! SpaltenBreiteChangeable flag static const __int64 SpaltenBreiteMin = 0x00004000; //! If this flag is set, the user cannot make the column //! width larger than a certain limit despite the //! SpaltenBreiteChangeable flag static const __int64 SpaltenBreiteMax = 0x00008000; //! If this flag is set, the user cannot make the row //! height smaller than a certain limit despite the //! ZeilenHeightChangeable flag static const __int64 ZeilenHeightMin = 0x00010000; //! If this flag is set, the user cannot make the row //! height larger than a certain limit despite the //! ZeilenHeightChangeable flag static const __int64 ZeilenHeightMax = 0x00020000; //! If this flag is set, the user can reorder the columns //! by dragging and dropping them static const __int64 SpaltenBeweglich = 0x00040000; //! If this flag is set, the user can reorder the rows //! by dragging and dropping them static const __int64 ZeilenBeweglich = 0x00800000; //! If this flag is set, the field that the user can select //! with the Erlaubt flag gets a different border static const __int64 SelectionBorder = 0x0080000; //! If this flag is set, the field that the user can select //! with the Erlaubt flag gets a different AlphaFeld static const __int64 AuswahlBuffer = 0x00100000; //! If this flag is set, each field can have different //! borders and AlphaFelds when selected static const __int64 AuswahlMultistyled = 0x00200000; //! If this flag is set, lines are drawn between the fields static const __int64 Raster = 0x00400000; //! Combines the flags: SpaltenBreiteChangeable, //! ZeilenHeightChangeable, SpaltenBeweglich, //! ZeilenBeweglich static const __int64 beweglich = SpaltenBreiteChangeable | ZeilenHeightChangeable | SpaltenBeweglich | ZeilenBeweglich; //! Combines the flags: SpaltenBreiteMax, //! SpaltenBreiteMin, ZeilenHeightMax, //! ZeilenHeightMax static const __int64 min_max = SpaltenBreiteMax | SpaltenBreiteMin | ZeilenHeightMax | ZeilenHeightMax; //! Combines the flags: VScroll, HScroll static const __int64 scroll = VScroll | HScroll; //! Combines the flags: Border, Erlaubt, //! Sichtbar, SpaltenBeweglich, //! AuswahlBuffer, SelectionBorder, Raster static const __int64 normal = Border | Erlaubt | Sichtbar | AuswahlBuffer | SelectionBorder | Raster | MEIgnoreInside | MEIgnoreParentInside | MEIgnoreSichtbar | MEIgnoreVerarbeitet; }; private: RCArray>* members; RCArray* spaltenNamen; RCArray* zeilenNamen; Array* spaltenBreite; Array* zeilenHeight; Array* minSpaltenBreite; Array* maxSpaltenBreite; Array* minZeilenHeight; Array* maxZeilenHeight; int spaltenAnzahl, zeilenAnzahl; int klickSpalte; int klickZeile; double mSpalte, mZeile; int mx, my; Punkt selected; int rasterFarbe; int rasterBreite; Border* aRam; AlphaFeld* aAf; RCArray>* msaRam; RCArray>* msaAf; RCArray>* styles; //! Processes mouse messages //! \param me The event triggered by the mouse input DLLEXPORT void doMausEreignis(MausEreignis& me, bool userRet) override; public: //! Constructor DLLEXPORT ObjTabelle(); //! Destructor DLLEXPORT virtual ~ObjTabelle(); //! Adds a column to the table //! \param name The name of the column DLLEXPORT void addSpalte(const char* name); //! Adds a column to the table //! \param name The name of the column DLLEXPORT void addSpalte(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 addSpalte(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 addSpalte(int sNum, Text* name); //! Adds a row to the table //! \param name The name of the row DLLEXPORT void addZeile(const char* name); //! Adds a row to the table //! \param name The name of the row DLLEXPORT void addZeile(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 addZeile(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 addZeile(int zNum, Text* name); //! Removes a column //! \param sNum The index of the column DLLEXPORT void removeSpalte(int sNum); //! Removes a column //! \param name The name of the column DLLEXPORT void removeSpalte(const char* name); //! Removes a column //! \param name The name of the column DLLEXPORT void removeSpalte(Text* name); //! Removes a row //! \param zNum The index of the row DLLEXPORT void removeZeile(int zNum); //! Removes a row //! \param name The name of the row DLLEXPORT void removeZeile(const char* name); //! Removes a row //! \param name The name of the row DLLEXPORT void removeZeile(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 setSpaltePosition(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 setSpaltePosition(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 setSpaltePosition(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 setZeilePosition(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 setZeilePosition(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 setZeilePosition(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 setSpaltenBreite(int sNum, int br); //! Sets the column width //! \param name The name of the column //! \param br The width in pixels DLLEXPORT void setSpaltenBreite(const char* name, int br); //! Sets the column width //! \param name The name of the column //! \param br The width in pixels DLLEXPORT void setSpaltenBreite(Text* name, int br); //! Sets the row height //! \param zNum The index of the row //! \param hi The height in pixels DLLEXPORT void setZeilenHeight(int zNum, int hi); //! Sets the row height //! \param name The name of the row //! \param hi The height in pixels DLLEXPORT void setZeilenHeight(const char* name, int hi); //! Sets the row height //! \param name The name of the row //! \param hi The height in pixels DLLEXPORT void setZeilenHeight(Text* name, int hi); //! Sets the minimum column width (requires flags: //! SpaltenBreiteChangeable, SpaltenBreiteMin) \param sNum The index of //! the column \param minBr The minimum width in pixels DLLEXPORT void setMinSpaltenBreite(int sNum, int minBr); //! Sets the minimum column width (requires flags: //! SpaltenBreiteChangeable, SpaltenBreiteMin) \param name The name of //! the column \param minBr The minimum width in pixels DLLEXPORT void setMinSpaltenBreite(const char* name, int minBr); //! Sets the minimum column width (requires flags: //! SpaltenBreiteChangeable, SpaltenBreiteMin) \param name The name of //! the column \param minBr The minimum width in pixels DLLEXPORT void setMinSpaltenBreite(Text* name, int minBr); //! Sets the maximum column width (requires flags: //! SpaltenBreiteChangeable, SpaltenBreiteMax) \param sNum The index of //! the column \param maxBr The maximum width in pixels DLLEXPORT void setMaxSpaltenBreite(int sNum, int maxBr); //! Sets the maximum column width (requires flags: //! SpaltenBreiteChangeable, SpaltenBreiteMax) \param name The name of //! the column \param maxBr The maximum width in pixels DLLEXPORT void setMaxSpaltenBreite(const char* name, int maxBr); //! Sets the maximum column width (requires flags: //! SpaltenBreiteChangeable, SpaltenBreiteMax) \param name The name of //! the column \param maxBr The maximum width in pixels DLLEXPORT void setMaxSpaltenBreite(Text* name, int maxBr); //! Sets the minimum row height (requires flags: //! ZeilenHeightChangeable, ZeilenHeightMin) \param zNum The index of //! the row \param minHi The minimum height in pixels DLLEXPORT void setMinZeilenHeight(int zNum, int minHi); //! Sets the minimum row height (requires flags: //! ZeilenHeightChangeable, ZeilenHeightMin) \param name The name of //! the row \param minHi The minimum height in pixels DLLEXPORT void setMinZeilenHeight(const char* name, int minHi); //! Sets the minimum row height (requires flags: //! ZeilenHeightChangeable, ZeilenHeightMin) \param name The name of //! the row \param minHi The minimum height in pixels DLLEXPORT void setMinZeilenHeight(Text* name, int minHi); //! Sets the maximum row height (requires flags: //! ZeilenHeightChangeable, ZeilenHeightMax) \param zNum The index of //! the row \param maxHi The maximum height in pixels DLLEXPORT void setMaxZeilenHeight(int zNum, int maxHi); //! Sets the maximum row height (requires flags: //! ZeilenHeightChangeable, ZeilenHeightMax) \param name The name of //! the row \param maxHi The maximum height in pixels DLLEXPORT void setMaxZeilenHeight(const char* name, int maxHi); //! Sets the maximum row height (requires flags: //! ZeilenHeightChangeable, ZeilenHeightMax) \param name The name of //! the row \param maxHi The maximum height in pixels DLLEXPORT void setMaxZeilenHeight(Text* name, int maxHi); //! Sets which cell is selected (requires flag: Erlaubt) //! \param sNum The index of the column //! \param zNum The index of the row DLLEXPORT void setAuswahl(int sNum, int zNum); //! Sets which cell is selected (requires flag: Erlaubt) //! \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT void setAuswahl( const char* spaltenName, const char* zeilenName); //! Sets which cell is selected (requires flag: Erlaubt) //! \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT void setAuswahl(Text* spaltenName, Text* zeilenName); //! Sets the color of the grid displayed between cells //! \param f The color in A8R8G8B8 format DLLEXPORT void setRasterFarbe(int f); //! Sets the width of the grid displayed between cells //! \param br The width in pixels DLLEXPORT void setRasterBreite(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 setARFarbe(int f); //! Sets the width of the border drawn around the selected cell //! \param br The width in pixels DLLEXPORT void setARBreite(int br); //! Sets a pointer to the AlphaFeld used for the selected cell //! \param af The AlphaFeld DLLEXPORT void setAAlphaFeldZ(AlphaFeld* af); //! Sets the color of the AlphaFeld used for the selected cell //! \param f The color in A8R8G8B8 format DLLEXPORT void setAAfFarbe(int f); //! Sets the strength of the AlphaFeld used for the selected cell //! \param st The strength DLLEXPORT void setAAfStrength(int st); //! Sets a pointer to a border used with the AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 setARFarbe(int sNum, int zNum, int f); //! Sets the color of a border used with the AuswahlMultistyled 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 setARFarbe( const char* spaltenName, const char* zeilenName, int f); //! Sets the color of a border used with the AuswahlMultistyled 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 setARFarbe(Text* spaltenName, Text* zeilenName, int f); //! Sets the width of a border used with the AuswahlMultistyled 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 setARBreite(int sNum, int zNum, int br); //! Sets the width of a border used with the AuswahlMultistyled 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 setARBreite( const char* spaltenName, const char* zeilenName, int br); //! Sets the width of a border used with the AuswahlMultistyled 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 setARBreite(Text* spaltenName, Text* zeilenName, int br); //! Sets the color gradient used with the AuswahlMultistyled 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 setAAlphaFeldZ(int sNum, int zNum, AlphaFeld* af); //! Sets the color gradient used with the AuswahlMultistyled 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 setAAlphaFeldZ( const char* spaltenName, const char* zeilenName, AlphaFeld* af); //! Sets the color gradient used with the AuswahlMultistyled 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 setAAlphaFeldZ( Text* spaltenName, Text* zeilenName, AlphaFeld* af); //! Sets the color of the color gradient used with the //! AuswahlMultistyled 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 setAAfFarbe(int sNum, int zNum, int f); //! Sets the color of the color gradient used with the //! AuswahlMultistyled 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 setAAfFarbe( const char* spaltenName, const char* zeilenName, int f); //! Sets the color of the color gradient used with the //! AuswahlMultistyled 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 setAAfFarbe(Text* spaltenName, Text* zeilenName, int f); //! Sets the strength of the color gradient used with the //! AuswahlMultistyled 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 //! AuswahlMultistyled 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 //! AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 AuswahlMultistyled 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 doTastaturEreignis(TastaturEreignis& 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 getSpaltenAnzahl() const; //! Returns the number of rows DLLEXPORT int getZeilenAnzahl() const; //! Returns the index of a column //! \param name The name of the column DLLEXPORT int getSpaltenNummer(const char* name) const; //! Returns the index of a column //! \param name The name of the column DLLEXPORT int getSpaltenNummer(Text* name) const; //! Returns the name of a column //! \param num The index of the column DLLEXPORT Text* getSpaltenName(int num) const; //! Returns the name of a column without increased reference counter //! \param num The index of the column DLLEXPORT Text* zSpaltenName(int num) const; //! Returns the index of a row //! \param name The name of the row DLLEXPORT int getZeilenNummer(const char* name) const; //! Returns the index of a row //! \param name The name of the row DLLEXPORT int getZeilenNummer(Text* name) const; //! Returns the name of a row //! \param num The index of the row DLLEXPORT Text* getZeilenName(int num) const; //! Returns the name of a row without increased reference counter //! \param num The index of the row DLLEXPORT Text* zZeilenName(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 Punkt 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 getSpaltenBreite(int num) const; //! Returns the width of a column in pixels //! \param name The name of the column DLLEXPORT int getSpaltenBreite(const char* name) const; //! Returns the width of a column in pixels //! \param name The name of the column DLLEXPORT int getSpaltenBreite(Text* name) const; //! Returns the height of a row in pixels //! \param num The index of the row DLLEXPORT int getZeilenHeight(int num) const; //! Returns the height of a row in pixels //! \param name The name of the row DLLEXPORT int getZeilenHeight(const char* name) const; //! Returns the height of a row in pixels //! \param name The name of the row DLLEXPORT int getZeilenHeight(Text* name) const; //! Returns the minimum column width in pixels //! \param num The index of the column DLLEXPORT int getMinSpaltenBreite(int num) const; //! Returns the minimum column width in pixels //! \param name The name of the column DLLEXPORT int getMinSpaltenBreite(const char* name) const; //! Returns the minimum column width in pixels //! \param name The name of the column DLLEXPORT int getMinSpaltenBreite(Text* name) const; //! Returns the maximum column width in pixels //! \param num The index of the column DLLEXPORT int getMaxSpaltenBreite(int num) const; //! Returns the maximum column width in pixels //! \param name The name of the column DLLEXPORT int getMaxSpaltenBreite(const char* name) const; //! Returns the maximum column width in pixels //! \param name The name of the column DLLEXPORT int getMaxSpaltenBreite(Text* name) const; //! Returns the minimum row height in pixels //! \param num The index of the row DLLEXPORT int getMinZeilenHeight(int num) const; //! Returns the minimum row height in pixels //! \param name The name of the row DLLEXPORT int getMinZeilenHeight(const char* name) const; //! Returns the minimum row height in pixels //! \param name The name of the row DLLEXPORT int getMinZeilenHeight(Text* name) const; //! Returns the maximum row height in pixels //! \param num The index of the row DLLEXPORT int getMaxZeilenHeight(int num) const; //! Returns the maximum row height in pixels //! \param name The name of the row DLLEXPORT int getMaxZeilenHeight(const char* name) const; //! Returns the maximum row height in pixels //! \param name The name of the row DLLEXPORT int getMaxZeilenHeight(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 getMausSpalte(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* getMausSpaltenName(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* zMausSpaltenName(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 getMausZeile(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* getMausZeilenName(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* zMausZeilenName(int my) const; //! Returns the column index as x and the row index as y of the //! selected field DLLEXPORT const Punkt& getAuswahlPosition() const; //! Returns the color of the grid in A8R8G8B8 format DLLEXPORT int getRasterFarbe() const; //! Returns the width of the grid in pixels DLLEXPORT int getRasterBreite() 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 AlphaFeld* getAAlphaFeld() const; //! Returns a pointer to the color gradient without increased reference //! counter used for the selected field DLLEXPORT AlphaFeld* zAAlphaFeld() const; //! Returns a pointer to the border used with the AuswahlMultistyled //! 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 AuswahlMultistyled 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 //! AuswahlMultistyled flag when selecting a specific cell //! \param sNum The index of the column \param zNum The index of the row DLLEXPORT AlphaFeld* getAAlphaFeld(int sNum, int zNum) const; //! Returns a pointer to the color gradient without increased reference //! counter used with the AuswahlMultistyled flag when selecting a //! specific cell \param sNum The index of the column //! \param zNum The index of the row DLLEXPORT AlphaFeld* zAAlphaFeld(int sNum, int zNum) const; //! Returns a pointer to the border used with the AuswahlMultistyled //! 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 AuswahlMultistyled 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 //! AuswahlMultistyled flag when selecting a specific cell //! \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT AlphaFeld* getAAlphaFeld( const char* spaltenName, const char* zeilenName) const; //! Returns a pointer to the color gradient without increased reference //! counter used with the AuswahlMultistyled flag when selecting a //! specific cell \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT AlphaFeld* zAAlphaFeld( const char* spaltenName, const char* zeilenName) const; //! Returns a pointer to the border used with the AuswahlMultistyled //! 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 AuswahlMultistyled 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 //! AuswahlMultistyled flag when selecting a specific cell //! \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT AlphaFeld* getAAlphaFeld( Text* spaltenName, Text* zeilenName) const; //! Returns a pointer to the color gradient without increased reference //! counter used with the AuswahlMultistyled flag when selecting a //! specific cell \param spaltenName The name of the column //! \param zeilenName The name of the row DLLEXPORT AlphaFeld* zAAlphaFeld( Text* spaltenName, Text* zeilenName) const; //! Checks whether a specific style is set for a specific cell with the //! AuswahlMultistyled flag \param sNum The index of the column //! \param zNum The index of the row //! \param style The style to check DLLEXPORT inline bool hatMsStyle( int sNum, int zNum, __int64 style) const; //! Checks whether a specific style is not set for a specific cell with //! the AuswahlMultistyled flag \param sNum The index of the column //! \param zNum The index of the row \param style The style to check DLLEXPORT inline bool hatMsStyleNicht( int sNum, int zNum, __int64 style) const; //! Checks whether a specific style is set for a specific cell with the //! AuswahlMultistyled flag \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style //! to check DLLEXPORT inline bool hatMsStyle(const char* spaltenName, const char* zeilenName, __int64 style) const; //! Checks whether a specific style is not set for a specific cell with //! the AuswahlMultistyled flag \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style //! to check DLLEXPORT inline bool hatMsStyleNicht(const char* spaltenName, const char* zeilenName, __int64 style) const; //! Checks whether a specific style is set for a specific cell with the //! AuswahlMultistyled flag \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style //! to check DLLEXPORT inline bool hatMsStyle( Text* spaltenName, Text* zeilenName, __int64 style) const; //! Checks whether a specific style is not set for a specific cell with //! the AuswahlMultistyled flag \param spaltenName The name of the column //! \param zeilenName The name of the row \param style The style //! to check DLLEXPORT inline bool hatMsStyleNicht( Text* spaltenName, Text* zeilenName, __int64 style) const; //! Creates a copy of the table that can be modified without //! affecting the original DLLEXPORT Drawable* dublizieren() const override; }; } // namespace Framework #endif