DateiDialog.h 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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
  25. //! Select Box sichtbar \param typ Der Dateityp, der ausgewählt werden
  26. //! darf
  27. DLLEXPORT void addDateiTyp(const char* name, const char* typ);
  28. //! Fügt einen zugelassenen Dateityp hinzu
  29. //! \param name Der Name des Dateitypes. Ist für den Nutzer in der
  30. //! Select Box sichtbar \param typ Der Dateityp, der ausgewählt werden
  31. //! darf
  32. DLLEXPORT void addDateiTyp(Text* name, Text* typ);
  33. //! Setzt den zu Beginn ausgewählten Dateityp
  34. //! \param i Der Index des Dateityps. Der, der als erstes hinzugefügt
  35. //! wurde, hat den Index 0.
  36. DLLEXPORT void setDateiTypAuswahl(int i);
  37. //! Zeigt den Dateidialog an
  38. //! \param open true, wenn der Dialog zum öffnen dienen soll. false zum
  39. //! Speichern \return Den Pfad zur ausgewählten Datei
  40. DLLEXPORT Text* anzeigen(bool open) const;
  41. };
  42. //! Verwaltet einen Datei öffnen/speichern Dialog ohne zu warten
  43. class DateiDialogTh : public Thread
  44. {
  45. private:
  46. DateiDialog* dialog;
  47. Text* ret;
  48. bool open;
  49. public:
  50. //! Konstruktor
  51. DLLEXPORT DateiDialogTh();
  52. //! Destruktor
  53. DLLEXPORT ~DateiDialogTh();
  54. //! Legt fest, ob der Dialog zum öffnen oder speichern ist
  55. //! \param b 1, wenn er zum öfnen ist. 0, wenn er zum speichern ist
  56. DLLEXPORT void setOpen(bool b);
  57. //! Löscht die liste mit erlaubten Dateitypen
  58. DLLEXPORT void removeDateiTypen();
  59. //! Fügt einen zugelassenen Dateityp hinzu
  60. //! \param name Der Name des Dateitypes. Ist für den Nutzer in der
  61. //! Select Box sichtbar \param typ Der Dateityp, der ausgewählt werden
  62. //! darf
  63. DLLEXPORT void addDateiTyp(const char* name, const char* typ);
  64. //! Fügt einen zugelassenen Dateityp hinzu
  65. //! \param name Der Name des Dateitypes. Ist für den Nutzer in der
  66. //! Select Box sichtbar \param typ Der Dateityp, der ausgewählt werden
  67. //! darf
  68. DLLEXPORT void addDateiTyp(Text* name, Text* typ);
  69. //! Setzt den zu Beginn ausgewählten Dateityp
  70. //! \param i Der Index des Dateityps. Der, der als erstes hinzugefügt
  71. //! wurde, hat den Index 0.
  72. DLLEXPORT void setDateiTypAuswahl(int i);
  73. //! Diese Funktion wird von der Klasse selbst aufgerufen.
  74. //! Benutze die start Funktion um den Dialog anzuzeigen
  75. DLLEXPORT void thread() override;
  76. //! Gibt den Pfad zur Datei zurück.
  77. //! Funktioniert erst, nachdem der Thread beendet wurde
  78. DLLEXPORT Text* getPfad() const;
  79. //! Gibt den Pfad zur Datei ohne erhöhten Reference Counter zurück.
  80. //! Funktioniert erst, nachdem der Thread beendet wurde
  81. DLLEXPORT Text* zPfad() const;
  82. };
  83. }; // namespace Framework
  84. #endif