NETRootInfo

#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, 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,
  StaysOnTop = KeepAbove, 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
}
 
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, AllTypesMask = 0U - 1
}
 
typedef QFlags< WindowTypeMaskWindowTypes
 

Public Member Functions

 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)
 
 NETRootInfo (xcb_connection_t *connection, NET::Properties properties, NET::Properties2 properties2=NET::Properties2(), int screen=-1, bool doActivate=true)
 
 NETRootInfo (const NETRootInfo &rootinfo)
 
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
 
void event (xcb_generic_event_t *event, unsigned long *properties, int properties_size)
 
void event (xcb_generic_event_t *event, NET::Properties *properties, NET::Properties2 *properties2=nullptr)
 
NET::Properties event (xcb_generic_event_t *event)
 
bool isSupported (NET::Property property) const
 
bool isSupported (NET::Property2 property) const
 
bool isSupported (NET::WindowTypeMask type) const
 
bool isSupported (NET::State state) const
 
bool isSupported (NET::Action action) const
 
void moveResizeRequest (xcb_window_t window, int x_root, int y_root, Direction direction)
 
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, NET::RequestSource src, xcb_timestamp_t timestamp, xcb_window_t active_window)
 
void setActiveWindow (xcb_window_t 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::Property property, bool on=true)
 
void setSupported (NET::Property2 property, bool on=true)
 
void setSupported (NET::WindowTypeMask property, bool on=true)
 
void setSupported (NET::State property, bool on=true)
 
void setSupported (NET::Action property, bool on=true)
 
void setVirtualRoots (const xcb_window_t *windows, unsigned int count)
 
void setWorkArea (int desktop, const NETRect &workArea)
 
bool showingDesktop () const
 
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)
 
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 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[email protected][email protected][email protected]rollt[email protected]ech.[email protected]com
See also
NET
NETWinInfo

Definition at line 39 of file netwm.h.

Member Enumeration Documentation

anonymous enum

Indexes for the properties array.

Definition at line 46 of file netwm.h.

Constructor & Destructor Documentation

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 432 of file netwm.cpp.

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 491 of file netwm.cpp.

NETRootInfo::NETRootInfo ( const NETRootInfo rootinfo)

Creates a shared copy of the specified NETRootInfo object.

Parameters
rootinfothe NETRootInfo object to copy

Definition at line 552 of file netwm.cpp.

NETRootInfo::~NETRootInfo ( )
virtual

Destroys the NETRootInfo object.

Definition at line 566 of file netwm.cpp.

Member Function Documentation

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 588 of file netwm.cpp.

xcb_window_t NETRootInfo::activeWindow ( ) const

Returns the active (focused) window.

Returns
the id of the active window

Definition at line 2552 of file netwm.cpp.

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 719 of file netwm.h.

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 843 of file netwm.h.

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 784 of file netwm.h.

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 756 of file netwm.h.

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 771 of file netwm.h.

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 742 of file netwm.h.

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 902 of file netwm.h.

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 2457 of file netwm.cpp.

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 2462 of file netwm.cpp.

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 2467 of file netwm.cpp.

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 2472 of file netwm.cpp.

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 795 of file netwm.h.

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 1571 of file netwm.cpp.

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 2544 of file netwm.cpp.

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 2477 of file netwm.cpp.

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 2526 of file netwm.cpp.

NET::DesktopLayoutCorner NETRootInfo::desktopLayoutCorner ( ) const

Returns the desktop layout starting corner.

Definition at line 2531 of file netwm.cpp.

NET::Orientation NETRootInfo::desktopLayoutOrientation ( ) const

Returns the desktop layout orientation.

Definition at line 2521 of file netwm.cpp.

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 2502 of file netwm.cpp.

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 2482 of file netwm.cpp.

void NETRootInfo::event ( xcb_generic_event_t *  event,
unsigned long *  properties,
int  properties_size 
)

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

The new information will be read immediately by the class. The elements of the properties argument are as they would be passed to the constructor, if the array is not large enough, changed properties that don't fit in it won't be listed there (they'll be updated in the class though).

Parameters
eventthe event
propertiesproperties that changed
properties_sizesize of the passed properties array
Deprecated:
since 5.0 use event(xcb_generic_event_t*, NET::Properties*, NET::Properties2*)

Definition at line 1677 of file netwm.cpp.

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 1698 of file netwm.cpp.

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 1669 of file netwm.cpp.

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 828 of file netwm.h.

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 2432 of file netwm.cpp.

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 2437 of file netwm.cpp.

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 2442 of file netwm.cpp.

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 2447 of file netwm.cpp.

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 2452 of file netwm.cpp.

virtual void NETRootInfo::moveResize ( xcb_window_t  window,
int  x_root,
int  y_root,
unsigned long  direction 
)
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).

Definition at line 813 of file netwm.h.

void NETRootInfo::moveResizeRequest ( xcb_window_t  window,
int  x_root,
int  y_root,
Direction  direction 
)

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).

Definition at line 1582 of file netwm.cpp.

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 864 of file netwm.h.

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.

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 2536 of file netwm.cpp.

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

Assignment operator.

Ensures that the shared data reference counts are correct.

Definition at line 1648 of file netwm.cpp.

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 2350 of file netwm.cpp.

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

Definition at line 2322 of file netwm.cpp.

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 2329 of file netwm.cpp.

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 2336 of file netwm.cpp.

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 2343 of file netwm.cpp.

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 730 of file netwm.h.

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 1613 of file netwm.cpp.

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 885 of file netwm.h.

xcb_window_t NETRootInfo::rootWindow ( ) const

Returns the Window id of the rootWindow.

Returns
the id of the root window

Definition at line 2282 of file netwm.cpp.

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 1628 of file netwm.cpp.

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 1455 of file netwm.cpp.

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 1450 of file netwm.cpp.

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 609 of file netwm.cpp.

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 630 of file netwm.cpp.

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 674 of file netwm.cpp.

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 743 of file netwm.cpp.

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 1528 of file netwm.cpp.

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 703 of file netwm.cpp.

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 769 of file netwm.cpp.

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 651 of file netwm.cpp.

void NETRootInfo::setShowingDesktop ( bool  showing)

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

Definition at line 1551 of file netwm.cpp.

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 2357 of file netwm.cpp.

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 2372 of file netwm.cpp.

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 2387 of file netwm.cpp.

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 2402 of file netwm.cpp.

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 2417 of file netwm.cpp.

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 1508 of file netwm.cpp.

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 1478 of file netwm.cpp.

bool NETRootInfo::showingDesktop ( ) const

Returns the status of _NET_SHOWING_DESKTOP.

Definition at line 1566 of file netwm.cpp.

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 2317 of file netwm.cpp.

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 2297 of file netwm.cpp.

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 2302 of file netwm.cpp.

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 2307 of file netwm.cpp.

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 2312 of file netwm.cpp.

xcb_window_t NETRootInfo::supportWindow ( ) const

Returns the Window id of the supportWindow.

Returns
the id of the support window

Definition at line 2287 of file netwm.cpp.

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 5012 of file netwm.cpp.

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 2511 of file netwm.cpp.

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 2516 of file netwm.cpp.

const char * NETRootInfo::wmName ( ) const

Returns the name of the Window Manager.

Returns
the name of the window manager

Definition at line 2292 of file netwm.cpp.

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 2492 of file netwm.cpp.

xcb_connection_t * NETRootInfo::xcbConnection ( ) const

Returns the xcb connection used.

Returns
the XCB connection

Definition at line 2277 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-2020 The KDE developers.
Generated on Mon Nov 30 2020 22:41:04 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.