DateiDialog.h 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #ifndef DateiDialog_H
  2. #define DateiDialog_H
  3. #include "Array.h"
  4. #include "Thread.h"
  5. namespace Framework
  6. {
  7. class Text; //! Text.h
  8. void InitDialog();
  9. //! Erstellt einen Datei öffnen/speichern Dialog
  10. class DateiDialog : public virtual ReferenceCounter
  11. {
  12. private:
  13. RCArray< Text > *typeName;
  14. RCArray< Text > *type;
  15. int fileIndex;
  16. public:
  17. //! Konstruktor
  18. DLLEXPORT DateiDialog();
  19. //! Destruktor
  20. DLLEXPORT ~DateiDialog();
  21. //! Löscht die Liste mit zugelassenen Dateitypen
  22. DLLEXPORT void removeDateiTypen();
  23. //! Fügt einen zugelassenen Dateityp hinzu
  24. //! \param name Der Name des Dateitypes. Ist für den Nutzer in der Select Box sichtbar
  25. //! \param typ Der Dateityp, der ausgewählt werden darf
  26. DLLEXPORT void addDateiTyp( char *name, char *typ );
  27. //! Fügt einen zugelassenen Dateityp hinzu
  28. //! \param name Der Name des Dateitypes. Ist für den Nutzer in der Select Box sichtbar
  29. //! \param typ Der Dateityp, der ausgewählt werden darf
  30. DLLEXPORT void addDateiTyp( Text *name, Text *typ );
  31. //! Setzt den zu Beginn ausgewählten Dateityp
  32. //! \param i Der Index des Dateityps. Der, der als erstes hinzugefügt wurde, hat den Index 0.
  33. DLLEXPORT void setDateiTypAuswahl( int i );
  34. //! Zeigt den Dateidialog an
  35. //! \param open true, wenn der Dialog zum öffnen dienen soll. false zum Speichern
  36. //! \return Den Pfad zur ausgewählten Datei
  37. DLLEXPORT Text *anzeigen( bool open ) const;
  38. };
  39. //! Verwaltet einen Datei öffnen/speichern Dialog ohne zu warten
  40. class DateiDialogTh : public Thread
  41. {
  42. private:
  43. DateiDialog *dialog;
  44. Text *ret;
  45. bool open;
  46. public:
  47. //! Konstruktor
  48. DLLEXPORT DateiDialogTh();
  49. //! Destruktor
  50. DLLEXPORT ~DateiDialogTh();
  51. //! Legt fest, ob der Dialog zum öffnen oder speichern ist
  52. //! \param b 1, wenn er zum öfnen ist. 0, wenn er zum speichern ist
  53. DLLEXPORT void setOpen( bool b );
  54. //! Löscht die liste mit erlaubten Dateitypen
  55. DLLEXPORT void removeDateiTypen();
  56. //! Fügt einen zugelassenen Dateityp hinzu
  57. //! \param name Der Name des Dateitypes. Ist für den Nutzer in der Select Box sichtbar
  58. //! \param typ Der Dateityp, der ausgewählt werden darf
  59. DLLEXPORT void addDateiTyp( char *name, char *typ );
  60. //! Fügt einen zugelassenen Dateityp hinzu
  61. //! \param name Der Name des Dateitypes. Ist für den Nutzer in der Select Box sichtbar
  62. //! \param typ Der Dateityp, der ausgewählt werden darf
  63. DLLEXPORT void addDateiTyp( Text *name, Text *typ );
  64. //! Setzt den zu Beginn ausgewählten Dateityp
  65. //! \param i Der Index des Dateityps. Der, der als erstes hinzugefügt wurde, hat den Index 0.
  66. DLLEXPORT void setDateiTypAuswahl( int i );
  67. //! Diese Funktion wird von der Klasse selbst aufgerufen.
  68. //! Benutze die start Funktion um den Dialog anzuzeigen
  69. DLLEXPORT void thread() override;
  70. //! Gibt den Pfad zur Datei zurück.
  71. //! Funktioniert erst, nachdem der Thread beendet wurde
  72. DLLEXPORT Text *getPfad() const;
  73. //! Gibt den Pfad zur Datei ohne erhöhten Reference Counter zurück.
  74. //! Funktioniert erst, nachdem der Thread beendet wurde
  75. DLLEXPORT Text *zPfad() const;
  76. };
  77. };
  78. #endif