#ifndef Tabelle_H #define Tabelle_H #include "Array.h" #include "Zeichnung.h" namespace Framework { class Rahmen; //! Rahmen.h class AlphaFeld; //! AlphaFeld.h class VScrollBar; //! Scroll.h class HScrollBar; //! Scroll.h class Text; //! Text.h class ObjTabelle; //! aus dieser Datei //! Verwaltet eine Tabelle aus Zeichnungen class ObjTabelle : public ZeichnungHintergrund { public: class Style : public ZeichnungHintergrund::Style { public: //! Wenn dieser Flag gesetzt wird, so kann der //! Benutzer die Spalten mit der Maus vergr��ern //! und verkleinern static const __int64 SpaltenBreiteChangeable = 0x00001000; //! Wenn dieser Flag gesetzt wird, so kann der //! Benutzer die Spalten mit der Maus vergr��ern //! und verkleinern static const __int64 ZeilenHeightChangeable = 0x00002000; //! Wenn dieser Flag gesetzt wird, so kann der //! Nutzer trotz des Flags SpaltenBreite�nderbar //! die Spaltenbreite nicht kleiner machen als //! eine bestimmte Grenze static const __int64 SpaltenBreiteMin = 0x00004000; //! Wenn dieser Flag gesetzt wird, so kann der //! Nutzer trotz des Flags SpaltenBreite�nderbar //! die Spaltenbreite nicht gr��er machen als eine //! bestimmte Grenze static const __int64 SpaltenBreiteMax = 0x00008000; //! Wenn dieser Flag gesetzt wird, so kann der //! Nutzer trotz des Flags ZeilenH�he�nderbar die //! Zeilenh�he nicht kleiner machen als eine //! bestimmte Grenze static const __int64 ZeilenHeightMin = 0x00010000; //! Wenn dieser Flag gesetzt wird, so kann der //! Nutzer trotz des Flags ZeilenH�he�nderbar die //! Zeilenh�he nicht gr��er machen als eine //! bestimmte Grenze static const __int64 ZeilenHeightMax = 0x00020000; //! Wenn dieser Flag gesetzt wird, so kann der //! Nutzer die Reihenfolge der Spalten bestimmen, //! in dem er sie per Drag and Drop verschiebt static const __int64 SpaltenBeweglich = 0x00040000; //! Wenn dieser Flag gesetzt wird, so kann der //! Nutzer die Reihenfolge der Zeilen bestimmen, //! in dem er sie per Drag and Drop verschiebt static const __int64 ZeilenBeweglich = 0x00800000; //! Wenn dieser Flag gesetzt ist, so bekommt das //! Feld, dass der Benutzer durch den Flag Erlaubt //! ausw�hlen kann einen anderen Rahmen static const __int64 AuswahlRahmen = 0x0080000; //! Wenn dieser Flag gesetzt ist, so bekommt das //! Feld, dass der Benutzer durch den Flag Erlaubt //! ausw�hlen kann ein anderes AlphaFeld static const __int64 AuswahlBuffer = 0x00100000; //! Wenn dieser Flag gesetzt ist, so kann jedes //! Feld andere Rahmen und AlphaFelder beim //! Ausw�hlen haben. static const __int64 AuswahlMultistyled = 0x00200000; //! Wenn dieser Flag gesetzt ist, so werden //! zwischen den Feldern Linien gezeichnet static const __int64 Raster = 0x00400000; //! Vereint die Flags: SpaltenBreite�nderbar, //! ZeilenH�he�nderbar, SpaltenBeweglich, //! ZeilenBeweglich static const __int64 beweglich = SpaltenBreiteChangeable | ZeilenHeightChangeable | SpaltenBeweglich | ZeilenBeweglich; //! Vereint die Flags: SpaltenBreiteMax, //! SpaltenBreiteMin, ZeilenH�heMax, //! ZeilenH�heMax static const __int64 min_max = SpaltenBreiteMax | SpaltenBreiteMin | ZeilenHeightMax | ZeilenHeightMax; //! Vereint die Flags: VScroll, HScroll static const __int64 scroll = VScroll | HScroll; //! Vereint die Flags: Rahmen, Erlaubt, //! Sichtbar, SpaltenBeweglich, //! AuswahlBuffer, AuswahlRahmen, Raster static const __int64 normal = Rahmen | Erlaubt | Sichtbar | AuswahlBuffer | AuswahlRahmen | Raster | MEIgnoreInside | MEIgnoreParentInside | MEIgnoreSichtbar | MEIgnoreVerarbeitet; }; private: RCArray<RCArray<Zeichnung>>* members; RCArray<Text>* spaltenNamen; RCArray<Text>* zeilenNamen; Array<int>* spaltenBreite; Array<int>* zeilenHeight; Array<int>* minSpaltenBreite; Array<int>* maxSpaltenBreite; Array<int>* minZeilenHeight; Array<int>* maxZeilenHeight; int spaltenAnzahl, zeilenAnzahl; int klickSpalte; int klickZeile; double mSpalte, mZeile; int mx, my; Punkt selected; int rasterFarbe; int rasterBreite; Rahmen* aRam; AlphaFeld* aAf; RCArray<RCArray<Rahmen>>* msaRam; RCArray<RCArray<AlphaFeld>>* msaAf; RCArray<Array<__int64>>* styles; //! Verarbeitet Maus Nachrichten //! \param me Das Ereignis, was durch die Mauseingabe ausgel��t wurde DLLEXPORT void doMausEreignis(MausEreignis& me, bool userRet) override; public: //! Konstruktor DLLEXPORT ObjTabelle(); //! Destruktor DLLEXPORT virtual ~ObjTabelle(); //! F�gt der Tabelle eine Spalte hinzu //! \param name Der Name der Spalte DLLEXPORT void addSpalte(const char* name); //! F�gt der Tabelle eine Spalte hinzu //! \param name Der Name der Spalte DLLEXPORT void addSpalte(Text* name); //! F�gt der Tabelle an einer bestimmten Position eine Spalte hinzu //! \param sNum Der Index der neuen Spalte //! \param name Der Name der neuen Spalte DLLEXPORT void addSpalte(int sNum, const char* name); //! F�gt der Tabelle an einer bestimmten Position eine Spalte hinzu //! \param sNum Der Index der neuen Spalte //! \param name Der Name der neuen Spalte DLLEXPORT void addSpalte(int sNum, Text* name); //! F�gt der Tabelle eine Zeile hinzu //! \param name Der Name der Zeile DLLEXPORT void addZeile(const char* name); //! F�gt der Tabelle eine Zeile hinzu //! \param name Der Name der Zeile DLLEXPORT void addZeile(Text* name); //! F�gt der Tabelle an einer bestimmten Position eine Zeile hinzu //! \param zNum Der Index der neuen Zeile //! \param name Der Name der neuen Zeile DLLEXPORT void addZeile(int zNum, const char* name); //! F�gt der Tabelle an einer bestimmten Position eine Zeile hinzu //! \param sNum Der Index der neuen Zeile //! \param name Der Name der neuen Zeile DLLEXPORT void addZeile(int zNum, Text* name); //! Entfernt eine Spalte //! \param sNum Der Index der Spalte DLLEXPORT void removeSpalte(int sNum); //! Entfernt eine Spalte //! \param name Der Name der Spalte DLLEXPORT void removeSpalte(const char* name); //! Entfernt eine Spalte //! \param name Der Name der Spalte DLLEXPORT void removeSpalte(Text* name); //! Entfernt eine Zeile //! \param zNum Der Index der Zeile DLLEXPORT void removeZeile(int zNum); //! Entfernt eine Zeile //! \param name Der Name der Zeile DLLEXPORT void removeZeile(const char* name); //! Entfernt eine Zeile //! \param name Der Name der Zeile DLLEXPORT void removeZeile(Text* name); //! Setzt den Index einer Spalte //! \param name Der Name der Spalte //! \param pos Der neue Index der Spalte DLLEXPORT void setSpaltePosition(const char* name, int pos); //! Setzt den Index einer Spalte //! \param name Der Name der Spalte //! \param pos Der neue Index der Spalte DLLEXPORT void setSpaltePosition(Text* name, int pos); //! Setzt den Index einer Spalte //! \param sNum Der alte Index der Spalte //! \param pos Der neue Index der Spalte DLLEXPORT void setSpaltePosition(int sNum, int pos); //! Setzt den Index einer Zeile //! \param name Der Name der Zeile //! \param pos Der neue Index der Zeile DLLEXPORT void setZeilePosition(const char* name, int pos); //! Setzt den Index einer Zeile //! \param name Der Name der Zeile //! \param pos Der neue Index der Zeile DLLEXPORT void setZeilePosition(Text* name, int pos); //! Setzt den Index einer Zeile //! \param zNum Der alte Index der Zeile //! \param pos Der neue Index der Zeile DLLEXPORT void setZeilePosition(int zNum, int pos); //! Setzt ein Zeichnung, welches in einem Bestimmten Feld sein soll //! Wenn bereits ein Zeichnung in dem Feld ist, wird es �berschrieben. //! \param sNum Der Index der Spalte, in der das Zeichnung stehen soll //! \param zNum Der Index der Zeile, in der das Zeichnung stehen soll //! \param obj Das Zeichnung welches in dem Feld sein soll DLLEXPORT void setZeichnungZ(int sNum, int zNum, Zeichnung* obj); //! Setzt ein Zeichnung, welches in einem Bestimmten Feld sein soll //! Wenn bereits ein Zeichnung in dem Feld ist, wird es �berschrieben. //! \param spaltenName Der Name der Spalte, in der das Zeichnung stehen //! soll \param zeilenName Der Name der Zeile, in der das Zeichnung //! stehen soll \param obj Das Zeichnung welches in dem Feld sein soll DLLEXPORT void setZeichnungZ( const char* spaltenName, const char* zeilenName, Zeichnung* obj); //! Setzt ein Zeichnung, welches in einem Bestimmten Feld sein soll //! Wenn bereits ein Zeichnung in dem Feld ist, wird es �berschrieben. //! \param spaltenName Der Name der Spalte, in der das Zeichnung stehen //! soll \param zeilenName Der Name der Zeile, in der das Zeichnung //! stehen soll \param obj Das Zeichnung welches in dem Feld sein soll DLLEXPORT void setZeichnungZ( Text* spaltenName, Text* zeilenName, Zeichnung* obj); //! Setzt die Spalten Breite //! \param sNum Der Index der Spalte //! \param br Die Breite in Pixeln DLLEXPORT void setSpaltenBreite(int sNum, int br); //! Setzt die Spalten Breite //! \param name Der Name der Spalte //! \param br Die Breite in Pixeln DLLEXPORT void setSpaltenBreite(const char* name, int br); //! Setzt die Spalten Breite //! \param name Der Name der Spalte //! \param br Die Breite in Pixeln DLLEXPORT void setSpaltenBreite(Text* name, int br); //! Setzt die Zeilen H�he //! \param zNum Der Index der Zeile //! \param hi Die H�he in Pixeln DLLEXPORT void setZeilenHeight(int zNum, int hi); //! Setzt die Zeilen H�he //! \param name Der Index der Zeile //! \param hi Die H�he in Pixeln DLLEXPORT void setZeilenHeight(const char* name, int hi); //! Setzt die Zeilen H�he //! \param name Der Index der Zeile //! \param hi Die H�he in Pixeln DLLEXPORT void setZeilenHeight(Text* name, int hi); //! Setzt die minimale Spalten Breite (ben�tigt Flag: //! SpaltenBreite�nderbar, SpaltenBreiteMin) \param sNum Der Index der //! Spalte \param minBr Die minimale Breite in Pixeln DLLEXPORT void setMinSpaltenBreite(int sNum, int minBr); //! Setzt die minimale Spalten Breite (ben�tigt Flag: //! SpaltenBreite�nderbar, SpaltenBreiteMin) \param name Der Name der //! Spalte \param minBr Die minimale Breite in Pixeln DLLEXPORT void setMinSpaltenBreite(const char* name, int minBr); //! Setzt die minimale Spalten Breite (ben�tigt Flag: //! SpaltenBreite�nderbar, SpaltenBreiteMin) \param name Der Name der //! Spalte \param minBr Die minimale Breite in Pixeln DLLEXPORT void setMinSpaltenBreite(Text* name, int minBr); //! Setzt die maximale Spalten Breite (ben�tigt Flag: //! SpaltenBreite�nderbar, SpaltenBreiteMax) \param sNum Der Index der //! Spalte \param maxBr Die maximale Breite in Pixeln DLLEXPORT void setMaxSpaltenBreite(int sNum, int maxBr); //! Setzt die maximale Spalten Breite (ben�tigt Flag: //! SpaltenBreite�nderbar, SpaltenBreiteMax) \param name Der Name der //! Spalte \param maxBr Die maximale Breite in Pixeln DLLEXPORT void setMaxSpaltenBreite(const char* name, int maxBr); //! Setzt die maximale Spalten Breite (ben�tigt Flag: //! SpaltenBreite�nderbar, SpaltenBreiteMax) \param name Der Name der //! Spalte \param maxBr Die maximale Breite in Pixeln DLLEXPORT void setMaxSpaltenBreite(Text* name, int maxBr); //! Setzt die minimale Zeilen H�he (ben�tigt Flag: ZeilenH�he�nderbar, //! ZeienH�heMin) \param zNum Der Index der Zeile \param minHi Die //! minimale H�he in Pixeln DLLEXPORT void setMinZeilenHeight(int zNum, int minHi); //! Setzt die minimale Zeilen H�he (ben�tigt Flag: ZeilenH�he�nderbar, //! ZeienH�heMin) \param name Der Name der Zeile \param minHi Die //! minimale H�he in Pixeln DLLEXPORT void setMinZeilenHeight(const char* name, int minHi); //! Setzt die minimale Zeilen H�he (ben�tigt Flag: ZeilenH�he�nderbar, //! ZeienH�heMin) \param name Der Name der Zeile \param minHi Die //! minimale H�he in Pixeln DLLEXPORT void setMinZeilenHeight(Text* name, int minHi); //! Setzt die maximale Zeilen H�he (ben�tigt Flag: ZeilenH�he�nderbar, //! ZeienH�heMax) \param zNum Der Index der Zeile \param maxHi Die //! maximale H�he in Pixeln DLLEXPORT void setMaxZeilenHeight(int zNum, int maxHi); //! Setzt die maximale Zeilen H�he (ben�tigt Flag: ZeilenH�he�nderbar, //! ZeienH�heMax) \param name Der Name der Zeile \param maxHi Die //! maximale H�he in Pixeln DLLEXPORT void setMaxZeilenHeight(const char* name, int maxHi); //! Setzt die maximale Zeilen H�he (ben�tigt Flag: ZeilenH�he�nderbar, //! ZeienH�heMax) \param name Der Name der Zeile \param maxHi Die //! maximale H�he in Pixeln DLLEXPORT void setMaxZeilenHeight(Text* name, int maxHi); //! Legt fest, welches Feld ausgew�hlt ist (ben�tigt Flag: Erlaubt) //! \param sNum Der Index der Spalte des Feldes //! \param zNum Der Index der Zeile des Feldes DLLEXPORT void setAuswahl(int sNum, int zNum); //! Legt fest, welches Feld ausgew�hlt ist (ben�tigt Flag: Erlaubt) //! \param spaltenName Der Name der Spalte des Feldes //! \param zeilenName Der Name der Zeile des Feldes DLLEXPORT void setAuswahl( const char* spaltenName, const char* zeilenName); //! Legt fest, welches Feld ausgew�hlt ist (ben�tigt Flag: Erlaubt) //! \param spaltenName Der Name der Spalte des Feldes //! \param zeilenName Der Name der Zeile des Feldes DLLEXPORT void setAuswahl(Text* spaltenName, Text* zeilenName); //! Setzt dei Farbe des zwischen den K�stchen angezeigten Rasters //! \param f Die Farbe im A8R8G8B8 Format DLLEXPORT void setRasterFarbe(int f); //! Setzt due Breite des zwischen den K�stchen angezeigten Raseter //! \param br Die Breite in Pixeln DLLEXPORT void setRasterBreite(int br); //! Setzte den Zeiger auf einen Rahmen, der um das ausgew�hlte K�stchen //! gezeichnet wird \param ram Der Rahmen DLLEXPORT void setARahmenZ(Rahmen* ram); //! Setzt die farbe des Rahmens, der um das ausgew�hlte K�stchen //! gezeichnet wird \param f Die Farbe im A8R8G8B8 Format DLLEXPORT void setARFarbe(int f); //! Setzt die Breite des Rahmens, der um das ausgew�hlte K�stchen //! gezeichnet wird \param br Die Breite in Pixeln DLLEXPORT void setARBreite(int br); //! Setzt einen Zeiger auf das AlphaFeld, das f�r das ausgew�hlte //! K�stchen verwendet wird \param af Das AlphaFeld DLLEXPORT void setAAlphaFeldZ(AlphaFeld* af); //! Setzt die Farbe des AlphaFeldes, das f�r das ausgew�hlte K�stchen //! verwendet wird \param f Die Farbe im A8R8G8B8 Format DLLEXPORT void setAAfFarbe(int f); //! Setzt die St�rke des AlphaFeldes, das f�r das ausgew�hlte K�stchen //! verwendet wird \param st Die St�rke DLLEXPORT void setAAfStrength(int st); //! Setzt einen Zeiger auf einen Rahmen, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param sNum Der Index der Spalte des K�stchens \param //! zNum Der Index der Zeile des K�stchens \param ram Der Rahmen DLLEXPORT void setARahmenZ(int sNum, int zNum, Rahmen* ram); //! Setzt einen Zeiger auf einen Rahmen, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param spaltenName Der Name der Spalte des K�stchens //! \param zeilenName Der Name der Zeile des K�stchens //! \param ram Der Rahmen DLLEXPORT void setARahmenZ( const char* spaltenName, const char* zeilenName, Rahmen* ram); //! Setzt einen Zeiger auf einen Rahmen, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param spaltenName Der Name der Spalte des K�stchens //! \param zeilenName Der Name der Zeile des K�stchens //! \param ram Der Rahmen DLLEXPORT void setARahmenZ( Text* spaltenName, Text* zeilenName, Rahmen* ram); //! Setzt die Farbe von einem Rahmen, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param sNum Der Index der Spalte des K�stchens \param //! zNum Der Index der Zeile des K�stchens \param f Die Farbe im //! A8R8G8B8 Format DLLEXPORT void setARFarbe(int sNum, int zNum, int f); //! Setzt die Farbe von einem Rahmen, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param spaltenName Der Name der Spalte des K�stchens //! \param zeilenName Der Name der Zeile des K�stchens //! \param f Die Farbe im A8R8G8B8 Format DLLEXPORT void setARFarbe( const char* spaltenName, const char* zeilenName, int f); //! Setzt die Farbe von einem Rahmen, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param spaltenName Der Name der Spalte des K�stchens //! \param zeilenName Der Name der Zeile des K�stchens //! \param f Die Farbe im A8R8G8B8 Format DLLEXPORT void setARFarbe(Text* spaltenName, Text* zeilenName, int f); //! Setzt die Breite von einem Rahmen, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param sNum Der Index der Spalte des K�stchens \param //! zNum Der Index der Zeile des K�stchens \param br Die Breite in //! Pixeln DLLEXPORT void setARBreite(int sNum, int zNum, int br); //! Setzt die Breite von einem Rahmen, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param spaltenName Der Name der Spalte des K�stchens //! \param zeilenName Der Name der Zeile des K�stchens //! \param br Die Breite in Pixeln DLLEXPORT void setARBreite( const char* spaltenName, const char* zeilenName, int br); //! Setzt die Breite von einem Rahmen, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param spaltenName Der Name der Spalte des K�stchens //! \param zeilenName Der Name der Zeile des K�stchens //! \param br Die Breite in Pixeln DLLEXPORT void setARBreite(Text* spaltenName, Text* zeilenName, int br); //! Setzt den Farb�ergang, der bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten K�stchens verwendte wird \param sNum Der //! Index der Spalte des K�stchens \param zNum Der Index der Zeile des //! K�stchens \param af Der Farb�bergang DLLEXPORT void setAAlphaFeldZ(int sNum, int zNum, AlphaFeld* af); //! Setzt den Farb�ergang, der bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten K�stchens verwendte wird \param spaltenName //! Der Name der Spalte des K�stchens \param zeilenName Der Name der //! Zeile des K�stchens \param af Der Farb�bergang DLLEXPORT void setAAlphaFeldZ( const char* spaltenName, const char* zeilenName, AlphaFeld* af); //! Setzt den Farb�ergang, der bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten K�stchens verwendte wird \param spaltenName //! Der Name der Spalte des K�stchens \param zeilenName Der Name der //! Zeile des K�stchens \param af Der Farb�bergang DLLEXPORT void setAAlphaFeldZ( Text* spaltenName, Text* zeilenName, AlphaFeld* af); //! Setzt die Farbe des Farb�ergangs, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param sNum Der Index der Spalte des K�stchens \param //! zNum Der Index der Zeile des K�stchens \param f Die Farbe im //! A8R8G8B8 Format DLLEXPORT void setAAfFarbe(int sNum, int zNum, int f); //! Setzt die Farbe des Farb�ergangs, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param spaltenName Der Name der Spalte des K�stchens //! \param zeilenName Der Name der Zeile des K�stchens //! \param f Die Farbe im A8R8G8B8 Format DLLEXPORT void setAAfFarbe( const char* spaltenName, const char* zeilenName, int f); //! Setzt die Farbe des Farb�ergangs, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param spaltenName Der Name der Spalte des K�stchens //! \param zeilenName Der Name der Zeile des K�stchens //! \param f Die Farbe im A8R8G8B8 Format DLLEXPORT void setAAfFarbe(Text* spaltenName, Text* zeilenName, int f); //! Setzt die St�rke des Farb�ergangs, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param sNum Der Index der Spalte des K�stchens \param //! zNum Der Index der Zeile des K�stchens \param st Die St�rke DLLEXPORT void setAAfStrength(int sNum, int zNum, int st); //! Setzt die St�rke des Farb�ergangs, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param spaltenName Der Name der Spalte des K�stchens //! \param zeilenName Der Name der Zeile des K�stchens //! \param st Die St�rke DLLEXPORT void setAAfStrength( const char* spaltenName, const char* zeilenName, int st); //! Setzt die St�rke des Farb�ergangs, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten K�stchens //! verwendte wird \param spaltenName Der Name der Spalte des K�stchens //! \param zeilenName Der Name der Zeile des K�stchens //! \param st Die St�rke DLLEXPORT void setAAfStrength( Text* spaltenName, Text* zeilenName, int st); //! F�gt Styles hinzu, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten K�stchens verwendte werden \param sNum Der //! Index der Spalte des K�stchens \param zNum Der Index der Zeile des //! K�stchens \param style der Style, der hinzugef�gt werden soll DLLEXPORT void addMsStyle(int sNum, int zNum, __int64 style); //! F�gt Styles hinzu, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten K�stchens verwendte werden \param //! spaltenName Der Name der Spalte des K�stchens \param zeilenName Der //! Name der Zeile des K�stchens \param style der Style, der hinzugef�gt //! werden soll DLLEXPORT void addMsStyle( const char* spaltenName, const char* zeilenName, __int64 style); //! F�gt Styles hinzu, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten K�stchens verwendte werden \param //! spaltenName Der Name der Spalte des K�stchens \param zeilenName Der //! Name der Zeile des K�stchens \param style der Style, der hinzugef�gt //! werden soll DLLEXPORT void addMsStyle( Text* spaltenName, Text* zeilenName, __int64 style); //! Setzt die Styles, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten K�stchens verwendte werden \param sNum Der //! Index der Spalte des K�stchens \param zNum Der Index der Zeile des //! K�stchens \param style der Style, der verwendet werden soll DLLEXPORT void setMsStyle(int sNum, int zNum, __int64 style); //! Setzt die Styles, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten K�stchens verwendte werden \param //! spaltenName Der Name der Spalte des K�stchens \param zeilenName Der //! Name der Zeile des K�stchens \param style der Style, der verwendet //! werden soll DLLEXPORT void setMsStyle( const char* spaltenName, const char* zeilenName, __int64 style); //! Setzt die Styles, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten K�stchens verwendte werden \param //! spaltenName Der Name der Spalte des K�stchens \param zeilenName Der //! Name der Zeile des K�stchens \param style der Style, der verwendet //! werden soll DLLEXPORT void setMsStyle( Text* spaltenName, Text* zeilenName, __int64 style); //! Setzt die Styles, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten K�stchens verwendte werden \param sNum Der //! Index der Spalte des K�stchens \param zNum Der Index der Zeile des //! K�stchens \param style der Style, der verwendet werden soll //! add_remove: 1, falls die �bergebenen Styles hinzugef�gt werden //! sollen. 0, fals sie entfernt werden sollen DLLEXPORT void setMsStyle( int sNum, int zNum, __int64 style, bool add_remove); //! Setzt die Styles, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten K�stchens verwendte werden \param //! spaltenName Der Name der Spalte des K�stchens \param zeilenName Der //! Name der Zeile des K�stchens \param style der Style, der verwendet //! werden soll //! add_remove: 1, falls die �bergebenen Styles hinzugef�gt werden //! sollen. 0, fals sie entfernt werden sollen DLLEXPORT void setMsStyle(const char* spaltenName, const char* zeilenName, __int64 style, bool add_remove); //! Setzt die Styles, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten K�stchens verwendte werden \param //! spaltenName Der Name der Spalte des K�stchens \param zeilenName Der //! Name der Zeile des K�stchens \param style der Style, der verwendet //! werden soll //! add_remove: 1, falls die �bergebenen Styles hinzugef�gt werden //! sollen. 0, fals sie entfernt werden sollen DLLEXPORT void setMsStyle(Text* spaltenName, Text* zeilenName, __int64 style, bool add_remove); //! Entfernt Styles von den Styles, die bei dem Flag AuswahlMultistyled //! bei der Auswahl eines bestimmten K�stchens verwendte werden \param //! sNum Der Index der Spalte des K�stchens \param zNum Der Index der //! Zeile des K�stchens \param style der Style, der entfernt werden soll DLLEXPORT void removeMsStyle(int sNum, int zNum, __int64 style); //! Entfernt Styles von den Styles, die bei dem Flag AuswahlMultistyled //! bei der Auswahl eines bestimmten K�stchens verwendte werden \param //! spaltenName Der Name der Spalte des K�stchens \param zeilenName Der //! Name der Zeile des K�stchens \param style der Style, der entfernt //! werden soll DLLEXPORT void removeMsStyle( const char* spaltenName, const char* zeilenName, __int64 style); //! Entfernt Styles von den Styles, die bei dem Flag AuswahlMultistyled //! bei der Auswahl eines bestimmten K�stchens verwendte werden \param //! spaltenName Der Name der Spalte des K�stchens \param zeilenName Der //! Name der Zeile des K�stchens \param style der Style, der entfernt //! werden soll DLLEXPORT void removeMsStyle( Text* spaltenName, Text* zeilenName, __int64 style); //! Aktualisiert das Objekt. Wird vom Framework aufgerufen //! \param tickVal Die Zeit in sekunden, die seit dem lezten Aufruf //! dieser Funktion vergangen ist \return 1, wenn sich etwas ver�ndert //! hat und das Bild neu gezeichnet werden muss. 0 sonst DLLEXPORT bool tick(double tickVal) override; //! Verarbeitet Tastatur Nachrichten //! \param me Das Ereignis, was durch die Tastatureingabe ausgel��t //! wurde DLLEXPORT void doTastaturEreignis(TastaturEreignis& te) override; //! Zeichnet das Objekt nach zRObj, falls er sichtbar ist //! \param zRObj Das Bild, in welches gezeichnet werden soll DLLEXPORT void render(Bild& zRObj) override; //! Gibt die Anzahl der Spalten zur�ck DLLEXPORT int getSpaltenAnzahl() const; //! Gibt die Anzahl der Zeilen zur�ck DLLEXPORT int getZeilenAnzahl() const; //! Gibt den Index einer Spalte zur�ck //! \param name Der Name der Spalte DLLEXPORT int getSpaltenNummer(const char* name) const; //! Gibt den Index einer Spalte zur�ck //! \param name Der Name der Spalte DLLEXPORT int getSpaltenNummer(Text* name) const; //! Gibt den Namen einer Spalte zur�ck //! \param num Der Index der Splate DLLEXPORT Text* getSpaltenName(int num) const; //! Gibt den Namen einer Spalte ohne erh�hten reference Counter zur�ck //! \param num Der Index der Splate DLLEXPORT Text* zSpaltenName(int num) const; //! Gibt den Index einer Zeile zur�ck //! \param name Der Name der Zeile DLLEXPORT int getZeilenNummer(const char* name) const; //! Gibt den Index einer Zeile zur�ck //! \param name Der Name der Zeile DLLEXPORT int getZeilenNummer(Text* name) const; //! Gibt den Namen einer Zeile zur�ck //! \param num Der Index der Zeile DLLEXPORT Text* getZeilenName(int num) const; //! Gibt den Namen einer Zeile ohne erh�hten Reference Counter zur�ck //! \param num Der Index der Zeile DLLEXPORT Text* zZeilenName(int num) const; //! Sucht eine Zeichnung in der Tabelle und gibt den Index der Spalte //! als x und den der Zeile als y zur�ck. (-1, -1) falls das Objekt //! nicht gefunden wurde \param zObj Die Zeichnung (ohne erh�hten //! reference Counter) DLLEXPORT Punkt getZeichnungPosition(Zeichnung* zObj) const; //! Gibt die Zeichnung zur�ck, die in einem bestimmten K�stchen der //! Tabelle ist (ohne erh�hten reference Counter) \param sNum Der Index //! der Spalte \param zNum Der Index der Zeile DLLEXPORT Zeichnung* zZeichnung(int sNum, int zNum) const; //! Gibt die Zeichnung zur�ck, die in einem bestimmten K�stchen der //! Tabelle ist (ohne erh�hten reference Counter) \param spaltenName Der //! Name der Spalte des K�stchens \param zeilenName Der Name der Zeile //! des K�stchens DLLEXPORT Zeichnung* zZeichnung( const char* spaltenName, const char* zeilenName) const; //! Gibt die Zeichnung zur�ck, die in einem bestimmten K�stchen der //! Tabelle ist (ohne erh�hten reference Counter) \param spaltenName Der //! Name der Spalte des K�stchens \param zeilenName Der Name der Zeile //! des K�stchens DLLEXPORT Zeichnung* zZeichnung( Text* spaltenName, Text* zeilenName) const; //! Gibt die Zeichnung zur�ck, die in einem bestimmten K�stchen der //! Tabelle ist \param sNum Der Index der Spalte \param zNum Der Index //! der Zeile DLLEXPORT Zeichnung* getZeichnung(int sNum, int zNum) const; //! Gibt die Zeichnung zur�ck, die in einem bestimmten K�stchen der //! Tabelle ist \param spaltenName Der Name der Spalte des K�stchens //! \param zeilenName Der Name der Zeile des K�stchens DLLEXPORT Zeichnung* getZeichnung( const char* spaltenName, const char* zeilenName) const; //! Gibt die Zeichnung zur�ck, die in einem bestimmten K�stchen der //! Tabelle ist \param spaltenName Der Name der Spalte des K�stchens //! \param zeilenName Der Name der Zeile des K�stchens DLLEXPORT Zeichnung* getZeichnung( Text* spaltenName, Text* zeilenName) const; //! Gibt die Breite einer Spalte in Pixeln zur�ck //! \param num Der Index der Spalte DLLEXPORT int getSpaltenBreite(int num) const; //! Gibt die Breite einer Spalte in Pixeln zur�ck //! \param name Der Name der Spalte DLLEXPORT int getSpaltenBreite(const char* name) const; //! Gibt die Breite einer Spalte in Pixeln zur�ck //! \param name Der Name der Spalte DLLEXPORT int getSpaltenBreite(Text* name) const; //! Gibt die H�he einer Zeile in Pixeln zur�ck //! \param num Der Index der Zeile DLLEXPORT int getZeilenHeight(int num) const; //! Gibt die H�he einer Zeile in Pixeln zur�ck //! \param name Der Name der Zeile DLLEXPORT int getZeilenHeight(const char* name) const; //! Gibt die H�he einer Zeile in Pixeln zur�ck //! \param name Der Name der Zeile DLLEXPORT int getZeilenHeight(Text* name) const; //! Gibt die minimale Spalten breite in Pixeln zur�ck //! \param num Der Index der Spalte DLLEXPORT int getMinSpaltenBreite(int num) const; //! Gibt die minimale Spalten breite in Pixeln zur�ck //! \param name Der Name der Spalte DLLEXPORT int getMinSpaltenBreite(const char* name) const; //! Gibt die minimale Spalten breite in Pixeln zur�ck //! \param name Der Name der Spalte DLLEXPORT int getMinSpaltenBreite(Text* name) const; //! Gibt die maximale Spalten breite in Pixeln zur�ck //! \param num Der Index der Spalte DLLEXPORT int getMaxSpaltenBreite(int num) const; //! Gibt die maximale Spalten breite in Pixeln zur�ck //! \param name Der Name der Spalte DLLEXPORT int getMaxSpaltenBreite(const char* name) const; //! Gibt die maximale Spalten breite in Pixeln zur�ck //! \param name Der Name der Spalte DLLEXPORT int getMaxSpaltenBreite(Text* name) const; //! Gibt die minimale Zeilen H�he in Pixeln zur�ck //! \param num Der Index der Zeile DLLEXPORT int getMinZeilenHeight(int num) const; //! Gibt die minimale Zeilen H�he in Pixeln zur�ck //! \param name Der Name der Zeile DLLEXPORT int getMinZeilenHeight(const char* name) const; //! Gibt die minimale Zeilen H�he in Pixeln zur�ck //! \param name Der Name der Zeile DLLEXPORT int getMinZeilenHeight(Text* name) const; //! Gibt die maximale Zeilen H�he in Pixeln zur�ck //! \param num Der Index der Zeile DLLEXPORT int getMaxZeilenHeight(int num) const; //! Gibt die maximale Zeilen H�he in Pixeln zur�ck //! \param name Der Name der Zeile DLLEXPORT int getMaxZeilenHeight(const char* name) const; //! Gibt die maximale Zeilen H�he in Pixeln zur�ck //! \param name Der Name der Zeile DLLEXPORT int getMaxZeilenHeight(Text* name) const; //! Gibt den index der Splate zur�ck, auf die die Maus zeigt //! \param mx Die x Koordinate der Mausposition basierend zum linken //! Rand der Tabelle in Pixeln DLLEXPORT double getMausSpalte(int mx) const; //! Gibt den Namen der Splate zur�ck, auf die die Maus zeigt //! \param mx Die x Koordinate der Mausposition basierend zum linken //! Rand der Tabelle in Pixeln DLLEXPORT Text* getMausSpaltenName(int mx) const; //! Gibt den Namen der Splate ohne erh�hten Reference Counter zur�ck, //! auf die die Maus zeigt \param mx Die x Koordinate der Mausposition //! basierend zum linken Rand der Tabelle in Pixeln DLLEXPORT Text* zMausSpaltenName(int mx) const; //! Gibt den index der Zeile zur�ck, auf die die Maus zeigt //! \param my Die Y Koordinate der Mausposition basierend zum oberen //! Rand der Tabelle in Pixeln DLLEXPORT double getMausZeile(int my) const; //! Gibt den Namen der Zeile zur�ck, auf die die Maus zeigt //! \param my Die Y Koordinate der Mausposition basierend zum oberen //! Rand der Tabelle in Pixeln DLLEXPORT Text* getMausZeilenName(int my) const; //! Gibt den Namen der Zeile ohne erh�hten Reference Counter zur�ck, auf //! die die Maus zeigt \param my Die Y Koordinate der Mausposition //! basierend zum oberen Rand der Tabelle in Pixeln DLLEXPORT Text* zMausZeilenName(int my) const; //! Gibt den Index der Spalte als x und den der Zeile als y des //! ausgew�hlten Feldes zur�ck DLLEXPORT const Punkt& getAuswahlPosition() const; //! Gibt die Farbe des Rasters im A8R8G8B8 Format zur�ck DLLEXPORT int getRasterFarbe() const; //! Gibt die Breite des Rasters in Pixeln zur�ck DLLEXPORT int getRasterBreite() const; //! Gibt einen Zeiger auf den Rahmen zur�ck, der bei dem ausgew�hlten //! Feld verwendet wird DLLEXPORT Rahmen* getARahmen() const; //! Gibt einen Zeiger auf den Rahmen ohne erh�hten Reference Counter //! zur�ck, der bei dem ausgew�hlten Feld verwendet wird DLLEXPORT Rahmen* zARahmen() const; //! Gibt einen Zeiger auf den Farb�bergang zur�ck, der bei dem //! ausgew�hlten Feld verwendet wird DLLEXPORT AlphaFeld* getAAlphaFeld() const; //! Gibt einen Zeiger auf den Farb�bergang ohne erh�hten Reference //! Counter zur�ck, der bei dem ausgew�hlten Feld verwendet wird DLLEXPORT AlphaFeld* zAAlphaFeld() const; //! Gibt einen Zeiger auf den Rahmen zur�ck, der bei dem Flag //! AuswahlMultistyled bei der auswahl eines bestimmten K�stchens //! verwendet wird \param sNum Der Index der Spalte \param zNum Der //! Index der Zeile DLLEXPORT Rahmen* getARahmen(int sNum, int zNum) const; //! Gibt einen Zeiger auf den Rahmen ohne erh�hten Reference Couner //! zur�ck, der bei dem Flag AuswahlMultistyled bei der auswahl eines //! bestimmten K�stchens verwendet wird \param sNum Der Index der Spalte //! \param zNum Der Index der Zeile DLLEXPORT Rahmen* zARahmen(int sNum, int zNum) const; //! Gibt einen Zeiger auf den Farb�bergang zur�ck, der bei dem Flag //! AuswahlMultistyled bei der auswahl eines bestimmten K�stchens //! verwendet wird \param sNum Der Index der Spalte \param zNum Der //! Index der Zeile DLLEXPORT AlphaFeld* getAAlphaFeld(int sNum, int zNum) const; //! Gibt einen Zeiger auf den Farb�bergang ohne erh�hten Reference //! Couner zur�ck, der bei dem Flag AuswahlMultistyled bei der auswahl //! eines bestimmten K�stchens verwendet wird \param sNum Der Index der //! Spalte \param zNum Der Index der Zeile DLLEXPORT AlphaFeld* zAAlphaFeld(int sNum, int zNum) const; //! Gibt einen Zeiger auf den Rahmen zur�ck, der bei dem Flag //! AuswahlMultistyled bei der auswahl eines bestimmten K�stchens //! verwendet wird \param spaltenName Der Name der Spalte \param //! zeilenName Der Name der Zeile DLLEXPORT Rahmen* getARahmen( const char* spaltenName, const char* zeilenName) const; //! Gibt einen Zeiger auf den Rahmen ohne erh�hten Reference Coune //! zur�ck, der bei dem Flag AuswahlMultistyled bei der auswahl eines //! bestimmten K�stchens verwendet wird \param spaltenName Der Name der //! Spalte \param zeilenName Der Name der Zeile DLLEXPORT Rahmen* zARahmen( const char* spaltenName, const char* zeilenName) const; //! Gibt einen Zeiger auf den Farb�bergang zur�ck, der bei dem Flag //! AuswahlMultistyled bei der auswahl eines bestimmten K�stchens //! verwendet wird \param spaltenName Der Name der Spalte \param //! zeilenName Der Name der Zeile DLLEXPORT AlphaFeld* getAAlphaFeld( const char* spaltenName, const char* zeilenName) const; //! Gibt einen Zeiger auf den Farb�bergang ohne erh�hten Reference Coune //! zur�ck, der bei dem Flag AuswahlMultistyled bei der auswahl eines //! bestimmten K�stchens verwendet wird \param spaltenName Der Name der //! Spalte \param zeilenName Der Name der Zeile DLLEXPORT AlphaFeld* zAAlphaFeld( const char* spaltenName, const char* zeilenName) const; //! Gibt einen Zeiger auf den Rahmen zur�ck, der bei dem Flag //! AuswahlMultistyled bei der auswahl eines bestimmten K�stchens //! verwendet wird \param spaltenName Der Name der Spalte \param //! zeilenName Der Name der Zeile DLLEXPORT Rahmen* getARahmen(Text* spaltenName, Text* zeilenName) const; //! Gibt einen Zeiger auf den Rahmen ohne erh�hten Reference Coune //! zur�ck, der bei dem Flag AuswahlMultistyled bei der auswahl eines //! bestimmten K�stchens verwendet wird \param spaltenName Der Name der //! Spalte \param zeilenName Der Name der Zeile DLLEXPORT Rahmen* zARahmen(Text* spaltenName, Text* zeilenName) const; //! Gibt einen Zeiger auf den Farb�bergang zur�ck, der bei dem Flag //! AuswahlMultistyled bei der auswahl eines bestimmten K�stchens //! verwendet wird \param spaltenName Der Name der Spalte \param //! zeilenName Der Name der Zeile DLLEXPORT AlphaFeld* getAAlphaFeld( Text* spaltenName, Text* zeilenName) const; //! Gibt einen Zeiger auf den Farb�bergang ohne erh�hten Reference Coune //! zur�ck, der bei dem Flag AuswahlMultistyled bei der auswahl eines //! bestimmten K�stchens verwendet wird \param spaltenName Der Name der //! Spalte \param zeilenName Der Name der Zeile DLLEXPORT AlphaFeld* zAAlphaFeld( Text* spaltenName, Text* zeilenName) const; //! Pr�ft ob bei dem Flag AuswahlMultistyled f�r ein bestimmtes K�stchen //! ein bestimmter Style gesetzt ist \param sNum Der Index der Spalte //! \param zNum Der Index der Zeile //! \param style Der Style, der gepf�ft werden soll DLLEXPORT inline bool hatMsStyle( int sNum, int zNum, __int64 style) const; //! Pr�ft ob bei dem Flag AuswahlMultistyled f�r ein bestimmtes K�stchen //! ein bestimmter Style nicht gesetzt ist \param sNum Der Index der //! Spalte \param zNum Der Index der Zeile \param style Der Style, der //! gepf�ft werden soll DLLEXPORT inline bool hatMsStyleNicht( int sNum, int zNum, __int64 style) const; //! Pr�ft ob bei dem Flag AuswahlMultistyled f�r ein bestimmtes K�stchen //! ein bestimmter Style gesetzt ist \param spaltenName Der Name der //! Spalte \param zeilenName Der Name der Zeile \param style Der Style, //! der gepf�ft werden soll DLLEXPORT inline bool hatMsStyle(const char* spaltenName, const char* zeilenName, __int64 style) const; //! Pr�ft ob bei dem Flag AuswahlMultistyled f�r ein bestimmtes K�stchen //! ein bestimmter Style nicht gesetzt ist \param spaltenName Der Name //! der Spalte \param zeilenName Der Name der Zeile \param style Der //! Style, der gepf�ft werden soll DLLEXPORT inline bool hatMsStyleNicht(const char* spaltenName, const char* zeilenName, __int64 style) const; //! Pr�ft ob bei dem Flag AuswahlMultistyled f�r ein bestimmtes K�stchen //! ein bestimmter Style gesetzt ist \param spaltenName Der Name der //! Spalte \param zeilenName Der Name der Zeile \param style Der Style, //! der gepf�ft werden soll DLLEXPORT inline bool hatMsStyle( Text* spaltenName, Text* zeilenName, __int64 style) const; //! Pr�ft ob bei dem Flag AuswahlMultistyled f�r ein bestimmtes K�stchen //! ein bestimmter Style nicht gesetzt ist \param spaltenName Der Name //! der Spalte \param zeilenName Der Name der Zeile \param style Der //! Style, der gepf�ft werden soll DLLEXPORT inline bool hatMsStyleNicht( Text* spaltenName, Text* zeilenName, __int64 style) const; //! Erzeugt eine Kopie der Tabelle, die ohne auswirkungen auf das //! Original ver�ndert werden kann DLLEXPORT Zeichnung* dublizieren() const override; }; } // namespace Framework #endif