\hypertarget{group__iface__zxdg__shell__v6}{}\section{The zxdg\+\_\+shell\+\_\+v6 interface}
\label{group__iface__zxdg__shell__v6}\index{The zxdg\+\_\+shell\+\_\+v6 interface@{The zxdg\+\_\+shell\+\_\+v6 interface}}


xdg\+\_\+shell allows clients to turn a wl\+\_\+surface into a \char`\"{}real window\char`\"{} which can be dragged, resized, stacked, and moved around by the user.  


\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structzxdg__shell__v6__listener}{zxdg\+\_\+shell\+\_\+v6\+\_\+listener}}
\item 
struct \mbox{\hyperlink{structzxdg__shell__v6__interface}{zxdg\+\_\+shell\+\_\+v6\+\_\+interface}}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_ga7b220b9cd8ac2bd59b0a0a168081d721}\label{group__iface__zxdg__shell__v6_ga7b220b9cd8ac2bd59b0a0a168081d721}} 
\#define {\bfseries Z\+X\+D\+G\+\_\+\+S\+H\+E\+L\+L\+\_\+\+V6\+\_\+\+P\+I\+N\+G\+\_\+\+S\+I\+N\+C\+E\+\_\+\+V\+E\+R\+S\+I\+ON}~1
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_gab178558feabc0359859e883f35164710}\label{group__iface__zxdg__shell__v6_gab178558feabc0359859e883f35164710}} 
\#define {\bfseries Z\+X\+D\+G\+\_\+\+S\+H\+E\+L\+L\+\_\+\+V6\+\_\+\+D\+E\+S\+T\+R\+O\+Y\+\_\+\+S\+I\+N\+C\+E\+\_\+\+V\+E\+R\+S\+I\+ON}~1
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_ga799d55101631aba8b33b4e28b8dc4d98}\label{group__iface__zxdg__shell__v6_ga799d55101631aba8b33b4e28b8dc4d98}} 
\#define {\bfseries Z\+X\+D\+G\+\_\+\+S\+H\+E\+L\+L\+\_\+\+V6\+\_\+\+C\+R\+E\+A\+T\+E\+\_\+\+P\+O\+S\+I\+T\+I\+O\+N\+E\+R\+\_\+\+S\+I\+N\+C\+E\+\_\+\+V\+E\+R\+S\+I\+ON}~1
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_gaedf50db41b7ecb646b56aa21a385f16e}\label{group__iface__zxdg__shell__v6_gaedf50db41b7ecb646b56aa21a385f16e}} 
\#define {\bfseries Z\+X\+D\+G\+\_\+\+S\+H\+E\+L\+L\+\_\+\+V6\+\_\+\+G\+E\+T\+\_\+\+X\+D\+G\+\_\+\+S\+U\+R\+F\+A\+C\+E\+\_\+\+S\+I\+N\+C\+E\+\_\+\+V\+E\+R\+S\+I\+ON}~1
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_ga2c22c2e998b5e5daf002b2bbb79613f7}\label{group__iface__zxdg__shell__v6_ga2c22c2e998b5e5daf002b2bbb79613f7}} 
\#define {\bfseries Z\+X\+D\+G\+\_\+\+S\+H\+E\+L\+L\+\_\+\+V6\+\_\+\+P\+O\+N\+G\+\_\+\+S\+I\+N\+C\+E\+\_\+\+V\+E\+R\+S\+I\+ON}~1
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_ga7b220b9cd8ac2bd59b0a0a168081d721}\label{group__iface__zxdg__shell__v6_ga7b220b9cd8ac2bd59b0a0a168081d721}} 
\#define {\bfseries Z\+X\+D\+G\+\_\+\+S\+H\+E\+L\+L\+\_\+\+V6\+\_\+\+P\+I\+N\+G\+\_\+\+S\+I\+N\+C\+E\+\_\+\+V\+E\+R\+S\+I\+ON}~1
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_gab178558feabc0359859e883f35164710}\label{group__iface__zxdg__shell__v6_gab178558feabc0359859e883f35164710}} 
\#define {\bfseries Z\+X\+D\+G\+\_\+\+S\+H\+E\+L\+L\+\_\+\+V6\+\_\+\+D\+E\+S\+T\+R\+O\+Y\+\_\+\+S\+I\+N\+C\+E\+\_\+\+V\+E\+R\+S\+I\+ON}~1
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_ga799d55101631aba8b33b4e28b8dc4d98}\label{group__iface__zxdg__shell__v6_ga799d55101631aba8b33b4e28b8dc4d98}} 
\#define {\bfseries Z\+X\+D\+G\+\_\+\+S\+H\+E\+L\+L\+\_\+\+V6\+\_\+\+C\+R\+E\+A\+T\+E\+\_\+\+P\+O\+S\+I\+T\+I\+O\+N\+E\+R\+\_\+\+S\+I\+N\+C\+E\+\_\+\+V\+E\+R\+S\+I\+ON}~1
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_gaedf50db41b7ecb646b56aa21a385f16e}\label{group__iface__zxdg__shell__v6_gaedf50db41b7ecb646b56aa21a385f16e}} 
\#define {\bfseries Z\+X\+D\+G\+\_\+\+S\+H\+E\+L\+L\+\_\+\+V6\+\_\+\+G\+E\+T\+\_\+\+X\+D\+G\+\_\+\+S\+U\+R\+F\+A\+C\+E\+\_\+\+S\+I\+N\+C\+E\+\_\+\+V\+E\+R\+S\+I\+ON}~1
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_ga2c22c2e998b5e5daf002b2bbb79613f7}\label{group__iface__zxdg__shell__v6_ga2c22c2e998b5e5daf002b2bbb79613f7}} 
\#define {\bfseries Z\+X\+D\+G\+\_\+\+S\+H\+E\+L\+L\+\_\+\+V6\+\_\+\+P\+O\+N\+G\+\_\+\+S\+I\+N\+C\+E\+\_\+\+V\+E\+R\+S\+I\+ON}~1
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_ga3ee8d12cc496712bf93e5d026e0bc025}\label{group__iface__zxdg__shell__v6_ga3ee8d12cc496712bf93e5d026e0bc025}} 
static int {\bfseries zxdg\+\_\+shell\+\_\+v6\+\_\+add\+\_\+listener} (struct zxdg\+\_\+shell\+\_\+v6 $\ast$zxdg\+\_\+shell\+\_\+v6, const struct \mbox{\hyperlink{structzxdg__shell__v6__listener}{zxdg\+\_\+shell\+\_\+v6\+\_\+listener}} $\ast$listener, void $\ast$data)
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_gabb7a6e9494c346d0d6a4cee3f4da18bf}\label{group__iface__zxdg__shell__v6_gabb7a6e9494c346d0d6a4cee3f4da18bf}} 
static void {\bfseries zxdg\+\_\+shell\+\_\+v6\+\_\+set\+\_\+user\+\_\+data} (struct zxdg\+\_\+shell\+\_\+v6 $\ast$zxdg\+\_\+shell\+\_\+v6, void $\ast$user\+\_\+data)
\item 
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_ga4c8a342cf197656a58a53f12106893f7}\label{group__iface__zxdg__shell__v6_ga4c8a342cf197656a58a53f12106893f7}} 
static void $\ast$ {\bfseries zxdg\+\_\+shell\+\_\+v6\+\_\+get\+\_\+user\+\_\+data} (struct zxdg\+\_\+shell\+\_\+v6 $\ast$zxdg\+\_\+shell\+\_\+v6)
\item 
static void \mbox{\hyperlink{group__iface__zxdg__shell__v6_ga153ab4536aa427b3f67921210455596f}{zxdg\+\_\+shell\+\_\+v6\+\_\+destroy}} (struct zxdg\+\_\+shell\+\_\+v6 $\ast$zxdg\+\_\+shell\+\_\+v6)
\begin{DoxyCompactList}\small\item\em Destroy this xdg\+\_\+shell object. \end{DoxyCompactList}\item 
static struct zxdg\+\_\+positioner\+\_\+v6 $\ast$ \mbox{\hyperlink{group__iface__zxdg__shell__v6_ga0c75537b93c9903cda2e314ca6816e2c}{zxdg\+\_\+shell\+\_\+v6\+\_\+create\+\_\+positioner}} (struct zxdg\+\_\+shell\+\_\+v6 $\ast$zxdg\+\_\+shell\+\_\+v6)
\begin{DoxyCompactList}\small\item\em Create a positioner object. \end{DoxyCompactList}\item 
static struct zxdg\+\_\+surface\+\_\+v6 $\ast$ \mbox{\hyperlink{group__iface__zxdg__shell__v6_ga290190f9c559d8d47aa5f30109d5a839}{zxdg\+\_\+shell\+\_\+v6\+\_\+get\+\_\+xdg\+\_\+surface}} (struct zxdg\+\_\+shell\+\_\+v6 $\ast$zxdg\+\_\+shell\+\_\+v6, struct wl\+\_\+surface $\ast$surface)
\begin{DoxyCompactList}\small\item\em This creates an xdg\+\_\+surface for the given surface. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__iface__zxdg__shell__v6_gab88a3f62b0486cac4b8e846ee2aec3ee}{zxdg\+\_\+shell\+\_\+v6\+\_\+pong}} (struct zxdg\+\_\+shell\+\_\+v6 $\ast$zxdg\+\_\+shell\+\_\+v6, uint32\+\_\+t serial)
\begin{DoxyCompactList}\small\item\em A client must respond to a ping event with a pong request or the client may be deemed unresponsive. \end{DoxyCompactList}\item 
static void \mbox{\hyperlink{group__iface__zxdg__shell__v6_gad34e3750d148650077c12a7885110e1d}{zxdg\+\_\+shell\+\_\+v6\+\_\+send\+\_\+ping}} (struct wl\+\_\+resource $\ast$resource\+\_\+, uint32\+\_\+t serial)
\begin{DoxyCompactList}\small\item\em Sends an ping event to the client owning the resource. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
xdg\+\_\+shell allows clients to turn a wl\+\_\+surface into a \char`\"{}real window\char`\"{} which can be dragged, resized, stacked, and moved around by the user. 

Everything about this interface is suited towards traditional desktop environments. 

\subsection{Function Documentation}
\mbox{\Hypertarget{group__iface__zxdg__shell__v6_ga153ab4536aa427b3f67921210455596f}\label{group__iface__zxdg__shell__v6_ga153ab4536aa427b3f67921210455596f}} 
\index{The zxdg\+\_\+shell\+\_\+v6 interface@{The zxdg\+\_\+shell\+\_\+v6 interface}!zxdg\+\_\+shell\+\_\+v6\+\_\+destroy@{zxdg\+\_\+shell\+\_\+v6\+\_\+destroy}}
\index{zxdg\+\_\+shell\+\_\+v6\+\_\+destroy@{zxdg\+\_\+shell\+\_\+v6\+\_\+destroy}!The zxdg\+\_\+shell\+\_\+v6 interface@{The zxdg\+\_\+shell\+\_\+v6 interface}}
\subsubsection{\texorpdfstring{zxdg\+\_\+shell\+\_\+v6\+\_\+destroy()}{zxdg\_shell\_v6\_destroy()}}
{\footnotesize\ttfamily static void zxdg\+\_\+shell\+\_\+v6\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct zxdg\+\_\+shell\+\_\+v6 $\ast$}]{zxdg\+\_\+shell\+\_\+v6 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Destroy this xdg\+\_\+shell object. 

Destroying a bound xdg\+\_\+shell object while there are surfaces still alive created by this xdg\+\_\+shell object instance is illegal and will result in a protocol error. \mbox{\Hypertarget{group__iface__zxdg__shell__v6_ga0c75537b93c9903cda2e314ca6816e2c}\label{group__iface__zxdg__shell__v6_ga0c75537b93c9903cda2e314ca6816e2c}} 
\index{The zxdg\+\_\+shell\+\_\+v6 interface@{The zxdg\+\_\+shell\+\_\+v6 interface}!zxdg\+\_\+shell\+\_\+v6\+\_\+create\+\_\+positioner@{zxdg\+\_\+shell\+\_\+v6\+\_\+create\+\_\+positioner}}
\index{zxdg\+\_\+shell\+\_\+v6\+\_\+create\+\_\+positioner@{zxdg\+\_\+shell\+\_\+v6\+\_\+create\+\_\+positioner}!The zxdg\+\_\+shell\+\_\+v6 interface@{The zxdg\+\_\+shell\+\_\+v6 interface}}
\subsubsection{\texorpdfstring{zxdg\+\_\+shell\+\_\+v6\+\_\+create\+\_\+positioner()}{zxdg\_shell\_v6\_create\_positioner()}}
{\footnotesize\ttfamily static struct zxdg\+\_\+positioner\+\_\+v6$\ast$ zxdg\+\_\+shell\+\_\+v6\+\_\+create\+\_\+positioner (\begin{DoxyParamCaption}\item[{struct zxdg\+\_\+shell\+\_\+v6 $\ast$}]{zxdg\+\_\+shell\+\_\+v6 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Create a positioner object. 

A positioner object is used to position surfaces relative to some parent surface. See the interface description and xdg\+\_\+surface.\+get\+\_\+popup for details. \mbox{\Hypertarget{group__iface__zxdg__shell__v6_ga290190f9c559d8d47aa5f30109d5a839}\label{group__iface__zxdg__shell__v6_ga290190f9c559d8d47aa5f30109d5a839}} 
\index{The zxdg\+\_\+shell\+\_\+v6 interface@{The zxdg\+\_\+shell\+\_\+v6 interface}!zxdg\+\_\+shell\+\_\+v6\+\_\+get\+\_\+xdg\+\_\+surface@{zxdg\+\_\+shell\+\_\+v6\+\_\+get\+\_\+xdg\+\_\+surface}}
\index{zxdg\+\_\+shell\+\_\+v6\+\_\+get\+\_\+xdg\+\_\+surface@{zxdg\+\_\+shell\+\_\+v6\+\_\+get\+\_\+xdg\+\_\+surface}!The zxdg\+\_\+shell\+\_\+v6 interface@{The zxdg\+\_\+shell\+\_\+v6 interface}}
\subsubsection{\texorpdfstring{zxdg\+\_\+shell\+\_\+v6\+\_\+get\+\_\+xdg\+\_\+surface()}{zxdg\_shell\_v6\_get\_xdg\_surface()}}
{\footnotesize\ttfamily static struct zxdg\+\_\+surface\+\_\+v6$\ast$ zxdg\+\_\+shell\+\_\+v6\+\_\+get\+\_\+xdg\+\_\+surface (\begin{DoxyParamCaption}\item[{struct zxdg\+\_\+shell\+\_\+v6 $\ast$}]{zxdg\+\_\+shell\+\_\+v6,  }\item[{struct wl\+\_\+surface $\ast$}]{surface }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



This creates an xdg\+\_\+surface for the given surface. 

While xdg\+\_\+surface itself is not a role, the corresponding surface may only be assigned a role extending xdg\+\_\+surface, such as xdg\+\_\+toplevel or xdg\+\_\+popup.

This creates an xdg\+\_\+surface for the given surface. An xdg\+\_\+surface is used as basis to define a role to a given surface, such as xdg\+\_\+toplevel or xdg\+\_\+popup. It also manages functionality shared between xdg\+\_\+surface based surface roles.

See the documentation of xdg\+\_\+surface for more details about what an xdg\+\_\+surface is and how it is used. \mbox{\Hypertarget{group__iface__zxdg__shell__v6_gab88a3f62b0486cac4b8e846ee2aec3ee}\label{group__iface__zxdg__shell__v6_gab88a3f62b0486cac4b8e846ee2aec3ee}} 
\index{The zxdg\+\_\+shell\+\_\+v6 interface@{The zxdg\+\_\+shell\+\_\+v6 interface}!zxdg\+\_\+shell\+\_\+v6\+\_\+pong@{zxdg\+\_\+shell\+\_\+v6\+\_\+pong}}
\index{zxdg\+\_\+shell\+\_\+v6\+\_\+pong@{zxdg\+\_\+shell\+\_\+v6\+\_\+pong}!The zxdg\+\_\+shell\+\_\+v6 interface@{The zxdg\+\_\+shell\+\_\+v6 interface}}
\subsubsection{\texorpdfstring{zxdg\+\_\+shell\+\_\+v6\+\_\+pong()}{zxdg\_shell\_v6\_pong()}}
{\footnotesize\ttfamily static void zxdg\+\_\+shell\+\_\+v6\+\_\+pong (\begin{DoxyParamCaption}\item[{struct zxdg\+\_\+shell\+\_\+v6 $\ast$}]{zxdg\+\_\+shell\+\_\+v6,  }\item[{uint32\+\_\+t}]{serial }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



A client must respond to a ping event with a pong request or the client may be deemed unresponsive. 

See xdg\+\_\+shell.\+ping. \mbox{\Hypertarget{group__iface__zxdg__shell__v6_gad34e3750d148650077c12a7885110e1d}\label{group__iface__zxdg__shell__v6_gad34e3750d148650077c12a7885110e1d}} 
\index{The zxdg\+\_\+shell\+\_\+v6 interface@{The zxdg\+\_\+shell\+\_\+v6 interface}!zxdg\+\_\+shell\+\_\+v6\+\_\+send\+\_\+ping@{zxdg\+\_\+shell\+\_\+v6\+\_\+send\+\_\+ping}}
\index{zxdg\+\_\+shell\+\_\+v6\+\_\+send\+\_\+ping@{zxdg\+\_\+shell\+\_\+v6\+\_\+send\+\_\+ping}!The zxdg\+\_\+shell\+\_\+v6 interface@{The zxdg\+\_\+shell\+\_\+v6 interface}}
\subsubsection{\texorpdfstring{zxdg\+\_\+shell\+\_\+v6\+\_\+send\+\_\+ping()}{zxdg\_shell\_v6\_send\_ping()}}
{\footnotesize\ttfamily static void zxdg\+\_\+shell\+\_\+v6\+\_\+send\+\_\+ping (\begin{DoxyParamCaption}\item[{struct wl\+\_\+resource $\ast$}]{resource\+\_\+,  }\item[{uint32\+\_\+t}]{serial }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Sends an ping event to the client owning the resource. 


\begin{DoxyParams}{Parameters}
{\em resource\+\_\+} & The client\textquotesingle{}s resource \\
\hline
{\em serial} & pass this to the pong request \\
\hline
\end{DoxyParams}
