fd9767ab3b3e9572831924792221e0eec3ab5c05
[scilab.git] / scilab / modules / graphics / src / c / getHandleProperty / set_tics_direction_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) 2010 - DIGITEO - Manuel Juliachs
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-en.txt
13  *
14  */
15
16 /*------------------------------------------------------------------------*/
17 /* file: set_tics_direction_property.c                                    */
18 /* desc : function to modify in Scilab the tics_direction field of        */
19 /*        a handle                                                        */
20 /*------------------------------------------------------------------------*/
21
22 #include "setHandleProperty.h"
23 #include "SetProperty.h"
24 #include "getPropertyAssignedValue.h"
25 #include "SetPropertyStatus.h"
26 #include "GetProperty.h"
27 #include "Scierror.h"
28 #include "localization.h"
29
30 #include "setGraphicObjectProperty.h"
31 #include "getGraphicObjectProperty.h"
32 #include "graphicObjectProperties.h"
33
34 /*------------------------------------------------------------------------*/
35 int set_tics_direction_property(void* _pvCtx, char* pobjUID, size_t stackPointer, int valueType, int nbRow, int nbCol )
36 {
37     BOOL status = FALSE;
38     int ticksDirection = 0;
39     int yNumberTicks = 0;
40     int *piYNumberTicks = &yNumberTicks;
41
42     if ( !isParameterStringMatrix( valueType ) )
43     {
44         Scierror(999, _("Wrong type for '%s' property: String expected.\n"), "tics_direction");
45         return SET_PROPERTY_ERROR;
46     }
47
48     getGraphicObjectProperty(pobjUID, __GO_Y_NUMBER_TICKS__, jni_int, (void **) &piYNumberTicks);
49
50     if (piYNumberTicks == NULL)
51     {
52         Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_direction");
53         return SET_PROPERTY_ERROR;
54     }
55
56     if (yNumberTicks == 1)
57     {
58         if( isStringParamEqual( stackPointer, "top" ) )
59         {
60             ticksDirection = 0;
61         }
62         else if ( isStringParamEqual( stackPointer, "bottom" ) )
63         {
64             ticksDirection = 1;
65         }
66         else
67         {
68             Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "tics_direction", "'top'", "'bottom'");
69             return SET_PROPERTY_ERROR;
70         }
71     }
72     else
73     {
74         if( isStringParamEqual( stackPointer, "left" ) )
75         {
76             ticksDirection = 2;
77         }
78         else if ( isStringParamEqual( stackPointer, "right" ) )
79         {
80             ticksDirection = 3;
81         }
82         else
83         {
84             Scierror(999, _("Wrong value for '%s' property: %s or %s expected.\n"), "tics_direction", "'left'", "'right'");
85             return SET_PROPERTY_ERROR;
86         }
87     }
88
89     status = setGraphicObjectProperty(pobjUID, __GO_TICKS_DIRECTION__, &ticksDirection, jni_int, 1);
90
91     if (status == TRUE)
92     {
93         return SET_PROPERTY_SUCCEED;
94     }
95     else
96     {
97         Scierror(999, _("'%s' property does not exist for this handle.\n"),"tics_direction");
98         return SET_PROPERTY_ERROR;
99     }
100 }
101 /*------------------------------------------------------------------------*/