b801b040d514816b0a1eb6badeee9a7507af7a02
[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   sciPointObj ** unzoomedSubwins = NULL;
36   int nbUnzoomedSubwins = 0;
37   CheckRhs(0,1) ;
38   CheckLhs(0,1) ;
39   if ( Rhs == 0 )
40   {
41     sciPointObj * curSubwin = sciGetCurrentSubWin();
42     unzoomedSubwins = &curSubwin;
43     nbUnzoomedSubwins = 1;
44   }
45   else
46   {
47     int m,n,i;
48     int stackPointer;
49     GetRhsVar(1,GRAPHICAL_HANDLE_DATATYPE,&m,&n,&stackPointer);
50     
51     nbUnzoomedSubwins = m * n;
52
53     unzoomedSubwins = MALLOC( nbUnzoomedSubwins * sizeof(sciPointObj *));
54     
55     if (unzoomedSubwins == NULL)
56     {
57       sciprint(_("%s: no more memory.\n"),fname);
58       LhsVar(1)=0; 
59       return 0;
60     }
61
62     for ( i = 0 ; i < nbUnzoomedSubwins ; i++ )
63     {
64       unzoomedSubwins[i] = sciGetPointerFromHandle(getHandleFromStack(stackPointer + i));
65       if (sciGetEntityType(unzoomedSubwins[i]) != SCI_SUBWIN)
66       {
67         sciprint(_("%s: Wrong type for input argument: vector of axes handles expected.\n"),fname);
68         FREE(unzoomedSubwins);
69         LhsVar(1)=0; 
70         return 0;
71       }
72       //sciSetZooming(sciGetPointerFromHandle(getHandleFromStack(stackPointer + i)), FALSE); /** Correction Bug 1476 + Warning Windows **/
73     }
74     
75     
76
77   }
78
79   sciUnzoom(unzoomedSubwins, nbUnzoomedSubwins);
80
81   if (Rhs != 0) 
82   {
83     FREE(unzoomedSubwins);
84   }
85   
86
87   LhsVar(1)=0; 
88   return 0;
89 }
90 /*--------------------------------------------------------------------------*/