#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>* 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 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