#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 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; }; } #endif