add axes in web view
[scilab.git] / scilab / modules / graphic_objects / src / cpp / webutils.hxx
1 /*
2 *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 *  Copyright (C) 2016 - Scilab Enterprises - Antoine ELIAS
4 *
5 * Copyright (C) 2012 - 2016 - Scilab Enterprises
6 *
7 * This file is hereby licensed under the terms of the GNU GPL v2.0,
8 * pursuant to article 5.3.4 of the CeCILL v.2.1.
9 * This file was originally licensed under the terms of the CeCILL v2.1,
10 * and continues to be available under such terms.
11 * For more information, see the COPYING file which you should have received
12 * along with this program.
13 *
14 */
15
16 #ifndef __WEB_UTILS_HXX__
17 #define __WEB_UTILS_HXX__
18
19 #include <string>
20 #include <vector>
21 #include <list>
22 #include <unordered_map>
23 #include <sstream>
24
25 typedef void(*setFunction)(int, std::ostringstream&);
26
27 class WebUtils
28 {
29     WebUtils() {}
30     ~WebUtils() {}
31
32     typedef std::unordered_map<int, setFunction> SETTER;
33     static SETTER setterUIControl;
34     static SETTER setterFigure;
35     static SETTER setterAxes;
36
37     typedef std::unordered_map<int, std::list<int>> WAITING_PROP;
38     static WAITING_PROP waitprop;
39
40     static bool hasStyle(int uid, int style);
41     static bool isInputType(int uid);
42
43     static std::string getColor(const std::vector<double>& c);
44
45     static std::string imagePath;
46 public:
47
48     static void setImagePath(const std::string& path);
49     static std::string getImagePath();
50
51     static bool hasValidParent(int uid);
52     static void addInWaitingQueue(int uid, int prop);
53     static void setWaitingProperties(int uid, std::ostringstream& ostr);
54
55     static void fillSetters();
56     static bool setUIControlProperty(int prop, int uid, std::ostringstream& ostr);
57     static bool setFigureProperty(int prop, int uid, std::ostringstream& ostr);
58     static bool setAxesProperty(int prop, int uid, std::ostringstream& ostr);
59     static bool setProperty(const SETTER& setter, int prop, int uid, std::ostringstream& ostr);
60
61     static bool updateValue(int uid, bool value);
62     static bool updateValue(int uid, double value);
63     static bool updateValue(int uid, const std::string& value);
64     static bool updateValue(int uid, const std::vector<double>& values);
65     static int getIntProperty(int uid, int prop);
66     static bool getBoolProperty(int uid, int prop);
67     static double getDoubleProperty(int uid, int prop);
68     static std::string getStringProperty(int uid, int prop);
69
70     static void getIntVectorProterty(int uid, int prop, std::vector<int>& vect);
71     static void getDoubleVectorProterty(int uid, int prop, std::vector<double>& vect);
72     static void  getStringVectorProperty(int uid, int prop, std::vector<std::string>& vect);
73
74     static bool setStringProperty(int uid, int prop, const std::string& value);
75     static bool setStringVectorProperty(int uid, int prop, const std::vector<std::string>& values);
76
77     static bool setDoubleProperty(int uid, int prop, double value);
78     static bool setDoubleVectorProperty(int uid, int prop, const std::vector<double>& values);
79
80
81     //commoms
82     static int getType(int uid);
83     static int getStyle(int uid);
84     static int getParent(int uid);
85     static int getFigureId(int uid);
86     static void setParent(int uid, std::ostringstream& ostr);
87     static void getUIUnits(int uid, std::string& val);
88     static void getUIPosition(int uid, std::vector<double>& vect);
89     static void setUIPosition(int uid, std::ostringstream& ostr);
90
91     static void getFigureSize(int uid, std::vector<int>& vect);
92     static void setFigureSize(int uid, std::ostringstream& ostr);
93
94     static void getFigureName(int uid, std::string& val);
95     static void setFigureName(int uid, std::ostringstream& ostr);
96
97     static void getUIString(int uid, std::vector<std::string>& vect);
98     static void setUIString(int uid, std::ostringstream& ostr);
99
100     static bool getVisible(int uid);
101     static void setVisible(int uid, std::ostringstream& ostr);
102
103     static bool getUIEnable(int uid);
104     static void setUIEnable(int uid, std::ostringstream& ostr);
105
106     static bool getUIBackgroundColor(int uid, std::vector<double>& vect);
107     static void setUIBackgroundColor(int uid, std::ostringstream& ostr);
108
109     static bool getUIFontAngle(int uid, std::string& val);
110     static void setUIFontAngle(int uid, std::ostringstream& ostr);
111
112     static bool getUIFontName(int uid, std::string& val);
113     static void setUIFontName(int uid, std::ostringstream& ostr);
114
115     static bool getUIFontUnits(int uid, std::string& val);
116     static double getUIFontSize(int uid);
117     static void setUIFontSize(int uid, std::ostringstream& ostr);
118
119     static bool getUIFontWeight(int uid, std::string& val);
120     static void setUIFontWeight(int uid, std::ostringstream& ostr);
121
122     static bool getUIForegroundColor(int uid, std::vector<double>& vect);
123     static void setUIForegroundColor(int uid, std::ostringstream& ostr);
124
125     static bool getUIHorizontalAlignment(int uid, std::string& val);
126     static void setUIHorizontalAlignment(int uid, std::ostringstream& ostr);
127
128     static bool getUIRelief(int uid, std::string& val);
129     static void setUIRelief(int uid, std::ostringstream& ostr);
130
131     static bool getUIVerticalAlignment(int uid, std::string& val);
132     static void setUIVerticalAlignment(int uid, std::ostringstream& ostr);
133
134     static int getUILayout(int uid);
135     static void setUILayout(int uid, std::ostringstream& ostr);
136
137     static double getUIMin(int uid);
138     static void setUIMin(int uid, std::ostringstream& ostr);
139
140     static double getUIMax(int uid);
141     static void setUIMax(int uid, std::ostringstream& ostr);
142
143     static double getUIStep(int uid);
144     static void setUIStep(int uid, std::ostringstream& ostr);
145
146     static bool getUIValue(int uid, std::vector<double>& vect);
147     static void setUIValue(int uid, std::ostringstream& ostr);
148
149     static bool getUIGroupName(int uid, std::string& val);
150     static void setUIGroupName(int uid, std::ostringstream& ostr);
151
152     //border layout
153     static int getUIBorderPosition(int uid);
154     static void getUIBorderPadding(int uid, std::vector<int>& vect);
155     static void getUIBorderPreferredSize(int uid, std::vector<int>& vect);
156     static void setUIBorder(int uid, std::ostringstream& ostr);
157
158     //gridbag layout
159     static void getUIGridBagGrid(int uid, std::vector<int>& vect);
160     static void setUIGridBag(int uid, std::ostringstream& ostr);
161
162     //static void getUIFrameBorder(int uid, std::vector<int>& vect);
163     static void setUIFrameBorder(int uid, std::ostringstream& ostr);
164
165     static bool getUIIcon(int uid, std::string& val);
166     static void setUIIcon(int uid, std::ostringstream& ostr);
167
168     static bool hasCallback(int uid);
169     static void setCallback(int uid, std::ostringstream& ostr);
170
171     //is
172     static bool isManaged(int uid);
173     static bool isFigure(int uid);
174     static bool isUIcontrol(int uid);
175     static bool isButton(int uid);
176
177     //create
178     static bool createFigure(int uid, std::ostringstream& ostr);
179
180     static bool createAxes(int uid, std::ostringstream& ostr);
181
182     static bool createUIControl(int uid, std::ostringstream& ostr);
183     static bool createPushButton(int uid, std::ostringstream& ostr);
184     static bool createFrame(int uid, std::ostringstream& ostr);
185     static bool createText(int uid, std::ostringstream& ostr);
186     static bool createEdit(int uid, std::ostringstream& ostr);
187     static bool createCheckbox(int uid, std::ostringstream& ostr);
188     static bool createRadio(int uid, std::ostringstream& ostr);
189     static bool createSlider(int uid, std::ostringstream& ostr);
190     static bool createListbox(int uid, std::ostringstream& ostr);
191     static bool createCombobox(int uid, std::ostringstream& ostr);
192     static bool createSpinner(int uid, std::ostringstream& ostr);
193     static bool createTab(int uid, std::ostringstream& ostr);
194     static bool addTabChild(int uid, int child, std::ostringstream& ostr);
195
196     //update
197     static bool updateDefaultProperties(int uid, std::ostringstream& ostr);
198     //delete
199     static bool deleteObject(int uid, std::ostringstream& ostr);
200     static void deleteGraphicObject(int uid);
201 };
202 #endif /* !__WEB_UTILS_HXX__ */
203