In android it is not that easily possible to set environment variables, so we hardcro...
[fltk_mvc_template.git] / _template / src / View.h
1 ///////////////////////////////////////////////////////////////////////////
2 // Workfile: View.h
3 // Author: Daniel Giritzer <daniel@giritzer.eu>
4 // Date:
5 // Description: Diese Klasse stellt eine platformunabhängige Visualisierung
6 //              des Models zur verfügung.
7 // Remarks: -
8 ///////////////////////////////////////////////////////////////////////////
9 #ifndef VIEW_H
10 #define VIEW_H
11
12 #include "ViewFluid.h" //Generierte GUI Klasse
13 #include "Observer.h"
14 #include "ModelIF.h"
15 #include "ControllerIF.h"
16 /////////////////////////////////////////////////
17 /// \brief Diese Klasse stellt eine platformunabhängige
18 ///        Visualisierung des Models zur verfügung
19 ///        und erweitert ViewFluid um funktionalität.
20 ///        View leitet von ViewFluid ab. ViewFluid
21 ///        ist eine mit fluid generierte Klasse
22 ///        und stellt die reine Visualisierung
23 ///        ohne Funktionalität dar.
24 /////////////////////////////////////////////////
25 class View : public ViewFluid, public Observer
26 {
27 public:
28
29     View(ControllerIF::SPtr contr, ModelIF::SPtr model);
30
31     /////////////////////////////////////////////////
32     /// \brief Destruktor. Beende überwachung von
33     ///        Model, gebe ressourcen frei.
34     /////////////////////////////////////////////////
35     ~View();
36
37     /////////////////////////////////////////////////
38     /// \brief Initialisiere GUI Callback funktionen
39     ///        und GUI elemente.
40     ///        Danach wird die View angezeigt.
41     /////////////////////////////////////////////////
42     void show();
43
44
45     /////////////////////////////////////////////////
46     /// \brief Ein überwachtes Objekt (Model) benachrichtigt
47     ///        bei änderungen diese Klasse über diese
48     ///        Funktion.
49     /// \param s Objekt mit änderungen.
50     /////////////////////////////////////////////////
51     void updatedBySubject(Subject* s);
52
53     /////////////////////////////////////////////////
54     /// \brief Funktion zum darstellen von
55     /// Fehlermeldungen.
56     /// \param message anzuzeigende Fehlermeldung
57     /////////////////////////////////////////////////
58     static void showErrorMsg(const std::string& message);
59
60 private:
61     ControllerIF::SPtr mController;
62     ModelIF::SPtr mModel;
63
64     // -------------------------------------------------
65     // ----------- FLTK Callback Funktionen ------------
66     // -------------------------------------------------
67     static void btn_exception_cb(Fl_Button* btn, void* view);
68 };
69
70 #endif //VIEW:H