\hypertarget{group__Efreet__Menu}{}\section{Efreet\+\_\+\+Menu\+: The F\+DO Desktop Menu Specification}
\label{group__Efreet__Menu}\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}


functions and structures  


\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu}
\begin{DoxyCompactList}\small\item\em \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} Stores information on a entry in the menu. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef enum \hyperlink{group__Efreet__Menu_ga2991e288d08928c50a4da721f9845150}{Efreet\+\_\+\+Menu\+\_\+\+Entry\+\_\+\+Type} \hyperlink{group__Efreet__Menu_ga5a0f81e93dce820cd5c55f1b96424530}{Efreet\+\_\+\+Menu\+\_\+\+Entry\+\_\+\+Type}\hypertarget{group__Efreet__Menu_ga5a0f81e93dce820cd5c55f1b96424530}{}\label{group__Efreet__Menu_ga5a0f81e93dce820cd5c55f1b96424530}

\begin{DoxyCompactList}\small\item\em The type of entry. \end{DoxyCompactList}\item 
typedef struct \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} \hyperlink{group__Efreet__Menu_ga09908f95fe36f7e5c52f0b33bf22ebe7}{Efreet\+\_\+\+Menu}\hypertarget{group__Efreet__Menu_ga09908f95fe36f7e5c52f0b33bf22ebe7}{}\label{group__Efreet__Menu_ga09908f95fe36f7e5c52f0b33bf22ebe7}

\begin{DoxyCompactList}\small\item\em \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu}. \end{DoxyCompactList}\item 
typedef void($\ast$ \hyperlink{group__Efreet__Menu_gaab91b46110e8e15125a8ddfae0a3164f}{Efreet\+\_\+\+Menu\+\_\+\+Cb}) (void $\ast$data, \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} $\ast$menu)
\begin{DoxyCompactList}\small\item\em A callback used with \hyperlink{group__Efreet__Menu_gab02e50a02650b8f37954fbd8867e0fb3}{efreet\+\_\+menu\+\_\+async\+\_\+get()} and \hyperlink{group__Efreet__Menu_gacff1caff07b5d129a4e1b73f32349b8f}{efreet\+\_\+menu\+\_\+async\+\_\+parse()} \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{group__Efreet__Menu_ga2991e288d08928c50a4da721f9845150}{Efreet\+\_\+\+Menu\+\_\+\+Entry\+\_\+\+Type} \{ \\*
{\bfseries E\+F\+R\+E\+E\+T\+\_\+\+M\+E\+N\+U\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+M\+E\+NU}, 
\\*
{\bfseries E\+F\+R\+E\+E\+T\+\_\+\+M\+E\+N\+U\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+D\+E\+S\+K\+T\+OP}, 
\\*
{\bfseries E\+F\+R\+E\+E\+T\+\_\+\+M\+E\+N\+U\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+S\+E\+P\+A\+R\+A\+T\+OR}, 
\\*
{\bfseries E\+F\+R\+E\+E\+T\+\_\+\+M\+E\+N\+U\+\_\+\+E\+N\+T\+R\+Y\+\_\+\+H\+E\+A\+D\+ER}
 \}\hypertarget{group__Efreet__Menu_ga2991e288d08928c50a4da721f9845150}{}\label{group__Efreet__Menu_ga2991e288d08928c50a4da721f9845150}
\begin{DoxyCompactList}\small\item\em The type of entry. \end{DoxyCompactList}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{group__Efreet__Menu_gafdc0116e02086b5698fcc7e400bcc15c}{efreet\+\_\+menu\+\_\+kde\+\_\+legacy\+\_\+init} (void)
\begin{DoxyCompactList}\small\item\em Initialize legacy kde support. This function blocks while the kde-\/config script is run. \end{DoxyCompactList}\item 
\hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} $\ast$ \hyperlink{group__Efreet__Menu_ga262bbe7b490a69fd81bcae77a9edc207}{efreet\+\_\+menu\+\_\+new} (const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Creates a new menu. \end{DoxyCompactList}\item 
void \hyperlink{group__Efreet__Menu_gaf6de3882d42bccc068291bbcc1a0244a}{efreet\+\_\+menu\+\_\+file\+\_\+set} (const char $\ast$file)
\begin{DoxyCompactList}\small\item\em Override which file is used for menu creation. \end{DoxyCompactList}\item 
void \hyperlink{group__Efreet__Menu_gab02e50a02650b8f37954fbd8867e0fb3}{efreet\+\_\+menu\+\_\+async\+\_\+get} (\hyperlink{group__Efreet__Menu_gaab91b46110e8e15125a8ddfae0a3164f}{Efreet\+\_\+\+Menu\+\_\+\+Cb} func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Creates the \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} representation of the default menu or N\+U\+LL if none found and returns it in the callback. \end{DoxyCompactList}\item 
\hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} $\ast$ \hyperlink{group__Efreet__Menu_ga3add55409db4cca3581973f3a22ff375}{efreet\+\_\+menu\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Creates the default menu representation. \end{DoxyCompactList}\item 
void \hyperlink{group__Efreet__Menu_gacff1caff07b5d129a4e1b73f32349b8f}{efreet\+\_\+menu\+\_\+async\+\_\+parse} (const char $\ast$path, \hyperlink{group__Efreet__Menu_gaab91b46110e8e15125a8ddfae0a3164f}{Efreet\+\_\+\+Menu\+\_\+\+Cb} func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Parses the given .menu file and creates the menu representation, and returns it in the callback. \end{DoxyCompactList}\item 
\hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} $\ast$ \hyperlink{group__Efreet__Menu_gaf771866e8e43479d7f989a9a785f8af1}{efreet\+\_\+menu\+\_\+parse} (const char $\ast$path)
\begin{DoxyCompactList}\small\item\em Parses the given .menu file and creates the menu representation. \end{DoxyCompactList}\item 
int \hyperlink{group__Efreet__Menu_ga11b1e15cbc386a7275930c8aa559e921}{efreet\+\_\+menu\+\_\+save} (\hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} $\ast$menu, const char $\ast$path)
\begin{DoxyCompactList}\small\item\em Saves the menu to file. \end{DoxyCompactList}\item 
void \hyperlink{group__Efreet__Menu_gaf6ce6f6ac0038217fe874cad8bd3ae6a}{efreet\+\_\+menu\+\_\+free} (\hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} $\ast$menu)
\begin{DoxyCompactList}\small\item\em Frees the given structure (if refcount at 1 at the time of this call) \end{DoxyCompactList}\item 
void \hyperlink{group__Efreet__Menu_ga083aa9f37c0726db3b04ade41084a532}{efreet\+\_\+menu\+\_\+ref} (\hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} $\ast$menu)
\begin{DoxyCompactList}\small\item\em Incriments refcount for the menu. \end{DoxyCompactList}\item 
void \hyperlink{group__Efreet__Menu_gace014272006d6dcac614fdb34960c0ac}{efreet\+\_\+menu\+\_\+unref} (\hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} $\ast$menu)
\begin{DoxyCompactList}\small\item\em Decrements refcount for the menu, and on 0 frees. \end{DoxyCompactList}\item 
int \hyperlink{group__Efreet__Menu_gad623606893391e7c32ff4f39fae0aab1}{efreet\+\_\+menu\+\_\+desktop\+\_\+insert} (\hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} $\ast$menu, \hyperlink{group__Efreet__Desktop_gae7a86664465318833378738e118a2575}{Efreet\+\_\+\+Desktop} $\ast$desktop, int pos)
\begin{DoxyCompactList}\small\item\em Insert a desktop element in a menu structure. Only accepts desktop files in default directories. \end{DoxyCompactList}\item 
int \hyperlink{group__Efreet__Menu_ga1341ea90ebef422eb859f6fe69e81a1b}{efreet\+\_\+menu\+\_\+desktop\+\_\+remove} (\hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} $\ast$menu, \hyperlink{group__Efreet__Desktop_gae7a86664465318833378738e118a2575}{Efreet\+\_\+\+Desktop} $\ast$desktop)
\begin{DoxyCompactList}\small\item\em Remove a desktop element in a menu structure. Only accepts desktop files in default directories. \end{DoxyCompactList}\item 
void \hyperlink{group__Efreet__Menu_ga25b14b29531706b9b2ca0f1bd378b169}{efreet\+\_\+menu\+\_\+dump} (\hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} $\ast$menu, const char $\ast$indent)
\begin{DoxyCompactList}\small\item\em Dumps the contents of the menu to the command line. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
functions and structures 



\subsection{Typedef Documentation}
\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!Efreet\+\_\+\+Menu\+\_\+\+Cb@{Efreet\+\_\+\+Menu\+\_\+\+Cb}}
\index{Efreet\+\_\+\+Menu\+\_\+\+Cb@{Efreet\+\_\+\+Menu\+\_\+\+Cb}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{Efreet\+\_\+\+Menu\+\_\+\+Cb}{Efreet_Menu_Cb}}]{\setlength{\rightskip}{0pt plus 5cm}typedef void($\ast$ Efreet\+\_\+\+Menu\+\_\+\+Cb) (void $\ast$data, {\bf Efreet\+\_\+\+Menu} $\ast$menu)}\hypertarget{group__Efreet__Menu_gaab91b46110e8e15125a8ddfae0a3164f}{}\label{group__Efreet__Menu_gaab91b46110e8e15125a8ddfae0a3164f}


A callback used with \hyperlink{group__Efreet__Menu_gab02e50a02650b8f37954fbd8867e0fb3}{efreet\+\_\+menu\+\_\+async\+\_\+get()} and \hyperlink{group__Efreet__Menu_gacff1caff07b5d129a4e1b73f32349b8f}{efreet\+\_\+menu\+\_\+async\+\_\+parse()} 

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


\subsection{Function Documentation}
\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+kde\+\_\+legacy\+\_\+init@{efreet\+\_\+menu\+\_\+kde\+\_\+legacy\+\_\+init}}
\index{efreet\+\_\+menu\+\_\+kde\+\_\+legacy\+\_\+init@{efreet\+\_\+menu\+\_\+kde\+\_\+legacy\+\_\+init}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+kde\+\_\+legacy\+\_\+init(void)}{efreet_menu_kde_legacy_init(void)}}]{\setlength{\rightskip}{0pt plus 5cm}int efreet\+\_\+menu\+\_\+kde\+\_\+legacy\+\_\+init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_gafdc0116e02086b5698fcc7e400bcc15c}{}\label{group__Efreet__Menu_gafdc0116e02086b5698fcc7e400bcc15c}


Initialize legacy kde support. This function blocks while the kde-\/config script is run. 

\begin{DoxyReturn}{Returns}
Returns no value 
\end{DoxyReturn}


References eina\+\_\+list\+\_\+append(), eina\+\_\+log\+\_\+domain\+\_\+unregister(), eina\+\_\+stringshare\+\_\+add(), eina\+\_\+stringshare\+\_\+del(), and E\+RR.

\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+new@{efreet\+\_\+menu\+\_\+new}}
\index{efreet\+\_\+menu\+\_\+new@{efreet\+\_\+menu\+\_\+new}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+new(const char $\ast$name)}{efreet_menu_new(const char *name)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Efreet\+\_\+\+Menu}$\ast$ efreet\+\_\+menu\+\_\+new (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_ga262bbe7b490a69fd81bcae77a9edc207}{}\label{group__Efreet__Menu_ga262bbe7b490a69fd81bcae77a9edc207}


Creates a new menu. 


\begin{DoxyParams}{Parameters}
{\em name} & The internal name of the menu \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns the \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} on success or N\+U\+LL on failure 
\end{DoxyReturn}


References eina\+\_\+stringshare\+\_\+add(), and name.

\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+file\+\_\+set@{efreet\+\_\+menu\+\_\+file\+\_\+set}}
\index{efreet\+\_\+menu\+\_\+file\+\_\+set@{efreet\+\_\+menu\+\_\+file\+\_\+set}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+file\+\_\+set(const char $\ast$file)}{efreet_menu_file_set(const char *file)}}]{\setlength{\rightskip}{0pt plus 5cm}void efreet\+\_\+menu\+\_\+file\+\_\+set (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_gaf6de3882d42bccc068291bbcc1a0244a}{}\label{group__Efreet__Menu_gaf6de3882d42bccc068291bbcc1a0244a}


Override which file is used for menu creation. 


\begin{DoxyParams}{Parameters}
{\em file} & The file to use for menu creation\\
\hline
\end{DoxyParams}
This file is only used if it exists, else the standard files will be used for the menu. 

References eina\+\_\+stringshare\+\_\+add().

\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+async\+\_\+get@{efreet\+\_\+menu\+\_\+async\+\_\+get}}
\index{efreet\+\_\+menu\+\_\+async\+\_\+get@{efreet\+\_\+menu\+\_\+async\+\_\+get}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+async\+\_\+get(\+Efreet\+\_\+\+Menu\+\_\+\+Cb func, const void $\ast$data)}{efreet_menu_async_get(Efreet_Menu_Cb func, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}void efreet\+\_\+menu\+\_\+async\+\_\+get (
\begin{DoxyParamCaption}
\item[{{\bf Efreet\+\_\+\+Menu\+\_\+\+Cb}}]{func, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_gab02e50a02650b8f37954fbd8867e0fb3}{}\label{group__Efreet__Menu_gab02e50a02650b8f37954fbd8867e0fb3}


Creates the \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} representation of the default menu or N\+U\+LL if none found and returns it in the callback. 


\begin{DoxyParams}{Parameters}
{\em func} & function to call when menu is created \\
\hline
{\em data} & user data to return in callback\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References ecore\+\_\+file\+\_\+exists(), efreet\+\_\+config\+\_\+dirs\+\_\+get(), efreet\+\_\+config\+\_\+home\+\_\+get(), efreet\+\_\+menu\+\_\+async\+\_\+parse(), and E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+CH.

\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+get@{efreet\+\_\+menu\+\_\+get}}
\index{efreet\+\_\+menu\+\_\+get@{efreet\+\_\+menu\+\_\+get}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+get(void)}{efreet_menu_get(void)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Efreet\+\_\+\+Menu}$\ast$ efreet\+\_\+menu\+\_\+get (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_ga3add55409db4cca3581973f3a22ff375}{}\label{group__Efreet__Menu_ga3add55409db4cca3581973f3a22ff375}


Creates the default menu representation. 

\begin{DoxyReturn}{Returns}
Returns the \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} representation of the default menu or N\+U\+LL if none found 
\end{DoxyReturn}


References ecore\+\_\+file\+\_\+exists(), efreet\+\_\+config\+\_\+dirs\+\_\+get(), efreet\+\_\+config\+\_\+home\+\_\+get(), efreet\+\_\+menu\+\_\+parse(), and E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+CH.

\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+async\+\_\+parse@{efreet\+\_\+menu\+\_\+async\+\_\+parse}}
\index{efreet\+\_\+menu\+\_\+async\+\_\+parse@{efreet\+\_\+menu\+\_\+async\+\_\+parse}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+async\+\_\+parse(const char $\ast$path, Efreet\+\_\+\+Menu\+\_\+\+Cb func, const void $\ast$data)}{efreet_menu_async_parse(const char *path, Efreet_Menu_Cb func, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}void efreet\+\_\+menu\+\_\+async\+\_\+parse (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path, }
\item[{{\bf Efreet\+\_\+\+Menu\+\_\+\+Cb}}]{func, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_gacff1caff07b5d129a4e1b73f32349b8f}{}\label{group__Efreet__Menu_gacff1caff07b5d129a4e1b73f32349b8f}


Parses the given .menu file and creates the menu representation, and returns it in the callback. 


\begin{DoxyParams}{Parameters}
{\em path} & The path of the menu to load \\
\hline
{\em func} & function to call when menu is created \\
\hline
{\em data} & user data to return in callback\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


References ecore\+\_\+thread\+\_\+run(), and eina\+\_\+stringshare\+\_\+add().



Referenced by efreet\+\_\+menu\+\_\+async\+\_\+get().

\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+parse@{efreet\+\_\+menu\+\_\+parse}}
\index{efreet\+\_\+menu\+\_\+parse@{efreet\+\_\+menu\+\_\+parse}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+parse(const char $\ast$path)}{efreet_menu_parse(const char *path)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Efreet\+\_\+\+Menu}$\ast$ efreet\+\_\+menu\+\_\+parse (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_gaf771866e8e43479d7f989a9a785f8af1}{}\label{group__Efreet__Menu_gaf771866e8e43479d7f989a9a785f8af1}


Parses the given .menu file and creates the menu representation. 


\begin{DoxyParams}{Parameters}
{\em path} & The path of the menu to load \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns the \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} representation on success or N\+U\+LL on failure 
\end{DoxyReturn}


References eina\+\_\+hash\+\_\+string\+\_\+superfast\+\_\+new(), Efreet\+\_\+\+Xml\+::tag, and W\+RN.



Referenced by efreet\+\_\+menu\+\_\+get(), and efreet\+\_\+menu\+\_\+unref().

\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+save@{efreet\+\_\+menu\+\_\+save}}
\index{efreet\+\_\+menu\+\_\+save@{efreet\+\_\+menu\+\_\+save}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+save(\+Efreet\+\_\+\+Menu $\ast$menu, const char $\ast$path)}{efreet_menu_save(Efreet_Menu *menu, const char *path)}}]{\setlength{\rightskip}{0pt plus 5cm}int efreet\+\_\+menu\+\_\+save (
\begin{DoxyParamCaption}
\item[{{\bf Efreet\+\_\+\+Menu} $\ast$}]{menu, }
\item[{const char $\ast$}]{path}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_ga11b1e15cbc386a7275930c8aa559e921}{}\label{group__Efreet__Menu_ga11b1e15cbc386a7275930c8aa559e921}


Saves the menu to file. 


\begin{DoxyParams}{Parameters}
{\em menu} & The menu to work with \\
\hline
{\em path} & The path where the menu should be saved \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns 1 on success, 0 on failure 
\end{DoxyReturn}
\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+free@{efreet\+\_\+menu\+\_\+free}}
\index{efreet\+\_\+menu\+\_\+free@{efreet\+\_\+menu\+\_\+free}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+free(\+Efreet\+\_\+\+Menu $\ast$menu)}{efreet_menu_free(Efreet_Menu *menu)}}]{\setlength{\rightskip}{0pt plus 5cm}void efreet\+\_\+menu\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Efreet\+\_\+\+Menu} $\ast$}]{menu}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_gaf6ce6f6ac0038217fe874cad8bd3ae6a}{}\label{group__Efreet__Menu_gaf6ce6f6ac0038217fe874cad8bd3ae6a}


Frees the given structure (if refcount at 1 at the time of this call) 


\begin{DoxyParams}{Parameters}
{\em menu} & The \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} to free \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns no value 
\end{DoxyReturn}


References desktop, efreet\+\_\+desktop\+\_\+free(), efreet\+\_\+menu\+\_\+free(), E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+R\+EE, entries, icon, id, name, and references.



Referenced by efreet\+\_\+menu\+\_\+desktop\+\_\+remove(), efreet\+\_\+menu\+\_\+free(), and efreet\+\_\+menu\+\_\+unref().

\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+ref@{efreet\+\_\+menu\+\_\+ref}}
\index{efreet\+\_\+menu\+\_\+ref@{efreet\+\_\+menu\+\_\+ref}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+ref(\+Efreet\+\_\+\+Menu $\ast$menu)}{efreet_menu_ref(Efreet_Menu *menu)}}]{\setlength{\rightskip}{0pt plus 5cm}void efreet\+\_\+menu\+\_\+ref (
\begin{DoxyParamCaption}
\item[{{\bf Efreet\+\_\+\+Menu} $\ast$}]{menu}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_ga083aa9f37c0726db3b04ade41084a532}{}\label{group__Efreet__Menu_ga083aa9f37c0726db3b04ade41084a532}


Incriments refcount for the menu. 


\begin{DoxyParams}{Parameters}
{\em menu} & The \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} to reference \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns no value 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}


References efreet\+\_\+menu\+\_\+ref(), E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+CH, entries, and references.



Referenced by efreet\+\_\+menu\+\_\+ref().

\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+unref@{efreet\+\_\+menu\+\_\+unref}}
\index{efreet\+\_\+menu\+\_\+unref@{efreet\+\_\+menu\+\_\+unref}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+unref(\+Efreet\+\_\+\+Menu $\ast$menu)}{efreet_menu_unref(Efreet_Menu *menu)}}]{\setlength{\rightskip}{0pt plus 5cm}void efreet\+\_\+menu\+\_\+unref (
\begin{DoxyParamCaption}
\item[{{\bf Efreet\+\_\+\+Menu} $\ast$}]{menu}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_gace014272006d6dcac614fdb34960c0ac}{}\label{group__Efreet__Menu_gace014272006d6dcac614fdb34960c0ac}


Decrements refcount for the menu, and on 0 frees. 


\begin{DoxyParams}{Parameters}
{\em menu} & The \hyperlink{structEfreet__Menu}{Efreet\+\_\+\+Menu} to unreference \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns no value 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+11 
\end{DoxySince}


References alloca(), desktop, ecore\+\_\+file\+\_\+file\+\_\+get(), efreet\+\_\+desktop\+\_\+free(), efreet\+\_\+desktop\+\_\+get(), efreet\+\_\+desktop\+\_\+ref(), efreet\+\_\+menu\+\_\+free(), efreet\+\_\+menu\+\_\+parse(), E\+I\+N\+A\+\_\+\+C\+O\+M\+P\+A\+R\+E\+\_\+\+CB, E\+I\+N\+A\+\_\+\+F\+I\+L\+E\+\_\+\+D\+IR, eina\+\_\+file\+\_\+stat\+\_\+ls(), E\+I\+N\+A\+\_\+\+F\+R\+E\+E\+\_\+\+CB, eina\+\_\+hash\+\_\+add(), eina\+\_\+hash\+\_\+del(), eina\+\_\+hash\+\_\+direct\+\_\+add(), eina\+\_\+hash\+\_\+find(), eina\+\_\+hash\+\_\+free(), eina\+\_\+hash\+\_\+string\+\_\+superfast\+\_\+new(), E\+I\+N\+A\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+F\+O\+R\+E\+A\+CH, eina\+\_\+iterator\+\_\+free(), eina\+\_\+list\+\_\+append(), eina\+\_\+list\+\_\+count(), eina\+\_\+list\+\_\+data\+\_\+get(), E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+CH, E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+C\+H\+\_\+\+S\+A\+FE, eina\+\_\+list\+\_\+free(), E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+R\+EE, eina\+\_\+list\+\_\+last(), eina\+\_\+list\+\_\+merge(), eina\+\_\+list\+\_\+next(), eina\+\_\+list\+\_\+prepend(), eina\+\_\+list\+\_\+remove(), eina\+\_\+list\+\_\+remove\+\_\+list(), E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+R\+E\+V\+E\+R\+S\+E\+\_\+\+F\+O\+R\+E\+A\+CH, eina\+\_\+list\+\_\+search\+\_\+unsorted(), eina\+\_\+list\+\_\+sort(), eina\+\_\+stringshare\+\_\+add(), eina\+\_\+stringshare\+\_\+del(), entries, icon, id, I\+NF, name, \+\_\+\+Efreet\+\_\+\+Desktop\+::name, \+\_\+\+Eina\+\_\+\+File\+\_\+\+Direct\+\_\+\+Info\+::name\+\_\+start, \+\_\+\+Efreet\+\_\+\+Desktop\+::orig\+\_\+path, efl\+::eo\+::parent, \+\_\+\+Eina\+\_\+\+File\+\_\+\+Direct\+\_\+\+Info\+::path, \+\_\+\+Efreet\+\_\+\+Desktop\+::type, and \+\_\+\+Eina\+\_\+\+File\+\_\+\+Direct\+\_\+\+Info\+::type.

\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+desktop\+\_\+insert@{efreet\+\_\+menu\+\_\+desktop\+\_\+insert}}
\index{efreet\+\_\+menu\+\_\+desktop\+\_\+insert@{efreet\+\_\+menu\+\_\+desktop\+\_\+insert}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+desktop\+\_\+insert(\+Efreet\+\_\+\+Menu $\ast$menu, Efreet\+\_\+\+Desktop $\ast$desktop, int pos)}{efreet_menu_desktop_insert(Efreet_Menu *menu, Efreet_Desktop *desktop, int pos)}}]{\setlength{\rightskip}{0pt plus 5cm}int efreet\+\_\+menu\+\_\+desktop\+\_\+insert (
\begin{DoxyParamCaption}
\item[{{\bf Efreet\+\_\+\+Menu} $\ast$}]{menu, }
\item[{{\bf Efreet\+\_\+\+Desktop} $\ast$}]{desktop, }
\item[{int}]{pos}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_gad623606893391e7c32ff4f39fae0aab1}{}\label{group__Efreet__Menu_gad623606893391e7c32ff4f39fae0aab1}


Insert a desktop element in a menu structure. Only accepts desktop files in default directories. 


\begin{DoxyParams}{Parameters}
{\em menu} & The menu to work with \\
\hline
{\em desktop} & The desktop to insert \\
\hline
{\em pos} & The position to place the new desktop \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns 1 on success, 0 on failure 
\end{DoxyReturn}


References desktop, efreet\+\_\+desktop\+\_\+ref(), efreet\+\_\+util\+\_\+path\+\_\+to\+\_\+file\+\_\+id(), eina\+\_\+list\+\_\+append(), eina\+\_\+list\+\_\+append\+\_\+relative(), eina\+\_\+list\+\_\+count(), eina\+\_\+list\+\_\+nth(), eina\+\_\+stringshare\+\_\+add(), entries, icon, \+\_\+\+Efreet\+\_\+\+Desktop\+::icon, id, name, \+\_\+\+Efreet\+\_\+\+Desktop\+::name, and \+\_\+\+Efreet\+\_\+\+Desktop\+::orig\+\_\+path.

\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+desktop\+\_\+remove@{efreet\+\_\+menu\+\_\+desktop\+\_\+remove}}
\index{efreet\+\_\+menu\+\_\+desktop\+\_\+remove@{efreet\+\_\+menu\+\_\+desktop\+\_\+remove}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+desktop\+\_\+remove(\+Efreet\+\_\+\+Menu $\ast$menu, Efreet\+\_\+\+Desktop $\ast$desktop)}{efreet_menu_desktop_remove(Efreet_Menu *menu, Efreet_Desktop *desktop)}}]{\setlength{\rightskip}{0pt plus 5cm}int efreet\+\_\+menu\+\_\+desktop\+\_\+remove (
\begin{DoxyParamCaption}
\item[{{\bf Efreet\+\_\+\+Menu} $\ast$}]{menu, }
\item[{{\bf Efreet\+\_\+\+Desktop} $\ast$}]{desktop}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_ga1341ea90ebef422eb859f6fe69e81a1b}{}\label{group__Efreet__Menu_ga1341ea90ebef422eb859f6fe69e81a1b}


Remove a desktop element in a menu structure. Only accepts desktop files in default directories. 


\begin{DoxyParams}{Parameters}
{\em menu} & The menu to work with \\
\hline
{\em desktop} & The desktop to remove \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns 1 on success, 0 on failure 
\end{DoxyReturn}


References efreet\+\_\+menu\+\_\+free(), E\+I\+N\+A\+\_\+\+C\+O\+M\+P\+A\+R\+E\+\_\+\+CB, eina\+\_\+list\+\_\+remove(), eina\+\_\+list\+\_\+search\+\_\+unsorted(), and entries.

\index{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}!efreet\+\_\+menu\+\_\+dump@{efreet\+\_\+menu\+\_\+dump}}
\index{efreet\+\_\+menu\+\_\+dump@{efreet\+\_\+menu\+\_\+dump}!Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification@{Efreet\+\_\+\+Menu\+: The F\+D\+O Desktop Menu Specification}}
\subsubsection[{\texorpdfstring{efreet\+\_\+menu\+\_\+dump(\+Efreet\+\_\+\+Menu $\ast$menu, const char $\ast$indent)}{efreet_menu_dump(Efreet_Menu *menu, const char *indent)}}]{\setlength{\rightskip}{0pt plus 5cm}void efreet\+\_\+menu\+\_\+dump (
\begin{DoxyParamCaption}
\item[{{\bf Efreet\+\_\+\+Menu} $\ast$}]{menu, }
\item[{const char $\ast$}]{indent}
\end{DoxyParamCaption}
)}\hypertarget{group__Efreet__Menu_ga25b14b29531706b9b2ca0f1bd378b169}{}\label{group__Efreet__Menu_ga25b14b29531706b9b2ca0f1bd378b169}


Dumps the contents of the menu to the command line. 


\begin{DoxyParams}{Parameters}
{\em menu} & The menu to work with \\
\hline
{\em menu} & The menu to work with \\
\hline
{\em indent} & The indent level to print the menu at \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Returns no value 
\end{DoxyReturn}


References alloca(), Efreet\+\_\+\+Xml\+::children, ecore\+\_\+file\+\_\+exists(), ecore\+\_\+file\+\_\+file\+\_\+get(), efreet\+\_\+config\+\_\+dirs\+\_\+get(), efreet\+\_\+config\+\_\+home\+\_\+get(), efreet\+\_\+data\+\_\+dirs\+\_\+get(), efreet\+\_\+data\+\_\+home\+\_\+get(), efreet\+\_\+desktop\+\_\+category\+\_\+add(), efreet\+\_\+desktop\+\_\+category\+\_\+count\+\_\+get(), efreet\+\_\+desktop\+\_\+free(), efreet\+\_\+desktop\+\_\+get(), efreet\+\_\+menu\+\_\+dump(), E\+I\+N\+A\+\_\+\+C\+O\+M\+P\+A\+R\+E\+\_\+\+CB, E\+I\+N\+A\+\_\+\+F\+I\+L\+E\+\_\+\+D\+IR, eina\+\_\+file\+\_\+direct\+\_\+ls(), eina\+\_\+file\+\_\+stat\+\_\+ls(), eina\+\_\+hash\+\_\+add(), eina\+\_\+hash\+\_\+find(), E\+I\+N\+A\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+F\+O\+R\+E\+A\+CH, eina\+\_\+iterator\+\_\+free(), eina\+\_\+list\+\_\+append(), E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+CH, eina\+\_\+list\+\_\+free(), E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+R\+EE, eina\+\_\+list\+\_\+merge(), eina\+\_\+list\+\_\+prepend(), eina\+\_\+list\+\_\+remove(), E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+R\+E\+V\+E\+R\+S\+E\+\_\+\+F\+O\+R\+E\+A\+CH, eina\+\_\+list\+\_\+search\+\_\+unsorted(), eina\+\_\+stringshare\+\_\+add(), eina\+\_\+stringshare\+\_\+del(), eina\+\_\+stringshare\+\_\+ref(), eina\+\_\+stringshare\+\_\+strlen(), E\+I\+N\+A\+\_\+\+U\+N\+U\+S\+ED, entries, icon, I\+NF, name, \+\_\+\+Eina\+\_\+\+File\+\_\+\+Direct\+\_\+\+Info\+::name\+\_\+start, efl\+::eo\+::parent, \+\_\+\+Eina\+\_\+\+File\+\_\+\+Direct\+\_\+\+Info\+::path, references, Efreet\+\_\+\+Xml\+::tag, Efreet\+\_\+\+Xml\+::text, \+\_\+\+Eina\+\_\+\+File\+\_\+\+Direct\+\_\+\+Info\+::type, and W\+RN.



Referenced by efreet\+\_\+menu\+\_\+dump().

