#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 vergroessern //! und verkleinern static const __int64 SpaltenBreiteChangeable = 0x00001000; //! Wenn dieser Flag gesetzt wird, so kann der //! Benutzer die Spalten mit der Maus vergroessern //! und verkleinern static const __int64 ZeilenHeightChangeable = 0x00002000; //! Wenn dieser Flag gesetzt wird, so kann der //! Nutzer trotz des Flags SpaltenBreiteAEnderbar //! 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 SpaltenBreiteAEnderbar //! die Spaltenbreite nicht groesser machen als eine //! bestimmte Grenze static const __int64 SpaltenBreiteMax = 0x00008000; //! Wenn dieser Flag gesetzt wird, so kann der //! Nutzer trotz des Flags ZeilenHoeheAEnderbar die //! Zeilenhoehe nicht kleiner machen als eine //! bestimmte Grenze static const __int64 ZeilenHeightMin = 0x00010000; //! Wenn dieser Flag gesetzt wird, so kann der //! Nutzer trotz des Flags ZeilenHoeheAEnderbar die //! Zeilenhoehe nicht groesser 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 //! auswaehlen 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 //! auswaehlen kann ein anderes AlphaFeld static const __int64 AuswahlBuffer = 0x00100000; //! Wenn dieser Flag gesetzt ist, so kann jedes //! Feld andere Rahmen und AlphaFelder beim //! Auswaehlen 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: SpaltenBreiteAEnderbar, //! ZeilenHoeheAEnderbar, SpaltenBeweglich, //! ZeilenBeweglich static const __int64 beweglich = SpaltenBreiteChangeable | ZeilenHeightChangeable | SpaltenBeweglich | ZeilenBeweglich; //! Vereint die Flags: SpaltenBreiteMax, //! SpaltenBreiteMin, ZeilenHoeheMax, //! ZeilenHoeheMax 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>* 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; Rahmen* aRam; AlphaFeld* aAf; RCArray>* msaRam; RCArray>* msaAf; RCArray>* styles; //! Verarbeitet Maus Nachrichten //! \param me Das Ereignis, was durch die Mauseingabe ausgeloesst wurde DLLEXPORT void doMausEreignis(MausEreignis& me, bool userRet) override; public: //! Konstruktor DLLEXPORT ObjTabelle(); //! Destruktor DLLEXPORT virtual ~ObjTabelle(); //! Fuegt der Tabelle eine Spalte hinzu //! \param name Der Name der Spalte DLLEXPORT void addSpalte(const char* name); //! Fuegt der Tabelle eine Spalte hinzu //! \param name Der Name der Spalte DLLEXPORT void addSpalte(Text* name); //! Fuegt 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); //! Fuegt 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); //! Fuegt der Tabelle eine Zeile hinzu //! \param name Der Name der Zeile DLLEXPORT void addZeile(const char* name); //! Fuegt der Tabelle eine Zeile hinzu //! \param name Der Name der Zeile DLLEXPORT void addZeile(Text* name); //! Fuegt 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); //! Fuegt 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 ueberschrieben. //! \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 ueberschrieben. //! \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 ueberschrieben. //! \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 Hoehe //! \param zNum Der Index der Zeile //! \param hi Die Hoehe in Pixeln DLLEXPORT void setZeilenHeight(int zNum, int hi); //! Setzt die Zeilen Hoehe //! \param name Der Index der Zeile //! \param hi Die Hoehe in Pixeln DLLEXPORT void setZeilenHeight(const char* name, int hi); //! Setzt die Zeilen Hoehe //! \param name Der Index der Zeile //! \param hi Die Hoehe in Pixeln DLLEXPORT void setZeilenHeight(Text* name, int hi); //! Setzt die minimale Spalten Breite (benoetigt Flag: //! SpaltenBreiteAEnderbar, 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 (benoetigt Flag: //! SpaltenBreiteAEnderbar, 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 (benoetigt Flag: //! SpaltenBreiteAEnderbar, 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 (benoetigt Flag: //! SpaltenBreiteAEnderbar, 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 (benoetigt Flag: //! SpaltenBreiteAEnderbar, 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 (benoetigt Flag: //! SpaltenBreiteAEnderbar, 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 Hoehe (benoetigt Flag: ZeilenHoeheAEnderbar, //! ZeienHoeheMin) \param zNum Der Index der Zeile \param minHi Die //! minimale Hoehe in Pixeln DLLEXPORT void setMinZeilenHeight(int zNum, int minHi); //! Setzt die minimale Zeilen Hoehe (benoetigt Flag: ZeilenHoeheAEnderbar, //! ZeienHoeheMin) \param name Der Name der Zeile \param minHi Die //! minimale Hoehe in Pixeln DLLEXPORT void setMinZeilenHeight(const char* name, int minHi); //! Setzt die minimale Zeilen Hoehe (benoetigt Flag: ZeilenHoeheAEnderbar, //! ZeienHoeheMin) \param name Der Name der Zeile \param minHi Die //! minimale Hoehe in Pixeln DLLEXPORT void setMinZeilenHeight(Text* name, int minHi); //! Setzt die maximale Zeilen Hoehe (benoetigt Flag: ZeilenHoeheAEnderbar, //! ZeienHoeheMax) \param zNum Der Index der Zeile \param maxHi Die //! maximale Hoehe in Pixeln DLLEXPORT void setMaxZeilenHeight(int zNum, int maxHi); //! Setzt die maximale Zeilen Hoehe (benoetigt Flag: ZeilenHoeheAEnderbar, //! ZeienHoeheMax) \param name Der Name der Zeile \param maxHi Die //! maximale Hoehe in Pixeln DLLEXPORT void setMaxZeilenHeight(const char* name, int maxHi); //! Setzt die maximale Zeilen Hoehe (benoetigt Flag: ZeilenHoeheAEnderbar, //! ZeienHoeheMax) \param name Der Name der Zeile \param maxHi Die //! maximale Hoehe in Pixeln DLLEXPORT void setMaxZeilenHeight(Text* name, int maxHi); //! Legt fest, welches Feld ausgewaehlt ist (benoetigt 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 ausgewaehlt ist (benoetigt 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 ausgewaehlt ist (benoetigt 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 Kaestchen angezeigten Rasters //! \param f Die Farbe im A8R8G8B8 Format DLLEXPORT void setRasterFarbe(int f); //! Setzt due Breite des zwischen den Kaestchen angezeigten Raseter //! \param br Die Breite in Pixeln DLLEXPORT void setRasterBreite(int br); //! Setzte den Zeiger auf einen Rahmen, der um das ausgewaehlte Kaestchen //! gezeichnet wird \param ram Der Rahmen DLLEXPORT void setARahmenZ(Rahmen* ram); //! Setzt die farbe des Rahmens, der um das ausgewaehlte Kaestchen //! gezeichnet wird \param f Die Farbe im A8R8G8B8 Format DLLEXPORT void setARFarbe(int f); //! Setzt die Breite des Rahmens, der um das ausgewaehlte Kaestchen //! gezeichnet wird \param br Die Breite in Pixeln DLLEXPORT void setARBreite(int br); //! Setzt einen Zeiger auf das AlphaFeld, das fuer das ausgewaehlte //! Kaestchen verwendet wird \param af Das AlphaFeld DLLEXPORT void setAAlphaFeldZ(AlphaFeld* af); //! Setzt die Farbe des AlphaFeldes, das fuer das ausgewaehlte Kaestchen //! verwendet wird \param f Die Farbe im A8R8G8B8 Format DLLEXPORT void setAAfFarbe(int f); //! Setzt die Staerke des AlphaFeldes, das fuer das ausgewaehlte Kaestchen //! verwendet wird \param st Die Staerke DLLEXPORT void setAAfStrength(int st); //! Setzt einen Zeiger auf einen Rahmen, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten Kaestchens //! verwendte wird \param sNum Der Index der Spalte des Kaestchens \param //! zNum Der Index der Zeile des Kaestchens \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 Kaestchens //! verwendte wird \param spaltenName Der Name der Spalte des Kaestchens //! \param zeilenName Der Name der Zeile des Kaestchens //! \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 Kaestchens //! verwendte wird \param spaltenName Der Name der Spalte des Kaestchens //! \param zeilenName Der Name der Zeile des Kaestchens //! \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 Kaestchens //! verwendte wird \param sNum Der Index der Spalte des Kaestchens \param //! zNum Der Index der Zeile des Kaestchens \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 Kaestchens //! verwendte wird \param spaltenName Der Name der Spalte des Kaestchens //! \param zeilenName Der Name der Zeile des Kaestchens //! \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 Kaestchens //! verwendte wird \param spaltenName Der Name der Spalte des Kaestchens //! \param zeilenName Der Name der Zeile des Kaestchens //! \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 Kaestchens //! verwendte wird \param sNum Der Index der Spalte des Kaestchens \param //! zNum Der Index der Zeile des Kaestchens \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 Kaestchens //! verwendte wird \param spaltenName Der Name der Spalte des Kaestchens //! \param zeilenName Der Name der Zeile des Kaestchens //! \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 Kaestchens //! verwendte wird \param spaltenName Der Name der Spalte des Kaestchens //! \param zeilenName Der Name der Zeile des Kaestchens //! \param br Die Breite in Pixeln DLLEXPORT void setARBreite(Text* spaltenName, Text* zeilenName, int br); //! Setzt den Farbueergang, der bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten Kaestchens verwendte wird \param sNum Der //! Index der Spalte des Kaestchens \param zNum Der Index der Zeile des //! Kaestchens \param af Der Farbuebergang DLLEXPORT void setAAlphaFeldZ(int sNum, int zNum, AlphaFeld* af); //! Setzt den Farbueergang, der bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten Kaestchens verwendte wird \param spaltenName //! Der Name der Spalte des Kaestchens \param zeilenName Der Name der //! Zeile des Kaestchens \param af Der Farbuebergang DLLEXPORT void setAAlphaFeldZ( const char* spaltenName, const char* zeilenName, AlphaFeld* af); //! Setzt den Farbueergang, der bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten Kaestchens verwendte wird \param spaltenName //! Der Name der Spalte des Kaestchens \param zeilenName Der Name der //! Zeile des Kaestchens \param af Der Farbuebergang DLLEXPORT void setAAlphaFeldZ( Text* spaltenName, Text* zeilenName, AlphaFeld* af); //! Setzt die Farbe des Farbueergangs, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten Kaestchens //! verwendte wird \param sNum Der Index der Spalte des Kaestchens \param //! zNum Der Index der Zeile des Kaestchens \param f Die Farbe im //! A8R8G8B8 Format DLLEXPORT void setAAfFarbe(int sNum, int zNum, int f); //! Setzt die Farbe des Farbueergangs, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten Kaestchens //! verwendte wird \param spaltenName Der Name der Spalte des Kaestchens //! \param zeilenName Der Name der Zeile des Kaestchens //! \param f Die Farbe im A8R8G8B8 Format DLLEXPORT void setAAfFarbe( const char* spaltenName, const char* zeilenName, int f); //! Setzt die Farbe des Farbueergangs, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten Kaestchens //! verwendte wird \param spaltenName Der Name der Spalte des Kaestchens //! \param zeilenName Der Name der Zeile des Kaestchens //! \param f Die Farbe im A8R8G8B8 Format DLLEXPORT void setAAfFarbe(Text* spaltenName, Text* zeilenName, int f); //! Setzt die Staerke des Farbueergangs, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten Kaestchens //! verwendte wird \param sNum Der Index der Spalte des Kaestchens \param //! zNum Der Index der Zeile des Kaestchens \param st Die Staerke DLLEXPORT void setAAfStrength(int sNum, int zNum, int st); //! Setzt die Staerke des Farbueergangs, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten Kaestchens //! verwendte wird \param spaltenName Der Name der Spalte des Kaestchens //! \param zeilenName Der Name der Zeile des Kaestchens //! \param st Die Staerke DLLEXPORT void setAAfStrength( const char* spaltenName, const char* zeilenName, int st); //! Setzt die Staerke des Farbueergangs, der bei dem Flag //! AuswahlMultistyled bei der Auswahl eines bestimmten Kaestchens //! verwendte wird \param spaltenName Der Name der Spalte des Kaestchens //! \param zeilenName Der Name der Zeile des Kaestchens //! \param st Die Staerke DLLEXPORT void setAAfStrength( Text* spaltenName, Text* zeilenName, int st); //! Fuegt Styles hinzu, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten Kaestchens verwendte werden \param sNum Der //! Index der Spalte des Kaestchens \param zNum Der Index der Zeile des //! Kaestchens \param style der Style, der hinzugefuegt werden soll DLLEXPORT void addMsStyle(int sNum, int zNum, __int64 style); //! Fuegt Styles hinzu, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten Kaestchens verwendte werden \param //! spaltenName Der Name der Spalte des Kaestchens \param zeilenName Der //! Name der Zeile des Kaestchens \param style der Style, der hinzugefuegt //! werden soll DLLEXPORT void addMsStyle( const char* spaltenName, const char* zeilenName, __int64 style); //! Fuegt Styles hinzu, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten Kaestchens verwendte werden \param //! spaltenName Der Name der Spalte des Kaestchens \param zeilenName Der //! Name der Zeile des Kaestchens \param style der Style, der hinzugefuegt //! werden soll DLLEXPORT void addMsStyle( Text* spaltenName, Text* zeilenName, __int64 style); //! Setzt die Styles, die bei dem Flag AuswahlMultistyled bei der //! Auswahl eines bestimmten Kaestchens verwendte werden \param sNum Der //! Index der Spalte des Kaestchens \param zNum Der Index der Zeile des //! Kaestchens \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 Kaestchens verwendte werden \param //! spaltenName Der Name der Spalte des Kaestchens \param zeilenName Der //! Name der Zeile des Kaestchens \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 Kaestchens verwendte werden \param //! spaltenName Der Name der Spalte des Kaestchens \param zeilenName Der //! Name der Zeile des Kaestchens \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 Kaestchens verwendte werden \param sNum Der //! Index der Spalte des Kaestchens \param zNum Der Index der Zeile des //! Kaestchens \param style der Style, der verwendet werden soll //! add_remove: 1, falls die uebergebenen Styles hinzugefuegt 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 Kaestchens verwendte werden \param //! spaltenName Der Name der Spalte des Kaestchens \param zeilenName Der //! Name der Zeile des Kaestchens \param style der Style, der verwendet //! werden soll //! add_remove: 1, falls die uebergebenen Styles hinzugefuegt 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 Kaestchens verwendte werden \param //! spaltenName Der Name der Spalte des Kaestchens \param zeilenName Der //! Name der Zeile des Kaestchens \param style der Style, der verwendet //! werden soll //! add_remove: 1, falls die uebergebenen Styles hinzugefuegt 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 Kaestchens verwendte werden \param //! sNum Der Index der Spalte des Kaestchens \param zNum Der Index der //! Zeile des Kaestchens \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 Kaestchens verwendte werden \param //! spaltenName Der Name der Spalte des Kaestchens \param zeilenName Der //! Name der Zeile des Kaestchens \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 Kaestchens verwendte werden \param //! spaltenName Der Name der Spalte des Kaestchens \param zeilenName Der //! Name der Zeile des Kaestchens \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 veraendert //! 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 ausgeloesst //! 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 zurueck DLLEXPORT int getSpaltenAnzahl() const; //! Gibt die Anzahl der Zeilen zurueck DLLEXPORT int getZeilenAnzahl() const; //! Gibt den Index einer Spalte zurueck //! \param name Der Name der Spalte DLLEXPORT int getSpaltenNummer(const char* name) const; //! Gibt den Index einer Spalte zurueck //! \param name Der Name der Spalte DLLEXPORT int getSpaltenNummer(Text* name) const; //! Gibt den Namen einer Spalte zurueck //! \param num Der Index der Splate DLLEXPORT Text* getSpaltenName(int num) const; //! Gibt den Namen einer Spalte ohne erhoehten reference Counter zurueck //! \param num Der Index der Splate DLLEXPORT Text* zSpaltenName(int num) const; //! Gibt den Index einer Zeile zurueck //! \param name Der Name der Zeile DLLEXPORT int getZeilenNummer(const char* name) const; //! Gibt den Index einer Zeile zurueck //! \param name Der Name der Zeile DLLEXPORT int getZeilenNummer(Text* name) const; //! Gibt den Namen einer Zeile zurueck //! \param num Der Index der Zeile DLLEXPORT Text* getZeilenName(int num) const; //! Gibt den Namen einer Zeile ohne erhoehten Reference Counter zurueck //! \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 zurueck. (-1, -1) falls das Objekt //! nicht gefunden wurde \param zObj Die Zeichnung (ohne erhoehten //! reference Counter) DLLEXPORT Punkt getZeichnungPosition(Zeichnung* zObj) const; //! Gibt die Zeichnung zurueck, die in einem bestimmten Kaestchen der //! Tabelle ist (ohne erhoehten 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 zurueck, die in einem bestimmten Kaestchen der //! Tabelle ist (ohne erhoehten reference Counter) \param spaltenName Der //! Name der Spalte des Kaestchens \param zeilenName Der Name der Zeile //! des Kaestchens DLLEXPORT Zeichnung* zZeichnung( const char* spaltenName, const char* zeilenName) const; //! Gibt die Zeichnung zurueck, die in einem bestimmten Kaestchen der //! Tabelle ist (ohne erhoehten reference Counter) \param spaltenName Der //! Name der Spalte des Kaestchens \param zeilenName Der Name der Zeile //! des Kaestchens DLLEXPORT Zeichnung* zZeichnung( Text* spaltenName, Text* zeilenName) const; //! Gibt die Zeichnung zurueck, die in einem bestimmten Kaestchen 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 zurueck, die in einem bestimmten Kaestchen der //! Tabelle ist \param spaltenName Der Name der Spalte des Kaestchens //! \param zeilenName Der Name der Zeile des Kaestchens DLLEXPORT Zeichnung* getZeichnung( const char* spaltenName, const char* zeilenName) const; //! Gibt die Zeichnung zurueck, die in einem bestimmten Kaestchen der //! Tabelle ist \param spaltenName Der Name der Spalte des Kaestchens //! \param zeilenName Der Name der Zeile des Kaestchens DLLEXPORT Zeichnung* getZeichnung( Text* spaltenName, Text* zeilenName) const; //! Gibt die Breite einer Spalte in Pixeln zurueck //! \param num Der Index der Spalte DLLEXPORT int getSpaltenBreite(int num) const; //! Gibt die Breite einer Spalte in Pixeln zurueck //! \param name Der Name der Spalte DLLEXPORT int getSpaltenBreite(const char* name) const; //! Gibt die Breite einer Spalte in Pixeln zurueck //! \param name Der Name der Spalte DLLEXPORT int getSpaltenBreite(Text* name) const; //! Gibt die Hoehe einer Zeile in Pixeln zurueck //! \param num Der Index der Zeile DLLEXPORT int getZeilenHeight(int num) const; //! Gibt die Hoehe einer Zeile in Pixeln zurueck //! \param name Der Name der Zeile DLLEXPORT int getZeilenHeight(const char* name) const; //! Gibt die Hoehe einer Zeile in Pixeln zurueck //! \param name Der Name der Zeile DLLEXPORT int getZeilenHeight(Text* name) const; //! Gibt die minimale Spalten breite in Pixeln zurueck //! \param num Der Index der Spalte DLLEXPORT int getMinSpaltenBreite(int num) const; //! Gibt die minimale Spalten breite in Pixeln zurueck //! \param name Der Name der Spalte DLLEXPORT int getMinSpaltenBreite(const char* name) const; //! Gibt die minimale Spalten breite in Pixeln zurueck //! \param name Der Name der Spalte DLLEXPORT int getMinSpaltenBreite(Text* name) const; //! Gibt die maximale Spalten breite in Pixeln zurueck //! \param num Der Index der Spalte DLLEXPORT int getMaxSpaltenBreite(int num) const; //! Gibt die maximale Spalten breite in Pixeln zurueck //! \param name Der Name der Spalte DLLEXPORT int getMaxSpaltenBreite(const char* name) const; //! Gibt die maximale Spalten breite in Pixeln zurueck //! \param name Der Name der Spalte DLLEXPORT int getMaxSpaltenBreite(Text* name) const; //! Gibt die minimale Zeilen Hoehe in Pixeln zurueck //! \param num Der Index der Zeile DLLEXPORT int getMinZeilenHeight(int num) const; //! Gibt die minimale Zeilen Hoehe in Pixeln zurueck //! \param name Der Name der Zeile DLLEXPORT int getMinZeilenHeight(const char* name) const; //! Gibt die minimale Zeilen Hoehe in Pixeln zurueck //! \param name Der Name der Zeile DLLEXPORT int getMinZeilenHeight(Text* name) const; //! Gibt die maximale Zeilen Hoehe in Pixeln zurueck //! \param num Der Index der Zeile DLLEXPORT int getMaxZeilenHeight(int num) const; //! Gibt die maximale Zeilen Hoehe in Pixeln zurueck //! \param name Der Name der Zeile DLLEXPORT int getMaxZeilenHeight(const char* name) const; //! Gibt die maximale Zeilen Hoehe in Pixeln zurueck //! \param name Der Name der Zeile DLLEXPORT int getMaxZeilenHeight(Text* name) const; //! Gibt den index der Splate zurueck, 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 zurueck, 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 erhoehten Reference Counter zurueck, //! 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 zurueck, 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 zurueck, 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 erhoehten Reference Counter zurueck, 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 //! ausgewaehlten Feldes zurueck DLLEXPORT const Punkt& getAuswahlPosition() const; //! Gibt die Farbe des Rasters im A8R8G8B8 Format zurueck DLLEXPORT int getRasterFarbe() const; //! Gibt die Breite des Rasters in Pixeln zurueck DLLEXPORT int getRasterBreite() const; //! Gibt einen Zeiger auf den Rahmen zurueck, der bei dem ausgewaehlten //! Feld verwendet wird DLLEXPORT Rahmen* getARahmen() const; //! Gibt einen Zeiger auf den Rahmen ohne erhoehten Reference Counter //! zurueck, der bei dem ausgewaehlten Feld verwendet wird DLLEXPORT Rahmen* zARahmen() const; //! Gibt einen Zeiger auf den Farbuebergang zurueck, der bei dem //! ausgewaehlten Feld verwendet wird DLLEXPORT AlphaFeld* getAAlphaFeld() const; //! Gibt einen Zeiger auf den Farbuebergang ohne erhoehten Reference //! Counter zurueck, der bei dem ausgewaehlten Feld verwendet wird DLLEXPORT AlphaFeld* zAAlphaFeld() const; //! Gibt einen Zeiger auf den Rahmen zurueck, der bei dem Flag //! AuswahlMultistyled bei der auswahl eines bestimmten Kaestchens //! 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 erhoehten Reference Couner //! zurueck, der bei dem Flag AuswahlMultistyled bei der auswahl eines //! bestimmten Kaestchens 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 Farbuebergang zurueck, der bei dem Flag //! AuswahlMultistyled bei der auswahl eines bestimmten Kaestchens //! 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 Farbuebergang ohne erhoehten Reference //! Couner zurueck, der bei dem Flag AuswahlMultistyled bei der auswahl //! eines bestimmten Kaestchens 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 zurueck, der bei dem Flag //! AuswahlMultistyled bei der auswahl eines bestimmten Kaestchens //! 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 erhoehten Reference Coune //! zurueck, der bei dem Flag AuswahlMultistyled bei der auswahl eines //! bestimmten Kaestchens 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 Farbuebergang zurueck, der bei dem Flag //! AuswahlMultistyled bei der auswahl eines bestimmten Kaestchens //! 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 Farbuebergang ohne erhoehten Reference Coune //! zurueck, der bei dem Flag AuswahlMultistyled bei der auswahl eines //! bestimmten Kaestchens 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 zurueck, der bei dem Flag //! AuswahlMultistyled bei der auswahl eines bestimmten Kaestchens //! 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 erhoehten Reference Coune //! zurueck, der bei dem Flag AuswahlMultistyled bei der auswahl eines //! bestimmten Kaestchens 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 Farbuebergang zurueck, der bei dem Flag //! AuswahlMultistyled bei der auswahl eines bestimmten Kaestchens //! 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 Farbuebergang ohne erhoehten Reference Coune //! zurueck, der bei dem Flag AuswahlMultistyled bei der auswahl eines //! bestimmten Kaestchens verwendet wird \param spaltenName Der Name der //! Spalte \param zeilenName Der Name der Zeile DLLEXPORT AlphaFeld* zAAlphaFeld( Text* spaltenName, Text* zeilenName) const; //! Prueft ob bei dem Flag AuswahlMultistyled fuer ein bestimmtes Kaestchen //! ein bestimmter Style gesetzt ist \param sNum Der Index der Spalte //! \param zNum Der Index der Zeile //! \param style Der Style, der gepfueft werden soll DLLEXPORT inline bool hatMsStyle( int sNum, int zNum, __int64 style) const; //! Prueft ob bei dem Flag AuswahlMultistyled fuer ein bestimmtes Kaestchen //! ein bestimmter Style nicht gesetzt ist \param sNum Der Index der //! Spalte \param zNum Der Index der Zeile \param style Der Style, der //! gepfueft werden soll DLLEXPORT inline bool hatMsStyleNicht( int sNum, int zNum, __int64 style) const; //! Prueft ob bei dem Flag AuswahlMultistyled fuer ein bestimmtes Kaestchen //! ein bestimmter Style gesetzt ist \param spaltenName Der Name der //! Spalte \param zeilenName Der Name der Zeile \param style Der Style, //! der gepfueft werden soll DLLEXPORT inline bool hatMsStyle(const char* spaltenName, const char* zeilenName, __int64 style) const; //! Prueft ob bei dem Flag AuswahlMultistyled fuer ein bestimmtes Kaestchen //! ein bestimmter Style nicht gesetzt ist \param spaltenName Der Name //! der Spalte \param zeilenName Der Name der Zeile \param style Der //! Style, der gepfueft werden soll DLLEXPORT inline bool hatMsStyleNicht(const char* spaltenName, const char* zeilenName, __int64 style) const; //! Prueft ob bei dem Flag AuswahlMultistyled fuer ein bestimmtes Kaestchen //! ein bestimmter Style gesetzt ist \param spaltenName Der Name der //! Spalte \param zeilenName Der Name der Zeile \param style Der Style, //! der gepfueft werden soll DLLEXPORT inline bool hatMsStyle( Text* spaltenName, Text* zeilenName, __int64 style) const; //! Prueft ob bei dem Flag AuswahlMultistyled fuer ein bestimmtes Kaestchen //! ein bestimmter Style nicht gesetzt ist \param spaltenName Der Name //! der Spalte \param zeilenName Der Name der Zeile \param style Der //! Style, der gepfueft werden soll DLLEXPORT inline bool hatMsStyleNicht( Text* spaltenName, Text* zeilenName, __int64 style) const; //! Erzeugt eine Kopie der Tabelle, die ohne auswirkungen auf das //! Original veraendert werden kann DLLEXPORT Zeichnung* dublizieren() const override; }; } // namespace Framework #endif