f8cd2dad3cf2540dfd3f3ef665189af3a7d776c3
[occt.git] / samples / java / jniviewer / jni / OcctJni_Window.hxx
1 // Copyright (c) 2014 OPEN CASCADE SAS
2 //
3 // This file is part of Open CASCADE Technology software library.
4 //
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
10 //
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
13
14 #ifndef OcctJni_Window_H
15 #define OcctJni_Window_H
16
17 #include <Aspect_Window.hxx>
18
19 //! This class defines dummy window
20 class OcctJni_Window : public Aspect_Window
21 {
22
23 public:
24
25   //! Creates a wrapper over existing Window handle
26   OcctJni_Window (const int theWidth, const int theHeight)
27   : myWidth (theWidth), myHeight(theHeight) {}
28
29   //! Returns native Window handle
30   virtual Aspect_Drawable NativeHandle() const Standard_OVERRIDE { return 0; }
31
32   //! Returns parent of native Window handle
33   virtual Aspect_Drawable NativeParentHandle() const Standard_OVERRIDE { return 0; }
34
35   //! Returns nothing on Android
36   virtual Aspect_FBConfig NativeFBConfig() const Standard_OVERRIDE { return 0; }
37
38   virtual void Destroy() {}
39
40   //! Opens the window <me>
41   virtual void Map() const Standard_OVERRIDE {}
42
43   //! Closes the window <me>
44   virtual void Unmap() const Standard_OVERRIDE {}
45
46   //! Applies the resizing to the window <me>
47   virtual Aspect_TypeOfResize DoResize() const Standard_OVERRIDE { return Aspect_TOR_UNKNOWN; }
48
49   //! Apply the mapping change to the window <me>
50   virtual Standard_Boolean DoMapping() const Standard_OVERRIDE { return Standard_True; }
51
52   //! Returns True if the window <me> is opened
53   virtual Standard_Boolean IsMapped() const Standard_OVERRIDE { return Standard_True; }
54
55   //! Returns The Window RATIO equal to the physical WIDTH/HEIGHT dimensions
56   virtual Quantity_Ratio Ratio() const Standard_OVERRIDE { return 1.0; }
57
58   //! Returns The Window POSITION in PIXEL
59   virtual void Position (Standard_Integer& theX1,
60                          Standard_Integer& theY1,
61                          Standard_Integer& theX2,
62                          Standard_Integer& theY2) const Standard_OVERRIDE
63   {
64     theX1 = 0;
65     theX2 = myWidth;
66     theY1 = 0;
67     theY2 = myHeight;
68   }
69
70   //! Set The Window POSITION in PIXEL
71   void SetPosition (const Standard_Integer theX1,
72                     const Standard_Integer theY1,
73                     const Standard_Integer theX2,
74                     const Standard_Integer theY2)
75   {
76     myWidth  = theX2 - theX1;
77     myHeight = theY2 - theY1;
78   }
79
80   //! Returns The Window SIZE in PIXEL
81   virtual void Size (Standard_Integer& theWidth,
82                      Standard_Integer& theHeight) const Standard_OVERRIDE
83   {
84     theWidth  = myWidth;
85     theHeight = myHeight;
86   }
87
88   //! Set The Window SIZE in PIXEL
89   void SetSize (const Standard_Integer theWidth,
90                 const Standard_Integer theHeight)
91   {
92     myWidth  = theWidth;
93     myHeight = theHeight;
94   }
95
96 private:
97
98   int myWidth;
99   int myHeight;
100
101 public:
102
103   DEFINE_STANDARD_RTTIEXT(OcctJni_Window,Aspect_Window)
104
105 };
106
107 DEFINE_STANDARD_HANDLE(OcctJni_Window, Aspect_Window)
108
109 #endif // OcctJni_Window_H