\section{Cursors}
\label{group__Cursors}\index{Cursors@{Cursors}}


The Elementary cursor is an internal smart object used to customize the mouse cursor displayed over objects (or widgets).  


\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
Eina\+\_\+\+Bool \hyperlink{group__Cursors_ga2f5ec14ea37d71b4438ccdca9fb070f1}{elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Get the configured cursor engine only usage. \end{DoxyCompactList}\item 
void \hyperlink{group__Cursors_ga8b092d2bbcafe6b0e0f219c14b453ce8}{elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+set} (Eina\+\_\+\+Bool engine\+\_\+only)
\begin{DoxyCompactList}\small\item\em Set the configured cursor engine only usage. \end{DoxyCompactList}\item 
void \hyperlink{group__Cursors_ga184fcbba5e5767af38018a14c91bd027}{elm\+\_\+object\+\_\+cursor\+\_\+set} (Evas\+\_\+\+Object $\ast$obj, const char $\ast$cursor)
\begin{DoxyCompactList}\small\item\em Set the cursor to be shown when mouse is over the object. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Cursors_ga5f373305b277fbcdcbbb4845fe67477d}{elm\+\_\+object\+\_\+cursor\+\_\+get} (const Evas\+\_\+\+Object $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the cursor to be shown when mouse is over the object. \end{DoxyCompactList}\item 
void \hyperlink{group__Cursors_ga1c97e902d92b738ddb6dda541ede562f}{elm\+\_\+object\+\_\+cursor\+\_\+unset} (Evas\+\_\+\+Object $\ast$obj)
\begin{DoxyCompactList}\small\item\em Unset cursor for object. \end{DoxyCompactList}\item 
void \hyperlink{group__Cursors_ga3ce9ab46838d54c86eb9aa55eef2f3e1}{elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+set} (Evas\+\_\+\+Object $\ast$obj, const char $\ast$style)
\begin{DoxyCompactList}\small\item\em Sets a different style for this object cursor. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Cursors_gafb4a7e9b1e15cce8ffe0dbd208df11eb}{elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+get} (const Evas\+\_\+\+Object $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the style for this object cursor. \end{DoxyCompactList}\item 
void \hyperlink{group__Cursors_ga09f002e2c7d7e12840f0ad864240eb43}{elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+set} (Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Bool theme\+\_\+search)
\begin{DoxyCompactList}\small\item\em Set if the cursor set should be searched on the theme or should use the provided by the engine, only. \end{DoxyCompactList}\item 
Eina\+\_\+\+Bool \hyperlink{group__Cursors_ga284901b22b2964fbe5688f8ec2b84efe}{elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+get} (const Evas\+\_\+\+Object $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get if the cursor set should be searched on the theme for this object cursor. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
The Elementary cursor is an internal smart object used to customize the mouse cursor displayed over objects (or widgets). 

In the most common scenario, the cursor decoration comes from the graphical {\bfseries engine} Elementary is running on. Those engines may provide different decorations for cursors, and Elementary provides functions to choose them (think of X11 cursors, as an example).

By default, Elementary searches cursors only from engine. There\textquotesingle{}s also the possibility of, besides using engine provided cursors, also use the ones coming from Edje theme files. Both globally and per widget, Elementary makes it possible for one to make the cursors lookup to be held on engines only or on Elementary\textquotesingle{}s theme file, too. To set cursor\textquotesingle{}s hot spot, two data items should be added to cursor\textquotesingle{}s theme\+: \char`\"{}hot\+\_\+x\char`\"{} and \char`\"{}hot\+\_\+y\char`\"{}, that are the offset from upper-\/left corner of the cursor (coordinates 0,0). 

\subsection{Function Documentation}
\index{Cursors@{Cursors}!elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+get@{elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+get}}
\index{elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+get@{elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+get}!Cursors@{Cursors}}
\subsubsection[{\texorpdfstring{elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+get(void)}{elm_config_cursor_engine_only_get(void)}}]{\setlength{\rightskip}{0pt plus 5cm}Eina\+\_\+\+Bool elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+get (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__Cursors_ga2f5ec14ea37d71b4438ccdca9fb070f1}


Get the configured cursor engine only usage. 

This gets the globally configured exclusive usage of engine cursors.

\begin{DoxyReturn}{Returns}
1 if only engine cursors should be used 
\end{DoxyReturn}
\index{Cursors@{Cursors}!elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+set@{elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+set}}
\index{elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+set@{elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+set}!Cursors@{Cursors}}
\subsubsection[{\texorpdfstring{elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+set(\+Eina\+\_\+\+Bool engine\+\_\+only)}{elm_config_cursor_engine_only_set(Eina_Bool engine_only)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+config\+\_\+cursor\+\_\+engine\+\_\+only\+\_\+set (
\begin{DoxyParamCaption}
\item[{Eina\+\_\+\+Bool}]{engine\+\_\+only}
\end{DoxyParamCaption}
)}\label{group__Cursors_ga8b092d2bbcafe6b0e0f219c14b453ce8}


Set the configured cursor engine only usage. 

This sets the globally configured exclusive usage of engine cursors. It won\textquotesingle{}t affect cursors set before changing this value.


\begin{DoxyParams}{Parameters}
{\em engine\+\_\+only} & If 1 only engine cursors will be enabled, if 0 will look for them on theme before. \\
\hline
\end{DoxyParams}
\index{Cursors@{Cursors}!elm\+\_\+object\+\_\+cursor\+\_\+get@{elm\+\_\+object\+\_\+cursor\+\_\+get}}
\index{elm\+\_\+object\+\_\+cursor\+\_\+get@{elm\+\_\+object\+\_\+cursor\+\_\+get}!Cursors@{Cursors}}
\subsubsection[{\texorpdfstring{elm\+\_\+object\+\_\+cursor\+\_\+get(const Evas\+\_\+\+Object $\ast$obj)}{elm_object_cursor_get(const Evas_Object *obj)}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ elm\+\_\+object\+\_\+cursor\+\_\+get (
\begin{DoxyParamCaption}
\item[{const Evas\+\_\+\+Object $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Cursors_ga5f373305b277fbcdcbbb4845fe67477d}


Get the cursor to be shown when mouse is over the object. 


\begin{DoxyParams}{Parameters}
{\em obj} & an object with cursor already set. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the cursor name. 
\end{DoxyReturn}


Referenced by elm\+\_\+layout\+\_\+content\+\_\+swallow\+\_\+list\+\_\+get(), and elm\+\_\+object\+\_\+item\+\_\+data\+\_\+get().

\index{Cursors@{Cursors}!elm\+\_\+object\+\_\+cursor\+\_\+set@{elm\+\_\+object\+\_\+cursor\+\_\+set}}
\index{elm\+\_\+object\+\_\+cursor\+\_\+set@{elm\+\_\+object\+\_\+cursor\+\_\+set}!Cursors@{Cursors}}
\subsubsection[{\texorpdfstring{elm\+\_\+object\+\_\+cursor\+\_\+set(\+Evas\+\_\+\+Object $\ast$obj, const char $\ast$cursor)}{elm_object_cursor_set(Evas_Object *obj, const char *cursor)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+object\+\_\+cursor\+\_\+set (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{obj, }
\item[{const char $\ast$}]{cursor}
\end{DoxyParamCaption}
)}\label{group__Cursors_ga184fcbba5e5767af38018a14c91bd027}


Set the cursor to be shown when mouse is over the object. 

Set the cursor that will be displayed when mouse is over the object. The object can have only one cursor set to it, so if this function is called twice for an object, the previous set will be unset. If using X cursors, a definition of all the valid cursor names is listed on Elementary\+\_\+\+Cursors.\+h. If an invalid name is set the default cursor will be used.


\begin{DoxyParams}{Parameters}
{\em obj} & the object being set a cursor. \\
\hline
{\em cursor} & the cursor name to be used. \\
\hline
\end{DoxyParams}
\index{Cursors@{Cursors}!elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+get@{elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+get}}
\index{elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+get@{elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+get}!Cursors@{Cursors}}
\subsubsection[{\texorpdfstring{elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+get(const Evas\+\_\+\+Object $\ast$obj)}{elm_object_cursor_style_get(const Evas_Object *obj)}}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+get (
\begin{DoxyParamCaption}
\item[{const Evas\+\_\+\+Object $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Cursors_gafb4a7e9b1e15cce8ffe0dbd208df11eb}


Get the style for this object cursor. 


\begin{DoxyParams}{Parameters}
{\em obj} & an object with cursor already set. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
style the theme style in use, defaults to \char`\"{}default\char`\"{}. If the object does not have a cursor set, then N\+U\+LL is returned. 
\end{DoxyReturn}


Referenced by elm\+\_\+layout\+\_\+content\+\_\+swallow\+\_\+list\+\_\+get(), and elm\+\_\+object\+\_\+item\+\_\+data\+\_\+get().

\index{Cursors@{Cursors}!elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+set@{elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+set}}
\index{elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+set@{elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+set}!Cursors@{Cursors}}
\subsubsection[{\texorpdfstring{elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+set(\+Evas\+\_\+\+Object $\ast$obj, const char $\ast$style)}{elm_object_cursor_style_set(Evas_Object *obj, const char *style)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+object\+\_\+cursor\+\_\+style\+\_\+set (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{obj, }
\item[{const char $\ast$}]{style}
\end{DoxyParamCaption}
)}\label{group__Cursors_ga3ce9ab46838d54c86eb9aa55eef2f3e1}


Sets a different style for this object cursor. 

\begin{DoxyNote}{Note}
before you set a style you should define a cursor with \hyperlink{group__Cursors_ga184fcbba5e5767af38018a14c91bd027}{elm\+\_\+object\+\_\+cursor\+\_\+set()}
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em obj} & an object with cursor already set. \\
\hline
{\em style} & the theme style to use (default, transparent, ...) \\
\hline
\end{DoxyParams}


Referenced by elm\+\_\+layout\+\_\+content\+\_\+swallow\+\_\+list\+\_\+get(), and elm\+\_\+object\+\_\+item\+\_\+data\+\_\+get().

\index{Cursors@{Cursors}!elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+get@{elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+get}}
\index{elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+get@{elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+get}!Cursors@{Cursors}}
\subsubsection[{\texorpdfstring{elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+get(const Evas\+\_\+\+Object $\ast$obj)}{elm_object_cursor_theme_search_enabled_get(const Evas_Object *obj)}}]{\setlength{\rightskip}{0pt plus 5cm}Eina\+\_\+\+Bool elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+get (
\begin{DoxyParamCaption}
\item[{const Evas\+\_\+\+Object $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Cursors_ga284901b22b2964fbe5688f8ec2b84efe}


Get if the cursor set should be searched on the theme for this object cursor. 


\begin{DoxyParams}{Parameters}
{\em obj} & an object with cursor already set. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} if the cursor set should be searched on widget\textquotesingle{}s theme, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} otherwise. 
\end{DoxyReturn}


Referenced by elm\+\_\+layout\+\_\+content\+\_\+swallow\+\_\+list\+\_\+get(), and elm\+\_\+object\+\_\+item\+\_\+data\+\_\+get().

\index{Cursors@{Cursors}!elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+set@{elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+set}}
\index{elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+set@{elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+set}!Cursors@{Cursors}}
\subsubsection[{\texorpdfstring{elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+set(\+Evas\+\_\+\+Object $\ast$obj, Eina\+\_\+\+Bool theme\+\_\+search)}{elm_object_cursor_theme_search_enabled_set(Evas_Object *obj, Eina_Bool theme_search)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+object\+\_\+cursor\+\_\+theme\+\_\+search\+\_\+enabled\+\_\+set (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{obj, }
\item[{Eina\+\_\+\+Bool}]{theme\+\_\+search}
\end{DoxyParamCaption}
)}\label{group__Cursors_ga09f002e2c7d7e12840f0ad864240eb43}


Set if the cursor set should be searched on the theme or should use the provided by the engine, only. 

\begin{DoxyNote}{Note}
before you set theme\+\_\+search you should define a cursor with \hyperlink{group__Cursors_ga184fcbba5e5767af38018a14c91bd027}{elm\+\_\+object\+\_\+cursor\+\_\+set()}. By default it will only look for cursors provided by the engine.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em obj} & an object with cursor already set. \\
\hline
{\em theme\+\_\+search} & boolean to define if cursors should be searched on widget\textquotesingle{}s theme. \\
\hline
\end{DoxyParams}


Referenced by elm\+\_\+layout\+\_\+content\+\_\+swallow\+\_\+list\+\_\+get(), and elm\+\_\+object\+\_\+item\+\_\+data\+\_\+get().

\index{Cursors@{Cursors}!elm\+\_\+object\+\_\+cursor\+\_\+unset@{elm\+\_\+object\+\_\+cursor\+\_\+unset}}
\index{elm\+\_\+object\+\_\+cursor\+\_\+unset@{elm\+\_\+object\+\_\+cursor\+\_\+unset}!Cursors@{Cursors}}
\subsubsection[{\texorpdfstring{elm\+\_\+object\+\_\+cursor\+\_\+unset(\+Evas\+\_\+\+Object $\ast$obj)}{elm_object_cursor_unset(Evas_Object *obj)}}]{\setlength{\rightskip}{0pt plus 5cm}void elm\+\_\+object\+\_\+cursor\+\_\+unset (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Object $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Cursors_ga1c97e902d92b738ddb6dda541ede562f}


Unset cursor for object. 

Unset cursor for object, and set the cursor to default if the mouse was over this object.


\begin{DoxyParams}{Parameters}
{\em obj} & Target object \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Cursors_ga184fcbba5e5767af38018a14c91bd027}{elm\+\_\+object\+\_\+cursor\+\_\+set()} 
\end{DoxySeeAlso}


References E\+L\+M\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+L\+A\+Y\+E\+R\+\_\+\+C\+U\+R\+S\+OR.



Referenced by elm\+\_\+layout\+\_\+content\+\_\+swallow\+\_\+list\+\_\+get(), and elm\+\_\+object\+\_\+item\+\_\+data\+\_\+get().

