CMake option 'WITH_HEADLESS' to build blender in headless mode (no x11/xlib) with...
[blender.git] / intern / ghost / intern / GHOST_WindowNULL.h
1 /*
2  * $Id:
3  * ***** BEGIN GPL LICENSE BLOCK *****
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  *
19  * Contributor(s): Campbell Barton
20  *
21  * ***** END GPL LICENSE BLOCK *****
22  */
23
24 /** \file ghost/intern/GHOST_WindowNULL.h
25  *  \ingroup GHOST
26  * Declaration of GHOST_WindowNULL class.
27  */
28
29 #ifndef _GHOST_WINDOWNULL_H_
30 #define _GHOST_WINDOWNULL_H_
31
32 #include "GHOST_Window.h"
33
34 #include <map>
35
36 class STR_String;
37 class GHOST_SystemNULL;
38
39 class GHOST_WindowNULL : public GHOST_Window
40 {
41 public:
42         const GHOST_TabletData* GetTabletData() { return NULL; }
43
44         GHOST_WindowNULL(
45                 GHOST_SystemNULL *system,
46                 const STR_String& title,
47                 GHOST_TInt32 left,
48                 GHOST_TInt32 top,
49                 GHOST_TUns32 width,
50                 GHOST_TUns32 height,
51                 GHOST_TWindowState state,
52                 const GHOST_TEmbedderWindowID parentWindow,
53                 GHOST_TDrawingContextType type,
54                 const bool stereoVisual,
55                 const GHOST_TUns16 numOfAASamples
56                 ) :
57                 GHOST_Window(title,left,top,width,height,state,type,stereoVisual,numOfAASamples),
58                 m_system (system)
59         {
60                 setTitle(title);
61         }
62
63 protected:
64         GHOST_TSuccess installDrawingContext( GHOST_TDrawingContextType type ){ return GHOST_kSuccess; }
65         GHOST_TSuccess removeDrawingContext( ){ return GHOST_kSuccess; }
66         GHOST_TSuccess setWindowCursorGrab( GHOST_TGrabCursorMode mode ){ return GHOST_kSuccess; }
67         GHOST_TSuccess setWindowCursorShape( GHOST_TStandardCursor shape ){ return GHOST_kSuccess; }
68         GHOST_TSuccess setWindowCustomCursorShape( GHOST_TUns8 bitmap[16][2], GHOST_TUns8 mask[16][2], int hotX, int hotY ) { return GHOST_kSuccess; }
69         GHOST_TSuccess setWindowCustomCursorShape( GHOST_TUns8 *bitmap, GHOST_TUns8 *mask, int sizex, int sizey, int hotX, int hotY, int fg_color, int bg_color ){ return GHOST_kSuccess; }
70
71         bool getValid( ) const { return true; }
72         void setTitle( const STR_String& title ){ /* nothing */ }
73         void getTitle( STR_String& title ) const { title= "untitled"; }
74         void getWindowBounds( GHOST_Rect& bounds ) const { getClientBounds(bounds); }
75         void getClientBounds( GHOST_Rect& bounds ) const { /* nothing */ }
76         GHOST_TSuccess setClientWidth( GHOST_TUns32 width ){ return GHOST_kFailure; }
77         GHOST_TSuccess setClientHeight( GHOST_TUns32 height ){ return GHOST_kFailure;  }
78         GHOST_TSuccess setClientSize( GHOST_TUns32 width, GHOST_TUns32 height ){ return GHOST_kFailure;  }
79         void screenToClient( GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY ) const { outX = inX; outY = inY; }
80         void clientToScreen( GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32& outX, GHOST_TInt32& outY ) const { outX = inX; outY = inY; }
81         GHOST_TSuccess swapBuffers( ){ return GHOST_kFailure; }
82         GHOST_TSuccess activateDrawingContext( ){ return GHOST_kFailure; }
83         ~GHOST_WindowNULL( ){ /* nothing */ }
84         GHOST_TSuccess setWindowCursorVisibility( bool visible ){ return GHOST_kSuccess; }
85         GHOST_TSuccess setState(GHOST_TWindowState state)  { return GHOST_kSuccess; }
86         GHOST_TWindowState getState() const     { return GHOST_kWindowStateNormal; }
87         GHOST_TSuccess invalidate()  { return GHOST_kSuccess; }
88         GHOST_TSuccess setOrder(GHOST_TWindowOrder order) { return GHOST_kSuccess; }
89
90
91 private :
92         GHOST_SystemNULL * m_system;
93 };
94
95
96 #endif // _GHOST_WINDOWNULL_H_