#ifndef DateiDialog_H #define DateiDialog_H #include "Array.h" #include "Thread.h" namespace Framework { class Text; //! Text.h void InitDialog(); //! Erstellt einen Datei öffnen/speichern Dialog class DateiDialog { private: RCArray< Text > *typeName; RCArray< Text > *type; int fileIndex; int ref; public: //! Konstruktor DLLEXPORT DateiDialog(); //! Destruktor DLLEXPORT ~DateiDialog(); //! Löscht die Liste mit zugelassenen Dateitypen DLLEXPORT void removeDateiTypen(); //! Fügt einen zugelassenen Dateityp hinzu //! \param name Der Name des Dateitypes. Ist für den Nutzer in der Select Box sichtbar //! \param typ Der Dateityp, der ausgewählt werden darf DLLEXPORT void addDateiTyp( char *name, char *typ ); //! Fügt einen zugelassenen Dateityp hinzu //! \param name Der Name des Dateitypes. Ist für den Nutzer in der Select Box sichtbar //! \param typ Der Dateityp, der ausgewählt werden darf DLLEXPORT void addDateiTyp( Text *name, Text *typ ); //! Setzt den zu Beginn ausgewählten Dateityp //! \param i Der Index des Dateityps. Der, der als erstes hinzugefügt wurde, hat den Index 0. DLLEXPORT void setDateiTypAuswahl( int i ); //! Zeigt den Dateidialog an //! \param open true, wenn der Dialog zum öffnen dienen soll. false zum Speichern //! \return Den Pfad zur ausgewählten Datei DLLEXPORT Text *anzeigen( bool open ) const; //! Erhöht den Reference Counting Zähler. //! \return this. DLLEXPORT DateiDialog *getThis(); //! Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht. //! \return 0. DLLEXPORT DateiDialog *release(); }; //! Verwaltet einen Datei öffnen/speichern Dialog ohne zu warten class DateiDialogTh : public Thread { private: DateiDialog *dialog; Text *ret; bool open; public: //! Konstruktor DLLEXPORT DateiDialogTh(); //! Destruktor DLLEXPORT ~DateiDialogTh(); //! Legt fest, ob der Dialog zum öffnen oder speichern ist //! \param b 1, wenn er zum öfnen ist. 0, wenn er zum speichern ist DLLEXPORT void setOpen( bool b ); //! Löscht die liste mit erlaubten Dateitypen DLLEXPORT void removeDateiTypen(); //! Fügt einen zugelassenen Dateityp hinzu //! \param name Der Name des Dateitypes. Ist für den Nutzer in der Select Box sichtbar //! \param typ Der Dateityp, der ausgewählt werden darf DLLEXPORT void addDateiTyp( char *name, char *typ ); //! Fügt einen zugelassenen Dateityp hinzu //! \param name Der Name des Dateitypes. Ist für den Nutzer in der Select Box sichtbar //! \param typ Der Dateityp, der ausgewählt werden darf DLLEXPORT void addDateiTyp( Text *name, Text *typ ); //! Setzt den zu Beginn ausgewählten Dateityp //! \param i Der Index des Dateityps. Der, der als erstes hinzugefügt wurde, hat den Index 0. DLLEXPORT void setDateiTypAuswahl( int i ); //! Diese Funktion wird von der Klasse selbst aufgerufen. //! Benutze die start Funktion um den Dialog anzuzeigen DLLEXPORT void thread() override; //! Gibt den Pfad zur Datei zurück. //! Funktioniert erst, nachdem der Thread beendet wurde DLLEXPORT Text *getPfad() const; //! Gibt den Pfad zur Datei ohne erhöhten Reference Counter zurück. //! Funktioniert erst, nachdem der Thread beendet wurde DLLEXPORT Text *zPfad() const; //! löscht das objekt wenn es nicht mehr gebraucht wird und beendet den Thread DLLEXPORT Thread *release() override; }; }; #endif