DateiDialog.h 4.1 KB

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