0022590: Migration to FreeImage - revision of Xw and WNT packages
[occt.git] / src / Xw / Xw_set_window_ratio.cxx
1 // Copyright (c) 1999-2012 OPEN CASCADE SAS
2 //
3 // The content of this file is subject to the Open CASCADE Technology Public
4 // License Version 6.5 (the "License"). You may not use the content of this file
5 // except in compliance with the License. Please obtain a copy of the License
6 // at http://www.opencascade.org and read it completely before using this file.
7 //
8 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
9 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
10 //
11 // The Original Code and all software distributed under the License is
12 // distributed on an "AS IS" basis, without warranty of any kind, and the
13 // Initial Developer hereby disclaims all such warranties, including without
14 // limitation, any warranties of merchantability, fitness for a particular
15 // purpose or non-infringement. Please see the License for the specific terms
16 // and conditions governing the rights and limitations under the License.
17
18 #define CTS50024        /*GG_090997
19 //              Attention avec les nouvelles machines SGI (O2),
20 //              le pitch vertical n'est pas identique au pitch horizontal.
21 */
22
23 #include <Xw_Extension.h>
24
25         /* ifdef then trace on */
26 #ifdef TRACE
27 #define TRACE_SET_WINDOW_RATIO
28 #endif
29
30 /*
31    XW_STATUS Xw_set_window_ratio (awindow, ratio):
32    XW_EXT_WINDOW *awindow
33    float ratio ;
34
35         Update the window ratio.Is defined as the ratio between 
36                    the Window User Size and the Window Pixel size
37                    DEFAULT is METER  
38
39         returns XW_SUCCESS always
40 */
41
42 #ifdef XW_PROTOTYPE
43 XW_STATUS Xw_set_window_ratio (void *awindow , float ratio)
44 #else
45 XW_STATUS Xw_set_window_ratio (awindow , ratio)
46 void *awindow;
47 float ratio ;
48 #endif /*XW_PROTOTYPE*/
49 {
50 XW_EXT_WINDOW *pwindow = (XW_EXT_WINDOW*)awindow;
51 XW_EXT_DISPLAY *pdisplay = pwindow->connexion ;
52
53         if( !Xw_isdefine_window(pwindow) ) {
54             /*ERROR*Bad EXT_WINDOW Address*/
55             Xw_set_error(24,"Xw_set_window_ratio",pwindow) ;
56             return (XW_ERROR) ;
57         }
58
59 #ifdef CTS50024
60         pwindow->xratio = (MMPXVALUE(1) + MMPYVALUE(1)) * ratio / 2. ;
61         pwindow->yratio = pwindow->xratio;
62 #else
63         pwindow->xratio = MMPXVALUE(1) * ratio ;
64         pwindow->yratio = MMPYVALUE(1) * ratio ;
65 #endif
66
67 #ifdef  TRACE_SET_WINDOW_RATIO
68 if( Xw_get_trace() ) {
69     printf (" Xw_set_window_ratio(%lx,%f)\n",(long ) pwindow,ratio) ;
70 }
71 #endif
72
73         return (XW_SUCCESS);
74 }