Add interactive zoom_rect.
[scilab.git] / scilab / modules / graphics / sci_gateway / c / sci_unzoom.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2006 - ENPC - Jean-Philipe Chancelier
4  * Copyright (C) 2006 - INRIA - Fabrice Leray
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: sci_unzoom.h                                                     */
17 /* desc : interface for unzoom routine                                    */
18 /*------------------------------------------------------------------------*/
19
20 #include "sci_unzoom.h"
21 #include "stack-c.h"
22 #include "GetProperty.h"
23 #include "MALLOC.h"
24 #include "gw_graphics.h"
25 #include "SetProperty.h"
26 #include "axesScale.h"
27 #include "localization.h"
28 #include "CurrentObjectsManagement.h"
29 #include "sciprint.h"
30 #include "getPropertyAssignedValue.h"
31
32 /*--------------------------------------------------------------------------*/
33 int sci_unzoom(char *fname,unsigned long fname_len)
34 {
35   CheckRhs(0,1) ;
36   CheckLhs(0,1) ;
37   if ( Rhs == 0 )
38   {
39     sciUnzoomAll();
40   }
41   else
42   {
43     int nbUnzoomedSubwins = 0;
44     int m,n,i;
45     int stackPointer;
46     unsigned long * subwinHandles = NULL;
47     GetRhsVar(1,GRAPHICAL_HANDLE_DATATYPE,&m,&n,&stackPointer);
48     
49     nbUnzoomedSubwins = m * n;
50     subwinHandles = getHandleVectorFromStack(stackPointer);
51
52     /* first pass, check that all the handles are subwindows */
53     for ( i = 0 ; i < nbUnzoomedSubwins ; i++ )
54     {
55       sciPointObj * curSubwin = sciGetPointerFromHandle(subwinHandles[i]);
56       if (sciGetEntityType(curSubwin) != SCI_SUBWIN)
57       {
58         sciprint(_("%s: Wrong type for input argument: vector of Axes handles expected.\n"),fname);
59         LhsVar(1)=0; 
60         return 0;
61       }
62     }
63
64     sciUnzoomArray(subwinHandles, nbUnzoomedSubwins);
65
66   }
67   
68
69   LhsVar(1)=0; 
70   return 0;
71 }
72 /*--------------------------------------------------------------------------*/