e61bef29bfaa67566c3b64316eb40787d8830cd9
[scilab.git] / scilab / modules / graphics / src / c / getHandleProperty / get_datatip_property.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2012 - Pedro Arthur dos S. Souza
4  * Copyright (C) 2012 - Caio Lucas dos S. Souza
5  *
6  * Copyright (C) 2012 - 2016 - Scilab Enterprises
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  *
15  */
16
17
18 #include "getHandleProperty.h"
19 #include "returnProperty.h"
20 #include "Scierror.h"
21 #include "localization.h"
22
23 #include "getGraphicObjectProperty.h"
24 #include "graphicObjectProperties.h"
25
26
27 /**
28  * Get the datatip orientation.
29  */
30 void* get_tip_orientation_property(void* _pvCtx, int iObjUID)
31 {
32     int tip_orientation;
33     int *piTipOrientation = &tip_orientation;
34
35     getGraphicObjectProperty(iObjUID, __GO_DATATIP_ORIENTATION__, jni_int, (void **)&piTipOrientation);
36
37     if (piTipOrientation == NULL)
38     {
39         Scierror(999, _("'%s' property does not exist for this handle.\n"), "orientation");
40         return NULL;
41     }
42
43     return sciReturnInt(tip_orientation);
44 }
45
46 /**
47  * Old z_componet property, warns the user
48  */
49 void* get_tip_z_component_property(void* _pvCtx, int iObjUID)
50 {
51     char * tip_display_components;
52     getGraphicObjectProperty(iObjUID, __GO_DATATIP_DISPLAY_COMPONENTS__, jni_string, (void **)&tip_display_components);
53
54     //Only warns if the property exists for the object.
55     if (tip_display_components == NULL)
56     {
57         Scierror(999, _("'%s' property does not exist for this handle.\n"), "z_component");
58     }
59     else
60     {
61         Scierror(999, _("'%s' property is obsolete and will be removed, use '%s' instead.\n"), "z_component", "display_components");
62     }
63
64     return NULL;
65 }
66
67
68 /**
69  * Get the datatip components that should be displayed
70  */
71 void* get_tip_display_components_property(void* _pvCtx, int iObjUID)
72 {
73     char * tip_display_components;
74     getGraphicObjectProperty(iObjUID, __GO_DATATIP_DISPLAY_COMPONENTS__, jni_string, (void **)&tip_display_components);
75
76     if (tip_display_components == NULL)
77     {
78         Scierror(999, _("'%s' property does not exist for this handle.\n"), "display_components");
79         return NULL;
80     }
81
82     return sciReturnString(tip_display_components);
83 }
84
85 /**
86  * Get the status if the auto-orientation is enabled.
87  */
88 void* get_tip_auto_orientation_property(void* _pvCtx, int iObjUID)
89 {
90     int tip_auto_orientation;
91     int *piTip_auto_orientation = &tip_auto_orientation;
92
93     getGraphicObjectProperty(iObjUID, __GO_DATATIP_AUTOORIENTATION__, jni_bool, (void **)&piTip_auto_orientation);
94
95     if (piTip_auto_orientation == NULL)
96     {
97         Scierror(999, _("'%s' property does not exist for this handle.\n"), "auto_orientation");
98         return NULL;
99     }
100
101     if (tip_auto_orientation)
102     {
103         return sciReturnString("on");
104     }
105     else
106     {
107         return sciReturnString("off");
108     }
109 }
110
111 /**
112  * Get the datatip interpolation mode (on/off).
113  */
114 void* get_tip_interp_mode_property(void* _pvCtx, int iObjUID)
115 {
116     int tip_interp_mode;
117     int *piTip_interp_mode = &tip_interp_mode;
118
119     getGraphicObjectProperty(iObjUID, __GO_DATATIP_INTERP_MODE__, jni_bool, (void **)&piTip_interp_mode);
120
121     if (piTip_interp_mode == NULL)
122     {
123         Scierror(999, _("'%s' property does not exist for this handle.\n"), "interp_mode");
124         return NULL;
125     }
126
127     if (tip_interp_mode)
128     {
129         return sciReturnString("on");
130     }
131     else
132     {
133         return sciReturnString("off");
134     }
135 }
136
137 /**
138  * Get the datatip box mode (true or false).
139  */
140 void* get_tip_box_mode_property(void* _pvCtx, int iObjUID)
141 {
142     int tip_box_mode;
143     int *piTip_box_mode = &tip_box_mode;
144
145     getGraphicObjectProperty(iObjUID, __GO_DATATIP_BOX_MODE__, jni_bool, (void **)&piTip_box_mode);
146
147     if (piTip_box_mode == NULL)
148     {
149         Scierror(999, _("'%s' property does not exist for this handle.\n"), "box_mode");
150         return NULL;
151     }
152
153     if (tip_box_mode)
154     {
155         return sciReturnString("on");
156     }
157     else
158     {
159         return sciReturnString("off");
160     }
161 }
162
163 /**
164  * Get the datatip label mode (true or false).
165  */
166 void* get_tip_label_mode_property(void* _pvCtx, int iObjUID)
167 {
168     int tip_label_mode;
169     int *piTip_label_mode = &tip_label_mode;
170
171     getGraphicObjectProperty(iObjUID, __GO_DATATIP_LABEL_MODE__, jni_bool, (void **)&piTip_label_mode);
172
173     if (piTip_label_mode == NULL)
174     {
175         Scierror(999, _("'%s' property does not exist for this handle.\n"), "label_mode");
176         return NULL;
177     }
178
179     if (tip_label_mode)
180     {
181         return sciReturnString("on");
182     }
183     else
184     {
185         return sciReturnString("off");
186     }
187 }
188
189
190 /**
191  * Get the datatip display function.
192  */
193 void* get_tip_disp_function_property(void* _pvCtx, int iObjUID)
194 {
195     char *tip_disp_function = NULL;
196     getGraphicObjectProperty(iObjUID, __GO_DATATIP_DISPLAY_FNC__, jni_string, (void **)&tip_disp_function);
197
198     if (tip_disp_function == NULL)
199     {
200         Scierror(999, _("'%s' property does not exist for this handle.\n"), "display_function");
201         return NULL;
202     }
203
204     return sciReturnString(tip_disp_function);
205 }
206
207 void* get_tip_detached_property(void* _pvCtx, int iObjUID)
208 {
209     int isDetached = 0;
210     int *piDetached = &isDetached;
211     getGraphicObjectProperty(iObjUID, __GO_DATATIP_DETACHED_MODE__, jni_bool, (void **)&piDetached);
212
213     if (piDetached == NULL)
214     {
215         Scierror(999, _("'%s' property does not exist for this handle.\n"), "detached_position");
216         return NULL;
217     }
218
219     if (!isDetached)
220     {
221         return sciReturnEmptyMatrix();
222     }
223     else
224     {
225         double *detached_pos = NULL;
226         getGraphicObjectProperty(iObjUID, __GO_DATATIP_DETACHED_POSITION__, jni_double_vector, (void **)&detached_pos);
227         return sciReturnRowVector(detached_pos, 3);
228     }
229 }