|
Blender V5.0
|
#include <GHOST_SystemX11.hh>
Inherits GHOST_System.
Public Attributes | |
| struct { | |
| Atom WM_STATE | |
| Atom WM_CHANGE_STATE | |
| Atom _NET_WM_STATE | |
| Atom _NET_WM_STATE_MAXIMIZED_HORZ | |
| Atom _NET_WM_STATE_MAXIMIZED_VERT | |
| Atom _NET_WM_STATE_FULLSCREEN | |
| Atom _MOTIF_WM_HINTS | |
| Atom WM_TAKE_FOCUS | |
| Atom WM_PROTOCOLS | |
| Atom WM_DELETE_WINDOW | |
| Atom TARGETS | |
| Atom STRING | |
| Atom C_STRING | |
| Atom COMPOUND_TEXT | |
| Atom TEXT | |
| Atom CLIPBOARD | |
| Atom PRIMARY | |
| Atom XCLIP_OUT | |
| Atom INCR | |
| Atom UTF8_STRING | |
| } | atom_ |
| Public Attributes inherited from GHOST_System | |
| bool | native_pixel_ |
| bool | window_focus_ |
| bool | auto_focus_ |
X11 Implementation of GHOST_System class.
Definition at line 60 of file GHOST_SystemX11.hh.
| GHOST_SystemX11::GHOST_SystemX11 | ( | ) |
Constructor this class should only be instantiated by GHOST_ISystem.
Definition at line 105 of file GHOST_SystemX11.cc.
References _MOTIF_WM_HINTS, _NET_WM_STATE, _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_MAXIMIZED_VERT, atom_, CLIPBOARD, COMPOUND_TEXT, GHOST_INTERN_ATOM, GHOST_INTERN_ATOM_IF_EXISTS, GHOST_System::GHOST_System(), GHOST_X11_ApplicationErrorHandler(), GHOST_X11_ApplicationIOErrorHandler(), INCR, nullptr, PRIMARY, STRING, TARGETS, TEXT, UTF8_STRING, WM_CHANGE_STATE, WM_DELETE_WINDOW, WM_PROTOCOLS, WM_STATE, WM_TAKE_FOCUS, and XCLIP_OUT.
|
override |
Destructor.
Definition at line 225 of file GHOST_SystemX11.cc.
| void GHOST_SystemX11::addDirtyWindow | ( | GHOST_WindowX11 * | bad_wind | ) |
Flag a window as dirty. This will generate a GHOST window update event on a call to processEvents()
Definition at line 1825 of file GHOST_SystemX11.cc.
References GHOST_ASSERT.
|
overridevirtual |
Create a new off-screen context. Never explicitly delete the context, use disposeContext() instead.
Implements GHOST_System.
Definition at line 403 of file GHOST_SystemX11.cc.
References GHOST_GPUSettings::context_type, GHOST_CONTEXT_PARAMS_FROM_GPU_SETTINGS_OFFSCREEN, GHOST_OPENGL_GLX_CONTEXT_FLAGS, GHOST_OPENGL_GLX_RESET_NOTIFICATION_STRATEGY, GHOST_ContextParams::is_debug, and GHOST_GPUSettings::preferred_device.
|
overridevirtual |
Create a new window. The new window is added to the list of windows managed. Never explicitly delete the window, use disposeWindow() instead.
| title | The name of the window. (displayed in the title bar of the window if the OS supports it). |
| 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 of the window when opened. |
| gpu_settings | Misc GPU settings. |
| exclusive | Use to show the window on top and ignore others (used full-screen). |
| parent_window | Parent (embedder) window. |
Implements GHOST_ISystem.
Definition at line 352 of file GHOST_SystemX11.cc.
References GHOST_GPUSettings::context_type, getMilliSeconds(), GHOST_WindowX11::getValid(), GHOST_CONTEXT_PARAMS_FROM_GPU_SETTINGS, GHOST_kEventWindowSize, left, GHOST_GPUSettings::preferred_device, pushEvent, state, top, and GHOST_System::window_manager_.
|
overridevirtual |
Dispose of a context.
| context | Pointer to the context to be disposed. |
Implements GHOST_ISystem.
Definition at line 458 of file GHOST_SystemX11.cc.
References GHOST_kSuccess.
|
overridevirtual |
Returns the dimensions of all displays on this system.
Implements GHOST_ISystem.
Definition at line 344 of file GHOST_SystemX11.cc.
Referenced by getMainDisplayDimensions().
|
overridevirtual |
Returns the state of the mouse buttons (outside the message queue).
| buttons | The state of the buttons. |
Implements GHOST_System.
Definition at line 1686 of file GHOST_SystemX11.cc.
References GHOST_kButtonMaskButton4, GHOST_kButtonMaskButton5, GHOST_kButtonMaskLeft, GHOST_kButtonMaskMiddle, GHOST_kButtonMaskRight, GHOST_kFailure, GHOST_kSuccess, and GHOST_Buttons::set().
|
overridevirtual |
Return features supported by the system back-end.
The resulting value doesn't change at run-time.
Implements GHOST_ISystem.
Definition at line 1807 of file GHOST_SystemX11.cc.
References GHOST_CAPABILITY_FLAG_ALL, GHOST_kCapabilityClipboardImage, GHOST_kCapabilityCursorGenerator, GHOST_kCapabilityCursorRGBA, GHOST_kCapabilityInputIME, and GHOST_kCapabilityWindowDecorationStyles.
|
overridevirtual |
Returns unsigned char from CUT_BUFFER0
| selection | Get selection, X11 only feature. |
Implements GHOST_System.
Definition at line 2236 of file GHOST_SystemX11.cc.
References atom_, free(), getClipboard_xcout(), GHOST_WindowX11::getXWindow(), None, txt_cut_buffer, txt_select_buffer, GHOST_System::window_manager_, XCLIB_XCOUT_FALLBACK, XCLIB_XCOUT_FALLBACK_COMP, XCLIB_XCOUT_FALLBACK_TEXT, XCLIB_XCOUT_FALLBACK_UTF8, and XCLIB_XCOUT_NONE.
| void GHOST_SystemX11::getClipboard_xcout | ( | const XEvent * | evt, |
| Atom | sel, | ||
| Atom | target, | ||
| unsigned char ** | txt, | ||
| unsigned long * | len, | ||
| unsigned int * | context ) const |
Helped function for get data from the clipboard.
Definition at line 2036 of file GHOST_SystemX11.cc.
References atom_, free(), GHOST_WindowX11::getXWindow(), len, None, GHOST_System::window_manager_, XCLIB_XCOUT_FALLBACK_COMP, XCLIB_XCOUT_FALLBACK_TEXT, XCLIB_XCOUT_FALLBACK_UTF8, XCLIB_XCOUT_INCR, XCLIB_XCOUT_NONE, and XCLIB_XCOUT_SENTCONVSEL.
Referenced by getClipboard().
|
overridevirtual |
Returns the current location of the cursor (location in screen coordinates)
Implements GHOST_ISystem.
Definition at line 1743 of file GHOST_SystemX11.cc.
References getCursorPosition_impl(), x, and y.
Referenced by getPixelAtCursor(), and setCursorPosition().
|
overridevirtual |
Returns the dimensions of the main display on this system.
Implements GHOST_ISystem.
Definition at line 334 of file GHOST_SystemX11.cc.
References getAllDisplayDimensions().
|
overridevirtual |
Returns the system time. Returns the number of milliseconds since the start of the system process.
Implements GHOST_ISystem.
Definition at line 259 of file GHOST_SystemX11.cc.
References GHOST_ASSERT.
Referenced by createWindow(), ms_from_input_time(), and processEvents().
|
overridevirtual |
Returns the state of all modifier keys.
| keys | The state of all modifier keys (true == pressed). |
Implements GHOST_System.
Definition at line 1638 of file GHOST_SystemX11.cc.
References GHOST_kModifierKeyLeftAlt, GHOST_kModifierKeyLeftControl, GHOST_kModifierKeyLeftHyper, GHOST_kModifierKeyLeftOS, GHOST_kModifierKeyLeftShift, GHOST_kModifierKeyRightAlt, GHOST_kModifierKeyRightControl, GHOST_kModifierKeyRightHyper, GHOST_kModifierKeyRightOS, GHOST_kModifierKeyRightShift, GHOST_kSuccess, and GHOST_ModifierKeys::set().
|
overridevirtual |
Returns the number of displays on this system.
Implements GHOST_ISystem.
Definition at line 329 of file GHOST_SystemX11.cc.
|
overridevirtual |
Get the color of the pixel at the current mouse cursor location
| r_color | returned sRGB float colors |
Reimplemented from GHOST_System.
Definition at line 1605 of file GHOST_SystemX11.cc.
References getCursorPosition(), GHOST_kFailure, GHOST_kSuccess, x, and y.
|
inline |
return a pointer to the X11 display structure
Definition at line 191 of file GHOST_SystemX11.hh.
References Display.
|
overridevirtual |
Initialize the system.
Reimplemented from GHOST_System.
Definition at line 245 of file GHOST_SystemX11.cc.
References GHOST_kFailure, GHOST_kSuccess, and GHOST_System::init().
| uint64_t GHOST_SystemX11::ms_from_input_time | ( | const Time | timestamp | ) | const |
Use this function instead of GHOST_System::getMilliSeconds, passing in the time-stamp from X to input to get the event time-stamp with an offset applied to make it compatible with getMilliSeconds.
Definition at line 270 of file GHOST_SystemX11.cc.
References getMilliSeconds(), UINT32_MAX, and UNLIKELY.
Referenced by processEvents().
|
overridevirtual |
Retrieves events from the system and stores them in the queue.
| waitForEvent | Flag to wait for an event (or return immediately). |
Implements GHOST_ISystem.
Definition at line 591 of file GHOST_SystemX11.cc.
References ARRAY_SIZE, ELEM, GHOST_TimerManager::fireTimers(), getMilliSeconds(), GHOST_System::getTimerManager(), GHOST_kEventKeyDown, ghost_key_from_keysym(), GHOST_kFireTimeNever, GHOST_PRINT, i, ms_from_input_time(), next, GHOST_TimerManager::nextFireTime(), processEvents(), pushEvent, and SleepTillEvent().
Referenced by processEvents().
|
overridevirtual |
Puts buffer to system clipboard
| buffer | The buffer to copy to the clipboard. |
| selection | Set the selection into the clipboard, X11 only feature. |
Implements GHOST_System.
Definition at line 2348 of file GHOST_SystemX11.cc.
References atom_, free(), GHOST_WindowX11::getXWindow(), txt_cut_buffer, txt_select_buffer, and GHOST_System::window_manager_.
|
inlineoverridevirtual |
|
overridevirtual |
Updates the location of the cursor (location in screen coordinates). Not all operating systems allow the cursor to be moved (without the input device being moved).
Implements GHOST_ISystem.
Definition at line 1749 of file GHOST_SystemX11.cc.
References getCursorPosition(), getCursorPosition_impl(), GHOST_kFailure, GHOST_kSuccess, None, x, and y.
|
overridevirtual |
Show a system message box
| title | The title of the message box. |
| message | The message to display. |
| help_label | Help button label. |
| continue_label | Continue button label. |
| link | An optional hyperlink. |
| dialog_options | Options how to display the message. |
Reimplemented from GHOST_System.
Definition at line 2493 of file GHOST_SystemX11.cc.
References DialogData::drawButton(), e, free(), GHOST_kSuccess, GHOST_PRINTF, DialogData::height, i, DialogData::isInsideButton(), DialogData::line_height, DialogData::padding_x, split(), and DialogData::width.
Referenced by GHOST_WindowX11::GHOST_WindowX11().
| Atom GHOST_SystemX11::_MOTIF_WM_HINTS |
Definition at line 309 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::_NET_WM_STATE |
Definition at line 305 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::_NET_WM_STATE_FULLSCREEN |
Definition at line 308 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::_NET_WM_STATE_MAXIMIZED_HORZ |
Definition at line 306 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::_NET_WM_STATE_MAXIMIZED_VERT |
Definition at line 307 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| struct { ... } GHOST_SystemX11::atom_ |
Referenced by getClipboard(), getClipboard_xcout(), GHOST_SystemX11(), and putClipboard().
| Atom GHOST_SystemX11::C_STRING |
Definition at line 317 of file GHOST_SystemX11.hh.
| Atom GHOST_SystemX11::CLIPBOARD |
Definition at line 320 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::COMPOUND_TEXT |
Definition at line 318 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::INCR |
Definition at line 323 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::PRIMARY |
Definition at line 321 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::STRING |
Definition at line 316 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::TARGETS |
Definition at line 315 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::TEXT |
Definition at line 319 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::UTF8_STRING |
Definition at line 324 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::WM_CHANGE_STATE |
Definition at line 304 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::WM_DELETE_WINDOW |
Definition at line 312 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::WM_PROTOCOLS |
Definition at line 311 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::WM_STATE |
Atom used for ICCCM, WM-spec and Motif. We only need get this atom at the start, it's relative to the display not the window and are public for every window that need it.
Definition at line 303 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::WM_TAKE_FOCUS |
Definition at line 310 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().
| Atom GHOST_SystemX11::XCLIP_OUT |
Definition at line 322 of file GHOST_SystemX11.hh.
Referenced by GHOST_SystemX11().