Blender
V3.3
|
#include <GHOST_WindowWin32.h>
Public Attributes | |
bool | m_mousePresent |
bool | m_inLiveResize |
Additional Inherited Members | |
![]() | |
GHOST_TSuccess | releaseNativeHandles () |
![]() | |
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 |
bool | m_wantStereoVisual |
uint32_t | m_fullScreenWidth |
uint32_t | m_fullScreenHeight |
float | m_nativePixelSize |
GHOST window on MS Windows OSs.
Definition at line 53 of file GHOST_WindowWin32.h.
GHOST_WindowWin32::GHOST_WindowWin32 | ( | GHOST_SystemWin32 * | system, |
const char * | title, | ||
int32_t | left, | ||
int32_t | top, | ||
uint32_t | width, | ||
uint32_t | height, | ||
GHOST_TWindowState | state, | ||
GHOST_TDrawingContextType | type = GHOST_kDrawingContextTypeNone , |
||
bool | wantStereoVisual = false , |
||
bool | alphaBackground = false , |
||
GHOST_WindowWin32 * | parentWindow = 0 , |
||
bool | is_debug = false , |
||
bool | dialog = false |
||
) |
Constructor. Creates a new window and opens it. To check if the window was created properly, use the getValid() method.
title | The text shown in the title bar of the window. |
left | The coordinate of the left edge of the window. |
top | The coordinate of the top 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. |
wantStereoVisual | Stereo visual for quad buffered stereo. |
parentWindowHwnd | TODO. |
Definition at line 39 of file GHOST_WindowWin32.cpp.
References adjustWindowRectForClosestMonitor(), alloc_utf16_from_8(), CLSID_TaskbarList, GHOST_DirectManipulationHelper::create(), free(), getDPIHint(), GHOST_System::getTabletAPI(), GHOST_kTabletWinPointer, GHOST_kWindowStateFullScreen, GHOST_kWindowStateMaximized, GHOST_kWindowStateMinimized, GHOST_kWindowStateNormal, height, left, loadWintab(), lostMouseCapture(), GHOST_System::m_windowFocus, NULL, GHOST_Window::setDrawingContextType(), state, ThemeRefresh(), top, type, and width.
GHOST_WindowWin32::~GHOST_WindowWin32 | ( | ) |
Destructor. Closes the window and disposes resources allocated.
Definition at line 246 of file GHOST_WindowWin32.cpp.
References closeWintab(), GHOST_System::getWindowManager(), GHOST_WindowManager::getWindows(), NULL, GHOST_DropTargetWin32::Release(), GHOST_Window::releaseNativeHandles(), ITaskbarList3::SetProgressState(), and TBPF_NOPROGRESS.
void GHOST_WindowWin32::adjustWindowRectForClosestMonitor | ( | LPRECT | win_rect, |
DWORD | dwStyle, | ||
DWORD | dwExStyle | ||
) |
Adjusts a requested window rect to fit and position correctly in monitor.
win_rect | pointer to rectangle that will be modified. |
dwStyle | The Window Style of the window whose required size is to be calculated. |
dwExStyle | The Extended Window Style of the window. |
Definition at line 298 of file GHOST_WindowWin32.cpp.
References FALSE, height, max, min, UINT(), and width.
Referenced by GHOST_WindowWin32().
|
inlinevirtual |
Implements GHOST_IWindow.
Definition at line 280 of file GHOST_WindowWin32.h.
References GHOST_kFailure.
|
virtual |
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 486 of file GHOST_WindowWin32.cpp.
References Freestyle::Nature::POINT, and point.
void GHOST_WindowWin32::closeWintab | ( | ) |
Closes Wintab for the window.
Definition at line 1024 of file GHOST_WindowWin32.cpp.
References NULL, and WINTAB_PRINTF.
Referenced by GHOST_SystemWin32::setTabletAPI(), and ~GHOST_WindowWin32().
|
inlinevirtual |
Implements GHOST_IWindow.
Definition at line 285 of file GHOST_WindowWin32.h.
References GHOST_kFailure.
|
virtual |
Hides the progress bar in the icon
Reimplemented from GHOST_Window.
Definition at line 1174 of file GHOST_WindowWin32.cpp.
References GHOST_kFailure, GHOST_kSuccess, ITaskbarList3::SetProgressState(), and TBPF_NOPROGRESS.
|
virtual |
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 377 of file GHOST_WindowWin32.cpp.
References bounds(), and Freestyle::Nature::POINT.
Referenced by loadWintab(), GHOST_SystemWin32::processCursorEvent(), setClientHeight(), setClientSize(), and setClientWidth().
|
overridevirtual |
Returns the recommended DPI for this window.
Reimplemented from GHOST_Window.
Definition at line 1085 of file GHOST_WindowWin32.cpp.
Referenced by GHOST_WindowWin32(), and updateDPI().
HWND GHOST_WindowWin32::getHWND | ( | ) | const |
Access to the handle of the window.
Definition at line 344 of file GHOST_WindowWin32.cpp.
Referenced by GHOST_DropTargetWin32::GHOST_DropTargetWin32(), GHOST_SystemWin32::processButtonEvent(), GHOST_SystemWin32::processWintabEvent(), and GHOST_SystemWin32::s_wndProc().
GHOST_TSuccess GHOST_WindowWin32::getPointerInfo | ( | std::vector< GHOST_PointerInfoWin32 > & | outPointerInfo, |
WPARAM | wParam, | ||
LPARAM | lParam | ||
) |
Translate WM_POINTER events into GHOST_PointerInfoWin32 structs.
outPointerInfo | Storage to return resulting GHOST_PointerInfoWin32 structs. |
wParam | WPARAM of the event. |
lParam | LPARAM of the event. |
Definition at line 909 of file GHOST_WindowWin32.cpp.
References fabs(), GET_POINTERID_WPARAM, GHOST_ISystem::getSystem(), GHOST_kButtonMaskButton4, GHOST_kButtonMaskButton5, GHOST_kButtonMaskLeft, GHOST_kButtonMaskMiddle, GHOST_kButtonMaskRight, GHOST_kFailure, GHOST_kSuccess, GHOST_kTabletModeEraser, GHOST_kTabletModeStylus, NULL, and GHOST_SystemWin32::performanceCounterToMillis().
Referenced by GHOST_SystemWin32::processPointerEvent().
HCURSOR GHOST_WindowWin32::getStandardCursor | ( | GHOST_TStandardCursor | shape | ) | const |
Loads the windows equivalent of a standard GHOST cursor.
visible | Flag for cursor visibility. |
cursorShape | The cursor shape. |
Definition at line 706 of file GHOST_WindowWin32.cpp.
References GHOST_kStandardCursorBottomLeftCorner, GHOST_kStandardCursorBottomRightCorner, GHOST_kStandardCursorBottomSide, GHOST_kStandardCursorCrosshair, GHOST_kStandardCursorCrosshairA, GHOST_kStandardCursorCrosshairB, GHOST_kStandardCursorCrosshairC, GHOST_kStandardCursorCustom, GHOST_kStandardCursorDefault, GHOST_kStandardCursorDestroy, GHOST_kStandardCursorDownArrow, GHOST_kStandardCursorEraser, GHOST_kStandardCursorEWScroll, GHOST_kStandardCursorEyedropper, GHOST_kStandardCursorHelp, GHOST_kStandardCursorHorizontalSplit, GHOST_kStandardCursorKnife, GHOST_kStandardCursorLeftArrow, GHOST_kStandardCursorLeftRight, GHOST_kStandardCursorLeftSide, GHOST_kStandardCursorMove, GHOST_kStandardCursorNSEWScroll, GHOST_kStandardCursorNSScroll, GHOST_kStandardCursorPencil, GHOST_kStandardCursorRightArrow, GHOST_kStandardCursorStop, GHOST_kStandardCursorText, GHOST_kStandardCursorTopLeftCorner, GHOST_kStandardCursorTopRightCorner, GHOST_kStandardCursorTopSide, GHOST_kStandardCursorUpArrow, GHOST_kStandardCursorUpDown, GHOST_kStandardCursorVerticalSplit, GHOST_kStandardCursorWait, GHOST_kStandardCursorZoomIn, GHOST_kStandardCursorZoomOut, module, and NULL.
Referenced by loadCursor().
|
virtual |
Returns the state of the window (normal, minimized, maximized).
Implements GHOST_IWindow.
Definition at line 463 of file GHOST_WindowWin32.cpp.
References GHOST_kWindowStateFullScreen, GHOST_kWindowStateMaximized, GHOST_kWindowStateMinimized, GHOST_kWindowStateNormal, and result.
Referenced by GHOST_SystemWin32::s_wndProc(), setOrder(), setState(), and GHOST_SystemWin32::setTabletAPI().
GHOST_TabletData GHOST_WindowWin32::getTabletData | ( | ) |
Get the most recent Windows Pointer tablet data.
Definition at line 1049 of file GHOST_WindowWin32.cpp.
References GHOST_Wintab::getLastTabletData(), GHOST_kTabletWintab, GHOST_TABLET_DATA_NONE, and usingTabletAPI().
Referenced by GHOST_SystemWin32::processButtonEvent(), GHOST_SystemWin32::processCursorEvent(), and GHOST_SystemWin32::s_wndProc().
|
virtual |
Returns the title displayed in the title bar.
Implements GHOST_IWindow.
Definition at line 356 of file GHOST_WindowWin32.cpp.
References conv_utf_16_to_8(), count_utf_8_from_16(), and L.
GHOST_TTrackpadInfo GHOST_WindowWin32::getTrackpadInfo | ( | ) |
Definition at line 237 of file GHOST_WindowWin32.cpp.
References GHOST_DirectManipulationHelper::getTrackpadInfo().
Referenced by GHOST_SystemWin32::processTrackpad().
|
virtual |
Returns indication as to whether the window is valid.
Reimplemented from GHOST_Window.
Definition at line 339 of file GHOST_WindowWin32.cpp.
References GHOST_Window::getValid().
Referenced by GHOST_SystemWin32::createWindow().
|
virtual |
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 367 of file GHOST_WindowWin32.cpp.
References bounds().
Referenced by setClientHeight(), setClientSize(), and setClientWidth().
GHOST_Wintab * GHOST_WindowWin32::getWintab | ( | ) | const |
Retrieves pointer to Wintab if Wintab is the set Tablet API.
Definition at line 995 of file GHOST_WindowWin32.cpp.
Referenced by GHOST_SystemWin32::processWintabEvent(), and GHOST_SystemWin32::s_wndProc().
|
virtual |
Invalidates the contents of this window.
Implements GHOST_IWindow.
Definition at line 566 of file GHOST_WindowWin32.cpp.
References FALSE, GHOST_kFailure, and GHOST_kSuccess.
|
virtual |
Reimplemented from GHOST_Window.
Definition at line 673 of file GHOST_WindowWin32.cpp.
void GHOST_WindowWin32::loadCursor | ( | bool | visible, |
GHOST_TStandardCursor | cursorShape | ||
) | const |
Definition at line 832 of file GHOST_WindowWin32.cpp.
References FALSE, getStandardCursor(), GHOST_kStandardCursorDefault, and NULL.
Referenced by GHOST_SystemWin32::s_wndProc().
Loads Wintab context for the window.
enable | True if Wintab should be enabled after loading. Wintab should not be enabled if the window is minimized. |
Definition at line 1000 of file GHOST_WindowWin32.cpp.
References GHOST_Wintab::enable(), GHOST_Wintab::gainFocus(), getClientBounds(), GHOST_SystemWin32::getCursorPosition(), GHOST_Rect::isInside(), GHOST_Wintab::loadWintab(), WINTAB_PRINTF, x, and y.
Referenced by GHOST_WindowWin32(), and GHOST_SystemWin32::setTabletAPI().
void GHOST_WindowWin32::lostMouseCapture | ( | ) |
Inform the window that it has lost mouse capture, called in response to native window system messages (WA_INACTIVE, WM_CAPTURECHANGED) or if ReleaseCapture() is explicitly called (for new window creation).
Definition at line 664 of file GHOST_WindowWin32.cpp.
Referenced by GHOST_WindowWin32(), and GHOST_SystemWin32::s_wndProc().
void GHOST_WindowWin32::onPointerHitTest | ( | WPARAM | wParam | ) |
Definition at line 222 of file GHOST_WindowWin32.cpp.
References GET_POINTERID_WPARAM, and GHOST_DirectManipulationHelper::onPointerHitTest().
Referenced by GHOST_SystemWin32::s_wndProc().
void GHOST_WindowWin32::resetPointerPenInfo | ( | ) |
Resets pointer pen tablet state.
Definition at line 990 of file GHOST_WindowWin32.cpp.
References GHOST_TABLET_DATA_NONE.
Referenced by GHOST_SystemWin32::s_wndProc(), and GHOST_SystemWin32::setTabletAPI().
|
virtual |
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 475 of file GHOST_WindowWin32.cpp.
References Freestyle::Nature::POINT, and point.
|
virtual |
Resizes client rectangle height.
height | The new height of the client area of the window. |
Implements GHOST_IWindow.
Definition at line 425 of file GHOST_WindowWin32.cpp.
References getClientBounds(), GHOST_Rect::getHeight(), GHOST_Rect::getWidth(), getWindowBounds(), GHOST_kFailure, GHOST_kSuccess, and height.
|
virtual |
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 444 of file GHOST_WindowWin32.cpp.
References getClientBounds(), GHOST_Rect::getHeight(), GHOST_Rect::getWidth(), getWindowBounds(), GHOST_kFailure, GHOST_kSuccess, height, and width.
|
virtual |
Resizes client rectangle width.
width | The new width of the client area of the window. |
Implements GHOST_IWindow.
Definition at line 406 of file GHOST_WindowWin32.cpp.
References getClientBounds(), GHOST_Rect::getHeight(), GHOST_Rect::getWidth(), getWindowBounds(), GHOST_kFailure, GHOST_kSuccess, and width.
|
virtual |
Sets the order of the window (bottom, top).
order | The order of the window. |
Implements GHOST_IWindow.
Definition at line 539 of file GHOST_WindowWin32.cpp.
References FALSE, getState(), GHOST_kFailure, GHOST_kSuccess, GHOST_kWindowOrderBottom, GHOST_kWindowStateMinimized, GHOST_kWindowStateNormal, NULL, order, and setState().
|
virtual |
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 1165 of file GHOST_WindowWin32.cpp.
References GHOST_kFailure, GHOST_kSuccess, and ITaskbarList3::SetProgressValue().
|
virtual |
Sets the state of the window (normal, minimized, maximized).
state | The state of the window. |
Implements GHOST_IWindow.
Definition at line 497 of file GHOST_WindowWin32.cpp.
References getState(), GHOST_kFailure, GHOST_kSuccess, GHOST_kWindowStateFullScreen, GHOST_kWindowStateMaximized, GHOST_kWindowStateMinimized, GHOST_kWindowStateNormal, and state.
Referenced by GHOST_SystemWin32::s_wndProc(), and setOrder().
|
virtual |
Sets the title displayed in the title bar.
title | The title to display in the title bar. |
Implements GHOST_IWindow.
Definition at line 349 of file GHOST_WindowWin32.cpp.
References alloc_utf16_from_8(), and free().
void GHOST_WindowWin32::ThemeRefresh | ( | ) |
Called when OS colors change and when the window is created.
Definition at line 1059 of file GHOST_WindowWin32.cpp.
Referenced by GHOST_WindowWin32(), and GHOST_SystemWin32::s_wndProc().
void GHOST_WindowWin32::updateDirectManipulation | ( | ) |
Definition at line 213 of file GHOST_WindowWin32.cpp.
References GHOST_DirectManipulationHelper::update().
Referenced by GHOST_SystemWin32::driveTrackpad().
void GHOST_WindowWin32::updateDPI | ( | ) |
Definition at line 1078 of file GHOST_WindowWin32.cpp.
References getDPIHint(), and GHOST_DirectManipulationHelper::setDPI().
Referenced by GHOST_SystemWin32::s_wndProc().
void GHOST_WindowWin32::updateMouseCapture | ( | GHOST_MouseCaptureEventWin32 | event | ) |
Set or Release mouse capture (should be called for any real button press).
event | Whether mouse was pressed and released, or an operator grabbed or ungrabbed the mouse. |
Definition at line 678 of file GHOST_WindowWin32.cpp.
References MousePressed, MouseReleased, OperatorGrab, and OperatorUngrab.
Referenced by GHOST_SystemWin32::processButtonEvent(), GHOST_SystemWin32::processPointerEvent(), and GHOST_SystemWin32::processWintabEvent().
bool GHOST_WindowWin32::usingTabletAPI | ( | GHOST_TTabletAPI | api | ) | const |
Query whether given tablet API should be used.
api | Tablet API to test. |
Definition at line 1031 of file GHOST_WindowWin32.cpp.
References GHOST_Wintab::devicesPresent(), GHOST_System::getTabletAPI(), GHOST_kTabletAutomatic, GHOST_kTabletWinPointer, and GHOST_kTabletWintab.
Referenced by getTabletData(), GHOST_SystemWin32::processPointerEvent(), GHOST_SystemWin32::s_wndProc(), and GHOST_SystemWin32::setTabletAPI().
bool GHOST_WindowWin32::m_inLiveResize |
True if the window currently resizing.
Definition at line 298 of file GHOST_WindowWin32.h.
Referenced by GHOST_SystemWin32::processWindowSizeEvent(), and GHOST_SystemWin32::s_wndProc().
bool GHOST_WindowWin32::m_mousePresent |
True if the mouse is either over or captured by the window.
Definition at line 295 of file GHOST_WindowWin32.h.
Referenced by GHOST_SystemWin32::s_wndProc().