Blender V4.3
GHOST_IWindow.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
10#pragma once
11
12#include "GHOST_Rect.hh"
13#include "GHOST_Types.h"
14
15#include <stdlib.h>
16#include <string>
17
18class GHOST_IContext;
19
35 public:
39 virtual ~GHOST_IWindow() {}
40
45 virtual bool getValid() const = 0;
46
51 virtual void *getOSWindow() const = 0;
52
58
65
71
76 virtual void setTitle(const char *title) = 0;
77
82 virtual std::string getTitle() const = 0;
83
88 virtual GHOST_TSuccess setPath(const char *filepath) = 0;
89
95 virtual void getWindowBounds(GHOST_Rect &bounds) const = 0;
96
102 virtual void getClientBounds(GHOST_Rect &bounds) const = 0;
103
109
115
121 virtual GHOST_TSuccess setClientSize(uint32_t width, uint32_t height) = 0;
122
130 virtual void screenToClient(int32_t inX, int32_t inY, int32_t &outX, int32_t &outY) const = 0;
131
139 virtual void clientToScreen(int32_t inX, int32_t inY, int32_t &outX, int32_t &outY) const = 0;
140
144 virtual void setAcceptDragOperation(bool canAccept) = 0;
145
150 virtual bool canAcceptDragOperation() const = 0;
151
156 virtual GHOST_TWindowState getState() const = 0;
157
164
170 virtual GHOST_TSuccess setModifiedState(bool isUnsavedChanges) = 0;
171
176 virtual bool getModifiedState() = 0;
177
184
190
196 virtual GHOST_TSuccess setSwapInterval(int interval) = 0;
197
204 virtual GHOST_TSuccess getSwapInterval(int &intervalOut) = 0;
205
211
216 virtual unsigned int getDefaultFramebuffer() = 0;
217
218#ifdef WITH_VULKAN_BACKEND
219 virtual GHOST_TSuccess getVulkanSwapChainFormat(
220 GHOST_VulkanSwapChainData *r_swap_chain_data) = 0;
221#endif
222
228
233 virtual GHOST_TUserDataPtr getUserData() const = 0;
234
239 virtual void setUserData(const GHOST_TUserDataPtr userData) = 0;
240
241 virtual bool isDialog() const = 0;
242
243 /***************************************************************************************
244 * Progress bar functionality
245 ***************************************************************************************/
246
251 virtual GHOST_TSuccess setProgressBar(float progress) = 0;
252
257
258 /***************************************************************************************
259 * Cursor management functionality
260 ***************************************************************************************/
261
267
274
276
278 GHOST_TAxisFlag &axis_flag,
280 bool &use_software_cursor) = 0;
281
283
289
299 uint8_t *mask,
300 int sizex,
301 int sizey,
302 int hotX,
303 int hotY,
304 bool canInvertColor) = 0;
305
307
312 virtual bool getCursorVisibility() const = 0;
313
319 virtual GHOST_TSuccess setCursorVisibility(bool visible) = 0;
320
327 GHOST_TAxisFlag /*wrap_axis*/,
328 GHOST_Rect * /*bounds*/,
329 int32_t /*mouse_ungrab_xy*/[2])
330 {
331 return GHOST_kSuccess;
332 }
333
335 virtual GHOST_TSuccess beginFullScreen() const = 0;
336 virtual GHOST_TSuccess endFullScreen() const = 0;
337
338 virtual float getNativePixelSize() = 0;
339
344 virtual uint16_t getDPIHint() = 0;
345
346#ifdef WITH_INPUT_IME
358 virtual void beginIME(int32_t x, int32_t y, int32_t w, int32_t h, bool completed) = 0;
359
364 virtual void endIME() = 0;
365#endif /* WITH_INPUT_IME */
366
367#ifdef WITH_CXX_GUARDEDALLOC
368 MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_IWindow")
369#endif
370};
GHOST_TWindowState
void * GHOST_TUserDataPtr
Definition GHOST_Types.h:85
GHOST_TStandardCursor
GHOST_TAxisFlag
GHOST_TDrawingContextType
GHOST_TWindowOrder
GHOST_TSuccess
Definition GHOST_Types.h:87
@ GHOST_kSuccess
Definition GHOST_Types.h:87
GHOST_TGrabCursorMode
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
Definition btDbvt.cpp:299
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
Definition btQuadWord.h:119
virtual GHOST_TSuccess beginFullScreen() const =0
virtual void setTitle(const char *title)=0
virtual void getClientBounds(GHOST_Rect &bounds) const =0
virtual void setAcceptDragOperation(bool canAccept)=0
virtual GHOST_TSuccess activateDrawingContext()=0
virtual bool getModifiedState()=0
virtual GHOST_TSuccess getCursorBitmap(GHOST_CursorBitmapRef *bitmap)=0
virtual GHOST_TSuccess endProgressBar()=0
virtual GHOST_TSuccess setOrder(GHOST_TWindowOrder order)=0
virtual bool canAcceptDragOperation() const =0
virtual void clientToScreen(int32_t inX, int32_t inY, int32_t &outX, int32_t &outY) const =0
virtual GHOST_TSuccess setClientHeight(uint32_t height)=0
virtual GHOST_TSuccess setProgressBar(float progress)=0
virtual bool isDialog() const =0
virtual ~GHOST_IWindow()
virtual std::string getTitle() const =0
virtual GHOST_TSuccess setClientSize(uint32_t width, uint32_t height)=0
virtual GHOST_TSuccess setState(GHOST_TWindowState state)=0
virtual void * getOSWindow() const =0
virtual GHOST_TSuccess getSwapInterval(int &intervalOut)=0
virtual GHOST_TSuccess setCursorShape(GHOST_TStandardCursor cursorShape)=0
virtual bool getCursorGrabUseSoftwareDisplay()=0
virtual GHOST_TSuccess setClientWidth(uint32_t width)=0
virtual GHOST_TSuccess setModifiedState(bool isUnsavedChanges)=0
virtual float getNativePixelSize()=0
virtual GHOST_IContext * getDrawingContext()=0
virtual GHOST_TSuccess setCursorVisibility(bool visible)=0
virtual void getCursorGrabState(GHOST_TGrabCursorMode &mode, GHOST_TAxisFlag &axis_flag, GHOST_Rect &bounds, bool &use_software_cursor)=0
virtual void screenToClient(int32_t inX, int32_t inY, int32_t &outX, int32_t &outY) const =0
virtual GHOST_TSuccess getCursorGrabBounds(GHOST_Rect &bounds) const =0
virtual void getWindowBounds(GHOST_Rect &bounds) const =0
virtual GHOST_TSuccess hasCursorShape(GHOST_TStandardCursor cursorShape)=0
virtual bool getCursorVisibility() const =0
virtual GHOST_TSuccess setPath(const char *filepath)=0
virtual GHOST_TSuccess setDrawingContextType(GHOST_TDrawingContextType type)=0
virtual bool getValid() const =0
virtual GHOST_TSuccess setSwapInterval(int interval)=0
virtual GHOST_TUserDataPtr getUserData() const =0
virtual GHOST_TSuccess invalidate()=0
virtual void setUserData(const GHOST_TUserDataPtr userData)=0
virtual GHOST_TDrawingContextType getDrawingContextType()=0
virtual GHOST_TSuccess swapBuffers()=0
virtual GHOST_TSuccess endFullScreen() const =0
virtual GHOST_TStandardCursor getCursorShape() const =0
virtual uint16_t getDPIHint()=0
virtual GHOST_TWindowState getState() const =0
virtual GHOST_TSuccess setCursorGrab(GHOST_TGrabCursorMode, GHOST_TAxisFlag, GHOST_Rect *, int32_t[2])
virtual GHOST_TSuccess setCustomCursorShape(uint8_t *bitmap, uint8_t *mask, int sizex, int sizey, int hotX, int hotY, bool canInvertColor)=0
virtual unsigned int getDefaultFramebuffer()=0
static ulong state[N]
unsigned short uint16_t
Definition stdint.h:79
unsigned int uint32_t
Definition stdint.h:80
signed int int32_t
Definition stdint.h:77
unsigned char uint8_t
Definition stdint.h:78