#ifndef Tabelle_H #define Tabelle_H #include "Zeichnung.h" #include "Array.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: const static __int64 SpaltenBreiteChangeable = 0x00001000; //! Wenn dieser Flag gesetzt wird, so kann der Benutzer die Spalten mit der Maus vergrößern und verkleinern const static __int64 ZeilenHeightChangeable = 0x00002000; //! Wenn dieser Flag gesetzt wird, so kann der Benutzer die Spalten mit der Maus vergrößern und verkleinern const static __int64 SpaltenBreiteMin = 0x00004000; //! Wenn dieser Flag gesetzt wird, so kann der Nutzer trotz des Flags SpaltenBreiteÄnderbar die Spaltenbreite nicht kleiner machen als eine bestimmte Grenze const static __int64 SpaltenBreiteMax = 0x00008000; //! Wenn dieser Flag gesetzt wird, so kann der Nutzer trotz des Flags SpaltenBreiteÄnderbar die Spaltenbreite nicht größer machen als eine bestimmte Grenze const static __int64 ZeilenHeightMin = 0x00010000; //! 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 const static __int64 ZeilenHeightMax = 0x00020000; //! 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 const static __int64 SpaltenBeweglich = 0x00040000; //! Wenn dieser Flag gesetzt wird, so kann der Nutzer die Reihenfolge der Spalten bestimmen, in dem er sie per Drag and Drop verschiebt const static __int64 ZeilenBeweglich = 0x00800000; //! Wenn dieser Flag gesetzt wird, so kann der Nutzer die Reihenfolge der Zeilen bestimmen, in dem er sie per Drag and Drop verschiebt const static __int64 AuswahlRahmen = 0x0080000; //! Wenn dieser Flag gesetzt ist, so bekommt das Feld, dass der Benutzer durch den Flag Erlaubt auswählen kann einen anderen Rahmen const static __int64 AuswahlBuffer = 0x00100000; //! Wenn dieser Flag gesetzt ist, so bekommt das Feld, dass der Benutzer durch den Flag Erlaubt auswählen kann ein anderes AlphaFeld const static __int64 AuswahlMultistyled = 0x00200000; //! Wenn dieser Flag gesetzt ist, so kann jedes Feld andere Rahmen und AlphaFelder beim Auswählen haben. const static __int64 Raster = 0x00400000; //! Wenn dieser Flag gesetzt ist, so werden zwischen den Feldern Linien gezeichnet const static __int64 beweglich = SpaltenBreiteChangeable | ZeilenHeightChangeable | SpaltenBeweglich | ZeilenBeweglich; //! Vereint die Flags: SpaltenBreiteÄnderbar, ZeilenHöheÄnderbar, SpaltenBeweglich, ZeilenBeweglich const static __int64 min_max = SpaltenBreiteMax | SpaltenBreiteMin | ZeilenHeightMax | ZeilenHeightMax; //! Vereint die Flags: SpaltenBreiteMax, SpaltenBreiteMin, ZeilenHöheMax, ZeilenHöheMax const static __int64 scroll = VScroll | HScroll; //! Vereint die Flags: VScroll, HScroll const static __int64 normal = Rahmen | Erlaubt | Sichtbar | AuswahlBuffer | AuswahlRahmen | Raster | MEIgnoreInside | MEIgnoreParentInside | MEIgnoreSichtbar | MEIgnoreVerarbeitet; //! Vereint die Flags: Rahmen, Erlaubt, Sichtbar, SpaltenBeweglich, AuswahlBuffer, AuswahlRahmen, Raster }; 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 __declspec( dllexport ) void doMausEreignis( MausEreignis &me, bool userRet ) override; public: //! Konstruktor __declspec( dllexport ) ObjTabelle(); //! Destruktor __declspec( dllexport ) virtual ~ObjTabelle(); //! Fügt der Tabelle eine Spalte hinzu //! \param name Der Name der Spalte __declspec( dllexport ) void addSpalte( const char *name ); //! Fügt der Tabelle eine Spalte hinzu //! \param name Der Name der Spalte __declspec( 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 __declspec( 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 __declspec( dllexport ) void addSpalte( int sNum, Text *name ); //! Fügt der Tabelle eine Zeile hinzu //! \param name Der Name der Zeile __declspec( dllexport ) void addZeile( const char *name ); //! Fügt der Tabelle eine Zeile hinzu //! \param name Der Name der Zeile __declspec( 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 __declspec( 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 __declspec( dllexport ) void addZeile( int zNum, Text *name ); //! Entfernt eine Spalte //! \param sNum Der Index der Spalte __declspec( dllexport ) void removeSpalte( int sNum ); //! Entfernt eine Spalte //! \param name Der Name der Spalte __declspec( dllexport ) void removeSpalte( const char *name ); //! Entfernt eine Spalte //! \param name Der Name der Spalte __declspec( dllexport ) void removeSpalte( Text *name ); //! Entfernt eine Zeile //! \param zNum Der Index der Zeile __declspec( dllexport ) void removeZeile( int zNum ); //! Entfernt eine Zeile //! \param name Der Name der Zeile __declspec( dllexport ) void removeZeile( const char *name ); //! Entfernt eine Zeile //! \param name Der Name der Zeile __declspec( dllexport ) void removeZeile( Text *name ); //! Setzt den Index einer Spalte //! \param name Der Name der Spalte //! \param pos Der neue Index der Spalte __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( dllexport ) void setSpaltenBreite( int sNum, int br ); //! Setzt die Spalten Breite //! \param name Der Name der Spalte //! \param br Die Breite in Pixeln __declspec( dllexport ) void setSpaltenBreite( const char *name, int br ); //! Setzt die Spalten Breite //! \param name Der Name der Spalte //! \param br Die Breite in Pixeln __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( dllexport ) void setAuswahl( Text *spaltenName, Text *zeilenName ); //! Setzt dei Farbe des zwischen den Kästchen angezeigten Rasters //! \param f Die Farbe im A8R8G8B8 Format __declspec( dllexport ) void setRasterFarbe( int f ); //! Setzt due Breite des zwischen den Kästchen angezeigten Raseter //! \param br Die Breite in Pixeln __declspec( dllexport ) void setRasterBreite( int br ); //! Setzte den Zeiger auf einen Rahmen, der um das ausgewählte Kästchen gezeichnet wird //! \param ram Der Rahmen __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( dllexport ) bool tick( double tickVal ) override; //! Verarbeitet Tastatur Nachrichten //! \param me Das Ereignis, was durch die Tastatureingabe ausgelößt wurde __declspec( dllexport ) void doTastaturEreignis( TastaturEreignis &te ) override; //! Zeichnet das Objekt nach zRObj, falls er sichtbar ist //! \param zRObj Das Bild, in welches gezeichnet werden soll __declspec( dllexport ) void render( Bild &zRObj ) override; //! Gibt die Anzahl der Spalten zurück __declspec( dllexport ) int getSpaltenAnzahl() const; //! Gibt die Anzahl der Zeilen zurück __declspec( dllexport ) int getZeilenAnzahl() const; //! Gibt den Index einer Spalte zurück //! \param name Der Name der Spalte __declspec( dllexport ) int getSpaltenNummer( const char *name ) const; //! Gibt den Index einer Spalte zurück //! \param name Der Name der Spalte __declspec( dllexport ) int getSpaltenNummer( Text *name ) const; //! Gibt den Namen einer Spalte zurück //! \param num Der Index der Splate __declspec( dllexport ) Text *getSpaltenName( int num ) const; //! Gibt den Namen einer Spalte ohne erhöhten reference Counter zurück //! \param num Der Index der Splate __declspec( dllexport ) Text *zSpaltenName( int num ) const; //! Gibt den Index einer Zeile zurück //! \param name Der Name der Zeile __declspec( dllexport ) int getZeilenNummer( const char *name ) const; //! Gibt den Index einer Zeile zurück //! \param name Der Name der Zeile __declspec( dllexport ) int getZeilenNummer( Text *name ) const; //! Gibt den Namen einer Zeile zurück //! \param num Der Index der Zeile __declspec( dllexport ) Text *getZeilenName( int num ) const; //! Gibt den Namen einer Zeile ohne erhöhten Reference Counter zurück //! \param num Der Index der Zeile __declspec( 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) __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( dllexport ) Zeichnung *getZeichnung( Text *spaltenName, Text *zeilenName ) const; //! Gibt die Breite einer Spalte in Pixeln zurück //! \param num Der Index der Spalte __declspec( dllexport ) int getSpaltenBreite( int num ) const; //! Gibt die Breite einer Spalte in Pixeln zurück //! \param name Der Name der Spalte __declspec( dllexport ) int getSpaltenBreite( const char *name ) const; //! Gibt die Breite einer Spalte in Pixeln zurück //! \param name Der Name der Spalte __declspec( dllexport ) int getSpaltenBreite( Text *name ) const; //! Gibt die Höhe einer Zeile in Pixeln zurück //! \param num Der Index der Zeile __declspec( dllexport ) int getZeilenHeight( int num ) const; //! Gibt die Höhe einer Zeile in Pixeln zurück //! \param name Der Name der Zeile __declspec( dllexport ) int getZeilenHeight( const char *name ) const; //! Gibt die Höhe einer Zeile in Pixeln zurück //! \param name Der Name der Zeile __declspec( dllexport ) int getZeilenHeight( Text *name ) const; //! Gibt die minimale Spalten breite in Pixeln zurück //! \param num Der Index der Spalte __declspec( dllexport ) int getMinSpaltenBreite( int num ) const; //! Gibt die minimale Spalten breite in Pixeln zurück //! \param name Der Name der Spalte __declspec( dllexport ) int getMinSpaltenBreite( const char *name ) const; //! Gibt die minimale Spalten breite in Pixeln zurück //! \param name Der Name der Spalte __declspec( dllexport ) int getMinSpaltenBreite( Text *name ) const; //! Gibt die maximale Spalten breite in Pixeln zurück //! \param num Der Index der Spalte __declspec( dllexport ) int getMaxSpaltenBreite( int num ) const; //! Gibt die maximale Spalten breite in Pixeln zurück //! \param name Der Name der Spalte __declspec( dllexport ) int getMaxSpaltenBreite( const char *name ) const; //! Gibt die maximale Spalten breite in Pixeln zurück //! \param name Der Name der Spalte __declspec( dllexport ) int getMaxSpaltenBreite( Text *name ) const; //! Gibt die minimale Zeilen Höhe in Pixeln zurück //! \param num Der Index der Zeile __declspec( dllexport ) int getMinZeilenHeight( int num ) const; //! Gibt die minimale Zeilen Höhe in Pixeln zurück //! \param name Der Name der Zeile __declspec( dllexport ) int getMinZeilenHeight( const char *name ) const; //! Gibt die minimale Zeilen Höhe in Pixeln zurück //! \param name Der Name der Zeile __declspec( dllexport ) int getMinZeilenHeight( Text *name ) const; //! Gibt die maximale Zeilen Höhe in Pixeln zurück //! \param num Der Index der Zeile __declspec( dllexport ) int getMaxZeilenHeight( int num ) const; //! Gibt die maximale Zeilen Höhe in Pixeln zurück //! \param name Der Name der Zeile __declspec( dllexport ) int getMaxZeilenHeight( const char *name ) const; //! Gibt die maximale Zeilen Höhe in Pixeln zurück //! \param name Der Name der Zeile __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( dllexport ) const Punkt &getAuswahlPosition() const; //! Gibt die Farbe des Rasters im A8R8G8B8 Format zurück __declspec( dllexport ) int getRasterFarbe() const; //! Gibt die Breite des Rasters in Pixeln zurück __declspec( dllexport ) int getRasterBreite() const; //! Gibt einen Zeiger auf den Rahmen zurück, der bei dem ausgewählten Feld verwendet wird __declspec( 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 __declspec( dllexport ) Rahmen *zARahmen() const; //! Gibt einen Zeiger auf den Farbübergang zurück, der bei dem ausgewählten Feld verwendet wird __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( 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 __declspec( dllexport ) Zeichnung *dublizieren() const override; }; } #endif