e9022cad756cff0bf3e720015ae3fe8bdd7103e9
[scilab.git] / scilab / modules / graphics / src / c / getHandleProperty / get_box_property.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2004-2006 - INRIA - Fabrice Leray
4  * Copyright (C) 2006 - INRIA - Allan Cornet
5  * Copyright (C) 2006 - INRIA - Jean-Baptiste Silvy
6  * Copyright (C) 2009 - DIGITEO - Pierre Lando
7  * Copyright (C) 2010-2011 - DIGITEO - Manuel Juliachs
8  * Copyright (C) 2011 - DIGITEO - Vincent Couvert
9  *
10  * This file must be used under the terms of the CeCILL.
11  * This source file is licensed as described in the file COPYING, which
12  * you should have received as part of this distribution.  The terms
13  * are also available at
14  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
15  *
16  */
17
18 /*------------------------------------------------------------------------*/
19 /* file: get_box_property.c                                               */
20 /* desc : function to retrieve in Scilab the box field of                 */
21 /*        a handle                                                        */
22 /*------------------------------------------------------------------------*/
23
24 #include <string.h>
25
26 #include "getHandleProperty.h"
27 #include "returnProperty.h"
28 #include "Scierror.h"
29 #include "localization.h"
30
31 #include "getGraphicObjectProperty.h"
32 #include "graphicObjectProperties.h"
33
34 /*------------------------------------------------------------------------*/
35 int get_box_property(void* _pvCtx, char* pobjUID)
36 {
37     int type = -1;
38     int *piType = &type;
39
40     getGraphicObjectProperty(pobjUID, __GO_TYPE__, jni_int, (void **) &piType);
41
42     /*
43     * Required since the Box property is implemented differently for the Axes and Text
44     * objects (respectively as an Integer and a Boolean).
45     * To be corrected
46     */
47     switch (type)
48     {
49         case __GO_AXES__ :
50         {
51             int iBoxType = 0;
52             int* piBoxType = &iBoxType;
53
54             getGraphicObjectProperty(pobjUID, __GO_BOX_TYPE__, jni_int, (void **) &piBoxType);
55
56             if (piBoxType == NULL)
57             {
58                 Scierror(999, _("'%s' property does not exist for this handle.\n"), "box");
59                 return -1;
60             }
61
62             if (iBoxType == 0)
63             {
64                 return sciReturnString(_pvCtx, "off");
65             }
66             else if (iBoxType == 1)
67             {
68                 return sciReturnString(_pvCtx, "on");
69             }
70             else if (iBoxType == 2)
71             {
72                 return sciReturnString(_pvCtx, "hidden_axes");
73             }
74             else if (iBoxType == 3)
75             {
76                 return sciReturnString(_pvCtx, "back_half");
77             }
78
79         }
80         break;
81         case __GO_TEXT__ :
82         {
83             int iBox = 0;
84             int* piBox = &iBox;
85
86             getGraphicObjectProperty(pobjUID, __GO_BOX__, jni_bool, (void **) &piBox);
87
88             if (piBox == NULL)
89             {
90                 Scierror(999, _("'%s' property does not exist for this handle.\n"), "box");
91                 return -1;
92             }
93
94             if (iBox)
95             {
96                 return sciReturnString(_pvCtx, "on");
97             }
98             else
99             {
100                 return sciReturnString(_pvCtx, "off");
101             }
102
103         }
104         break;
105         default :
106         {
107             Scierror(999, _("'%s' property does not exist for this handle.\n"), "box");
108             return -1;
109         }
110     }
111
112     return -1;
113 }
114 /*------------------------------------------------------------------------*/