Graphics: return a null pointer in C when property does not exist
[scilab.git] / scilab / modules / graphics / src / c / getHandleProperty / get_type_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) 2011 - DIGITEO - Vincent Couvert
7  *
8  * This file must be used under the terms of the CeCILL.
9  * This source file is licensed as described in the file COPYING, which
10  * you should have received as part of this distribution.  The terms
11  * are also available at
12  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
13  *
14  */
15
16 /*------------------------------------------------------------------------*/
17 /* file: get_type_property.c                                              */
18 /* desc : function to retrieve in Scilab the type field of a              */
19 /*        handle                                                          */
20 /*------------------------------------------------------------------------*/
21
22 #include "getHandleProperty.h"
23 #include "GetProperty.h"
24 #include "returnProperty.h"
25
26 #include "getGraphicObjectProperty.h"
27 #include "graphicObjectProperties.h"
28
29 static char *getTypeNameFromInt(int _iType)
30 {
31     switch (_iType)
32     {
33         case __GO_ARC__ :
34             return "Arc";
35         case __GO_AXES__ :
36             return "Axes";
37         case __GO_AXESMODEL__ :
38             return "AxesModel";
39         case __GO_AXIS__ :
40             return "Axis";
41         case __GO_CHAMP__ :
42             return "Champ";
43         case __GO_COMPOUND__ :
44             return "Compound";
45         case __GO_FAC3D__ :
46             return "Fac3d";
47         case __GO_FEC__ :
48             return "Fec";
49         case __GO_FIGURE__ :
50             return "Figure";
51         case __GO_FIGUREMODEL__ :
52             return "FigureModel";
53         case __GO_GRAYPLOT__ :
54             return "Grayplot";
55         case __GO_LABEL__ :
56             return "Label";
57         case __GO_LEGEND__ :
58             return "Legend";
59         case __GO_MATPLOT__ :
60             return "Matplot";
61         case __GO_PLOT3D__ :
62             return "Plot3d";
63         case __GO_POLYLINE__ :
64             return "Polyline";
65         case __GO_RECTANGLE__ :
66             return "Rectangle";
67         case __GO_SEGS__ :
68             return "Segs";
69         case __GO_TEXT__ :
70             return "Text";
71         case __GO_UICONTROL__ :
72             return "uicontrol";
73         case __GO_UIMENU__ :
74             return "uimenu";
75         case __GO_UICONTEXTMENU__ :
76             return "uicontextmenu";
77         case __GO_CONSOLE__ :
78             return "Console";
79         case __GO_SHOWHIDDENHANDLES__ :
80             return "ShowHiddenHandles";
81         case __GO_WAITBAR__ :
82             return "Waitbar";
83         default :
84             return "????";
85     }
86 }
87
88 /*------------------------------------------------------------------------*/
89 int get_type_property(void* _pvCtx, char* pobjUID)
90 {
91     int iType = -1;
92     int *piType = &iType;
93
94     getGraphicObjectProperty(pobjUID, __GO_TYPE__, jni_int, (void **)&piType);
95     if (piType == NULL)
96     {
97         return sciReturnString(_pvCtx, getTypeNameFromInt(-1));
98     }
99
100     return sciReturnString(_pvCtx, getTypeNameFromInt(iType));
101     //return sciReturnString(sciGetCharEntityType(pobj));
102 }
103 /*------------------------------------------------------------------------*/