fix windows compilation after https://codereview.scilab.org/#/c/17289
[scilab.git] / scilab / modules / scicos / src / cpp / model / Annotation.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2014-2014 - Scilab Enterprises - Clement DAVID
4  *
5  *  This file must be used under the terms of the CeCILL.
6  *  This source file is licensed as described in the file COPYING, which
7  *  you should have received as part of this distribution.  The terms
8  *  are also available at
9  *  http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10  *
11  */
12
13 #ifndef ANNOTATION_HXX_
14 #define ANNOTATION_HXX_
15
16 #include <string>
17 #include <vector>
18
19 #include "utilities.hxx"
20 #include "Model.hxx"
21 #include "model/BaseObject.hxx"
22
23 namespace org_scilab_modules_scicos
24 {
25 namespace model
26 {
27
28 class Annotation: public BaseObject
29 {
30 public:
31     Annotation(): BaseObject(ANNOTATION), m_parentDiagram(ScicosID()), m_parentBlock(ScicosID()),
32         m_description("Text"), m_font("2"), m_font_size("1"), m_style(""), m_relatedTo(ScicosID())
33     {
34         m_geometry = {0, 0, 2, 1};
35     };
36     Annotation(const Annotation& o) : BaseObject(ANNOTATION), m_parentDiagram(o.m_parentDiagram), m_parentBlock(o.m_parentBlock), m_geometry(o.m_geometry),
37         m_description(o.m_description), m_font(o.m_font), m_font_size(o.m_font_size), m_style(o.m_style), m_relatedTo(o.m_relatedTo) {};
38     ~Annotation() = default;
39
40 private:
41     friend class ::org_scilab_modules_scicos::Model;
42
43     void getDescription(std::string& data) const
44     {
45         data = m_description;
46     }
47
48     update_status_t setDescription(const std::string& data)
49     {
50         if (data == m_description)
51         {
52             return NO_CHANGES;
53         }
54
55         m_description = data;
56         return SUCCESS;
57     }
58
59     void getFont(std::string& data) const
60     {
61         data = m_font;
62     }
63
64     update_status_t setFont(const std::string& data)
65     {
66         if (data == m_font)
67         {
68             return NO_CHANGES;
69         }
70
71         m_font = data;
72         return SUCCESS;
73     }
74
75     void getFontSize(std::string& data) const
76     {
77         data = m_font_size;
78     }
79
80     update_status_t setFontSize(const std::string& data)
81     {
82         if (data == m_font_size)
83         {
84             return NO_CHANGES;
85         }
86
87         m_font_size = data;
88         return SUCCESS;
89     }
90
91     void getStyle(std::string& data) const
92     {
93         data = m_style;
94     }
95
96     update_status_t setStyle(const std::string& data)
97     {
98         if (data == m_style)
99         {
100             return NO_CHANGES;
101         }
102
103         m_style = data;
104         return SUCCESS;
105     }
106
107     void getGeometry(std::vector<double>& v) const
108     {
109         m_geometry.fill(v);
110     }
111
112     update_status_t setGeometry(const std::vector<double>& v)
113     {
114         if (v.size() != 4)
115         {
116             return FAIL;
117         }
118
119         Geometry g = Geometry(v);
120         if (g == m_geometry)
121         {
122             return NO_CHANGES;
123         }
124
125         m_geometry = g;
126         return SUCCESS;
127     }
128
129     void getParentDiagram(ScicosID& v) const
130     {
131         v = m_parentDiagram;
132     }
133
134     update_status_t setParentDiagram(const ScicosID v)
135     {
136         if (v == m_parentDiagram)
137         {
138             return NO_CHANGES;
139         }
140
141         m_parentDiagram = v;
142         return SUCCESS;
143     }
144
145     void getParentBlock(ScicosID& v) const
146     {
147         v = m_parentBlock;
148     }
149
150     update_status_t setParentBlock(const ScicosID v)
151     {
152         if (v == m_parentBlock)
153         {
154             return NO_CHANGES;
155         }
156
157         m_parentBlock = v;
158         return SUCCESS;
159     }
160
161     ScicosID getRelatedTo() const
162     {
163         return m_relatedTo;
164     }
165
166     update_status_t setRelatedTo(ScicosID relatedTo)
167     {
168         if (this->m_relatedTo == relatedTo)
169         {
170             return NO_CHANGES;
171         }
172
173         this->m_relatedTo = relatedTo;
174         return SUCCESS;
175     }
176
177 private:
178     ScicosID m_parentDiagram;
179     ScicosID m_parentBlock;
180
181     Geometry m_geometry;
182     std::string m_description;
183     std::string m_font;
184     std::string m_font_size;
185     std::string m_style;
186     ScicosID m_relatedTo;
187 };
188
189 } /* namespace model */
190 } /* namespace org_scilab_modules_scicos */
191
192 #endif /* ANNOTATION_HXX_ */