JUCE  v6.1.6 (6.0.8-1114)
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce::XWindowSystem Class Reference

#include <juce_linux_XWindowSystem.h>

Inheritance diagram for juce::XWindowSystem:
Collaboration diagram for juce::XWindowSystem:

Classes

struct  DisplayVisuals
 
struct  VisualAndDepth
 

Public Member Functions

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

Static Public Member Functions

static void deleteAll ()
 Deletes all extant objects. More...
 
static String getThemeNameSettingName ()
 
static String getWindowScalingFactorSettingName ()
 

Private Member Functions

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

Static Private Member Functions

static void windowMessageReceive (XEvent &)
 

Private Attributes

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

Constructor & Destructor Documentation

◆ XWindowSystem()

juce::XWindowSystem::XWindowSystem ( )
private

◆ ~XWindowSystem()

juce::XWindowSystem::~XWindowSystem ( )
private

Member Function Documentation

◆ addPendingPaintForWindow()

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

◆ addWindowButtons()

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

◆ blitToWindow()

void juce::XWindowSystem::blitToWindow ( ::Window  ,
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  ,
Point< int localPos 
) const

◆ copyTextToClipboard()

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

◆ createCustomMouseCursorInfo()

Cursor juce::XWindowSystem::createCustomMouseCursorInfo ( const 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  ) const

◆ createStandardMouseCursor()

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

◆ createWindow()

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

◆ deleteAll()

static void juce::DeletedAtShutdown::deleteAll ( )
staticinherited

Deletes all extant objects.

This shouldn't be used by applications, as it's called automatically in the shutdown code of the JUCEApplicationBase class.

◆ deleteIconPixmaps()

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

◆ deleteKeyProxy()

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

◆ deleteMouseCursor()

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

◆ destroyWindow()

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

◆ destroyXDisplay()

void juce::XWindowSystem::destroyXDisplay ( )
private

◆ dismissBlockingModals() [1/2]

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

◆ dismissBlockingModals() [2/2]

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

◆ externalDragFileInit()

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

◆ externalDragTextInit()

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

◆ findDisplays()

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

◆ findTopLevelWindowOf()

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

◆ getAtoms()

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

References atoms.

◆ getBorderSize()

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

◆ getCurrentMousePosition()

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

◆ getDisplay()

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

References display.

◆ getFocusWindow()

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

◆ getLocalClipboardContent()

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

References localClipboardContent.

◆ getNativeRealtimeModifiers()

ModifierKeys juce::XWindowSystem::getNativeRealtimeModifiers ( ) const

◆ getNumPaintsPendingForWindow()

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

◆ getPhysicalParentScreenPosition()

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

◆ getTextFromClipboard()

String juce::XWindowSystem::getTextFromClipboard ( ) const

◆ getThemeNameSettingName()

static String juce::XWindowSystem::getThemeNameSettingName ( )
inlinestatic

◆ getUserTime()

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

◆ getWindowBounds()

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

◆ getWindowScalingFactorSettingName()

static String juce::XWindowSystem::getWindowScalingFactorSettingName ( )
inlinestatic

◆ getXSettings()

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

References xSettings.

◆ grabFocus()

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

◆ handleButtonPressEvent() [1/2]

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

◆ handleButtonPressEvent() [2/2]

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

◆ handleButtonReleaseEvent()

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

◆ handleClientMessageEvent()

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

◆ handleConfigureNotifyEvent()

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

◆ handleEnterNotifyEvent()

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

◆ handleExposeEvent()

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

◆ handleFocusInEvent()

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

◆ handleFocusOutEvent()

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

◆ handleGravityNotify()

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

◆ handleKeyPressEvent()

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

◆ handleKeyReleaseEvent()

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

◆ handleLeaveNotifyEvent()

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

◆ handleMappingNotify()

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

◆ handleMotionNotifyEvent()

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

◆ handleWheelEvent()

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

◆ handleWindowMessage()

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

◆ handleXEmbedMessage()

void juce::XWindowSystem::handleXEmbedMessage ( LinuxComponentPeer *  ,
XClientMessageEvent &   
) 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  ) const

◆ isFrontWindow()

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

◆ isKeyCurrentlyDown()

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

◆ isMinimised()

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

◆ isParentWindowOf()

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

◆ isX11Available()

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

References xIsAvailable.

◆ processPendingPaintsForWindow()

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

◆ propertyNotifyEvent()

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

◆ removePendingPaintForWindow()

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

◆ removeWindowDecorations()

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

◆ setBounds()

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

◆ setIcon()

void juce::XWindowSystem::setIcon ( ::Window  ,
const Image  
) const

◆ setMaximised()

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

◆ setMinimised()

void juce::XWindowSystem::setMinimised ( ::Window  ,
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  ,
const String  
) const

◆ setVisible()

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

◆ setWindowType()

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

◆ showCursor()

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

◆ toBehind()

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

◆ toFront()

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

◆ updateConstraints() [1/2]

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

◆ updateConstraints() [2/2]

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

◆ updateModifierMappings()

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

◆ windowMessageReceive()

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

◆ xchangeProperty()

void juce::XWindowSystem::xchangeProperty ( ::Window  ,
Atom  ,
Atom  ,
int  ,
const void *  ,
int   
) const
private

Member Data Documentation

◆ atoms

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

Referenced by getAtoms().

◆ display

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

Referenced by getDisplay().

◆ 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

Referenced by isX11Available().

◆ xSettings

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

Referenced by getXSettings().


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