\section{NET Class Reference}
\label{classNET}\index{NET@{NET}}
Base namespace class.  


{\tt \#include $<$netwm\_\-def.h$>$}

Inheritance diagram for NET:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=100pt]{classNET__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{CompactItemize}
\item 
enum {\bf Role} \{ {\bf Client}, 
{\bf Window\-Manager}
 \}
\item 
enum {\bf Window\-Type} \{ \par
{\bf Unknown} =  -1, 
{\bf Normal} =  0, 
{\bf Desktop} =  1, 
{\bf Dock} =  2, 
\par
{\bf Toolbar} =  3, 
{\bf Menu} =  4, 
{\bf Dialog} =  5, 
{\bf Override} =  6, 
\par
{\bf Top\-Menu} =  7, 
{\bf Tool} =  Toolbar, 
{\bf Utility} =  8, 
{\bf Splash} =  9
 \}
\item 
enum {\bf Window\-Type\-Mask} \{ \par
{\bf Normal\-Mask} =  1$<$$<$0, 
{\bf Desktop\-Mask} =  1$<$$<$1, 
{\bf Dock\-Mask} =  1$<$$<$2, 
{\bf Toolbar\-Mask} =  1$<$$<$3, 
\par
{\bf Menu\-Mask} =  1$<$$<$4, 
{\bf Dialog\-Mask} =  1$<$$<$5, 
{\bf Override\-Mask} =  1$<$$<$6, 
{\bf Top\-Menu\-Mask} =  1$<$$<$7, 
\par
{\bf Utility\-Mask} =  1$<$$<$8, 
{\bf Splash\-Mask} =  1$<$$<$9
 \}
\item 
enum \{ {\bf All\-Types\-Mask} =  0LU-1
 \}
\item 
enum {\bf State} \{ \par
{\bf Modal} =  1$<$$<$0, 
{\bf Sticky} =  1$<$$<$1, 
{\bf Max\-Vert} =  1$<$$<$2, 
{\bf Max\-Horiz} =  1$<$$<$3, 
\par
{\bf Max} =  Max\-Vert $|$ Max\-Horiz, 
{\bf Shaded} =  1$<$$<$4, 
{\bf Skip\-Taskbar} =  1$<$$<$5, 
{\bf Keep\-Above} =  1$<$$<$6, 
\par
{\bf Stays\-On\-Top} =  Keep\-Above, 
{\bf Skip\-Pager} =  1$<$$<$7, 
{\bf Hidden} =  1$<$$<$8, 
{\bf Full\-Screen} =  1$<$$<$9, 
\par
{\bf Keep\-Below} =  1$<$$<$10, 
{\bf Demands\-Attention} =  1$<$$<$11
 \}
\item 
enum {\bf Direction} \{ \par
{\bf Top\-Left} =  0, 
{\bf Top} =  1, 
{\bf Top\-Right} =  2, 
{\bf Right} =  3, 
\par
{\bf Bottom\-Right} =  4, 
{\bf Bottom} =  5, 
{\bf Bottom\-Left} =  6, 
{\bf Left} =  7, 
\par
{\bf Move} =  8, 
{\bf Keyboard\-Size} =  9, 
{\bf Keyboard\-Move} =  10
 \}
\item 
enum {\bf Mapping\-State} \{ {\bf Visible}, 
{\bf Withdrawn}, 
{\bf Iconic}
 \}
\item 
enum {\bf Action} \{ \par
{\bf Action\-Move} =  1$<$$<$0, 
{\bf Action\-Resize} =  1$<$$<$1, 
{\bf Action\-Minimize} =  1$<$$<$2, 
{\bf Action\-Shade} =  1$<$$<$3, 
\par
{\bf Action\-Stick} =  1$<$$<$4, 
{\bf Action\-Max\-Vert} =  1$<$$<$5, 
{\bf Action\-Max\-Horiz} =  1$<$$<$6, 
{\bf Action\-Max} =  Action\-Max\-Vert $|$ Action\-Max\-Horiz, 
\par
{\bf Action\-Full\-Screen} =  1$<$$<$7, 
{\bf Action\-Change\-Desktop} =  1$<$$<$8, 
{\bf Action\-Close} =  1$<$$<$9
 \}
\item 
enum {\bf Property} \{ \par
{\bf Supported} =  1$<$$<$0, 
{\bf Client\-List} =  1$<$$<$1, 
{\bf Client\-List\-Stacking} =  1$<$$<$2, 
{\bf Number\-Of\-Desktops} =  1$<$$<$3, 
\par
{\bf Desktop\-Geometry} =  1$<$$<$4, 
{\bf Desktop\-Viewport} =  1$<$$<$5, 
{\bf Current\-Desktop} =  1$<$$<$6, 
{\bf Desktop\-Names} =  1$<$$<$7, 
\par
{\bf Active\-Window} =  1$<$$<$8, 
{\bf Work\-Area} =  1$<$$<$9, 
{\bf Supporting\-WMCheck} =  1$<$$<$10, 
{\bf Virtual\-Roots} =  1$<$$<$11, 
\par
{\bf KDESystem\-Tray\-Windows} =  1$<$$<$12, 
{\bf Close\-Window} =  1$<$$<$13, 
{\bf WMMove\-Resize} =  1$<$$<$14, 
{\bf WMName} =  1$<$$<$15, 
\par
{\bf WMVisible\-Name} =  1$<$$<$16, 
{\bf WMDesktop} =  1$<$$<$17, 
{\bf WMWindow\-Type} =  1$<$$<$18, 
{\bf WMState} =  1$<$$<$19, 
\par
{\bf WMStrut} =  1$<$$<$20, 
{\bf WMIcon\-Geometry} =  1$<$$<$21, 
{\bf WMIcon} =  1$<$$<$22, 
{\bf WMPid} =  1$<$$<$23, 
\par
{\bf WMHandled\-Icons} =  1$<$$<$24, 
{\bf WMPing} =  1$<$$<$25, 
{\bf WMKDESystem\-Tray\-Win\-For} =  1$<$$<$26, 
{\bf XAWMState} =  1$<$$<$27, 
\par
{\bf WMKDEFrame\-Strut} =  1$<$$<$28, 
{\bf WMIcon\-Name} =  1$<$$<$29, 
{\bf WMVisible\-Icon\-Name} =  1$<$$<$30, 
{\bf WMGeometry} =  1$<$$<$31
 \}
\item 
enum {\bf Property2} \{ \par
{\bf WM2User\-Time} =  1$<$$<$0, 
{\bf WM2Startup\-Id} =  1$<$$<$1, 
{\bf WM2Transient\-For} =  1$<$$<$2, 
{\bf WM2Group\-Leader} =  1$<$$<$3, 
\par
{\bf WM2Allowed\-Actions} =  1$<$$<$4, 
{\bf WM2Restack\-Window} =  1$<$$<$5, 
{\bf WM2Move\-Resize\-Window} =  1$<$$<$6, 
{\bf WM2Extended\-Strut} =  1$<$$<$7, 
\par
{\bf WM2Take\-Activity} =  1$<$$<$8, 
{\bf WM2KDETemporary\-Rules} =  1$<$$<$9, 
{\bf WM2Window\-Class} =  1$<$$<$10, 
{\bf WM2Window\-Role} =  1$<$$<$11, 
\par
{\bf WM2Client\-Machine} =  1$<$$<$12
 \}
\item 
enum \{ {\bf On\-All\-Desktops} =  -1
 \}
\item 
enum {\bf Request\-Source} \{ {\bf From\-Unknown}, 
{\bf From\-Application}, 
{\bf From\-Tool}
 \}
\end{CompactItemize}
\subsection*{Static Public Member Functions}
\begin{CompactItemize}
\item 
static bool {\bf type\-Matches\-Mask} ({\bf Window\-Type} type, unsigned long mask)
\end{CompactItemize}


\subsection{Detailed Description}
Base namespace class. 

The NET API is an implementation of the NET Window Manager Specification.

This class is the base class for the {\bf NETRoot\-Info}{\rm (p.\,\pageref{classNETRootInfo})} and {\bf NETWin\-Info}{\rm (p.\,\pageref{classNETWinInfo})} classes, which are used to retrieve and modify the properties of windows. To keep the namespace relatively clean, all enums are defined here.

\begin{Desc}
\item[See also:]{\tt http://www.freedesktop.org/standards/wm-spec/} \end{Desc}




Definition at line 235 of file netwm\_\-def.h.

\subsection{Member Enumeration Documentation}
\index{NET@{NET}!Role@{Role}}
\index{Role@{Role}!NET@{NET}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf NET::Role}}\label{classNET_w113}


Application role. 

This is used internally to determine how several action should be performed (if at all).

\begin{itemize}
\item Client indicates that the application is a client application.\end{itemize}
\begin{itemize}
\item Window\-Manager indicates that the application is a window manager application. \end{itemize}


Definition at line 247 of file netwm\_\-def.h.\index{NET@{NET}!WindowType@{WindowType}}
\index{WindowType@{WindowType}!NET@{NET}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf NET::Window\-Type}}\label{classNET_w114}


Window type. 

\begin{itemize}
\item Unknown indicates that the window did not define a window type.\end{itemize}
\begin{itemize}
\item Normal indicates that this is a normal, top-level window. Windows with Unknown window type or WM\_\-TRANSIENT\_\-FOR unset must be taken as this type.\end{itemize}
\begin{itemize}
\item Desktop indicates a desktop feature. This can include a single window containing desktop icons with the same dimensions as the screen, allowing the desktop environment to have full control of the desktop, without the need for proxying root window clicks.\end{itemize}
\begin{itemize}
\item Dock indicates a dock or panel feature. Typically a window manager would keep such windows on top of all other windows.\end{itemize}
\begin{itemize}
\item Toolbar and Menu indicate toolbar and pinnable menu windows, respectively.\end{itemize}
\begin{itemize}
\item Dialog indicates that this is a dialog window. If \_\-NET\_\-WM\_\-WINDOW\_\-TYPE is not set, then windows with WM\_\-TRANSIENT\_\-FOR set must be taken as this type.\end{itemize}
\begin{itemize}
\item Override indicates that this window wants to have no Window Manager decorations. This is for windows that would normally use either override\_\-redirect or Motif hints to give no decorations. This is a {\bf KDE}{\rm (p.\,\pageref{namespaceKDE})} extension to the \_\-NET\_\-WM\_\-WINDOW\_\-TYPE mechanism.\end{itemize}
\begin{itemize}
\item Top\-Menu indicates a toplevel menu (AKA macmenu). This is a {\bf KDE}{\rm (p.\,\pageref{namespaceKDE})} extension to the \_\-NET\_\-WM\_\-WINDOW\_\-TYPE mechanism. \end{itemize}
\begin{Desc}
\item[Enumeration values: ]\par
\begin{description}
\index{Utility@{Utility}!NET@{NET}}\index{NET@{NET}!Utility@{Utility}}\item[{\em 
Utility\label{classNET_w114w12}
}]\begin{Desc}
\item[Since:]3.2 \end{Desc}
\index{Splash@{Splash}!NET@{NET}}\index{NET@{NET}!Splash@{Splash}}\item[{\em 
Splash\label{classNET_w114w13}
}]\begin{Desc}
\item[Since:]3.2 \end{Desc}
\end{description}
\end{Desc}



Definition at line 282 of file netwm\_\-def.h.\index{NET@{NET}!WindowTypeMask@{WindowTypeMask}}
\index{WindowTypeMask@{WindowTypeMask}!NET@{NET}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf NET::Window\-Type\-Mask}}\label{classNET_w115}


Values for Window\-Type when they should be OR'ed together, e.g. 

for the properties argument of the {\bf NETRoot\-Info}{\rm (p.\,\pageref{classNETRootInfo})} constructor. \begin{Desc}
\item[Since:]3.2 \end{Desc}


Definition at line 302 of file netwm\_\-def.h.\index{NET@{NET}!State@{State}}
\index{State@{State}!NET@{NET}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf NET::State}}\label{classNET_w117}


Window state. 

\begin{itemize}
\item Modal ndicates that this is a modal dialog box. The WM\_\-TRANSIENT\_\-FOR hint MUST be set to indicate which window the dialog is a modal for, or set to the root window if the dialog is a modal for its window group.\end{itemize}
\begin{itemize}
\item Sticky indicates that the Window Manager SHOULD keep the window's position fixed on the screen, even when the virtual desktop scrolls. Note that this is different from being kept on all desktops.\end{itemize}
\begin{itemize}
\item Max\{Vert,Horiz\} indicates that the window is \{vertically,horizontally\} maximized.\end{itemize}
\begin{itemize}
\item Max is more convenient than Max\-Vert $|$ Max\-Horiz.\end{itemize}
\begin{itemize}
\item Shaded indicates that the window is shaded (rolled-up).\end{itemize}
\begin{itemize}
\item Skip\-Taskbar indicates that a window should not be included on a taskbar.\end{itemize}
\begin{itemize}
\item Skip\-Pager indicates that a window should not be included on a pager.\end{itemize}
\begin{itemize}
\item Hidden indicates that a window should not be visible on the screen (e.g. when minimised). Only the window manager is allowed to change it.\end{itemize}
\begin{itemize}
\item Full\-Screen indicates that a window should fill the entire screen and have no window decorations.\end{itemize}
\begin{itemize}
\item Keep\-Above indicates that a window should on top of most windows (but below fullscreen windows).\end{itemize}
\begin{itemize}
\item Keep\-Below indicates that a window should be below most windows (but above any desktop windows).\end{itemize}
\begin{itemize}
\item Stays\-On\-Top is an obsolete name for Keep\-Above.\end{itemize}
\begin{itemize}
\item Demands\-Attention there was an attempt to activate this window, but the window manager prevented this. E.g. taskbar should mark such window specially to bring user's attention to this window. Only the window manager is allowed to change it.\end{itemize}
Note that Keep\-Above (Stays\-On\-Top) and Keep\-Below are meant as user preference and applications should avoid setting these states themselves. \begin{Desc}
\item[Enumeration values: ]\par
\begin{description}
\index{KeepAbove@{KeepAbove}!NET@{NET}}\index{NET@{NET}!KeepAbove@{KeepAbove}}\item[{\em 
Keep\-Above\label{classNET_w117w32}
}]\begin{Desc}
\item[Since:]3.2 \end{Desc}
\index{Hidden@{Hidden}!NET@{NET}}\index{NET@{NET}!Hidden@{Hidden}}\item[{\em 
Hidden\label{classNET_w117w35}
}]\begin{Desc}
\item[Since:]3.2 \end{Desc}
\index{FullScreen@{FullScreen}!NET@{NET}}\index{NET@{NET}!FullScreen@{FullScreen}}\item[{\em 
Full\-Screen\label{classNET_w117w36}
}]\begin{Desc}
\item[Since:]3.2 \end{Desc}
\index{KeepBelow@{KeepBelow}!NET@{NET}}\index{NET@{NET}!KeepBelow@{KeepBelow}}\item[{\em 
Keep\-Below\label{classNET_w117w37}
}]\begin{Desc}
\item[Since:]3.2 \end{Desc}
\index{DemandsAttention@{DemandsAttention}!NET@{NET}}\index{NET@{NET}!DemandsAttention@{DemandsAttention}}\item[{\em 
Demands\-Attention\label{classNET_w117w38}
}]\begin{Desc}
\item[Since:]3.2 \end{Desc}
\end{description}
\end{Desc}



Definition at line 365 of file netwm\_\-def.h.\index{NET@{NET}!Direction@{Direction}}
\index{Direction@{Direction}!NET@{NET}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf NET::Direction}}\label{classNET_w118}


Direction for WMMove\-Resize. 

When a client wants the Window Manager to start a WMMove\-Resize, it should specify one of:

\begin{itemize}
\item Top\-Left \item Top \item Top\-Right \item Right \item Bottom\-Right \item Bottom \item Bottom\-Left \item Left \item Move (for movement only) \item Keyboard\-Size (resizing via keyboard) \item Keyboard\-Move (movement via keyboard) \end{itemize}
\begin{Desc}
\item[Enumeration values: ]\par
\begin{description}
\index{KeyboardSize@{KeyboardSize}!NET@{NET}}\index{NET@{NET}!KeyboardSize@{KeyboardSize}}\item[{\em 
Keyboard\-Size\label{classNET_w118w48}
}]\begin{Desc}
\item[Since:]3.2 \end{Desc}
\index{KeyboardMove@{KeyboardMove}!NET@{NET}}\index{NET@{NET}!KeyboardMove@{KeyboardMove}}\item[{\em 
Keyboard\-Move\label{classNET_w118w49}
}]\begin{Desc}
\item[Since:]3.2 \end{Desc}
\end{description}
\end{Desc}



Definition at line 401 of file netwm\_\-def.h.\index{NET@{NET}!MappingState@{MappingState}}
\index{MappingState@{MappingState}!NET@{NET}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf NET::Mapping\-State}}\label{classNET_w119}


Client window mapping state. 

The class automatically watches the mapping state of the client windows, and uses the mapping state to determine how to set/change different properties.

\begin{itemize}
\item Visible indicates the client window is visible to the user.\end{itemize}
\begin{itemize}
\item Withdrawn indicates that neither the client window nor its icon is visible.\end{itemize}
\begin{itemize}
\item Iconic indicates that the client window is not visible, but its icon is. This can be when the window is minimized or when it's on a different virtual desktop. See also {\bf NET::Hidden}{\rm (p.\,\pageref{classNET_w117w35})}. \end{itemize}


Definition at line 436 of file netwm\_\-def.h.\index{NET@{NET}!Action@{Action}}
\index{Action@{Action}!NET@{NET}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf NET::Action}}\label{classNET_w120}


Actions that can be done with a window (\_\-NET\_\-WM\_\-ALLOWED\_\-ACTIONS). 

\begin{Desc}
\item[Since:]3.2 \end{Desc}


Definition at line 446 of file netwm\_\-def.h.\index{NET@{NET}!Property@{Property}}
\index{Property@{Property}!NET@{NET}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf NET::Property}}\label{classNET_w121}


Supported properties. 

Clients and Window Managers must define which properties/protocols it wants to support.

Root/Desktop window properties and protocols:

\begin{itemize}
\item Supported \item Client\-List \item Client\-List\-Stacking \item Number\-Of\-Desktops \item Desktop\-Geometry \item Desktop\-Viewport \item Current\-Desktop \item Desktop\-Names \item Active\-Window \item Work\-Area \item Supporting\-WMCheck \item Virtual\-Roots \item Close\-Window \item WMMove\-Resize\end{itemize}
Client window properties and protocols:

\begin{itemize}
\item WMName \item WMVisible\-Name \item WMDesktop \item WMWindow\-Type \item WMState \item WMStrut (obsoleted by WM2Extended\-Strut) \item WMIcon\-Geometry \item WMIcon \item WMPid \item WMVisible\-Icon\-Name \item WMIcon\-Name\end{itemize}
ICCCM properties (provided for convenience):

\begin{itemize}
\item XAWMState\end{itemize}
Extended {\bf KDE}{\rm (p.\,\pageref{namespaceKDE})} protocols and properties (NOT STANDARD):

\begin{itemize}
\item KDESystem\-Tray\-Windows \item WMKDESystem\-Tray\-Win\-For \item WMKDEFrame\-Strut \end{itemize}


Definition at line 506 of file netwm\_\-def.h.\index{NET@{NET}!Property2@{Property2}}
\index{Property2@{Property2}!NET@{NET}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf NET::Property2}}\label{classNET_w122}


Supported properties. 

This enum is an extension to {\bf NET::Property}{\rm (p.\,\pageref{classNET_w121})}, because them enum is limited only to 32 bits.

Client window properties and protocols:

\begin{itemize}
\item WM2User\-Time \item WM2Startup\-Id \item WM2Transient\-For mainwindow for the window (WM\_\-TRANSIENT\_\-FOR) \item WM2Group\-Leader group leader (window\_\-group in WM\_\-HINTS) \item WM2Allowed\-Actions \item WM2Restack\-Window \item WM2Move\-Resize\-Window \item WM2Extended\-Strut \item WM2Temporary\-Rules internal, for kstart \item WM2Window\-Class WM\_\-CLASS \item WM2Window\-Role WM\_\-WINDOW\_\-ROLE \item WM2Client\-Machine WM\_\-CLIENT\_\-MACHINE\end{itemize}
\begin{Desc}
\item[Since:]3.2 \end{Desc}
\begin{Desc}
\item[Enumeration values: ]\par
\begin{description}
\index{WM2WindowClass@{WM2WindowClass}!NET@{NET}}\index{NET@{NET}!WM2WindowClass@{WM2WindowClass}}\item[{\em 
WM2Window\-Class\label{classNET_w122w106}
}]\begin{Desc}
\item[Since:]3.3 \end{Desc}
\index{WM2WindowRole@{WM2WindowRole}!NET@{NET}}\index{NET@{NET}!WM2WindowRole@{WM2WindowRole}}\item[{\em 
WM2Window\-Role\label{classNET_w122w107}
}]\begin{Desc}
\item[Since:]3.3 \end{Desc}
\index{WM2ClientMachine@{WM2ClientMachine}!NET@{NET}}\index{NET@{NET}!WM2ClientMachine@{WM2ClientMachine}}\item[{\em 
WM2Client\-Machine\label{classNET_w122w108}
}]\begin{Desc}
\item[Since:]3.3 \end{Desc}
\end{description}
\end{Desc}



Definition at line 568 of file netwm\_\-def.h.\subsubsection{\setlength{\rightskip}{0pt plus 5cm}anonymous enum}\label{classNET_w123}


Sentinel value to indicate that the client wishes to be visible on all desktops. 

\begin{Desc}
\item[Since:]3.2 \end{Desc}


Definition at line 589 of file netwm\_\-def.h.\index{NET@{NET}!RequestSource@{RequestSource}}
\index{RequestSource@{RequestSource}!NET@{NET}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf NET::Request\-Source}}\label{classNET_w124}


Source of the request. 

\begin{itemize}
\item From\-Application the request comes from a normal application \item From\-Tool the request comes from pager or similar tool \begin{Desc}
\item[Since:]3.2 \end{Desc}
\end{itemize}


Definition at line 598 of file netwm\_\-def.h.

\subsection{Member Function Documentation}
\index{NET@{NET}!typeMatchesMask@{typeMatchesMask}}
\index{typeMatchesMask@{typeMatchesMask}!NET@{NET}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool NET::type\-Matches\-Mask ({\bf Window\-Type} {\em type}, unsigned long {\em mask})\hspace{0.3cm}{\tt  [static]}}\label{classNET_e0}


Returns true if the given window type matches the mask given using Window\-Type\-Mask flags. 



Definition at line 4130 of file netwm.cpp.

Referenced by NETWin\-Info::window\-Type().

The documentation for this class was generated from the following files:\begin{CompactItemize}
\item 
netwm\_\-def.h\item 
netwm.cpp\end{CompactItemize}
