#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 : public virtual ReferenceCounter { private: RCArray<Text>* typeName; RCArray<Text>* type; int fileIndex; 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(const char* name, const 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; }; //! 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(const char* name, const 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; }; }; // namespace Framework #endif