LMMS
Loading...
Searching...
No Matches
juce::XWindowSystem Class Reference

#include <juce_linux_XWindowSystem.h>

Inheritance diagram for juce::XWindowSystem:
juce::DeletedAtShutdown

Classes

struct  VisualAndDepth
struct  DisplayVisuals

Public Member Functions

::Window createWindow (::Window parentWindow, LinuxComponentPeer *) const
void destroyWindow (::Window)
void setTitle (::Window, const String &) const
void setIcon (::Window, const Image &) const
void setVisible (::Window, bool shouldBeVisible) const
void setBounds (::Window, Rectangle< int >, bool fullScreen) const
void updateConstraints (::Window) const
ComponentPeer::OptionalBorderSize getBorderSize (::Window) const
Rectangle< intgetWindowBounds (::Window, ::Window parentWindow)
Point< intgetPhysicalParentScreenPosition () const
bool contains (::Window, Point< int > localPos) const
void setMinimised (::Window, bool shouldBeMinimised) const
bool isMinimised (::Window) const
void setMaximised (::Window, bool shouldBeMinimised) const
void toFront (::Window, bool makeActive) const
void toBehind (::Window, ::Window otherWindow) const
bool isFocused (::Window) const
bool grabFocus (::Window) const
bool canUseSemiTransparentWindows () const
bool canUseARGBImages () const
bool isDarkModeActive () const
int getNumPaintsPendingForWindow (::Window)
void processPendingPaintsForWindow (::Window)
void addPendingPaintForWindow (::Window)
void removePendingPaintForWindow (::Window)
Image createImage (bool isSemiTransparentWindow, int width, int height, bool argb) const
void blitToWindow (::Window, Image, Rectangle< int > destinationRect, Rectangle< int > totalRect) const
void setScreenSaverEnabled (bool enabled) const
Point< float > getCurrentMousePosition () const
void setMousePosition (Point< float > pos) const
Cursor createCustomMouseCursorInfo (const Image &, Point< int > hotspot) const
void deleteMouseCursor (Cursor cursorHandle) const
Cursor createStandardMouseCursor (MouseCursor::StandardCursorType) const
void showCursor (::Window, Cursor cursorHandle) const
bool isKeyCurrentlyDown (int keyCode) const
ModifierKeys getNativeRealtimeModifiers () const
Array< Displays::DisplayfindDisplays (float masterScale) const
::Window createKeyProxy (::Window) const
void deleteKeyProxy (::Window) const
bool externalDragFileInit (LinuxComponentPeer *, const StringArray &files, bool canMove, std::function< void()> &&callback) const
bool externalDragTextInit (LinuxComponentPeer *, const String &text, std::function< void()> &&callback) const
void copyTextToClipboard (const String &)
String getTextFromClipboard () const
String getLocalClipboardContent () const noexcept
::Display * getDisplay () const noexcept
const XWindowSystemUtilities::AtomsgetAtoms () const noexcept
XWindowSystemUtilities::XSettingsgetXSettings () const noexcept
bool isX11Available () const noexcept
void handleWindowMessage (LinuxComponentPeer *, XEvent &) const
bool isParentWindowOf (::Window, ::Window possibleChild) const

Static Public Member Functions

static String getWindowScalingFactorSettingName ()
static String getThemeNameSettingName ()
Static Public Member Functions inherited from juce::DeletedAtShutdown
static void deleteAll ()

Private Member Functions

 XWindowSystem ()
 ~XWindowSystem ()
bool initialiseXDisplay ()
void destroyXDisplay ()
::Window getFocusWindow (::Window) const
bool isFrontWindow (::Window) const
void xchangeProperty (::Window, Atom, Atom, int, const void *, int) const
void removeWindowDecorations (::Window) const
void addWindowButtons (::Window, int) const
void setWindowType (::Window, int) const
void initialisePointerMap ()
void deleteIconPixmaps (::Window) const
void updateModifierMappings () const
long getUserTime (::Window) const
void initialiseXSettings ()
void handleKeyPressEvent (LinuxComponentPeer *, XKeyEvent &) const
void handleKeyReleaseEvent (LinuxComponentPeer *, const XKeyEvent &) const
void handleWheelEvent (LinuxComponentPeer *, const XButtonPressedEvent &, float) const
void handleButtonPressEvent (LinuxComponentPeer *, const XButtonPressedEvent &, int) const
void handleButtonPressEvent (LinuxComponentPeer *, const XButtonPressedEvent &) const
void handleButtonReleaseEvent (LinuxComponentPeer *, const XButtonReleasedEvent &) const
void handleMotionNotifyEvent (LinuxComponentPeer *, const XPointerMovedEvent &) const
void handleEnterNotifyEvent (LinuxComponentPeer *, const XEnterWindowEvent &) const
void handleLeaveNotifyEvent (LinuxComponentPeer *, const XLeaveWindowEvent &) const
void handleFocusInEvent (LinuxComponentPeer *) const
void handleFocusOutEvent (LinuxComponentPeer *) const
void handleExposeEvent (LinuxComponentPeer *, XExposeEvent &) const
void handleConfigureNotifyEvent (LinuxComponentPeer *, XConfigureEvent &) const
void handleGravityNotify (LinuxComponentPeer *) const
void propertyNotifyEvent (LinuxComponentPeer *, const XPropertyEvent &) const
void handleMappingNotify (XMappingEvent &) const
void handleClientMessageEvent (LinuxComponentPeer *, XClientMessageEvent &, XEvent &) const
void handleXEmbedMessage (LinuxComponentPeer *, XClientMessageEvent &) const
void dismissBlockingModals (LinuxComponentPeer *) const
void dismissBlockingModals (LinuxComponentPeer *, const XConfigureEvent &) const
void updateConstraints (::Window, ComponentPeer &) const
::Window findTopLevelWindowOf (::Window) const

Static Private Member Functions

static void windowMessageReceive (XEvent &)

Private Attributes

bool xIsAvailable = false
XWindowSystemUtilities::Atoms atoms
::Display * display = nullptr
std::unique_ptr< DisplayVisualsdisplayVisuals
std::unique_ptr< XWindowSystemUtilities::XSettingsxSettings
int shmCompletionEvent = 0
int pointerMap [5] = {}
String localClipboardContent
Point< intparentScreenPosition

Additional Inherited Members

Protected Member Functions inherited from juce::DeletedAtShutdown
 DeletedAtShutdown ()
virtual ~DeletedAtShutdown ()

Constructor & Destructor Documentation

◆ XWindowSystem()

juce::XWindowSystem::XWindowSystem ( )
private

◆ ~XWindowSystem()

juce::XWindowSystem::~XWindowSystem ( )
private

Member Function Documentation

◆ addPendingPaintForWindow()

void juce::XWindowSystem::addPendingPaintForWindow ( ::Window windowH)

◆ addWindowButtons()

void juce::XWindowSystem::addWindowButtons ( ::Window windowH,
int styleFlags ) const
private

◆ blitToWindow()

void juce::XWindowSystem::blitToWindow ( ::Window windowH,
Image image,
Rectangle< int > destinationRect,
Rectangle< int > totalRect ) const

◆ canUseARGBImages()

bool juce::XWindowSystem::canUseARGBImages ( ) const

◆ canUseSemiTransparentWindows()

bool juce::XWindowSystem::canUseSemiTransparentWindows ( ) const

◆ contains()

bool juce::XWindowSystem::contains ( ::Window windowH,
Point< int > localPos ) const

◆ copyTextToClipboard()

void juce::XWindowSystem::copyTextToClipboard ( const String & clipText)

◆ createCustomMouseCursorInfo()

Cursor juce::XWindowSystem::createCustomMouseCursorInfo ( const Image & image,
Point< int > hotspot ) const

◆ createImage()

Image juce::XWindowSystem::createImage ( bool isSemiTransparentWindow,
int width,
int height,
bool argb ) const

◆ createKeyProxy()

Window juce::XWindowSystem::createKeyProxy ( ::Window windowH) const

◆ createStandardMouseCursor()

Cursor juce::XWindowSystem::createStandardMouseCursor ( MouseCursor::StandardCursorType type) const

◆ createWindow()

Window juce::XWindowSystem::createWindow ( ::Window parentWindow,
LinuxComponentPeer * peer ) const

◆ deleteIconPixmaps()

void juce::XWindowSystem::deleteIconPixmaps ( ::Window windowH) const
private

◆ deleteKeyProxy()

void juce::XWindowSystem::deleteKeyProxy ( ::Window keyProxy) const

◆ deleteMouseCursor()

void juce::XWindowSystem::deleteMouseCursor ( Cursor cursorHandle) const

◆ destroyWindow()

void juce::XWindowSystem::destroyWindow ( ::Window windowH)

◆ destroyXDisplay()

void juce::XWindowSystem::destroyXDisplay ( )
private

◆ dismissBlockingModals() [1/2]

void juce::XWindowSystem::dismissBlockingModals ( LinuxComponentPeer * peer) const
private

◆ dismissBlockingModals() [2/2]

void juce::XWindowSystem::dismissBlockingModals ( LinuxComponentPeer * peer,
const XConfigureEvent & configure ) const
private

◆ externalDragFileInit()

bool juce::XWindowSystem::externalDragFileInit ( LinuxComponentPeer * peer,
const StringArray & files,
bool canMove,
std::function< void()> && callback ) const

◆ externalDragTextInit()

bool juce::XWindowSystem::externalDragTextInit ( LinuxComponentPeer * peer,
const String & text,
std::function< void()> && callback ) const

◆ findDisplays()

Array< Displays::Display > juce::XWindowSystem::findDisplays ( float masterScale) const

◆ findTopLevelWindowOf()

Window juce::XWindowSystem::findTopLevelWindowOf ( ::Window w) const
private

◆ getAtoms()

const XWindowSystemUtilities::Atoms & juce::XWindowSystem::getAtoms ( ) const
inlinenoexcept

◆ getBorderSize()

ComponentPeer::OptionalBorderSize juce::XWindowSystem::getBorderSize ( ::Window windowH) const

◆ getCurrentMousePosition()

Point< float > juce::XWindowSystem::getCurrentMousePosition ( ) const

◆ getDisplay()

::Display * juce::XWindowSystem::getDisplay ( ) const
inlinenoexcept

◆ getFocusWindow()

Window juce::XWindowSystem::getFocusWindow ( ::Window windowH) const
private

◆ getLocalClipboardContent()

String juce::XWindowSystem::getLocalClipboardContent ( ) const
inlinenoexcept

◆ getNativeRealtimeModifiers()

ModifierKeys juce::XWindowSystem::getNativeRealtimeModifiers ( ) const

◆ getNumPaintsPendingForWindow()

int juce::XWindowSystem::getNumPaintsPendingForWindow ( ::Window windowH)

◆ getPhysicalParentScreenPosition()

Point< int > juce::XWindowSystem::getPhysicalParentScreenPosition ( ) const

◆ getTextFromClipboard()

String juce::XWindowSystem::getTextFromClipboard ( ) const

◆ getThemeNameSettingName()

String juce::XWindowSystem::getThemeNameSettingName ( )
inlinestatic

◆ getUserTime()

long juce::XWindowSystem::getUserTime ( ::Window windowH) const
private

◆ getWindowBounds()

Rectangle< int > juce::XWindowSystem::getWindowBounds ( ::Window windowH,
::Window parentWindow )

◆ getWindowScalingFactorSettingName()

String juce::XWindowSystem::getWindowScalingFactorSettingName ( )
inlinestatic

◆ getXSettings()

XWindowSystemUtilities::XSettings * juce::XWindowSystem::getXSettings ( ) const
inlinenoexcept

◆ grabFocus()

bool juce::XWindowSystem::grabFocus ( ::Window windowH) const

◆ handleButtonPressEvent() [1/2]

void juce::XWindowSystem::handleButtonPressEvent ( LinuxComponentPeer * peer,
const XButtonPressedEvent & buttonPressEvent ) const
private

◆ handleButtonPressEvent() [2/2]

void juce::XWindowSystem::handleButtonPressEvent ( LinuxComponentPeer * peer,
const XButtonPressedEvent & buttonPressEvent,
int buttonModifierFlag ) const
private

◆ handleButtonReleaseEvent()

void juce::XWindowSystem::handleButtonReleaseEvent ( LinuxComponentPeer * peer,
const XButtonReleasedEvent & buttonRelEvent ) const
private

◆ handleClientMessageEvent()

void juce::XWindowSystem::handleClientMessageEvent ( LinuxComponentPeer * peer,
XClientMessageEvent & clientMsg,
XEvent & event ) const
private

◆ handleConfigureNotifyEvent()

void juce::XWindowSystem::handleConfigureNotifyEvent ( LinuxComponentPeer * peer,
XConfigureEvent & confEvent ) const
private

◆ handleEnterNotifyEvent()

void juce::XWindowSystem::handleEnterNotifyEvent ( LinuxComponentPeer * peer,
const XEnterWindowEvent & enterEvent ) const
private

◆ handleExposeEvent()

void juce::XWindowSystem::handleExposeEvent ( LinuxComponentPeer * peer,
XExposeEvent & exposeEvent ) const
private

◆ handleFocusInEvent()

void juce::XWindowSystem::handleFocusInEvent ( LinuxComponentPeer * peer) const
private

◆ handleFocusOutEvent()

void juce::XWindowSystem::handleFocusOutEvent ( LinuxComponentPeer * peer) const
private

◆ handleGravityNotify()

void juce::XWindowSystem::handleGravityNotify ( LinuxComponentPeer * peer) const
private

◆ handleKeyPressEvent()

void juce::XWindowSystem::handleKeyPressEvent ( LinuxComponentPeer * peer,
XKeyEvent & keyEvent ) const
private

◆ handleKeyReleaseEvent()

void juce::XWindowSystem::handleKeyReleaseEvent ( LinuxComponentPeer * peer,
const XKeyEvent & keyEvent ) const
private

◆ handleLeaveNotifyEvent()

void juce::XWindowSystem::handleLeaveNotifyEvent ( LinuxComponentPeer * peer,
const XLeaveWindowEvent & leaveEvent ) const
private

◆ handleMappingNotify()

void juce::XWindowSystem::handleMappingNotify ( XMappingEvent & mappingEvent) const
private

◆ handleMotionNotifyEvent()

void juce::XWindowSystem::handleMotionNotifyEvent ( LinuxComponentPeer * peer,
const XPointerMovedEvent & movedEvent ) const
private

◆ handleWheelEvent()

void juce::XWindowSystem::handleWheelEvent ( LinuxComponentPeer * peer,
const XButtonPressedEvent & buttonPressEvent,
float amount ) const
private

◆ handleWindowMessage()

void juce::XWindowSystem::handleWindowMessage ( LinuxComponentPeer * peer,
XEvent & event ) const

◆ handleXEmbedMessage()

void juce::XWindowSystem::handleXEmbedMessage ( LinuxComponentPeer * peer,
XClientMessageEvent & clientMsg ) const
private

◆ initialisePointerMap()

void juce::XWindowSystem::initialisePointerMap ( )
private

◆ initialiseXDisplay()

bool juce::XWindowSystem::initialiseXDisplay ( )
private

◆ initialiseXSettings()

void juce::XWindowSystem::initialiseXSettings ( )
private

◆ isDarkModeActive()

bool juce::XWindowSystem::isDarkModeActive ( ) const

◆ isFocused()

bool juce::XWindowSystem::isFocused ( ::Window windowH) const

◆ isFrontWindow()

bool juce::XWindowSystem::isFrontWindow ( ::Window windowH) const
private

◆ isKeyCurrentlyDown()

bool juce::XWindowSystem::isKeyCurrentlyDown ( int keyCode) const

◆ isMinimised()

bool juce::XWindowSystem::isMinimised ( ::Window windowH) const

◆ isParentWindowOf()

bool juce::XWindowSystem::isParentWindowOf ( ::Window windowH,
::Window possibleChild ) const

◆ isX11Available()

bool juce::XWindowSystem::isX11Available ( ) const
inlinenoexcept

◆ processPendingPaintsForWindow()

void juce::XWindowSystem::processPendingPaintsForWindow ( ::Window windowH)

◆ propertyNotifyEvent()

void juce::XWindowSystem::propertyNotifyEvent ( LinuxComponentPeer * peer,
const XPropertyEvent & event ) const
private

◆ removePendingPaintForWindow()

void juce::XWindowSystem::removePendingPaintForWindow ( ::Window windowH)

◆ removeWindowDecorations()

void juce::XWindowSystem::removeWindowDecorations ( ::Window windowH) const
private

◆ setBounds()

void juce::XWindowSystem::setBounds ( ::Window windowH,
Rectangle< int > newBounds,
bool fullScreen ) const

◆ setIcon()

void juce::XWindowSystem::setIcon ( ::Window windowH,
const Image & newIcon ) const

◆ setMaximised()

void juce::XWindowSystem::setMaximised ( ::Window windowH,
bool shouldBeMinimised ) const

◆ setMinimised()

void juce::XWindowSystem::setMinimised ( ::Window windowH,
bool shouldBeMinimised ) const

◆ setMousePosition()

void juce::XWindowSystem::setMousePosition ( Point< float > pos) const

◆ setScreenSaverEnabled()

void juce::XWindowSystem::setScreenSaverEnabled ( bool enabled) const

◆ setTitle()

void juce::XWindowSystem::setTitle ( ::Window windowH,
const String & title ) const

◆ setVisible()

void juce::XWindowSystem::setVisible ( ::Window windowH,
bool shouldBeVisible ) const

◆ setWindowType()

void juce::XWindowSystem::setWindowType ( ::Window windowH,
int styleFlags ) const
private

◆ showCursor()

void juce::XWindowSystem::showCursor ( ::Window windowH,
Cursor cursorHandle ) const

◆ toBehind()

void juce::XWindowSystem::toBehind ( ::Window windowH,
::Window otherWindow ) const

◆ toFront()

void juce::XWindowSystem::toFront ( ::Window windowH,
bool makeActive ) const

◆ updateConstraints() [1/2]

void juce::XWindowSystem::updateConstraints ( ::Window windowH) const

◆ updateConstraints() [2/2]

void juce::XWindowSystem::updateConstraints ( ::Window windowH,
ComponentPeer & peer ) const
private

◆ updateModifierMappings()

void juce::XWindowSystem::updateModifierMappings ( ) const
private

◆ windowMessageReceive()

void juce::XWindowSystem::windowMessageReceive ( XEvent & event)
staticprivate

◆ xchangeProperty()

void juce::XWindowSystem::xchangeProperty ( ::Window windowH,
Atom property,
Atom type,
int format,
const void * data,
int numElements ) const
private

Member Data Documentation

◆ atoms

XWindowSystemUtilities::Atoms juce::XWindowSystem::atoms
private

◆ display

::Display* juce::XWindowSystem::display = nullptr
private

◆ displayVisuals

std::unique_ptr<DisplayVisuals> juce::XWindowSystem::displayVisuals
private

◆ localClipboardContent

String juce::XWindowSystem::localClipboardContent
private

◆ parentScreenPosition

Point<int> juce::XWindowSystem::parentScreenPosition
private

◆ pointerMap

int juce::XWindowSystem::pointerMap[5] = {}
private

◆ shmCompletionEvent

int juce::XWindowSystem::shmCompletionEvent = 0
private

◆ xIsAvailable

bool juce::XWindowSystem::xIsAvailable = false
private

◆ xSettings

std::unique_ptr<XWindowSystemUtilities::XSettings> juce::XWindowSystem::xSettings
private

The documentation for this class was generated from the following files: