Fixed the names of datatip functions.
[scilab.git] / scilab / modules / gui / sci_gateway / cpp / sci_datatip_set_interp.cpp
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2013 - Gustavo Barbosa Libotte <gustavolibotte@gmail.com>
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.1-en.txt
10  *
11  */
12
13 #include "DatatipCreate.hxx"
14
15 extern "C"
16 {
17 #include "api_scilab.h"
18 #include "getScilabJavaVM.h"
19 #include "localization.h"
20 #include "Scierror.h"
21 #include "gw_gui.h"
22 #include "HandleManagement.h"
23 #include "getGraphicObjectProperty.h"
24 #include "setGraphicObjectProperty.h"
25 #include "graphicObjectProperties.h"
26 }
27
28 using namespace org_scilab_modules_gui_datatip;
29
30 int sci_datatip_set_interp(char *fname, void* pvApiCtx)
31 {
32     int iDatatipUID     = 0;
33     int* piAddr         = NULL;
34     long long llHandle  = 0;
35     int interpIntBool   = 0;
36     int iErr            = 0;
37
38     int iType = 0;
39     int *piType = &iType;
40
41     SciErr sciErr;
42     CheckInputArgument(pvApiCtx, 2, 2);
43     CheckOutputArgument(pvApiCtx, 0, 1);
44
45     if (nbInputArgument(pvApiCtx) == 2)
46     {
47         sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
48         if (sciErr.iErr)
49         {
50             printError(&sciErr, 0);
51             return 1;
52         }
53
54         iErr = getScalarHandle(pvApiCtx, piAddr, &llHandle);
55         if (iErr)
56         {
57             Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
58             return 1;
59         }
60
61         iDatatipUID = getObjectFromHandle((unsigned long) llHandle);
62
63         if (checkInputArgumentType(pvApiCtx, 1, sci_handles))
64         {
65             getGraphicObjectProperty(iDatatipUID, __GO_TYPE__, jni_int, (void**) &piType);
66             if (iType == __GO_DATATIP__ || iType == __GO_POLYLINE__)
67             {
68                 if (checkInputArgumentType(pvApiCtx, 2, sci_boolean))
69                 {
70                     sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddr);
71                     if (sciErr.iErr)
72                     {
73                         printError(&sciErr, 0);
74                         return 1;
75                     }
76
77                     iErr = getScalarBoolean(pvApiCtx, piAddr, &interpIntBool);
78                     if (iErr)
79                     {
80                         Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2);
81                         return 1;
82                     }
83
84                     DatatipCreate::datatipSetInterp(getScilabJavaVM(), iDatatipUID, interpIntBool != 0);
85                 }
86                 else
87                 {
88                     Scierror(999, _("%s: Wrong type for input argument #%d: A boolean expected.\n"), fname, 2);
89                     return 1;
90                 }
91             }
92             else
93             {
94                 Scierror(999, _("%s: Wrong type for input argument #%d: A '%s' handle expected.\n"), fname, 1, "Datatip");
95                 return 1;
96             }
97         }
98         else
99         {
100             Scierror(999, _("%s: Wrong type for input argument #%d: A '%s' handle expected.\n"), fname, 1, "Datatip");
101             return 1;
102         }
103     }
104     else
105     {
106         Scierror(999, _("%s: Wrong number of input arguments: %d expected.\n"), fname, 2);
107         return 1;
108     }
109
110     AssignOutputVariable(pvApiCtx, 1) = 0;
111     ReturnArguments(pvApiCtx);
112     return 0;
113 }