\section{Win}
\label{group__Win}\index{Win@{Win}}
\subsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Inwin}{Inwin}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \+\_\+\+Elm\+\_\+\+Win\+\_\+\+Trap \hyperlink{group__Win_gabc61f40fef88e06599e0954f5255f60a}{Elm\+\_\+\+Win\+\_\+\+Trap}
\begin{DoxyCompactList}\small\item\em Trap can be set with \hyperlink{group__Win_ga015c24170f7df09056041a956ea5d967}{elm\+\_\+win\+\_\+trap\+\_\+set()} and will intercept the calls to internal ecore\+\_\+evas with the same name and parameters. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
Eina\+\_\+\+Bool \hyperlink{group__Win_ga015c24170f7df09056041a956ea5d967}{elm\+\_\+win\+\_\+trap\+\_\+set} (const \hyperlink{group__Win_gabc61f40fef88e06599e0954f5255f60a}{Elm\+\_\+\+Win\+\_\+\+Trap} $\ast$trap)
\begin{DoxyCompactList}\small\item\em Sets the trap to be used for internal {\ttfamily Ecore\+\_\+\+Evas} management. \end{DoxyCompactList}\item 
Evas\+\_\+\+Object $\ast$ \hyperlink{group__Win_gad127cc5ae04689c4f2c5b633056d0ac8}{elm\+\_\+win\+\_\+add} (Evas\+\_\+\+Object $\ast$parent, const char $\ast$name, Elm\+\_\+\+Win\+\_\+\+Type type)
\begin{DoxyCompactList}\small\item\em Adds a window object. \end{DoxyCompactList}\item 
Evas\+\_\+\+Object $\ast$ \hyperlink{group__Win_gaf843ab07cbc075c17ba4367bdd5cc25a}{elm\+\_\+win\+\_\+fake\+\_\+add} (Ecore\+\_\+\+Evas $\ast$ee)
\begin{DoxyCompactList}\small\item\em Creates a fake window object using a pre-\/existing canvas. \end{DoxyCompactList}\item 
Evas\+\_\+\+Object $\ast$ \hyperlink{group__Win_gac75d7752662fab73d6420706ce5be996}{elm\+\_\+win\+\_\+util\+\_\+standard\+\_\+add} (const char $\ast$name, const char $\ast$title)
\begin{DoxyCompactList}\small\item\em Adds a window object with standard setup. \end{DoxyCompactList}\item 
Evas\+\_\+\+Object $\ast$ \hyperlink{group__Win_ga8dd55eff4c5c3fce17b956c789546a8a}{elm\+\_\+win\+\_\+util\+\_\+dialog\+\_\+add} (Evas\+\_\+\+Object $\ast$parent, const char $\ast$name, const char $\ast$title)
\begin{DoxyCompactList}\small\item\em Adds a window object with dialog setup. \end{DoxyCompactList}\item 
void \hyperlink{group__Win_gaeb690361eca5302972d59a1a9466c329}{elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+set} (Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Bool floating)
\begin{DoxyCompactList}\small\item\em Set the floating mode of a window. \end{DoxyCompactList}\item 
Eina\+\_\+\+Bool \hyperlink{group__Win_ga322180e99b20b4498ef0072f66efc40c}{elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+get} (const Evas\+\_\+\+Object $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the floating mode of a window. \end{DoxyCompactList}\item 
void \hyperlink{group__Win_ga7e3ef9070376ed37088b08e5f3be413d}{elm\+\_\+win\+\_\+norender\+\_\+push} (Evas\+\_\+\+Object $\ast$obj)
\begin{DoxyCompactList}\small\item\em This pushes (increments) the norender counter on the window. \end{DoxyCompactList}\item 
void \hyperlink{group__Win_ga0314466729dce22ba127d9bcf71fc93a}{elm\+\_\+win\+\_\+norender\+\_\+pop} (Evas\+\_\+\+Object $\ast$obj)
\begin{DoxyCompactList}\small\item\em This pops (decrements) the norender counter on the window. \end{DoxyCompactList}\item 
int \hyperlink{group__Win_gafba0cfed9c64fe7ed907afbf605e6772}{elm\+\_\+win\+\_\+norender\+\_\+get} (const Evas\+\_\+\+Object $\ast$obj)
\begin{DoxyCompactList}\small\item\em The retruns how many times norender has been pushed on the window. \end{DoxyCompactList}\item 
void \hyperlink{group__Win_ga02f2e9437286e8dbdbc3718f84d35513}{elm\+\_\+win\+\_\+render} (Evas\+\_\+\+Object $\ast$obj)
\begin{DoxyCompactList}\small\item\em This manually asks evas to render the window now. \end{DoxyCompactList}\item 
Ecore\+\_\+\+Wl\+\_\+\+Window $\ast$ \hyperlink{group__Win_ga08407120b879665919e1fcd5a309e46b}{elm\+\_\+win\+\_\+wl\+\_\+window\+\_\+get} (const Evas\+\_\+\+Object $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the Ecore\+\_\+\+Wl\+\_\+\+Window of an Evas\+\_\+\+Object. \end{DoxyCompactList}\item 
Ecore\+\_\+\+Window \hyperlink{group__Win_ga341a40c980e32076874ab5c4c42608e7}{elm\+\_\+win\+\_\+window\+\_\+id\+\_\+get} (const Evas\+\_\+\+Object $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the Ecore\+\_\+\+Window of an Evas\+\_\+\+Object. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
 
\begin{DoxyImageNoCaption}
  \mbox{\includegraphics[width=\textwidth,height=\textheight/2,keepaspectratio=true]{win_inheritance_tree}}
\end{DoxyImageNoCaption}


 
\begin{DoxyImageNoCaption}
  \mbox{\includegraphics[width=\textwidth,height=\textheight/2,keepaspectratio=true]{img/widget/win/preview-00}}
\end{DoxyImageNoCaption}


The window class of Elementary. Contains functions to manipulate windows. The Evas engine used to render the window contents is specified in the system or user elementary config files (whichever is found last), and can be overridden with the E\+L\+M\+\_\+\+E\+N\+G\+I\+N\+E environment variable for testing. Engines that may be supported (depending on Evas and Ecore-\/\+Evas compilation setup and modules actually installed at runtime) are (listed in order of best supported and most likely to be complete and work to lowest quality). Note that E\+L\+M\+\_\+\+E\+N\+G\+I\+N\+E is really only needed for special cases and debugging. you should normally use E\+L\+M\+\_\+\+D\+I\+S\+P\+L\+A\+Y and E\+L\+M\+\_\+\+A\+C\+C\+E\+L environment variables, or core elementary config. E\+L\+M\+\_\+\+D\+I\+S\+P\+L\+A\+Y can be set to \char`\"{}x11\char`\"{} or \char`\"{}wl\char`\"{} to indicate the target display system (as on Linux systems you may have both display systems available, so this selects which to use). E\+L\+M\+\_\+\+A\+C\+C\+E\+L may also be set to indicate if you want accelerations and which kind to use. see elm\+\_\+config\+\_\+accel\+\_\+preference\+\_\+set(0 for details on this environment variable values.

\begin{DoxyItemize}
\item \char`\"{}x11\char`\"{}, \char`\"{}x\char`\"{}, \char`\"{}software-\/x11\char`\"{}, \char`\"{}software\+\_\+x11\char`\"{} (Software rendering in X11) \item \char`\"{}gl\char`\"{}, \char`\"{}opengl\char`\"{}, \char`\"{}opengl-\/x11\char`\"{}, \char`\"{}opengl\+\_\+x11\char`\"{} (Open\+G\+L or Open\+G\+L-\/\+E\+S2 rendering in X11) \item \char`\"{}shot\+:...\char`\"{} (Virtual screenshot renderer -\/ renders to output file and exits) \item \char`\"{}fb\char`\"{}, \char`\"{}software-\/fb\char`\"{}, \char`\"{}software\+\_\+fb\char`\"{} (Linux framebuffer direct software rendering) \item \char`\"{}sdl\char`\"{}, \char`\"{}software-\/sdl\char`\"{}, \char`\"{}software\+\_\+sdl\char`\"{} (S\+D\+L software rendering to S\+D\+L buffer) \item \char`\"{}gl-\/sdl\char`\"{}, \char`\"{}gl\+\_\+sdl\char`\"{}, \char`\"{}opengl-\/sdl\char`\"{}, \char`\"{}opengl\+\_\+sdl\char`\"{} (Open\+G\+L or Open\+G\+L-\/\+E\+S2 rendering using S\+D\+L as the buffer) \item \char`\"{}gdi\char`\"{}, \char`\"{}software-\/gdi\char`\"{}, \char`\"{}software\+\_\+gdi\char`\"{} (Windows W\+I\+N32 rendering via G\+D\+I with software) \item \char`\"{}ddraw\char`\"{}, \char`\"{}software-\/ddraw\char`\"{}, \char`\"{}software\+\_\+ddraw\char`\"{} (Windows W\+I\+N32 rendering via Direct\+Draw with software) \item \char`\"{}ews\char`\"{} (rendering to E\+W\+S -\/ Ecore + Evas Single Process Windowing System) \item \char`\"{}gl-\/cocoa\char`\"{}, \char`\"{}gl\+\_\+cocoa\char`\"{}, \char`\"{}opengl-\/cocoa\char`\"{}, \char`\"{}opengl\+\_\+cocoa\char`\"{} (Open\+G\+L rendering in Cocoa) \item \char`\"{}wayland\+\_\+shm\char`\"{} (Wayland client S\+H\+M rendering) \item \char`\"{}wayland\+\_\+egl\char`\"{} (Wayland client Open\+G\+L/\+E\+G\+L rendering) \item \char`\"{}drm\char`\"{} (Linux drm/kms etc. direct display)\end{DoxyItemize}
All engines use a simple string to select the engine to render, E\+X\+C\+E\+P\+T the \char`\"{}shot\char`\"{} engine. This actually encodes the output of the virtual screenshot and how long to delay in the engine string. The engine string is encoded in the following way\+:

\char`\"{}shot\+:\mbox{[}delay=\+X\+X\mbox{]}\mbox{[}\+:\mbox{]}\mbox{[}repeat=\+D\+D\+D\mbox{]}\mbox{[}\+:\mbox{]}\mbox{[}file=\+X\+X\mbox{]}\char`\"{}

Where options are separated by a \char`\"{}\+:\char`\"{} char if more than one option is given, with delay, if provided being the first option and file the last (order is important). The delay specifies how long to wait after the window is shown before doing the virtual \char`\"{}in memory\char`\"{} rendering and then save the output to the file specified by the file option (and then exit). If no delay is given, the default is 0.\+5 seconds. If no file is given the default output file is \char`\"{}out.\+png\char`\"{}. Repeat option is for continuous capturing screenshots. Repeat range is from 1 to 999 and filename is fixed to \char`\"{}out001.\+png\char`\"{} Some examples of using the shot engine\+:

E\+L\+M\+\_\+\+E\+N\+G\+I\+N\+E=\char`\"{}shot\+:delay=1.\+0\+:repeat=5\+:file=elm\+\_\+test.\+png\char`\"{} elementary\+\_\+test E\+L\+M\+\_\+\+E\+N\+G\+I\+N\+E=\char`\"{}shot\+:delay=1.\+0\+:file=elm\+\_\+test.\+png\char`\"{} elementary\+\_\+test E\+L\+M\+\_\+\+E\+N\+G\+I\+N\+E=\char`\"{}shot\+:file=elm\+\_\+test2.\+png\char`\"{} elementary\+\_\+test E\+L\+M\+\_\+\+E\+N\+G\+I\+N\+E=\char`\"{}shot\+:delay=2.\+0\char`\"{} elementary\+\_\+test E\+L\+M\+\_\+\+E\+N\+G\+I\+N\+E=\char`\"{}shot\+:\char`\"{} elementary\+\_\+test

Signals that you can add callbacks for are\+:

\begin{DoxyItemize}
\item \char`\"{}delete,request\char`\"{}\+: the user requested to close the window. See elm\+\_\+win\+\_\+autodel\+\_\+set() and elm\+\_\+win\+\_\+autohide\+\_\+set(). \item \char`\"{}focus,in\char`\"{}\+: window got focus (deprecated. use \char`\"{}focused\char`\"{} instead.) \item \char`\"{}focus,out\char`\"{}\+: window lost focus (deprecated. use \char`\"{}unfocused\char`\"{} instead.) \item \char`\"{}moved\char`\"{}\+: window that holds the canvas was moved \item \char`\"{}withdrawn\char`\"{}\+: window is still managed normally but removed from view \item \char`\"{}iconified\char`\"{}\+: window is minimized (perhaps into an icon or taskbar) \item \char`\"{}normal\char`\"{}\+: window is in a normal state (not withdrawn or iconified) \item \char`\"{}stick\char`\"{}\+: window has become sticky (shows on all desktops) \item \char`\"{}unstick\char`\"{}\+: window has stopped being sticky \item \char`\"{}fullscreen\char`\"{}\+: window has become fullscreen \item \char`\"{}unfullscreen\char`\"{}\+: window has stopped being fullscreen \item \char`\"{}maximized\char`\"{}\+: window has been maximized \item \char`\"{}unmaximized\char`\"{}\+: window has stopped being maximized \item \char`\"{}ioerr\char`\"{}\+: there has been a low-\/level I/\+O error with the display system \item \char`\"{}indicator,prop,changed\char`\"{}\+: an indicator\textquotesingle{}s property has been changed \item \char`\"{}rotation,changed\char`\"{}\+: window rotation has been changed \item \char`\"{}profile,changed\char`\"{}\+: profile of the window has been changed \item \char`\"{}focused\char`\"{} \+: When the win has received focus. (since 1.\+8) \item \char`\"{}unfocused\char`\"{} \+: When the win has lost focus. (since 1.\+8) \item \char`\"{}theme,changed\char`\"{} -\/ The theme was changed. (since 1.\+13)\end{DoxyItemize}
Note that calling evas\+\_\+object\+\_\+show() after window contents creation is recommended. It will trigger evas\+\_\+smart\+\_\+objects\+\_\+calculate() and some backend calls directly. For example, X\+Map\+Window is called directly during evas\+\_\+object\+\_\+show() in X11 engine.

Examples\+: \begin{DoxyItemize}
\item \hyperlink{win_example_01}{Win -\/ General A\+P\+I overview} \end{DoxyItemize}


\subsection{Typedef Documentation}
\index{Win@{Win}!Elm\+\_\+\+Win\+\_\+\+Trap@{Elm\+\_\+\+Win\+\_\+\+Trap}}
\index{Elm\+\_\+\+Win\+\_\+\+Trap@{Elm\+\_\+\+Win\+\_\+\+Trap}!Win@{Win}}
\subsubsection[{Elm\+\_\+\+Win\+\_\+\+Trap}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Elm\+\_\+\+Win\+\_\+\+Trap}}\label{group__Win_gabc61f40fef88e06599e0954f5255f60a}


Trap can be set with \hyperlink{group__Win_ga015c24170f7df09056041a956ea5d967}{elm\+\_\+win\+\_\+trap\+\_\+set()} and will intercept the calls to internal ecore\+\_\+evas with the same name and parameters. 

If there is a trap and it returns {\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} then the call will be allowed, otherwise it will be ignored.

\begin{DoxySince}{Since}
1.\+7 
\end{DoxySince}


\subsection{Function Documentation}
\index{Win@{Win}!elm\+\_\+win\+\_\+add@{elm\+\_\+win\+\_\+add}}
\index{elm\+\_\+win\+\_\+add@{elm\+\_\+win\+\_\+add}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+add(\+Evas\+\_\+\+Object $\ast$parent, const char $\ast$name, Elm\+\_\+\+Win\+\_\+\+Type type)}]{\setlength{\rightskip}{0pt plus 5cm}Evas\+\_\+\+Object$\ast$ elm\+\_\+win\+\_\+add (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{parent, }
\item[{const char $\ast$}]{name, }
\item[{Elm\+\_\+\+Win\+\_\+\+Type}]{type}
\end{DoxyParamCaption}
)}\label{group__Win_gad127cc5ae04689c4f2c5b633056d0ac8}


Adds a window object. 

If this is the first window created, pass N\+U\+L\+L as {\ttfamily parent}.


\begin{DoxyParams}{Parameters}
{\em parent} & Parent object to add the window to, or N\+U\+L\+L \\
\hline
{\em name} & The name of the window \\
\hline
{\em type} & The window type, one of \#\+Elm\+\_\+\+Win\+\_\+\+Type.\\
\hline
\end{DoxyParams}
The {\ttfamily parent} parameter can be {\ttfamily N\+U\+L\+L} for every window {\ttfamily type} except \#\+E\+L\+M\+\_\+\+W\+I\+N\+\_\+\+I\+N\+L\+I\+N\+E\+D\+\_\+\+I\+M\+A\+G\+E, which needs a parent to retrieve the canvas on which the image object will be created.

\begin{DoxyReturn}{Returns}
The created object, or {\ttfamily N\+U\+L\+L} on failure 
\end{DoxyReturn}


Referenced by elm\+\_\+quicklaunch\+\_\+seed(), elm\+\_\+win\+\_\+util\+\_\+dialog\+\_\+add(), and elm\+\_\+win\+\_\+util\+\_\+standard\+\_\+add().

\index{Win@{Win}!elm\+\_\+win\+\_\+fake\+\_\+add@{elm\+\_\+win\+\_\+fake\+\_\+add}}
\index{elm\+\_\+win\+\_\+fake\+\_\+add@{elm\+\_\+win\+\_\+fake\+\_\+add}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+fake\+\_\+add(\+Ecore\+\_\+\+Evas $\ast$ee)}]{\setlength{\rightskip}{0pt plus 5cm}Evas\+\_\+\+Object$\ast$ elm\+\_\+win\+\_\+fake\+\_\+add (
\begin{DoxyParamCaption}
\item[{Ecore\+\_\+\+Evas $\ast$}]{ee}
\end{DoxyParamCaption}
)}\label{group__Win_gaf843ab07cbc075c17ba4367bdd5cc25a}


Creates a fake window object using a pre-\/existing canvas. 


\begin{DoxyParams}{Parameters}
{\em ee} & The Ecore\+\_\+\+Evas to use\\
\hline
\end{DoxyParams}
The returned window widget will not manage or modify the canvas; this canvas must continue to be managed externally.

Do not use this function if you are not writing a window manager. \begin{DoxyWarning}{Warning}
Exact behaviors of this function are not guaranteed.
\end{DoxyWarning}
\begin{DoxyReturn}{Returns}
The created object, or {\ttfamily N\+U\+L\+L} on failure
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}
\index{Win@{Win}!elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+get@{elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+get}}
\index{elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+get@{elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+get}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+get(const Evas\+\_\+\+Object $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}Eina\+\_\+\+Bool elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+get (
\begin{DoxyParamCaption}
\item[{const Evas\+\_\+\+Object $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Win_ga322180e99b20b4498ef0072f66efc40c}


Get the floating mode of a window. 


\begin{DoxyParams}{Parameters}
{\em obj} & The window object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
If true, the window is floating mode
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Win_gaeb690361eca5302972d59a1a9466c329}{elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+set()} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\index{Win@{Win}!elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+set@{elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+set}}
\index{elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+set@{elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+set}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+set(\+Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Bool floating)}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+set (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{obj, }
\item[{Eina\+\_\+\+Bool}]{floating}
\end{DoxyParamCaption}
)}\label{group__Win_gaeb690361eca5302972d59a1a9466c329}


Set the floating mode of a window. 


\begin{DoxyParams}{Parameters}
{\em obj} & The window object \\
\hline
{\em floating} & If true, the window is floating mode\\
\hline
\end{DoxyParams}
The floating mode can be used on mobile environment. For example, if the video-\/player window sets the floating mode, then e (enlightenment window manager) changes its geometry and handles it like a popup. This is similar to a multi window concept in a mobile phone. The way of handling floating mode window is decided by enlightenment window manager.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Win_ga322180e99b20b4498ef0072f66efc40c}{elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+get()} 
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\index{Win@{Win}!elm\+\_\+win\+\_\+norender\+\_\+get@{elm\+\_\+win\+\_\+norender\+\_\+get}}
\index{elm\+\_\+win\+\_\+norender\+\_\+get@{elm\+\_\+win\+\_\+norender\+\_\+get}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+norender\+\_\+get(const Evas\+\_\+\+Object $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}int elm\+\_\+win\+\_\+norender\+\_\+get (
\begin{DoxyParamCaption}
\item[{const Evas\+\_\+\+Object $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Win_gafba0cfed9c64fe7ed907afbf605e6772}


The retruns how many times norender has been pushed on the window. 


\begin{DoxyParams}{Parameters}
{\em obj} & The window object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The number of times norender has been pushed
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Win_ga7e3ef9070376ed37088b08e5f3be413d}{elm\+\_\+win\+\_\+norender\+\_\+push()} 

\hyperlink{group__Win_ga0314466729dce22ba127d9bcf71fc93a}{elm\+\_\+win\+\_\+norender\+\_\+pop()} 

\hyperlink{group__Win_ga02f2e9437286e8dbdbc3718f84d35513}{elm\+\_\+win\+\_\+render()}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+7 
\end{DoxySince}
\index{Win@{Win}!elm\+\_\+win\+\_\+norender\+\_\+pop@{elm\+\_\+win\+\_\+norender\+\_\+pop}}
\index{elm\+\_\+win\+\_\+norender\+\_\+pop@{elm\+\_\+win\+\_\+norender\+\_\+pop}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+norender\+\_\+pop(\+Evas\+\_\+\+Object $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+win\+\_\+norender\+\_\+pop (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Win_ga0314466729dce22ba127d9bcf71fc93a}


This pops (decrements) the norender counter on the window. 


\begin{DoxyParams}{Parameters}
{\em obj} & The window object\\
\hline
\end{DoxyParams}
Once norender has gone back to 0, then automatic rendering will continue in the given window. If it is already at 0, this will have no effect.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Win_ga7e3ef9070376ed37088b08e5f3be413d}{elm\+\_\+win\+\_\+norender\+\_\+push()} 

\hyperlink{group__Win_gafba0cfed9c64fe7ed907afbf605e6772}{elm\+\_\+win\+\_\+norender\+\_\+get()} 

\hyperlink{group__Win_ga02f2e9437286e8dbdbc3718f84d35513}{elm\+\_\+win\+\_\+render()}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+7 
\end{DoxySince}
\index{Win@{Win}!elm\+\_\+win\+\_\+norender\+\_\+push@{elm\+\_\+win\+\_\+norender\+\_\+push}}
\index{elm\+\_\+win\+\_\+norender\+\_\+push@{elm\+\_\+win\+\_\+norender\+\_\+push}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+norender\+\_\+push(\+Evas\+\_\+\+Object $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+win\+\_\+norender\+\_\+push (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Win_ga7e3ef9070376ed37088b08e5f3be413d}


This pushes (increments) the norender counter on the window. 


\begin{DoxyParams}{Parameters}
{\em obj} & The window object\\
\hline
\end{DoxyParams}
There are some occasions where you wish to suspend rendering on a window. You may be \char`\"{}sleeping\char`\"{} and have nothing to update and do not want animations or other theme side-\/effects causing rendering to the window while \char`\"{}asleep\char`\"{}. You can push (and pop) the norender mode to have this work.

If combined with evas\+\_\+render\+\_\+dump(), evas\+\_\+image\+\_\+cache\+\_\+flush() and evas\+\_\+font\+\_\+cache\+\_\+flush() (and maybe edje\+\_\+file\+\_\+cache\+\_\+flush() and edje\+\_\+collection\+\_\+cache\+\_\+flush()), you can minimize memory footprint significantly while \char`\"{}asleep\char`\"{}, and the pausing of rendering ensures evas does not re-\/load data into memory until needed. When rendering is resumed, data will be re-\/loaded as needed, which may result in some lag, but does save memory.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Win_ga0314466729dce22ba127d9bcf71fc93a}{elm\+\_\+win\+\_\+norender\+\_\+pop()} 

\hyperlink{group__Win_gafba0cfed9c64fe7ed907afbf605e6772}{elm\+\_\+win\+\_\+norender\+\_\+get()} 

\hyperlink{group__Win_ga02f2e9437286e8dbdbc3718f84d35513}{elm\+\_\+win\+\_\+render()}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+7 
\end{DoxySince}
\index{Win@{Win}!elm\+\_\+win\+\_\+render@{elm\+\_\+win\+\_\+render}}
\index{elm\+\_\+win\+\_\+render@{elm\+\_\+win\+\_\+render}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+render(\+Evas\+\_\+\+Object $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+win\+\_\+render (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Win_ga02f2e9437286e8dbdbc3718f84d35513}


This manually asks evas to render the window now. 


\begin{DoxyParams}{Parameters}
{\em obj} & The window object\\
\hline
\end{DoxyParams}
You should N\+E\+V\+E\+R call this unless you really know what you are doing and why. Never call this unless you are asking for performance degredation and possibly weird behavior. Windows get automatically rendered when the application goes into the idle enter state so there is never a need to call this U\+N\+L\+E\+S\+S you have enabled \char`\"{}norender\char`\"{} mode.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Win_ga7e3ef9070376ed37088b08e5f3be413d}{elm\+\_\+win\+\_\+norender\+\_\+push()} 

\hyperlink{group__Win_ga0314466729dce22ba127d9bcf71fc93a}{elm\+\_\+win\+\_\+norender\+\_\+pop()} 

\hyperlink{group__Win_gafba0cfed9c64fe7ed907afbf605e6772}{elm\+\_\+win\+\_\+norender\+\_\+get()}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+7 
\end{DoxySince}
\index{Win@{Win}!elm\+\_\+win\+\_\+trap\+\_\+set@{elm\+\_\+win\+\_\+trap\+\_\+set}}
\index{elm\+\_\+win\+\_\+trap\+\_\+set@{elm\+\_\+win\+\_\+trap\+\_\+set}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+trap\+\_\+set(const Elm\+\_\+\+Win\+\_\+\+Trap $\ast$trap)}]{\setlength{\rightskip}{0pt plus 5cm}Eina\+\_\+\+Bool elm\+\_\+win\+\_\+trap\+\_\+set (
\begin{DoxyParamCaption}
\item[{const {\bf Elm\+\_\+\+Win\+\_\+\+Trap} $\ast$}]{trap}
\end{DoxyParamCaption}
)}\label{group__Win_ga015c24170f7df09056041a956ea5d967}


Sets the trap to be used for internal {\ttfamily Ecore\+\_\+\+Evas} management. 


\begin{DoxyParams}{Parameters}
{\em trap} & the trap to be used or {\ttfamily N\+U\+L\+L} to remove traps. Pointer is not modified or copied, keep it alive. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} if there was a problem, such as invalid version number.
\end{DoxyReturn}
\begin{DoxyWarning}{Warning}
this is an advanced feature that you should avoid using.
\end{DoxyWarning}
\begin{DoxySince}{Since}
1.\+7 
\end{DoxySince}
\index{Win@{Win}!elm\+\_\+win\+\_\+util\+\_\+dialog\+\_\+add@{elm\+\_\+win\+\_\+util\+\_\+dialog\+\_\+add}}
\index{elm\+\_\+win\+\_\+util\+\_\+dialog\+\_\+add@{elm\+\_\+win\+\_\+util\+\_\+dialog\+\_\+add}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+util\+\_\+dialog\+\_\+add(\+Evas\+\_\+\+Object $\ast$parent, const char $\ast$name, const char $\ast$title)}]{\setlength{\rightskip}{0pt plus 5cm}Evas\+\_\+\+Object$\ast$ elm\+\_\+win\+\_\+util\+\_\+dialog\+\_\+add (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{parent, }
\item[{const char $\ast$}]{name, }
\item[{const char $\ast$}]{title}
\end{DoxyParamCaption}
)}\label{group__Win_ga8dd55eff4c5c3fce17b956c789546a8a}


Adds a window object with dialog setup. 


\begin{DoxyParams}{Parameters}
{\em parent} & The parent window \\
\hline
{\em name} & The name of the window \\
\hline
{\em title} & The title for the window\\
\hline
\end{DoxyParams}
This creates a window like \hyperlink{group__Win_gad127cc5ae04689c4f2c5b633056d0ac8}{elm\+\_\+win\+\_\+add()} but also puts in a standard background with \hyperlink{group__Bg_gaeec8f79ac62ce0cf607cfe330008a63f}{elm\+\_\+bg\+\_\+add()}, as well as setting the window title to {\ttfamily title}. The window type created is of type E\+L\+M\+\_\+\+W\+I\+N\+\_\+\+D\+I\+A\+L\+O\+G\+\_\+\+B\+A\+S\+I\+C. This tipe of window will be handled in special mode by window managers with regards of it\textquotesingle{}s {\ttfamily parent} window.

\begin{DoxyReturn}{Returns}
The created object, or {\ttfamily N\+U\+L\+L} on failure
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Win_gad127cc5ae04689c4f2c5b633056d0ac8}{elm\+\_\+win\+\_\+add()}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+13 
\end{DoxySince}


References elm\+\_\+bg\+\_\+add(), and elm\+\_\+win\+\_\+add().

\index{Win@{Win}!elm\+\_\+win\+\_\+util\+\_\+standard\+\_\+add@{elm\+\_\+win\+\_\+util\+\_\+standard\+\_\+add}}
\index{elm\+\_\+win\+\_\+util\+\_\+standard\+\_\+add@{elm\+\_\+win\+\_\+util\+\_\+standard\+\_\+add}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+util\+\_\+standard\+\_\+add(const char $\ast$name, const char $\ast$title)}]{\setlength{\rightskip}{0pt plus 5cm}Evas\+\_\+\+Object$\ast$ elm\+\_\+win\+\_\+util\+\_\+standard\+\_\+add (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{name, }
\item[{const char $\ast$}]{title}
\end{DoxyParamCaption}
)}\label{group__Win_gac75d7752662fab73d6420706ce5be996}


Adds a window object with standard setup. 


\begin{DoxyParams}{Parameters}
{\em name} & The name of the window \\
\hline
{\em title} & The title for the window\\
\hline
\end{DoxyParams}
This creates a window like \hyperlink{group__Win_gad127cc5ae04689c4f2c5b633056d0ac8}{elm\+\_\+win\+\_\+add()} but also puts in a standard background with \hyperlink{group__Bg_gaeec8f79ac62ce0cf607cfe330008a63f}{elm\+\_\+bg\+\_\+add()}, as well as setting the window title to {\ttfamily title}. The window type created is of type E\+L\+M\+\_\+\+W\+I\+N\+\_\+\+B\+A\+S\+I\+C, with {\ttfamily N\+U\+L\+L} as the parent widget.

\begin{DoxyReturn}{Returns}
The created object, or {\ttfamily N\+U\+L\+L} on failure
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Win_gad127cc5ae04689c4f2c5b633056d0ac8}{elm\+\_\+win\+\_\+add()} 
\end{DoxySeeAlso}


References elm\+\_\+bg\+\_\+add(), and elm\+\_\+win\+\_\+add().

\index{Win@{Win}!elm\+\_\+win\+\_\+window\+\_\+id\+\_\+get@{elm\+\_\+win\+\_\+window\+\_\+id\+\_\+get}}
\index{elm\+\_\+win\+\_\+window\+\_\+id\+\_\+get@{elm\+\_\+win\+\_\+window\+\_\+id\+\_\+get}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+window\+\_\+id\+\_\+get(const Evas\+\_\+\+Object $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}Ecore\+\_\+\+Window elm\+\_\+win\+\_\+window\+\_\+id\+\_\+get (
\begin{DoxyParamCaption}
\item[{const Evas\+\_\+\+Object $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Win_ga341a40c980e32076874ab5c4c42608e7}


Get the Ecore\+\_\+\+Window of an Evas\+\_\+\+Object. 

When Elementary is using a Wayland engine, this function will return the surface id of the elm window\textquotesingle{}s surface.


\begin{DoxyParams}{Parameters}
{\em obj} & The window object \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The Ecore\+\_\+\+Window of an Evas\+\_\+\+Object
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\begin{DoxyNote}{Note}
Unless you are getting the window id for the purpose of communicating between client$<$-\/$>$compositor over dbus, this is definitely not the function you are looking for. 
\end{DoxyNote}
\index{Win@{Win}!elm\+\_\+win\+\_\+wl\+\_\+window\+\_\+get@{elm\+\_\+win\+\_\+wl\+\_\+window\+\_\+get}}
\index{elm\+\_\+win\+\_\+wl\+\_\+window\+\_\+get@{elm\+\_\+win\+\_\+wl\+\_\+window\+\_\+get}!Win@{Win}}
\subsubsection[{elm\+\_\+win\+\_\+wl\+\_\+window\+\_\+get(const Evas\+\_\+\+Object $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}Ecore\+\_\+\+Wl\+\_\+\+Window$\ast$ elm\+\_\+win\+\_\+wl\+\_\+window\+\_\+get (
\begin{DoxyParamCaption}
\item[{const Evas\+\_\+\+Object $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Win_ga08407120b879665919e1fcd5a309e46b}


Get the Ecore\+\_\+\+Wl\+\_\+\+Window of an Evas\+\_\+\+Object. 

Do not use this function if you\textquotesingle{}d like your application/library be portable. You have been warned.


\begin{DoxyParams}{Parameters}
{\em obj} & the object\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The Ecore\+\_\+\+Wl\+\_\+\+Window of {\ttfamily obj} 
\end{DoxyReturn}
