|
Blender V4.5
|
#include <GHOST_WindowCocoa.hh>
Inherits GHOST_Window.
Static Public Member Functions | |
| static NSScreen * | getPrimaryScreen () |
Protected Member Functions | |
| GHOST_Context * | newDrawingContext (GHOST_TDrawingContextType type) override |
| GHOST_TSuccess | invalidate () override |
| GHOST_TSuccess | setWindowCursorVisibility (bool visible) override |
| GHOST_TSuccess | setWindowCursorGrab (GHOST_TGrabCursorMode mode) override |
| GHOST_TSuccess | setWindowCursorShape (GHOST_TStandardCursor shape) override |
| GHOST_TSuccess | hasCursorShape (GHOST_TStandardCursor shape) override |
| GHOST_TSuccess | setWindowCustomCursorShape (uint8_t *bitmap, uint8_t *mask, int sizex, int sizey, int hotX, int hotY, bool canInvertColor) override |
| Protected Member Functions inherited from GHOST_Window | |
| GHOST_TSuccess | releaseNativeHandles () |
Protected Attributes | |
| BlenderWindow * | m_window |
| CocoaOpenGLView * | m_openGLView |
| CocoaMetalView * | m_metalView |
| CAMetalLayer * | m_metalLayer |
| GHOST_SystemCocoa * | m_systemCocoa |
| NSCursor * | m_customCursor |
| GHOST_TabletData | m_tablet |
| bool | m_immediateDraw |
| bool | m_debug_context |
| bool | m_is_dialog |
| GHOST_GPUDevice | m_preferred_device |
| Protected Attributes inherited from GHOST_Window | |
| GHOST_TDrawingContextType | m_drawingContextType |
| GHOST_TUserDataPtr | m_userData |
| bool | m_cursorVisible |
| GHOST_TGrabCursorMode | m_cursorGrab |
| GHOST_TAxisFlag | m_cursorGrabAxis |
| int32_t | m_cursorGrabInitPos [2] |
| int32_t | m_cursorGrabAccumPos [2] |
| GHOST_Rect | m_cursorGrabBounds |
| GHOST_TStandardCursor | m_cursorShape |
| bool | m_progressBarVisible |
| bool | m_canAcceptDragOperation |
| bool | m_isUnsavedChanges |
| bool | m_fullScreen |
| GHOST_TWindowDecorationStyleFlags | m_windowDecorationStyleFlags |
| GHOST_WindowDecorationStyleSettings | m_windowDecorationStyleSettings |
| bool | m_wantStereoVisual |
| uint32_t | m_fullScreenWidth |
| uint32_t | m_fullScreenHeight |
| float | m_nativePixelSize |
Definition at line 30 of file GHOST_WindowCocoa.hh.
| GHOST_WindowCocoa::GHOST_WindowCocoa | ( | GHOST_SystemCocoa * | systemCocoa, |
| const char * | title, | ||
| int32_t | left, | ||
| int32_t | bottom, | ||
| uint32_t | width, | ||
| uint32_t | height, | ||
| GHOST_TWindowState | state, | ||
| GHOST_TDrawingContextType | type, | ||
| const bool | stereoVisual, | ||
| bool | is_debug, | ||
| bool | dialog, | ||
| GHOST_WindowCocoa * | parentWindow, | ||
| const GHOST_GPUDevice & | preferred_device ) |
Constructor. Creates a new window and opens it. To check if the window was created properly, use the getValid() method.
| systemCocoa | The associated system class to forward events to. |
| title | The text shown in the title bar of the window. |
| left | The coordinate of the left edge of the window. |
| bottom | The coordinate of the bottom edge of the window. |
| width | The width the window. |
| height | The height the window. |
| state | The state the window is initially opened with. |
| type | The type of drawing context installed in this window. |
| stereoVisual | Stereo visual for quad buffered stereo. |
| preferred_device | Preferred device to use when new device will be created. |
Definition at line 322 of file GHOST_WindowCocoa.mm.
References GHOST_Window::activateDrawingContext(), false, GHOST_kWindowStateFullScreen, GHOST_TABLET_DATA_NONE, GHOST_Window::GHOST_Window(), GHOST_WindowCocoa(), left, m_customCursor, m_debug_context, GHOST_Window::m_fullScreen, m_immediateDraw, m_is_dialog, m_metalLayer, m_metalView, m_openGLView, m_preferred_device, m_systemCocoa, m_tablet, m_window, nullptr, GHOST_Window::setDrawingContextType(), setNativePixelSize(), setState(), setTitle(), state, GHOST_Window::updateDrawingContext(), and view.
Referenced by GHOST_WindowCocoa().
|
override |
Destructor. Closes the window and disposes resources allocated.
Definition at line 475 of file GHOST_WindowCocoa.mm.
References m_customCursor, m_metalLayer, m_metalView, m_openGLView, m_window, and GHOST_Window::releaseNativeHandles().
|
overridevirtual |
Apply the window decoration style using the current flags and settings.
Reimplemented from GHOST_Window.
Definition at line 571 of file GHOST_WindowCocoa.mm.
References GHOST_kDecorationColoredTitleBar, GHOST_kSuccess, m_window, GHOST_Window::m_windowDecorationStyleFlags, and GHOST_Window::m_windowDecorationStyleSettings.
|
overridevirtual |
Converts a point in client rectangle coordinates to screen coordinates.
| inX | The x-coordinate in the client rectangle. |
| inY | The y-coordinate in the client rectangle. |
| outX | The x-coordinate on the screen. |
| outY | The y-coordinate on the screen. |
Implements GHOST_IWindow.
Definition at line 745 of file GHOST_WindowCocoa.mm.
References clientToScreenIntern(), getClientBounds(), GHOST_Rect::getHeight(), getValid(), and GHOST_ASSERT.
| void GHOST_WindowCocoa::clientToScreenIntern | ( | int32_t | inX, |
| int32_t | inY, | ||
| int32_t & | outX, | ||
| int32_t & | outY ) const |
Converts a point in client rectangle coordinates to screen coordinates. but without the y coordinate conversion needed for ghost compatibility.
| inX | The x-coordinate in the client rectangle. |
| inY | The y-coordinate in the client rectangle. |
| outX | The x-coordinate on the screen. |
| outY | The y-coordinate on the screen. |
Definition at line 774 of file GHOST_WindowCocoa.mm.
Referenced by clientToScreen(), GHOST_SystemCocoa::handleDraggingEvent(), and GHOST_SystemCocoa::handleMouseEvent().
|
overridevirtual |
Hides the progress bar icon
Reimplemented from GHOST_Window.
Definition at line 987 of file GHOST_WindowCocoa.mm.
References GHOST_kFailure, GHOST_kSuccess, and GHOST_Window::m_progressBarVisible.
|
overridevirtual |
Returns the client rectangle dimensions. The left and top members of the rectangle are always zero.
| bounds | The bounding rectangle of the client area of the window. |
Implements GHOST_IWindow.
Definition at line 629 of file GHOST_WindowCocoa.mm.
References bounds(), getValid(), GHOST_ASSERT, and m_window.
Referenced by clientToScreen(), GHOST_SystemCocoa::handleMouseEvent(), screenToClient(), setClientHeight(), setClientSize(), setClientWidth(), and setNativePixelSize().
|
inline |
Definition at line 219 of file GHOST_WindowCocoa.hh.
References m_tablet.
Referenced by GHOST_SystemCocoa::handleMouseEvent(), and GHOST_SystemCocoa::setCursorPosition().
|
inline |
Definition at line 248 of file GHOST_WindowCocoa.hh.
References m_immediateDraw.
|
overridevirtual |
Returns the associated NSWindow object
Reimplemented from GHOST_Window.
Definition at line 525 of file GHOST_WindowCocoa.mm.
References m_window.
Referenced by GHOST_SystemCocoa::handleMouseEvent().
|
static |
Return the primary screen, the screen defined as "Main Display" in macOS Settings, source of all screen coordinates.
Definition at line 793 of file GHOST_WindowCocoa.mm.
| NSScreen * GHOST_WindowCocoa::getScreen | ( | ) | const |
Return the screen the window is displayed in.
Definition at line 788 of file GHOST_WindowCocoa.mm.
References m_window.
Referenced by GHOST_SystemCocoa::setMouseCursorPosition().
| NSCursor * GHOST_WindowCocoa::getStandardCursor | ( | GHOST_TStandardCursor | cursor | ) | const |
Definition at line 1040 of file GHOST_WindowCocoa.mm.
References NSCursor(Undocumented)::busyButClickableCursor, getImageCursor(), GHOST_kStandardCursorBothHandles, GHOST_kStandardCursorBottomSide, GHOST_kStandardCursorCopy, GHOST_kStandardCursorCrosshair, GHOST_kStandardCursorCrosshairA, GHOST_kStandardCursorCrosshairB, GHOST_kStandardCursorCrosshairC, GHOST_kStandardCursorCustom, GHOST_kStandardCursorDefault, GHOST_kStandardCursorDestroy, GHOST_kStandardCursorDownArrow, GHOST_kStandardCursorEraser, GHOST_kStandardCursorEWScroll, GHOST_kStandardCursorEyedropper, GHOST_kStandardCursorHandClosed, GHOST_kStandardCursorHandOpen, GHOST_kStandardCursorHandPoint, GHOST_kStandardCursorHorizontalSplit, GHOST_kStandardCursorKnife, GHOST_kStandardCursorLeftArrow, GHOST_kStandardCursorLeftHandle, GHOST_kStandardCursorLeftRight, GHOST_kStandardCursorLeftSide, GHOST_kStandardCursorMove, GHOST_kStandardCursorNSEWScroll, GHOST_kStandardCursorNSScroll, GHOST_kStandardCursorPencil, GHOST_kStandardCursorRightArrow, GHOST_kStandardCursorRightHandle, GHOST_kStandardCursorRightSide, GHOST_kStandardCursorStop, GHOST_kStandardCursorText, GHOST_kStandardCursorTopSide, GHOST_kStandardCursorUpArrow, GHOST_kStandardCursorUpDown, GHOST_kStandardCursorVerticalSplit, GHOST_kStandardCursorWait, GHOST_kStandardCursorZoomIn, GHOST_kStandardCursorZoomOut, and m_customCursor.
Referenced by hasCursorShape(), and loadCursor().
|
overridevirtual |
Returns the state of the window (normal, minimized, maximized).
Implements GHOST_IWindow.
Definition at line 703 of file GHOST_WindowCocoa.mm.
References getValid(), GHOST_ASSERT, GHOST_kWindowStateFullScreen, GHOST_kWindowStateMaximized, GHOST_kWindowStateMinimized, GHOST_kWindowStateNormal, m_immediateDraw, and m_window.
|
overridevirtual |
Returns the title displayed in the title bar.
| title | The title displayed in the title bar. |
Implements GHOST_IWindow.
Definition at line 542 of file GHOST_WindowCocoa.mm.
References getValid(), GHOST_ASSERT, and m_window.
|
overridevirtual |
Returns indication as to whether the window is valid.
Reimplemented from GHOST_Window.
Definition at line 519 of file GHOST_WindowCocoa.mm.
References GHOST_Window::getValid(), m_metalView, m_openGLView, m_window, and view.
Referenced by clientToScreen(), getClientBounds(), getState(), getTitle(), getWindowBounds(), invalidate(), screenToClient(), setClientHeight(), setClientSize(), setClientWidth(), setOrder(), setPath(), setState(), and setTitle().
|
inline |
public function to get the window containing the view
Definition at line 238 of file GHOST_WindowCocoa.hh.
References m_window.
|
overridevirtual |
Returns the window rectangle dimensions. The dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.
| bounds | The bounding rectangle of the window. |
Implements GHOST_IWindow.
Definition at line 603 of file GHOST_WindowCocoa.mm.
References bounds(), getValid(), GHOST_ASSERT, and m_window.
|
overrideprotectedvirtual |
Test if the standard cursor shape is supported by current platform.
Implements GHOST_IWindow.
Definition at line 1220 of file GHOST_WindowCocoa.mm.
References getStandardCursor(), GHOST_kFailure, and GHOST_kSuccess.
|
overrideprotectedvirtual |
Invalidates the contents of this window.
Implements GHOST_IWindow.
Definition at line 934 of file GHOST_WindowCocoa.mm.
References getValid(), GHOST_ASSERT, GHOST_kSuccess, m_metalView, m_openGLView, and view.
|
overridevirtual |
Reimplemented from GHOST_Window.
Definition at line 1161 of file GHOST_WindowCocoa.mm.
References m_is_dialog.
Referenced by GHOST_SystemCocoa::handleApplicationBecomeActiveEvent(), and GHOST_SystemCocoa::hasDialogWindow().
| void GHOST_WindowCocoa::loadCursor | ( | bool | visible, |
| GHOST_TStandardCursor | cursor ) const |
Definition at line 1136 of file GHOST_WindowCocoa.mm.
References getStandardCursor(), and GHOST_kStandardCursorDefault.
Referenced by GHOST_SystemCocoa::handleWindowEvent(), setWindowCursorShape(), setWindowCursorVisibility(), and setWindowCustomCursorShape().
|
overrideprotectedvirtual |
| type | The type of rendering context create. |
Implements GHOST_Window.
Definition at line 897 of file GHOST_WindowCocoa.mm.
References m_metalLayer, m_metalView, m_preferred_device, and GHOST_Window::m_wantStereoVisual.
|
overridevirtual |
Converts a point in screen coordinates to client rectangle coordinates
| inX | The x-coordinate on the screen. |
| inY | The y-coordinate on the screen. |
| outX | The x-coordinate in the client rectangle. |
| outY | The y-coordinate in the client rectangle. |
Implements GHOST_IWindow.
Definition at line 730 of file GHOST_WindowCocoa.mm.
References getClientBounds(), GHOST_Rect::getHeight(), getValid(), GHOST_ASSERT, and screenToClientIntern().
Referenced by GHOST_SystemCocoa::handleMouseEvent().
| void GHOST_WindowCocoa::screenToClientIntern | ( | int32_t | inX, |
| int32_t | inY, | ||
| int32_t & | outX, | ||
| int32_t & | outY ) const |
Converts a point in screen coordinates to client rectangle coordinates, but without the y coordinate conversion needed for ghost compatibility.
| inX | The x-coordinate on the screen. |
| inY | The y-coordinate on the screen. |
| outX | The x-coordinate in the client rectangle. |
| outY | The y-coordinate in the client rectangle. |
Definition at line 760 of file GHOST_WindowCocoa.mm.
Referenced by GHOST_SystemCocoa::handleMouseEvent(), and screenToClient().
|
overridevirtual |
Resizes client rectangle height.
| height | The new height of the client area of the window. |
Implements GHOST_IWindow.
Definition at line 672 of file GHOST_WindowCocoa.mm.
References getClientBounds(), GHOST_Rect::getHeight(), getValid(), GHOST_Rect::getWidth(), GHOST_ASSERT, GHOST_kSuccess, and size().
|
overridevirtual |
Resizes client rectangle.
| width | The new width of the client area of the window. |
| height | The new height of the client area of the window. |
Implements GHOST_IWindow.
Definition at line 688 of file GHOST_WindowCocoa.mm.
References getClientBounds(), GHOST_Rect::getHeight(), getValid(), GHOST_Rect::getWidth(), GHOST_ASSERT, GHOST_kSuccess, and size().
|
overridevirtual |
Resizes client rectangle width.
| width | The new width of the client area of the window. |
Implements GHOST_IWindow.
Definition at line 656 of file GHOST_WindowCocoa.mm.
References getClientBounds(), GHOST_Rect::getHeight(), getValid(), GHOST_Rect::getWidth(), GHOST_ASSERT, GHOST_kSuccess, and size().
|
inline |
Definition at line 244 of file GHOST_WindowCocoa.hh.
References m_immediateDraw.
|
overridevirtual |
Sets the window "modified" status, indicating unsaved changes
| isUnsavedChanges | Unsaved changes or not. |
Reimplemented from GHOST_Window.
Definition at line 861 of file GHOST_WindowCocoa.mm.
References m_window, and GHOST_Window::setModifiedState().
| void GHOST_WindowCocoa::setNativePixelSize | ( | ) |
Definition at line 800 of file GHOST_WindowCocoa.mm.
References getClientBounds(), GHOST_Rect::getWidth(), m_metalView, GHOST_Window::m_nativePixelSize, m_openGLView, and view.
Referenced by GHOST_WindowCocoa(), and GHOST_SystemCocoa::handleWindowEvent().
|
overridevirtual |
Sets the order of the window (bottom, top).
| order | The order of the window. |
Implements GHOST_IWindow.
Definition at line 869 of file GHOST_WindowCocoa.mm.
References getValid(), GHOST_ASSERT, GHOST_kSuccess, and GHOST_kWindowOrderTop.
|
overridevirtual |
Sets the file name represented by this window.
| filepath | The file directory. |
Reimplemented from GHOST_Window.
Definition at line 556 of file GHOST_WindowCocoa.mm.
References getValid(), GHOST_ASSERT, GHOST_kSuccess, and m_window.
|
overridevirtual |
Sets the progress bar value displayed in the window/application icon
| progress | The progress percentage (0.0 to 1.0). |
Reimplemented from GHOST_Window.
Definition at line 949 of file GHOST_WindowCocoa.mm.
References GHOST_kSuccess, GHOST_Window::m_progressBarVisible, and progress.
|
overridevirtual |
Sets the state of the window (normal, minimized, maximized).
| state | The state of the window. |
Instead, the menu bar and the dock are hidden, and the window is made border-less and enlarged. Thus, process switch, exposé, spaces, ... still work in full-screen mode.
Implements GHOST_IWindow.
Definition at line 818 of file GHOST_WindowCocoa.mm.
References getValid(), GHOST_ASSERT, GHOST_kSuccess, GHOST_kWindowStateFullScreen, GHOST_kWindowStateMaximized, GHOST_kWindowStateMinimized, GHOST_kWindowStateNormal, m_window, and state.
Referenced by GHOST_WindowCocoa().
|
overridevirtual |
Sets the title displayed in the title bar.
| title | The title to display in the title bar. |
Implements GHOST_IWindow.
Definition at line 530 of file GHOST_WindowCocoa.mm.
References getValid(), GHOST_ASSERT, and m_window.
Referenced by GHOST_WindowCocoa().
|
overrideprotectedvirtual |
Sets the cursor grab on the window using native window system calls.
Reimplemented from GHOST_Window.
Definition at line 1176 of file GHOST_WindowCocoa.mm.
References GHOST_kGrabDisable, GHOST_kGrabHide, GHOST_kGrabNormal, GHOST_kSuccess, GHOST_Window::m_cursorGrab, GHOST_Window::m_cursorGrabBounds, GHOST_Window::m_cursorGrabInitPos, m_systemCocoa, GHOST_Window::setCursorGrabAccum(), and setWindowCursorVisibility().
|
overrideprotectedvirtual |
Sets the cursor shape on the window using native window system calls.
Implements GHOST_Window.
Definition at line 1210 of file GHOST_WindowCocoa.mm.
References GHOST_Window::getCursorVisibility(), GHOST_kSuccess, loadCursor(), and m_window.
|
overrideprotectedvirtual |
Sets the cursor visibility on the window using native window system calls.
Implements GHOST_Window.
Definition at line 1166 of file GHOST_WindowCocoa.mm.
References GHOST_Window::getCursorShape(), GHOST_kSuccess, loadCursor(), and m_window.
Referenced by setWindowCursorGrab().
|
overrideprotectedvirtual |
Sets the cursor shape on the window using native window system calls.
Implements GHOST_Window.
Definition at line 1249 of file GHOST_WindowCocoa.mm.
References GHOST_Window::getCursorVisibility(), GHOST_kStandardCursorCustom, GHOST_kSuccess, loadCursor(), m_customCursor, m_window, mask(), uns16ReverseBits(), and y.
|
protected |
Definition at line 313 of file GHOST_WindowCocoa.hh.
Referenced by getStandardCursor(), GHOST_WindowCocoa(), setWindowCustomCursorShape(), and ~GHOST_WindowCocoa().
|
protected |
Definition at line 318 of file GHOST_WindowCocoa.hh.
Referenced by GHOST_WindowCocoa().
|
protected |
Definition at line 317 of file GHOST_WindowCocoa.hh.
Referenced by getImmediateDraw(), getState(), GHOST_WindowCocoa(), and setImmediateDraw().
|
protected |
Definition at line 319 of file GHOST_WindowCocoa.hh.
Referenced by GHOST_WindowCocoa(), and isDialog().
|
protected |
Definition at line 308 of file GHOST_WindowCocoa.hh.
Referenced by GHOST_WindowCocoa(), newDrawingContext(), and ~GHOST_WindowCocoa().
|
protected |
Definition at line 307 of file GHOST_WindowCocoa.hh.
Referenced by getValid(), GHOST_WindowCocoa(), invalidate(), newDrawingContext(), setNativePixelSize(), and ~GHOST_WindowCocoa().
|
protected |
The view, either Metal or OpenGL
Definition at line 306 of file GHOST_WindowCocoa.hh.
Referenced by getValid(), GHOST_WindowCocoa(), invalidate(), setNativePixelSize(), and ~GHOST_WindowCocoa().
|
protected |
Definition at line 320 of file GHOST_WindowCocoa.hh.
Referenced by GHOST_WindowCocoa(), and newDrawingContext().
|
protected |
The mother SystemCocoa class to send events
Definition at line 311 of file GHOST_WindowCocoa.hh.
Referenced by GHOST_WindowCocoa(), and setWindowCursorGrab().
|
protected |
Definition at line 315 of file GHOST_WindowCocoa.hh.
Referenced by GetCocoaTabletData(), and GHOST_WindowCocoa().
|
protected |
The window containing the view
Definition at line 303 of file GHOST_WindowCocoa.hh.
Referenced by applyWindowDecorationStyle(), getClientBounds(), getOSWindow(), getScreen(), getState(), getTitle(), getValid(), getViewWindow(), getWindowBounds(), GHOST_WindowCocoa(), setModifiedState(), setPath(), setState(), setTitle(), setWindowCursorShape(), setWindowCursorVisibility(), setWindowCustomCursorShape(), and ~GHOST_WindowCocoa().