20#ifndef INCLUDED_VCL_INC_UNX_SALDISP_HXX
21#define INCLUDED_VCL_INC_UNX_SALDISP_HXX
25#include <X11/extensions/render.h>
28#include <rtl/string.hxx>
35#include <unordered_map>
93 assert(&other !=
this);
162 bool Yield(
bool bWait,
bool bHandleAllCurrentEvents );
182class AttributeProvider;
201 virtual bool Synchronize(
bool bOnoff)
const override;
229 m_aRefWindow(
None ),
232 m_aAndInvertedGC(
None ),
235 m_aStippleGC(
None ),
304 sal_uInt16
GetKeyCode( KeySym keysym,
char*pcPrintable )
const;
308 KeySym *pUnmodifiedKeySym,
310 XIC =
nullptr )
const;
318 if( nXScreen.
getXScreen() >= m_aScreens.size() )
319 return m_aInvalidScreenData;
320 if( ! m_aScreens[nXScreen.
getXScreen()].m_bInit )
321 initScreen( nXScreen );
341 { mpKbdExtension = pKbdExtension; }
346 {
return getDataForScreen( nXScreen ).m_aRoot; }
374 std::u16string_view pLang,
379 assert(data !=
nullptr);
virtual bool Synchronize(bool bOnoff) const override
virtual ~GLX11Window() override
bool HasGLXExtension(const char *name) const
SalGenericDisplay * GetDisplay() const
SalColormap(const SalDisplay *pSalDisplay, Colormap hColormap, SalX11Screen nXScreen)
bool GetXPixels(XColor &rColor, int r, int g, int b) const
std::vector< Color > m_aPalette
Display * GetXDisplay() const
Pixel GetBlackPixel() const
const SalDisplay * GetDisplay() const
const SalVisual & GetVisual() const
Pixel GetWhitePixel() const
const SalDisplay * m_pDisplay
SalColormap(SalColormap &&)=default
Colormap GetXColormap() const
OwnershipFlag m_aVisualOwnership
bool GetXPixel(XColor &rColor, int r, int g, int b) const
SalColormap(sal_uInt16 nDepth)
SalColormap & operator=(SalColormap &&)=default
srv_vendor_t GetServerVendor() const
SalX11Screen m_nXDefaultScreen
unsigned int GetXScreenCount() const
std::vector< ScreenData > m_aScreens
ScreenData * initScreen(SalX11Screen nXScreen) const
const SalColormap & GetColormap(SalX11Screen nXScreen) const
OUString GetKeyName(sal_uInt16 nKeyCode) const
::Window GetRootWindow(SalX11Screen nXScreen) const
Time GetEventTimeImpl(bool bAlwaysReget=false) const
Cursor GetPointer(PointerStyle ePointerStyle)
const ScreenData & getDataForScreen(SalX11Screen nXScreen) const
::vcl_sal::WMAdaptor * getWMAdaptor() const
int CaptureMouse(SalFrame *pCapture)
std::vector< tools::Rectangle > m_aXineramaScreens
void addXineramaScreenUnique(int i, tools::Long i_nX, tools::Long i_nY, tools::Long i_nWidth, tools::Long i_nHeight)
static void DeInitRandR()
Time m_nLastUserEventTime
const SalVisual & GetVisual(SalX11Screen nXScreen) const
SalI18N_KeyboardExtension * mpKbdExtension
void InitRandR(::Window aRoot) const
KeyIndicatorState GetIndicatorState() const
::Window GetDrawable(SalX11Screen nXScreen) const
OUString GetKeyNameFromKeySym(KeySym keysym) const
SalI18N_KeyboardExtension * GetKbdExtension() const
SalI18N_InputMethod * GetInputMethod() const
virtual ~SalDisplay() override
std::list< SalObject * > m_aSalObjects
sal_uInt16 GetKeyCode(KeySym keysym, char *pcPrintable) const
o3tl::enumarray< PointerStyle, Cursor > aPointerCache_
void SimulateKeyPress(sal_uInt16 nKeyCode)
const Size & GetScreenSize(SalX11Screen nXScreen) const
static bool BestVisual(Display *pDisp, int nScreen, XVisualInfo &rVI)
std::vector< int > m_aXineramaScreenIndexMap
SalDisplay(Display *pDisp)
ScreenData m_aInvalidScreenData
Display * GetDisplay() const
sal_uLong nMaxRequestSize_
void processRandREvent(XEvent *)
const Pair & GetResolution() const
KeySym GetKeySym(XKeyEvent *pEvent, char *pPrintable, int *pLen, KeySym *pUnmodifiedKeySym, Status *pStatus, XIC=nullptr) const
Time GetLastUserEventTime() const
const SalX11Screen & GetDefaultXScreen() const
const std::vector< tools::Rectangle > & GetXineramaScreens() const
virtual void Dispatch(XEvent *pEvent)=0
void SetKbdExtension(SalI18N_KeyboardExtension *pKbdExtension)
srv_vendor_t meServerVendor
const SalFrameSet & getFrames() const
std::unique_ptr< vcl_sal::WMAdaptor > m_pWMAdaptor
std::list< SalObject * > & getSalObjects()
void DbgPrintDisplayEvent(const char *pComment, const XEvent *pEvent) const
Time GetX11ServerTime() const
A SalFrame is a system window (e.g. an X11 window).
SalVisual(const XVisualInfo *pXVI)
Visual * GetVisual() const
VisualID GetVisualId() const
virtual void TriggerUserEventProcessing() override
virtual ~SalX11Display() override
virtual void Dispatch(XEvent *pEvent) override
SalX11Display(Display *pDisp)
unsigned int getXScreen() const
SalI18N_InputMethod * GetInputMethod() const
void Insert(int fd, void *data, YieldFunc pending, YieldFunc queued, YieldFunc handle)
bool Yield(bool bWait, bool bHandleAllCurrentEvents)
std::unique_ptr< SalI18N_InputMethod > m_pInputMethod
bool CheckTimeout(bool bExecuteTimers=true)
void StartTimer(sal_uInt64 nMS)
void TriggerUserEventProcessing()
Display * GetDisplay() const
SalDisplay * getSalDisplay(GenericUnixSalData const *data)
OUString getKeysymReplacementName(std::u16string_view pLang, KeySym nSymbol)
const wchar_t *typedef int(__stdcall *DllNativeUnregProc)(int
srv_vendor_t sal_GetServerVendor(Display *p_display)
int(* YieldFunc)(int fd, void *data)
Bool(* X_if_predicate)(Display *, XEvent *, XPointer)
Holds the information of our new child window.
OwnershipFlag & operator=(OwnershipFlag &&other) noexcept
OwnershipFlag(OwnershipFlag &&other) noexcept
#define VCLPLUG_GEN_PUBLIC