NETRootInfo

Search for usage in LXR

#include <netwm.h>

Inheritance diagram for NETRootInfo:

Public Types

enum  {
  PROTOCOLS , WINDOW_TYPES , STATES , PROTOCOLS2 ,
  ACTIONS , PROPERTIES_SIZE
}
 
- Public Types inherited from NET
enum  { OnAllDesktops = -1 }
 
enum  Action {
  ActionMove = 1u << 0 , ActionResize = 1u << 1 , ActionMinimize = 1u << 2 , ActionShade = 1u << 3 ,
  ActionStick = 1u << 4 , ActionMaxVert = 1u << 5 , ActionMaxHoriz = 1u << 6 , ActionMax = ActionMaxVert | ActionMaxHoriz ,
  ActionFullScreen = 1u << 7 , ActionChangeDesktop = 1u << 8 , ActionClose = 1u << 9
}
 
typedef QFlags< ActionActions
 
enum  DesktopLayoutCorner { DesktopLayoutCornerTopLeft = 0 , DesktopLayoutCornerTopRight = 1 , DesktopLayoutCornerBottomLeft = 2 , DesktopLayoutCornerBottomRight = 3 }
 
enum  Direction {
  TopLeft = 0 , Top = 1 , TopRight = 2 , Right = 3 ,
  BottomRight = 4 , Bottom = 5 , BottomLeft = 6 , Left = 7 ,
  Move = 8 , KeyboardSize = 9 , KeyboardMove = 10 , MoveResizeCancel = 11
}
 
enum  MappingState { Visible = 1 , Withdrawn = 0 , Iconic = 3 }
 
enum  Orientation { OrientationHorizontal = 0 , OrientationVertical = 1 }
 
typedef QFlags< PropertyProperties
 
typedef QFlags< Property2Properties2
 
enum  Property {
  Supported = 1u << 0 , ClientList = 1u << 1 , ClientListStacking = 1u << 2 , NumberOfDesktops = 1u << 3 ,
  DesktopGeometry = 1u << 4 , DesktopViewport = 1u << 5 , CurrentDesktop = 1u << 6 , DesktopNames = 1u << 7 ,
  ActiveWindow = 1u << 8 , WorkArea = 1u << 9 , SupportingWMCheck = 1u << 10 , VirtualRoots = 1u << 11 ,
  CloseWindow = 1u << 13 , WMMoveResize = 1u << 14 , WMName = 1u << 15 , WMVisibleName = 1u << 16 ,
  WMDesktop = 1u << 17 , WMWindowType = 1u << 18 , WMState = 1u << 19 , WMStrut = 1u << 20 ,
  WMIconGeometry = 1u << 21 , WMIcon = 1u << 22 , WMPid = 1u << 23 , WMHandledIcons = 1u << 24 ,
  WMPing = 1u << 25 , XAWMState = 1u << 27 , WMFrameExtents = 1u << 28 , WMIconName = 1u << 29 ,
  WMVisibleIconName = 1u << 30 , WMGeometry = 1u << 31 , WMAllProperties = ~0u
}
 
enum  Property2 {
  WM2UserTime = 1u << 0 , WM2StartupId = 1u << 1 , WM2TransientFor = 1u << 2 , WM2GroupLeader = 1u << 3 ,
  WM2AllowedActions = 1u << 4 , WM2RestackWindow = 1u << 5 , WM2MoveResizeWindow = 1u << 6 , WM2ExtendedStrut = 1u << 7 ,
  WM2KDETemporaryRules = 1u << 8 , WM2WindowClass = 1u << 9 , WM2WindowRole = 1u << 10 , WM2ClientMachine = 1u << 11 ,
  WM2ShowingDesktop = 1u << 12 , WM2Opacity = 1u << 13 , WM2DesktopLayout = 1u << 14 , WM2FullPlacement = 1u << 15 ,
  WM2FullscreenMonitors = 1u << 16 , WM2FrameOverlap = 1u << 17 , WM2Activities = 1u << 18 , WM2BlockCompositing = 1u << 19 ,
  WM2KDEShadow = 1u << 20 , WM2Urgency = 1u << 21 , WM2Input = 1u << 22 , WM2Protocols = 1u << 23 ,
  WM2InitialMappingState = 1u << 24 , WM2IconPixmap = 1u << 25 , WM2OpaqueRegion = 1u << 25 , WM2DesktopFileName = 1u << 26 ,
  WM2GTKFrameExtents = 1u << 27 , WM2AppMenuServiceName = 1u << 28 , WM2AppMenuObjectPath = 1u << 29 , WM2GTKApplicationId = 1u << 30 ,
  WM2GTKShowWindowMenu = 1u << 31 , WM2AllProperties = ~0u
}
 
enum  Protocol {
  NoProtocol = 0 , TakeFocusProtocol = 1 << 0 , DeleteWindowProtocol = 1 << 1 , PingProtocol = 1 << 2 ,
  SyncRequestProtocol = 1 << 3 , ContextHelpProtocol = 1 << 4
}
 
typedef QFlags< ProtocolProtocols
 
enum  RequestSource { FromUnknown = 0 , FromApplication = 1 , FromTool = 2 }
 
enum  Role { Client , WindowManager }
 
enum  State {
  Modal = 1u << 0 , Sticky = 1u << 1 , MaxVert = 1u << 2 , MaxHoriz = 1u << 3 ,
  Max = MaxVert | MaxHoriz , Shaded = 1u << 4 , SkipTaskbar = 1u << 5 , KeepAbove = 1u << 6 ,
  SkipPager = 1u << 7 , Hidden = 1u << 8 , FullScreen = 1u << 9 , KeepBelow = 1u << 10 ,
  DemandsAttention = 1u << 11 , SkipSwitcher = 1u << 12 , Focused = 1u << 13
}
 
typedef QFlags< StateStates
 
enum  WindowType {
  Unknown = -1 , Normal = 0 , Desktop = 1 , Dock = 2 ,
  Toolbar = 3 , Menu = 4 , Dialog = 5 , Override = 6 ,
  TopMenu = 7 , Utility = 8 , Splash = 9 , DropdownMenu = 10 ,
  PopupMenu = 11 , Tooltip = 12 , Notification = 13 , ComboBox = 14 ,
  DNDIcon = 15 , OnScreenDisplay = 16 , CriticalNotification = 17 , AppletPopup = 18
}
 
enum  WindowTypeMask {
  NormalMask = 1u << 0 , DesktopMask = 1u << 1 , DockMask = 1u << 2 , ToolbarMask = 1u << 3 ,
  MenuMask = 1u << 4 , DialogMask = 1u << 5 , OverrideMask = 1u << 6 , TopMenuMask = 1u << 7 ,
  UtilityMask = 1u << 8 , SplashMask = 1u << 9 , DropdownMenuMask = 1u << 10 , PopupMenuMask = 1u << 11 ,
  TooltipMask = 1u << 12 , NotificationMask = 1u << 13 , ComboBoxMask = 1u << 14 , DNDIconMask = 1u << 15 ,
  OnScreenDisplayMask = 1u << 16 , CriticalNotificationMask = 1u << 17 , AppletPopupMask = 1u << 18 , AllTypesMask = 0U - 1
}
 
typedef QFlags< WindowTypeMaskWindowTypes
 

Public Member Functions

 NETRootInfo (const NETRootInfo &rootinfo)
 
 NETRootInfo (xcb_connection_t *connection, NET::Properties properties, NET::Properties2 properties2=NET::Properties2(), int screen=-1, bool doActivate=true)
 
 NETRootInfo (xcb_connection_t *connection, xcb_window_t supportWindow, const char *wmName, NET::Properties properties, NET::WindowTypes windowTypes, NET::States states, NET::Properties2 properties2, NET::Actions actions, int screen=-1, bool doActivate=true)
 
virtual ~NETRootInfo ()
 
void activate ()
 
xcb_window_t activeWindow () const
 
const xcb_window_t * clientList () const
 
int clientListCount () const
 
const xcb_window_t * clientListStacking () const
 
int clientListStackingCount () const
 
void closeWindowRequest (xcb_window_t window)
 
int currentDesktop (bool ignore_viewport=false) const
 
NETSize desktopGeometry () const
 
QSize desktopLayoutColumnsRows () const
 
NET::DesktopLayoutCorner desktopLayoutCorner () const
 
NET::Orientation desktopLayoutOrientation () const
 
const char * desktopName (int desktop) const
 
NETPoint desktopViewport (int desktop) const
 
NET::Properties event (xcb_generic_event_t *event)
 
void event (xcb_generic_event_t *event, NET::Properties *properties, NET::Properties2 *properties2=nullptr)
 
bool isSupported (NET::Action action) const
 
bool isSupported (NET::Property property) const
 
bool isSupported (NET::Property2 property) const
 
bool isSupported (NET::State state) const
 
bool isSupported (NET::WindowTypeMask type) const
 
void moveResizeRequest (xcb_window_t window, int x_root, int y_root, Direction direction, xcb_button_t button=XCB_BUTTON_INDEX_ANY, RequestSource source=RequestSource::FromUnknown)
 
void moveResizeWindowRequest (xcb_window_t window, int flags, int x, int y, int width, int height)
 
int numberOfDesktops (bool ignore_viewport=false) const
 
const NETRootInfooperator= (const NETRootInfo &rootinfo)
 
NET::Actions passedActions () const
 
NET::Properties passedProperties () const
 
NET::Properties2 passedProperties2 () const
 
NET::States passedStates () const
 
NET::WindowTypes passedWindowTypes () const
 
void restackRequest (xcb_window_t window, RequestSource source, xcb_window_t above, int detail, xcb_timestamp_t timestamp)
 
xcb_window_t rootWindow () const
 
void sendPing (xcb_window_t window, xcb_timestamp_t timestamp)
 
void setActiveWindow (xcb_window_t window)
 
void setActiveWindow (xcb_window_t window, NET::RequestSource src, xcb_timestamp_t timestamp, xcb_window_t active_window)
 
void setClientList (const xcb_window_t *windows, unsigned int count)
 
void setClientListStacking (const xcb_window_t *windows, unsigned int count)
 
void setCurrentDesktop (int desktop, bool ignore_viewport=false)
 
void setDesktopGeometry (const NETSize &geometry)
 
void setDesktopLayout (NET::Orientation orientation, int columns, int rows, NET::DesktopLayoutCorner corner)
 
void setDesktopName (int desktop, const char *desktopName)
 
void setDesktopViewport (int desktop, const NETPoint &viewport)
 
void setNumberOfDesktops (int numberOfDesktops)
 
void setShowingDesktop (bool showing)
 
void setSupported (NET::Action property, bool on=true)
 
void setSupported (NET::Property property, bool on=true)
 
void setSupported (NET::Property2 property, bool on=true)
 
void setSupported (NET::State property, bool on=true)
 
void setSupported (NET::WindowTypeMask property, bool on=true)
 
void setVirtualRoots (const xcb_window_t *windows, unsigned int count)
 
void setWorkArea (int desktop, const NETRect &workArea)
 
bool showingDesktop () const
 
void showWindowMenuRequest (xcb_window_t window, int device_id, int x_root, int y_root)
 
NET::Actions supportedActions () const
 
NET::Properties supportedProperties () const
 
NET::Properties2 supportedProperties2 () const
 
NET::States supportedStates () const
 
NET::WindowTypes supportedWindowTypes () const
 
xcb_window_t supportWindow () const
 
const xcb_window_t * virtualRoots () const
 
int virtualRootsCount () const
 
const char * wmName () const
 
NETRect workArea (int desktop) const
 
xcb_connection_t * xcbConnection () const
 

Protected Member Functions

virtual void addClient (xcb_window_t window)
 
virtual void changeActiveWindow (xcb_window_t window, NET::RequestSource src, xcb_timestamp_t timestamp, xcb_window_t active_window)
 
virtual void changeCurrentDesktop (int desktop)
 
virtual void changeDesktopGeometry (int desktop, const NETSize &geom)
 
virtual void changeDesktopViewport (int desktop, const NETPoint &viewport)
 
virtual void changeNumberOfDesktops (int numberOfDesktops)
 
virtual void changeShowingDesktop (bool showing)
 
virtual void closeWindow (xcb_window_t window)
 
virtual void gotPing (xcb_window_t window, xcb_timestamp_t timestamp)
 
virtual void moveResize (xcb_window_t window, int x_root, int y_root, unsigned long direction, xcb_button_t button, RequestSource source)
 
virtual void moveResizeWindow (xcb_window_t window, int flags, int x, int y, int width, int height)
 
virtual void removeClient (xcb_window_t window)
 
virtual void restackWindow (xcb_window_t window, RequestSource source, xcb_window_t above, int detail, xcb_timestamp_t timestamp)
 
virtual void showWindowMenu (xcb_window_t window, int device_id, int x_root, int y_root)
 
virtual void virtual_hook (int id, void *data)
 

Additional Inherited Members

- Static Public Member Functions inherited from NET
static int timestampCompare (unsigned long time1, unsigned long time2)
 
static int timestampDiff (unsigned long time1, unsigned long time2)
 
static bool typeMatchesMask (WindowType type, WindowTypes mask)
 

Detailed Description

Common API for root window properties/protocols.

The NETRootInfo class provides a common API for clients and window managers to set/read/change properties on the root window as defined by the NET Window Manager Specification..

Author
Bradley T. Hughes bhugh.nosp@m.es@t.nosp@m.rollt.nosp@m.ech..nosp@m.com
See also
NET
NETWinInfo

Definition at line 40 of file netwm.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Indexes for the properties array.

Definition at line 47 of file netwm.h.

Constructor & Destructor Documentation

◆ NETRootInfo() [1/3]

NETRootInfo::NETRootInfo ( xcb_connection_t * connection,
xcb_window_t supportWindow,
const char * wmName,
NET::Properties properties,
NET::WindowTypes windowTypes,
NET::States states,
NET::Properties2 properties2,
NET::Actions actions,
int screen = -1,
bool doActivate = true )

Window Managers should use this constructor to create a NETRootInfo object, which will be used to set/update information stored on the rootWindow.

The application role is automatically set to WindowManager when using this constructor.

Parameters
connectionXCB connection
supportWindowThe Window id of the supportWindow. The supportWindow must be created by the window manager as a child of the rootWindow. The supportWindow must not be destroyed until the Window Manager exits.
wmNameA string which should be the window manager's name (ie. "KWin" or "Blackbox").
propertiesThe properties the window manager supports
windowTypesThe window types the window manager supports
statesThe states the window manager supports
properties2The properties2 the window manager supports
actionsThe actions the window manager supports
screenFor Window Managers that support multiple screen (ie. "multiheaded") displays, the screen number may be explicitly defined. If this argument is omitted, the default screen will be used.
doActivatetrue to activate the window

Definition at line 436 of file netwm.cpp.

◆ NETRootInfo() [2/3]

NETRootInfo::NETRootInfo ( xcb_connection_t * connection,
NET::Properties properties,
NET::Properties2 properties2 = NET::Properties2(),
int screen = -1,
bool doActivate = true )

Clients should use this constructor to create a NETRootInfo object, which will be used to query information set on the root window.

The application role is automatically set to Client when using this constructor.

Parameters
connectionXCB connection
propertiesThe properties the client is interested in.
properties2The properties2 the client is interested in.
properties_sizeThe number of elements in the properties array.
screenFor Clients that support multiple screen (ie. "multiheaded") displays, the screen number may be explicitly defined. If this argument is omitted, the default screen will be used.
doActivatetrue to call activate() to do an initial data read/update of the query information.

Definition at line 500 of file netwm.cpp.

◆ NETRootInfo() [3/3]

NETRootInfo::NETRootInfo ( const NETRootInfo & rootinfo)

Creates a shared copy of the specified NETRootInfo object.

Parameters
rootinfothe NETRootInfo object to copy

Definition at line 557 of file netwm.cpp.

◆ ~NETRootInfo()

NETRootInfo::~NETRootInfo ( )
virtual

Destroys the NETRootInfo object.

Definition at line 570 of file netwm.cpp.

Member Function Documentation

◆ activate()

void NETRootInfo::activate ( )

Window Managers must call this after creating the NETRootInfo object, and before using any other method in the class.

This method sets initial data on the root window and does other post-construction duties.

Clients must also call this after creating the object to do an initial data read/update.

Definition at line 590 of file netwm.cpp.

◆ activeWindow()

xcb_window_t NETRootInfo::activeWindow ( ) const

Returns the active (focused) window.

Returns
the id of the active window

Definition at line 2506 of file netwm.cpp.

◆ addClient()

virtual void NETRootInfo::addClient ( xcb_window_t window)
inlineprotectedvirtual

A Client should subclass NETRootInfo and reimplement this function when it wants to know when a window has been added.

Parameters
windowthe id of the window to add

Definition at line 729 of file netwm.h.

◆ changeActiveWindow()

virtual void NETRootInfo::changeActiveWindow ( xcb_window_t window,
NET::RequestSource src,
xcb_timestamp_t timestamp,
xcb_window_t active_window )
inlineprotectedvirtual

A Window Manager should subclass NETRootInfo and reimplement this function when it wants to know when a Client made a request to change the active (focused) window.

Parameters
windowthe id of the window to activate
srcthe source from which the request came
timestampthe timestamp of the user action causing this request
active_windowactive window of the requesting application, if any

Definition at line 858 of file netwm.h.

◆ changeCurrentDesktop()

virtual void NETRootInfo::changeCurrentDesktop ( int desktop)
inlineprotectedvirtual

A Window Manager should subclass NETRootInfo and reimplement this function when it wants to know when a Client made a request to change the current desktop.

Parameters
desktopthe number of the desktop

Definition at line 794 of file netwm.h.

◆ changeDesktopGeometry()

virtual void NETRootInfo::changeDesktopGeometry ( int desktop,
const NETSize & geom )
inlineprotectedvirtual

A Window Manager should subclass NETRootInfo and reimplement this function when it wants to know when a Client made a request to change the specified desktop geometry.

Parameters
desktopthe number of the desktop
geomthe new size

Definition at line 766 of file netwm.h.

◆ changeDesktopViewport()

virtual void NETRootInfo::changeDesktopViewport ( int desktop,
const NETPoint & viewport )
inlineprotectedvirtual

A Window Manager should subclass NETRootInfo and reimplement this function when it wants to know when a Client made a request to change the specified desktop viewport.

Parameters
desktopthe number of the desktop
viewportthe new position of the viewport

Definition at line 781 of file netwm.h.

◆ changeNumberOfDesktops()

virtual void NETRootInfo::changeNumberOfDesktops ( int numberOfDesktops)
inlineprotectedvirtual

A Window Manager should subclass NETRootInfo and reimplement this function when it wants to know when a Client made a request to change the number of desktops.

Parameters
numberOfDesktopsthe new number of desktops

Definition at line 752 of file netwm.h.

◆ changeShowingDesktop()

virtual void NETRootInfo::changeShowingDesktop ( bool showing)
inlineprotectedvirtual

A Window Manager should subclass NETRootInfo and reimplement this function when it wants to know when a pager made a request to change showing the desktop.

See _NET_SHOWING_DESKTOP for details.

Parameters
showingwhether to activate the showing desktop mode

Definition at line 915 of file netwm.h.

◆ clientList()

const xcb_window_t * NETRootInfo::clientList ( ) const

Returns an array of Window id's, which contain all managed windows.

Returns
the array of Window id's
See also
clientListCount()

Definition at line 2411 of file netwm.cpp.

◆ clientListCount()

int NETRootInfo::clientListCount ( ) const

Returns the number of managed windows in clientList array.

Returns
the number of managed windows in the clientList array
See also
clientList()

Definition at line 2416 of file netwm.cpp.

◆ clientListStacking()

const xcb_window_t * NETRootInfo::clientListStacking ( ) const

Returns an array of Window id's, which contain all managed windows in stacking order.

Returns
the array of Window id's in stacking order
See also
clientListStackingCount()

Definition at line 2421 of file netwm.cpp.

◆ clientListStackingCount()

int NETRootInfo::clientListStackingCount ( ) const

Returns the number of managed windows in the clientListStacking array.

Returns
the number of Window id's in the client list
See also
clientListStacking()

Definition at line 2426 of file netwm.cpp.

◆ closeWindow()

virtual void NETRootInfo::closeWindow ( xcb_window_t window)
inlineprotectedvirtual

A Window Manager should subclass NETRootInfo and reimplement this function when it wants to know when a Client made a request to close a window.

Parameters
windowthe id of the window to close

Definition at line 805 of file netwm.h.

◆ closeWindowRequest()

void NETRootInfo::closeWindowRequest ( xcb_window_t window)

Clients (such as pagers/taskbars) that wish to close a window should call this function.

This will send a request to the Window Manager, which usually can usually decide how to react to such requests.

Parameters
windowthe id of the window to close

Definition at line 1570 of file netwm.cpp.

◆ currentDesktop()

int NETRootInfo::currentDesktop ( bool ignore_viewport = false) const

Returns the current desktop.

NOTE: KDE uses virtual desktops and does not directly support viewport in any way. They are however mapped to virtual desktops if needed.

Parameters
ignore_viewportif false, viewport is mapped to virtual desktops
Returns
the number of the current desktop

Definition at line 2498 of file netwm.cpp.

◆ desktopGeometry()

NETSize NETRootInfo::desktopGeometry ( ) const

Returns the desktop geometry size.

NOTE: KDE uses virtual desktops and does not directly support viewport in any way. You should use calls for virtual desktops, viewport is mapped to them if needed.

Returns
the size of the desktop

Definition at line 2431 of file netwm.cpp.

◆ desktopLayoutColumnsRows()

QSize NETRootInfo::desktopLayoutColumnsRows ( ) const

Returns the desktop layout number of columns and rows.

Note that either may be 0 (see _NET_DESKTOP_LAYOUT).

Definition at line 2480 of file netwm.cpp.

◆ desktopLayoutCorner()

NET::DesktopLayoutCorner NETRootInfo::desktopLayoutCorner ( ) const

Returns the desktop layout starting corner.

Definition at line 2485 of file netwm.cpp.

◆ desktopLayoutOrientation()

NET::Orientation NETRootInfo::desktopLayoutOrientation ( ) const

Returns the desktop layout orientation.

Definition at line 2475 of file netwm.cpp.

◆ desktopName()

const char * NETRootInfo::desktopName ( int desktop) const

Returns the name for the specified desktop.

Parameters
desktopthe number of the desktop
Returns
the name of the desktop

Definition at line 2456 of file netwm.cpp.

◆ desktopViewport()

NETPoint NETRootInfo::desktopViewport ( int desktop) const

Returns the viewport of the specified desktop.

NOTE: KDE uses virtual desktops and does not directly support viewport in any way. You should use calls for virtual desktops, viewport is mapped to them if needed.

Parameters
desktopthe number of the desktop
Returns
the position of the desktop's viewport

Definition at line 2436 of file netwm.cpp.

◆ event() [1/2]

NET::Properties NETRootInfo::event ( xcb_generic_event_t * event)

This function takes the passed XEvent and returns an OR'ed list of NETRootInfo properties that have changed.

The new information will be read immediately by the class. This overloaded version returns only a single mask, and therefore cannot check state of all properties like the other variant.

Parameters
eventthe event
Returns
the properties

Definition at line 1667 of file netwm.cpp.

◆ event() [2/2]

void NETRootInfo::event ( xcb_generic_event_t * event,
NET::Properties * properties,
NET::Properties2 * properties2 = nullptr )

This function takes the passed xcb_generic_event_t and returns the updated properties in the passed in arguments.

The new information will be read immediately by the class. It is possible to pass in a null pointer in the arguments. In that case the passed in argument will obviously not be updated, but the class will process the information nevertheless.

Parameters
eventthe event
propertiesThe NET::Properties that changed
properties2The NET::Properties2 that changed
Since
5.0

Definition at line 1674 of file netwm.cpp.

◆ gotPing()

virtual void NETRootInfo::gotPing ( xcb_window_t window,
xcb_timestamp_t timestamp )
inlineprotectedvirtual

A Window Manager should subclass NETRootInfo and reimplement this function when it wants to receive replies to the _NET_WM_PING protocol.

Parameters
windowthe window from which the reply came
timestamptimestamp of the ping

Definition at line 843 of file netwm.h.

◆ isSupported() [1/5]

bool NETRootInfo::isSupported ( NET::Action action) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 2406 of file netwm.cpp.

◆ isSupported() [2/5]

bool NETRootInfo::isSupported ( NET::Property property) const

Returns true if the given property is supported by the window manager.

Note that for Client mode, NET::Supported needs to be passed in the properties argument for this to work.

Definition at line 2386 of file netwm.cpp.

◆ isSupported() [3/5]

bool NETRootInfo::isSupported ( NET::Property2 property) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 2391 of file netwm.cpp.

◆ isSupported() [4/5]

bool NETRootInfo::isSupported ( NET::State state) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 2401 of file netwm.cpp.

◆ isSupported() [5/5]

bool NETRootInfo::isSupported ( NET::WindowTypeMask type) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 2396 of file netwm.cpp.

◆ moveResize()

virtual void NETRootInfo::moveResize ( xcb_window_t window,
int x_root,
int y_root,
unsigned long direction,
xcb_button_t button,
RequestSource source )
inlineprotectedvirtual

A Window Manager should subclass NETRootInfo and reimplement this function when it wants to know when a Client made a request to start a move/resize.

Parameters
windowThe window that wants to move/resize
x_rootX position of the cursor relative to the root window.
y_rootY position of the cursor relative to the root window.
directionOne of NET::Direction (see base class documentation for a description of the different directions).
buttonthe button which should be pressed.
sourcewho initiated the move resize operation.

Definition at line 827 of file netwm.h.

◆ moveResizeRequest()

void NETRootInfo::moveResizeRequest ( xcb_window_t window,
int x_root,
int y_root,
Direction direction,
xcb_button_t button = XCB_BUTTON_INDEX_ANY,
RequestSource source = RequestSource::FromUnknown )

Clients (such as pagers/taskbars) that wish to start a WMMoveResize (where the window manager controls the resize/movement, i.e.

_NET_WM_MOVERESIZE) should call this function. This will send a request to the Window Manager.

Parameters
windowThe client window that would be resized/moved.
x_rootX position of the cursor relative to the root window.
y_rootY position of the cursor relative to the root window.
directionOne of NET::Direction (see base class documentation for a description of the different directions).
buttonthe button which should be pressed.
sourcewho initiated the move resize operation.

Definition at line 1580 of file netwm.cpp.

◆ moveResizeWindow()

virtual void NETRootInfo::moveResizeWindow ( xcb_window_t window,
int flags,
int x,
int y,
int width,
int height )
inlineprotectedvirtual

A Window Manager should subclass NETRootInfo and reimplement this function when it wants to know when a pager made a request to move/resize a window.

See _NET_MOVERESIZE_WINDOW for details.

Parameters
windowthe id of the window to more/resize
flagsFlags specifying the operation (see _NET_MOVERESIZE_WINDOW description)
xRequested X position for the window
yRequested Y position for the window
widthRequested width for the window
heightRequested height for the window

Definition at line 878 of file netwm.h.

◆ moveResizeWindowRequest()

void NETRootInfo::moveResizeWindowRequest ( xcb_window_t window,
int flags,
int x,
int y,
int width,
int height )

Clients (such as pagers/taskbars) that wish to move/resize a window using WM2MoveResizeWindow (_NET_MOVERESIZE_WINDOW) should call this function.

This will send a request to the Window Manager. See _NET_MOVERESIZE_WINDOW description for details.

Parameters
windowThe client window that would be resized/moved.
flagsFlags specifying the operation (see _NET_MOVERESIZE_WINDOW description)
xRequested X position for the window
yRequested Y position for the window
widthRequested width for the window
heightRequested height for the window

Definition at line 1598 of file netwm.cpp.

◆ numberOfDesktops()

int NETRootInfo::numberOfDesktops ( bool ignore_viewport = false) const

Returns the number of desktops.

NOTE: KDE uses virtual desktops and does not directly support viewport in any way. They are however mapped to virtual desktops if needed.

Parameters
ignore_viewportif false, viewport is mapped to virtual desktops
Returns
the number of desktops

Definition at line 2490 of file netwm.cpp.

◆ operator=()

const NETRootInfo & NETRootInfo::operator= ( const NETRootInfo & rootinfo)

Assignment operator.

Ensures that the shared data reference counts are correct.

Definition at line 1647 of file netwm.cpp.

◆ passedActions()

NET::Actions NETRootInfo::passedActions ( ) const
Returns
the actions argument passed to the constructor.
See also
passedProperties()
passedProperties2()
passedStates()
passedWindowTypes()
Since
5.0

Definition at line 2306 of file netwm.cpp.

◆ passedProperties()

NET::Properties NETRootInfo::passedProperties ( ) const
Returns
the properties argument passed to the constructor.
See also
passedProperties2()
passedStates()
passedWindowTypes()
passedActions()

Definition at line 2286 of file netwm.cpp.

◆ passedProperties2()

NET::Properties2 NETRootInfo::passedProperties2 ( ) const
Returns
the properties2 argument passed to the constructor.
See also
passedProperties()
passedStates()
passedWindowTypes()
passedActions()
Since
5.0

Definition at line 2291 of file netwm.cpp.

◆ passedStates()

NET::States NETRootInfo::passedStates ( ) const
Returns
the states argument passed to the constructor.
See also
passedProperties()
passedProperties2()
passedWindowTypes()
passedActions()
Since
5.0

Definition at line 2296 of file netwm.cpp.

◆ passedWindowTypes()

NET::WindowTypes NETRootInfo::passedWindowTypes ( ) const
Returns
the windowTypes argument passed to the constructor.
See also
passedProperties()
passedProperties2()
passedStates()
passedActions()
Since
5.0

Definition at line 2301 of file netwm.cpp.

◆ removeClient()

virtual void NETRootInfo::removeClient ( xcb_window_t window)
inlineprotectedvirtual

A Client should subclass NETRootInfo and reimplement this function when it wants to know when a window has been removed.

Parameters
windowthe id of the window to remove

Definition at line 740 of file netwm.h.

◆ restackRequest()

void NETRootInfo::restackRequest ( xcb_window_t window,
RequestSource source,
xcb_window_t above,
int detail,
xcb_timestamp_t timestamp )

Sends the _NET_RESTACK_WINDOW request.

Definition at line 1619 of file netwm.cpp.

◆ restackWindow()

virtual void NETRootInfo::restackWindow ( xcb_window_t window,
RequestSource source,
xcb_window_t above,
int detail,
xcb_timestamp_t timestamp )
inlineprotectedvirtual

A Window Manager should subclass NETRootInfo and reimplement this function when it wants to know when a Client made a request to restack a window.

See _NET_RESTACK_WINDOW for details.

Parameters
windowthe id of the window to restack
sourcethe source of the request
aboveother window in the restack request
detailrestack detail
timestampthe timestamp of the request

Definition at line 899 of file netwm.h.

◆ rootWindow()

xcb_window_t NETRootInfo::rootWindow ( ) const

Returns the Window id of the rootWindow.

Returns
the id of the root window

Definition at line 2246 of file netwm.cpp.

◆ sendPing()

void NETRootInfo::sendPing ( xcb_window_t window,
xcb_timestamp_t timestamp )

Sends a ping with the given timestamp to the window, using the _NET_WM_PING protocol.

Definition at line 1630 of file netwm.cpp.

◆ setActiveWindow() [1/2]

void NETRootInfo::setActiveWindow ( xcb_window_t window)

Sets the active (focused) window the specified window.

This should be used only in the window manager mode.

Parameters
windowthe if of the new active window

Definition at line 1454 of file netwm.cpp.

◆ setActiveWindow() [2/2]

void NETRootInfo::setActiveWindow ( xcb_window_t window,
NET::RequestSource src,
xcb_timestamp_t timestamp,
xcb_window_t active_window )

Requests that the specified window becomes the active (focused) one.

Parameters
windowthe id of the new active window
srcwhether the request comes from normal application or from a pager or similar tool
timestampX server timestamp of the user action that caused the request
active_windowactive window of the requesting application, if any

Definition at line 1459 of file netwm.cpp.

◆ setClientList()

void NETRootInfo::setClientList ( const xcb_window_t * windows,
unsigned int count )

Sets the list of managed windows on the Root/Desktop window.

Parameters
windowsThe array of Window id's
countThe number of windows in the array

Definition at line 608 of file netwm.cpp.

◆ setClientListStacking()

void NETRootInfo::setClientListStacking ( const xcb_window_t * windows,
unsigned int count )

Sets the list of managed windows in stacking order on the Root/Desktop window.

Parameters
windowsThe array of Window id's
countThe number of windows in the array.

Definition at line 626 of file netwm.cpp.

◆ setCurrentDesktop()

void NETRootInfo::setCurrentDesktop ( int desktop,
bool ignore_viewport = false )

Sets the current desktop to the specified desktop.

NOTE: KDE uses virtual desktops and does not directly support viewport in any way. It is however mapped to virtual desktops if needed.

Parameters
desktopthe number of the desktop
ignore_viewportif false, viewport is mapped to virtual desktops

Definition at line 667 of file netwm.cpp.

◆ setDesktopGeometry()

void NETRootInfo::setDesktopGeometry ( const NETSize & geometry)

Sets the desktop geometry to the specified geometry.

NOTE: KDE uses virtual desktops and does not directly support viewport in any way. You should use calls for virtual desktops, viewport is mapped to them if needed.

Parameters
geometrythe new size of the desktop

Definition at line 732 of file netwm.cpp.

◆ setDesktopLayout()

void NETRootInfo::setDesktopLayout ( NET::Orientation orientation,
int columns,
int rows,
NET::DesktopLayoutCorner corner )

Sets the desktop layout.

This is set by the pager. When setting, the pager must own the _NET_DESKTOP_LAYOUT_Sn manager selection. See _NET_DESKTOP_LAYOUT for details.

Definition at line 1534 of file netwm.cpp.

◆ setDesktopName()

void NETRootInfo::setDesktopName ( int desktop,
const char * desktopName )

Sets the name of the specified desktop.

NOTE: KDE uses virtual desktops and does not directly support viewport in any way. Viewport is mapped to virtual desktops if needed, but not for this call.

Parameters
desktopthe number of the desktop
desktopNamethe new name of the desktop

Definition at line 689 of file netwm.cpp.

◆ setDesktopViewport()

void NETRootInfo::setDesktopViewport ( int desktop,
const NETPoint & viewport )

Sets the viewport for the current desktop to the specified point.

NOTE: KDE uses virtual desktops and does not directly support viewport in any way. You should use calls for virtual desktops, viewport is mapped to them if needed.

Parameters
desktopthe number of the desktop
viewportthe new position of the desktop's viewport

Definition at line 753 of file netwm.cpp.

◆ setNumberOfDesktops()

void NETRootInfo::setNumberOfDesktops ( int numberOfDesktops)

Sets the number of desktops to the specified number.

NOTE: KDE uses virtual desktops and does not directly support viewport in any way. Viewport is mapped to virtual desktops if needed, but not for this call.

Parameters
numberOfDesktopsthe number of desktops

Definition at line 650 of file netwm.cpp.

◆ setShowingDesktop()

void NETRootInfo::setShowingDesktop ( bool showing)

Sets the _NET_SHOWING_DESKTOP status (whether desktop is being shown).

Definition at line 1554 of file netwm.cpp.

◆ setSupported() [1/5]

void NETRootInfo::setSupported ( NET::Action property,
bool on = true )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
4.4

Definition at line 2371 of file netwm.cpp.

◆ setSupported() [2/5]

void NETRootInfo::setSupported ( NET::Property property,
bool on = true )

Sets the given property if on is true, and clears the property otherwise.

In WindowManager mode this function updates _NET_SUPPORTED. In Client mode this function does nothing.

Since
4.4

Definition at line 2311 of file netwm.cpp.

◆ setSupported() [3/5]

void NETRootInfo::setSupported ( NET::Property2 property,
bool on = true )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
4.4

Definition at line 2326 of file netwm.cpp.

◆ setSupported() [4/5]

void NETRootInfo::setSupported ( NET::State property,
bool on = true )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
4.4

Definition at line 2356 of file netwm.cpp.

◆ setSupported() [5/5]

void NETRootInfo::setSupported ( NET::WindowTypeMask property,
bool on = true )

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
4.4

Definition at line 2341 of file netwm.cpp.

◆ setVirtualRoots()

void NETRootInfo::setVirtualRoots ( const xcb_window_t * windows,
unsigned int count )

Sets the list of virtual root windows on the root window.

Parameters
windowsThe array of Window id's
countThe number of windows in the array.

Definition at line 1510 of file netwm.cpp.

◆ setWorkArea()

void NETRootInfo::setWorkArea ( int desktop,
const NETRect & workArea )

Sets the workarea for the specified desktop.

Parameters
desktopthe number of the desktop
workAreathe new work area of the desktop

Definition at line 1476 of file netwm.cpp.

◆ showingDesktop()

bool NETRootInfo::showingDesktop ( ) const

Returns the status of _NET_SHOWING_DESKTOP.

Definition at line 1565 of file netwm.cpp.

◆ showWindowMenu()

virtual void NETRootInfo::showWindowMenu ( xcb_window_t window,
int device_id,
int x_root,
int y_root )
inlineprotectedvirtual

A Window Manager should subclass NETRootInfo and reimplement this function when it wants to know when a Client made a request to show a window menu.

Parameters
windowThe window that wants to move/resize
device_idGTK device id.
x_rootX position of the cursor relative to the root window.
y_rootY position of the cursor relative to the root window.

Definition at line 929 of file netwm.h.

◆ showWindowMenuRequest()

void NETRootInfo::showWindowMenuRequest ( xcb_window_t window,
int device_id,
int x_root,
int y_root )

Clients that wish to show the window menu using WM2GTKShowWindowMenu (_GTK_SHOW_WINDOW_MENU) should call this function.

This will send a request to the Window Manager. See _GTK_SHOW_WINDOW_MENU description for details.

Parameters
windowThe client window that would be resized/moved.
device_idGTK device id
xRequested X position for the menu relative to the root window
yRequested Y position for the menu relative to the root window

Definition at line 1609 of file netwm.cpp.

◆ supportedActions()

NET::Actions NETRootInfo::supportedActions ( ) const

In the Window Manager mode, this is equivalent to the actions argument passed to the constructor.

In the Client mode, if NET::Supported was passed in the properties argument, the returned value are all actions supported by the Window Manager. Other supported protocols and properties are returned by the specific methods.

See also
supportedProperties()
supportedProperties2()
supportedStates()
supportedWindowTypes()
Since
5.0

Definition at line 2281 of file netwm.cpp.

◆ supportedProperties()

NET::Properties NETRootInfo::supportedProperties ( ) const

In the Window Manager mode, this is equivalent to the properties argument passed to the constructor.

In the Client mode, if NET::Supported was passed in the properties argument, the returned value are all properties supported by the Window Manager. Other supported protocols and properties are returned by the specific methods.

See also
supportedProperties2()
supportedStates()
supportedWindowTypes()
supportedActions()

Definition at line 2261 of file netwm.cpp.

◆ supportedProperties2()

NET::Properties2 NETRootInfo::supportedProperties2 ( ) const

In the Window Manager mode, this is equivalent to the properties2 argument passed to the constructor.

In the Client mode, if NET::Supported was passed in the properties argument, the returned value are all properties2 supported by the Window Manager. Other supported protocols and properties are returned by the specific methods.

See also
supportedProperties()
supportedStates()
supportedWindowTypes()
supportedActions()
Since
5.0

Definition at line 2266 of file netwm.cpp.

◆ supportedStates()

NET::States NETRootInfo::supportedStates ( ) const

In the Window Manager mode, this is equivalent to the states argument passed to the constructor.

In the Client mode, if NET::Supported was passed in the properties argument, the returned value are all states supported by the Window Manager. Other supported protocols and properties are returned by the specific methods.

See also
supportedProperties()
supportedProperties2()
supportedWindowTypes()
supportedActions()
Since
5.0

Definition at line 2271 of file netwm.cpp.

◆ supportedWindowTypes()

NET::WindowTypes NETRootInfo::supportedWindowTypes ( ) const

In the Window Manager mode, this is equivalent to the windowTypes argument passed to the constructor.

In the Client mode, if NET::Supported was passed in the properties argument, the returned value are all window types supported by the Window Manager. Other supported protocols and properties are returned by the specific methods.

See also
supportedProperties()
supportedProperties2()
supportedStates()
supportedActions()
Since
5.0

Definition at line 2276 of file netwm.cpp.

◆ supportWindow()

xcb_window_t NETRootInfo::supportWindow ( ) const

Returns the Window id of the supportWindow.

Returns
the id of the support window

Definition at line 2251 of file netwm.cpp.

◆ virtual_hook()

void NETRootInfo::virtual_hook ( int id,
void * data )
protectedvirtual

Virtual hook, used to add new "virtual" functions while maintaining binary compatibility.

Unused in this class.

Definition at line 4922 of file netwm.cpp.

◆ virtualRoots()

const xcb_window_t * NETRootInfo::virtualRoots ( ) const

Returns an array of Window id's, which contain the virtual root windows.

Returns
the array of Window id's
See also
virtualRootsCount()

Definition at line 2465 of file netwm.cpp.

◆ virtualRootsCount()

int NETRootInfo::virtualRootsCount ( ) const

Returns the number of window in the virtualRoots array.

Returns
the number of Window id's in the virtual root array
See also
virtualRoots()

Definition at line 2470 of file netwm.cpp.

◆ wmName()

const char * NETRootInfo::wmName ( ) const

Returns the name of the Window Manager.

Returns
the name of the window manager

Definition at line 2256 of file netwm.cpp.

◆ workArea()

NETRect NETRootInfo::workArea ( int desktop) const

Returns the workArea for the specified desktop.

Parameters
desktopthe number of the desktop
Returns
the size of the work area

Definition at line 2446 of file netwm.cpp.

◆ xcbConnection()

xcb_connection_t * NETRootInfo::xcbConnection ( ) const

Returns the xcb connection used.

Returns
the XCB connection

Definition at line 2241 of file netwm.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Dec 6 2024 12:03:59 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.