0448c59cc0fa176690c64844f5dac523bf455555
[scilab.git] / scilab / modules / graphics / src / c / getHandleProperty / set_zoom_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  * 
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 /*------------------------------------------------------------------------*/
16 /* file: set_zoom_box_property.c                                          */
17 /* desc : function to modify in Scilab the zoom_box field of              */
18 /*        a handle                                                        */
19 /*------------------------------------------------------------------------*/
20
21 #include "setHandleProperty.h"
22 #include "SetProperty.h"
23 #include "GetProperty.h"
24 #include "getPropertyAssignedValue.h"
25 #include "sciprint.h"
26 #include "localization.h"
27 #include "SetPropertyStatus.h"
28 #include "axesScale.h"
29
30 /*------------------------------------------------------------------------*/
31 int set_zoom_box_property( sciPointObj * pobj, int stackPointer, int valueType, int nbRow, int nbCol )
32 {
33
34   if ( !isParameterDoubleMatrix( valueType ) )
35   {
36     sciprint(_("Incompatible type for property %s.\n"),"zoom_box") ;
37     return SET_PROPERTY_ERROR ;
38   }
39
40   if ( sciGetEntityType(pobj) != SCI_SUBWIN )
41   {
42     sciprint(_("%s property does not exist for this handle.\n"),"zoom_box") ;
43     return SET_PROPERTY_ERROR ;
44   }
45
46   /* We must have a 4x1 matrix */
47   if ( nbRow * nbCol == 6 )
48   {
49     return sciZoom3D(pobj, getDoubleMatrixFromStack(stackPointer));
50   }
51   else if( nbRow * nbCol == 4)
52   {
53     return sciZoom2D(pobj, getDoubleMatrixFromStack(stackPointer));
54   }
55   else if ( nbCol * nbRow == 0 )
56   {
57     sciUnzoom(&pobj, 1);
58   }
59   else
60   {
61     sciprint("Argument must be a vector of size 6 (or 4 in 2d).\n");
62     return SET_PROPERTY_ERROR ;
63   }
64   return SET_PROPERTY_SUCCEED ;
65 }
66 /*------------------------------------------------------------------------*/