ec53c0c557df2baf1345db72f1fed427c55861c6
[scilab.git] / scilab / modules / gui / src / cpp / SetUicontrolSliderStep.cpp
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2007 - INRIA - Vincent COUVERT
4  * Copyright (C) 2011 - DIGITEO - Vincent COUVERT
5  * Sets the slider step property of an uicontrol object
6  *
7  * This file must be used under the terms of the CeCILL.
8  * This source file is licensed as described in the file COPYING, which
9  * you should have received as part of this distribution.  The terms
10  * are also available at
11  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
12  *
13  */
14
15 #include "SetUicontrolSliderStep.hxx"
16 #include "stack-c.h"
17
18 int SetUicontrolSliderStep(void* _pvCtx, char* sciObjUID, size_t stackPointer, int valueType, int nbRow, int nbCol)
19 {
20     BOOL status = FALSE;
21
22     if (valueType != sci_matrix)
23     {
24         /* Wrong datatype */
25         Scierror(999, const_cast<char*>(_("Wrong type for '%s' property: A 1 x %d real row vector expected.\n")), "SliderStep", 2);
26         return SET_PROPERTY_ERROR;
27     }
28
29     if ( nbRow == 1 && nbCol == 1)
30     {
31         double pdblStep[2];
32         double* pdblStackVal = stk(stackPointer);
33
34         pdblStep[0] = pdblStackVal[0];
35         pdblStep[1] = 0.1;// default big value : 10%
36
37         status = setGraphicObjectProperty(sciObjUID, __GO_UI_SLIDERSTEP__, pdblStep, jni_double_vector, 2);
38     }
39     else if (nbRow == 1 && nbCol == 2)
40     {
41         status = setGraphicObjectProperty(sciObjUID, __GO_UI_SLIDERSTEP__, stk(stackPointer), jni_double_vector, 2);
42     }
43     else
44     {
45         /* Wrong value size */
46         Scierror(999, const_cast<char*>(_("Wrong size for '%s' property: A 1 x %d real row vector expected.\n")), "SliderStep", 2);
47         return SET_PROPERTY_ERROR;
48     }
49
50     if (status == TRUE)
51     {
52         return SET_PROPERTY_SUCCEED;
53     }
54     else
55     {
56         Scierror(999, const_cast<char*>(_("'%s' property does not exist for this handle.\n")), "SliderStep");
57         return SET_PROPERTY_ERROR;
58     }
59 }