Xcos MVC: fix some unneeded dependencies
[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-en.txt
10  *
11  */
12
13 #ifndef ANNOTATION_HXX_
14 #define ANNOTATION_HXX_
15
16 #include <string>
17 #include <vector>
18
19 #include "Model.hxx"
20 #include "model/BaseObject.hxx"
21
22 namespace org_scilab_modules_scicos
23 {
24 namespace model
25 {
26
27 class Annotation: public BaseObject
28 {
29     friend class ::org_scilab_modules_scicos::Model;
30
31 private:
32     Annotation(): BaseObject(ANNOTATION), parentDiagram(0), geometry(), description(), relatedTo(0) {};
33     Annotation(const Annotation& o) : BaseObject(ANNOTATION), parentDiagram(o.parentDiagram), geometry(o.geometry), description(o.description), relatedTo(o.relatedTo) {};
34     ~Annotation() {};
35
36     const std::string& getDescription() const
37     {
38         return description;
39     }
40
41     update_status_t setDescription(const std::string& description)
42     {
43         if (this->description == description)
44         {
45             return NO_CHANGES;
46         }
47
48         this->description = description;
49         return SUCCESS;
50     }
51
52     void getGeometry(std::vector<double>& v) const
53     {
54         geometry.fill(v);
55     }
56
57     update_status_t setGeometry(const std::vector<double>& v)
58     {
59         if (v.size() != 4)
60         {
61             return FAIL;
62         }
63
64         Geometry g = Geometry(v);
65         if (g == geometry)
66         {
67             return NO_CHANGES;
68         }
69
70         geometry = g;
71         return SUCCESS;
72     }
73
74     ScicosID getParentDiagram() const
75     {
76         return parentDiagram;
77     }
78
79     update_status_t setParentDiagram(ScicosID parentDiagram)
80     {
81         if (this->parentDiagram == parentDiagram)
82         {
83             return NO_CHANGES;
84         }
85
86         this->parentDiagram = parentDiagram;
87         return SUCCESS;
88     }
89
90     ScicosID getRelatedTo() const
91     {
92         return relatedTo;
93     }
94
95     update_status_t setRelatedTo(ScicosID relatedTo)
96     {
97         if (this->relatedTo == relatedTo)
98         {
99             return NO_CHANGES;
100         }
101
102         this->relatedTo = relatedTo;
103         return SUCCESS;
104     }
105
106 private:
107     ScicosID parentDiagram;
108     Geometry geometry;
109     std::string description;
110     ScicosID relatedTo;
111 };
112
113 } /* namespace model */
114 } /* namespace org_scilab_modules_scicos */
115
116 #endif /* ANNOTATION_HXX_ */