\section{Elementary Profile}
\label{group__Elm__Profile}\index{Elementary Profile@{Elementary Profile}}


Profiles are pre-\/set options that affect the whole look-\/and-\/feel of Elementary-\/based applications.  


\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
const char $\ast$ \hyperlink{group__Elm__Profile_gaa7f90ba4d4502690ee84a08fa9494b9d}{elm\+\_\+config\+\_\+profile\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Get Elementary\textquotesingle{}s profile in use. \end{DoxyCompactList}\item 
const char $\ast$ \hyperlink{group__Elm__Profile_gaded09ffdb2cf409f2c1d84811b15a2c3}{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+get} (const char $\ast$profile, Eina\+\_\+\+Bool is\+\_\+user)
\begin{DoxyCompactList}\small\item\em Get an Elementary\textquotesingle{}s profile directory path in the filesystem. \end{DoxyCompactList}\item 
void \hyperlink{group__Elm__Profile_gab26c330a4eae7e190984cc1638947341}{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+free} (const char $\ast$p\+\_\+dir)
\begin{DoxyCompactList}\small\item\em Free an Elementary\textquotesingle{}s profile directory path, as returned by \hyperlink{group__Elm__Profile_gaded09ffdb2cf409f2c1d84811b15a2c3}{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+get()}. \end{DoxyCompactList}\item 
Eina\+\_\+\+List $\ast$ \hyperlink{group__Elm__Profile_ga17d23afcf0e30b1844513405fc9ae81f}{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Get Elementary\textquotesingle{}s list of available profiles. \end{DoxyCompactList}\item 
Eina\+\_\+\+List $\ast$ \hyperlink{group__Elm__Profile_ga57997abf5620597b6d439c63d91901bb}{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+full\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Get Elementary\textquotesingle{}s list of available profiles including hidden ones. \end{DoxyCompactList}\item 
void \hyperlink{group__Elm__Profile_gae312204c4dd4ec927748665b784b621b}{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+free} (Eina\+\_\+\+List $\ast$l)
\begin{DoxyCompactList}\small\item\em Free Elementary\textquotesingle{}s list of available profiles. \end{DoxyCompactList}\item 
Eina\+\_\+\+Bool \hyperlink{group__Elm__Profile_ga68e7d7f56eefe7f4b15f5bb3b4aa6c96}{elm\+\_\+config\+\_\+profile\+\_\+exists} (const char $\ast$profile)
\begin{DoxyCompactList}\small\item\em Return if a profile of the given name exists. \end{DoxyCompactList}\item 
void \hyperlink{group__Elm__Profile_gafedf998f8887c1b51b2ea9a969dbad8c}{elm\+\_\+config\+\_\+profile\+\_\+set} (const char $\ast$profile)
\begin{DoxyCompactList}\small\item\em Set Elementary\textquotesingle{}s profile. \end{DoxyCompactList}\item 
void \hyperlink{group__Elm__Profile_ga88cf8cbf6c65aa37227c90ed63a8db1c}{elm\+\_\+config\+\_\+profile\+\_\+save} (const char $\ast$profile)
\begin{DoxyCompactList}\small\item\em Take the current config and write it out to the named profile. \end{DoxyCompactList}\item 
void \hyperlink{group__Elm__Profile_gae65dd9ed2cd9a110163eb3bf15729e66}{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+add} (const char $\ast$profile, const char $\ast$derive\+\_\+options)
\begin{DoxyCompactList}\small\item\em Add a new profile of the given name to be derived from the current profile. \end{DoxyCompactList}\item 
void \hyperlink{group__Elm__Profile_ga616fc7d537fbf1a2f1078cba84cf94ce}{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+del} (const char $\ast$profile)
\begin{DoxyCompactList}\small\item\em Deletes a profile that is derived from the current one. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Profiles are pre-\/set options that affect the whole look-\/and-\/feel of Elementary-\/based applications. 

There are, for example, profiles aimed at desktop computer applications and others aimed at mobile, touchscreen-\/based ones. You most probably don\textquotesingle{}t want to use the functions in this group unless you\textquotesingle{}re writing an elementary configuration manager. 

\subsection{Function Documentation}
\mbox{\label{group__Elm__Profile_gae65dd9ed2cd9a110163eb3bf15729e66}} 
\index{Elementary Profile@{Elementary Profile}!elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+add@{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+add}}
\index{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+add@{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+add}!Elementary Profile@{Elementary Profile}}
\subsubsection{\texorpdfstring{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+add()}{elm\_config\_profile\_derived\_add()}}
{\footnotesize\ttfamily void elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+add (\begin{DoxyParamCaption}\item[{const char $\ast$}]{profile,  }\item[{const char $\ast$}]{derive\+\_\+options }\end{DoxyParamCaption})}



Add a new profile of the given name to be derived from the current profile. 

This creates a new profile of name {\ttfamily profile} that will be derived from the currently used profile using the modification commands encoded in the {\ttfamily derive\+\_\+options} string.

At this point it is not expected that anyone would generally use this A\+PI except if you are a destktop environment and so the user base of this A\+PI will be enlightenment itself.


\begin{DoxyParams}{Parameters}
{\em profile} & The new profile\textquotesingle{}s name \\
\hline
{\em derive\+\_\+options} & A string of derive options detailing how to modify\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Elm__Profile_ga616fc7d537fbf1a2f1078cba84cf94ce}{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+del}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+17 
\end{DoxySince}
\mbox{\label{group__Elm__Profile_ga616fc7d537fbf1a2f1078cba84cf94ce}} 
\index{Elementary Profile@{Elementary Profile}!elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+del@{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+del}}
\index{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+del@{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+del}!Elementary Profile@{Elementary Profile}}
\subsubsection{\texorpdfstring{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+del()}{elm\_config\_profile\_derived\_del()}}
{\footnotesize\ttfamily void elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+del (\begin{DoxyParamCaption}\item[{const char $\ast$}]{profile }\end{DoxyParamCaption})}



Deletes a profile that is derived from the current one. 

This deletes a derived profile added by \hyperlink{group__Elm__Profile_gae65dd9ed2cd9a110163eb3bf15729e66}{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+add()}. This will delete the profile of the given name {\ttfamily profile} that is derived from the current profile.

At this point it is not expected that anyone would generally use this A\+PI except if you are a destktop environment and so the user base of this A\+PI will be enlightenment itself.


\begin{DoxyParams}{Parameters}
{\em profile} & The profile\textquotesingle{}s name that is to be deleted\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Elm__Profile_gae65dd9ed2cd9a110163eb3bf15729e66}{elm\+\_\+config\+\_\+profile\+\_\+derived\+\_\+add}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+17 
\end{DoxySince}


References elm\+\_\+cache\+\_\+all\+\_\+flush(), E\+L\+M\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+O\+N\+F\+I\+G\+\_\+\+A\+L\+L\+\_\+\+C\+H\+A\+N\+G\+ED, E\+L\+M\+\_\+\+F\+O\+C\+U\+S\+\_\+\+A\+U\+T\+O\+S\+C\+R\+O\+L\+L\+\_\+\+M\+O\+D\+E\+\_\+\+B\+R\+I\+N\+G\+\_\+\+IN, E\+L\+M\+\_\+\+F\+O\+C\+U\+S\+\_\+\+A\+U\+T\+O\+S\+C\+R\+O\+L\+L\+\_\+\+M\+O\+D\+E\+\_\+\+N\+O\+NE, E\+L\+M\+\_\+\+F\+O\+C\+U\+S\+\_\+\+A\+U\+T\+O\+S\+C\+R\+O\+L\+L\+\_\+\+M\+O\+D\+E\+\_\+\+S\+H\+OW, E\+L\+M\+\_\+\+F\+O\+C\+U\+S\+\_\+\+M\+O\+V\+E\+\_\+\+P\+O\+L\+I\+C\+Y\+\_\+\+C\+L\+I\+CK, E\+L\+M\+\_\+\+S\+L\+I\+D\+E\+R\+\_\+\+I\+N\+D\+I\+C\+A\+T\+O\+R\+\_\+\+V\+I\+S\+I\+B\+L\+E\+\_\+\+M\+O\+D\+E\+\_\+\+A\+L\+W\+A\+YS, E\+L\+M\+\_\+\+S\+L\+I\+D\+E\+R\+\_\+\+I\+N\+D\+I\+C\+A\+T\+O\+R\+\_\+\+V\+I\+S\+I\+B\+L\+E\+\_\+\+M\+O\+D\+E\+\_\+\+D\+E\+F\+A\+U\+LT, E\+L\+M\+\_\+\+S\+L\+I\+D\+E\+R\+\_\+\+I\+N\+D\+I\+C\+A\+T\+O\+R\+\_\+\+V\+I\+S\+I\+B\+L\+E\+\_\+\+M\+O\+D\+E\+\_\+\+N\+O\+NE, and E\+L\+M\+\_\+\+S\+L\+I\+D\+E\+R\+\_\+\+I\+N\+D\+I\+C\+A\+T\+O\+R\+\_\+\+V\+I\+S\+I\+B\+L\+E\+\_\+\+M\+O\+D\+E\+\_\+\+O\+N\+\_\+\+F\+O\+C\+US.

\mbox{\label{group__Elm__Profile_gab26c330a4eae7e190984cc1638947341}} 
\index{Elementary Profile@{Elementary Profile}!elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+free@{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+free}}
\index{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+free@{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+free}!Elementary Profile@{Elementary Profile}}
\subsubsection{\texorpdfstring{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+free()}{elm\_config\_profile\_dir\_free()}}
{\footnotesize\ttfamily void elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+free (\begin{DoxyParamCaption}\item[{const char $\ast$}]{p\+\_\+dir }\end{DoxyParamCaption})}



Free an Elementary\textquotesingle{}s profile directory path, as returned by \hyperlink{group__Elm__Profile_gaded09ffdb2cf409f2c1d84811b15a2c3}{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+get()}. 


\begin{DoxyParams}{Parameters}
{\em p\+\_\+dir} & The profile\textquotesingle{}s path \\
\hline
\end{DoxyParams}
\mbox{\label{group__Elm__Profile_gaded09ffdb2cf409f2c1d84811b15a2c3}} 
\index{Elementary Profile@{Elementary Profile}!elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+get@{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+get}}
\index{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+get@{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+get}!Elementary Profile@{Elementary Profile}}
\subsubsection{\texorpdfstring{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+get()}{elm\_config\_profile\_dir\_get()}}
{\footnotesize\ttfamily const char$\ast$ elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+get (\begin{DoxyParamCaption}\item[{const char $\ast$}]{profile,  }\item[{Eina\+\_\+\+Bool}]{is\+\_\+user }\end{DoxyParamCaption})}



Get an Elementary\textquotesingle{}s profile directory path in the filesystem. 

One may want to fetch a system profile\textquotesingle{}s dir or a user one (fetched inside \$\+H\+O\+ME).


\begin{DoxyParams}{Parameters}
{\em profile} & The profile\textquotesingle{}s name \\
\hline
{\em is\+\_\+user} & Whether to lookup for a user profile ({\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE}) or a system one ({\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The profile\textquotesingle{}s directory path.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
You must free it with \hyperlink{group__Elm__Profile_gab26c330a4eae7e190984cc1638947341}{elm\+\_\+config\+\_\+profile\+\_\+dir\+\_\+free()}. 
\end{DoxyNote}
\mbox{\label{group__Elm__Profile_ga68e7d7f56eefe7f4b15f5bb3b4aa6c96}} 
\index{Elementary Profile@{Elementary Profile}!elm\+\_\+config\+\_\+profile\+\_\+exists@{elm\+\_\+config\+\_\+profile\+\_\+exists}}
\index{elm\+\_\+config\+\_\+profile\+\_\+exists@{elm\+\_\+config\+\_\+profile\+\_\+exists}!Elementary Profile@{Elementary Profile}}
\subsubsection{\texorpdfstring{elm\+\_\+config\+\_\+profile\+\_\+exists()}{elm\_config\_profile\_exists()}}
{\footnotesize\ttfamily Eina\+\_\+\+Bool elm\+\_\+config\+\_\+profile\+\_\+exists (\begin{DoxyParamCaption}\item[{const char $\ast$}]{profile }\end{DoxyParamCaption})}



Return if a profile of the given name exists. 

\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+UE if the profile exists, or E\+I\+N\+A\+\_\+\+F\+A\+L\+SE if not 
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em profile} & The profile\textquotesingle{}s name\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+17 
\end{DoxySince}
\mbox{\label{group__Elm__Profile_gaa7f90ba4d4502690ee84a08fa9494b9d}} 
\index{Elementary Profile@{Elementary Profile}!elm\+\_\+config\+\_\+profile\+\_\+get@{elm\+\_\+config\+\_\+profile\+\_\+get}}
\index{elm\+\_\+config\+\_\+profile\+\_\+get@{elm\+\_\+config\+\_\+profile\+\_\+get}!Elementary Profile@{Elementary Profile}}
\subsubsection{\texorpdfstring{elm\+\_\+config\+\_\+profile\+\_\+get()}{elm\_config\_profile\_get()}}
{\footnotesize\ttfamily const char$\ast$ elm\+\_\+config\+\_\+profile\+\_\+get (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Get Elementary\textquotesingle{}s profile in use. 

This gets the global profile that is applied to all Elementary applications.

\begin{DoxyReturn}{Returns}
The profile\textquotesingle{}s name 
\end{DoxyReturn}
\mbox{\label{group__Elm__Profile_gae312204c4dd4ec927748665b784b621b}} 
\index{Elementary Profile@{Elementary Profile}!elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+free@{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+free}}
\index{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+free@{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+free}!Elementary Profile@{Elementary Profile}}
\subsubsection{\texorpdfstring{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+free()}{elm\_config\_profile\_list\_free()}}
{\footnotesize\ttfamily void elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+free (\begin{DoxyParamCaption}\item[{Eina\+\_\+\+List $\ast$}]{l }\end{DoxyParamCaption})}



Free Elementary\textquotesingle{}s list of available profiles. 


\begin{DoxyParams}{Parameters}
{\em l} & The profiles list, as returned by \hyperlink{group__Elm__Profile_ga17d23afcf0e30b1844513405fc9ae81f}{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+get()}. \\
\hline
\end{DoxyParams}
\mbox{\label{group__Elm__Profile_ga57997abf5620597b6d439c63d91901bb}} 
\index{Elementary Profile@{Elementary Profile}!elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+full\+\_\+get@{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+full\+\_\+get}}
\index{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+full\+\_\+get@{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+full\+\_\+get}!Elementary Profile@{Elementary Profile}}
\subsubsection{\texorpdfstring{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+full\+\_\+get()}{elm\_config\_profile\_list\_full\_get()}}
{\footnotesize\ttfamily Eina\+\_\+\+List$\ast$ elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+full\+\_\+get (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Get Elementary\textquotesingle{}s list of available profiles including hidden ones. 

This gets a full list of profiles even with hidden names that should not be user-\/visible.

\begin{DoxyReturn}{Returns}
The profiles list. List node data are the profile name strings.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
One must free this list, after usage, with the function \hyperlink{group__Elm__Profile_gae312204c4dd4ec927748665b784b621b}{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+free()}. 
\end{DoxyNote}
\begin{DoxySince}{Since}
1.\+17 
\end{DoxySince}
\mbox{\label{group__Elm__Profile_ga17d23afcf0e30b1844513405fc9ae81f}} 
\index{Elementary Profile@{Elementary Profile}!elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+get@{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+get}}
\index{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+get@{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+get}!Elementary Profile@{Elementary Profile}}
\subsubsection{\texorpdfstring{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+get()}{elm\_config\_profile\_list\_get()}}
{\footnotesize\ttfamily Eina\+\_\+\+List$\ast$ elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+get (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Get Elementary\textquotesingle{}s list of available profiles. 

\begin{DoxyReturn}{Returns}
The profiles list. List node data are the profile name strings.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
One must free this list, after usage, with the function \hyperlink{group__Elm__Profile_gae312204c4dd4ec927748665b784b621b}{elm\+\_\+config\+\_\+profile\+\_\+list\+\_\+free()}. 
\end{DoxyNote}
\mbox{\label{group__Elm__Profile_ga88cf8cbf6c65aa37227c90ed63a8db1c}} 
\index{Elementary Profile@{Elementary Profile}!elm\+\_\+config\+\_\+profile\+\_\+save@{elm\+\_\+config\+\_\+profile\+\_\+save}}
\index{elm\+\_\+config\+\_\+profile\+\_\+save@{elm\+\_\+config\+\_\+profile\+\_\+save}!Elementary Profile@{Elementary Profile}}
\subsubsection{\texorpdfstring{elm\+\_\+config\+\_\+profile\+\_\+save()}{elm\_config\_profile\_save()}}
{\footnotesize\ttfamily void elm\+\_\+config\+\_\+profile\+\_\+save (\begin{DoxyParamCaption}\item[{const char $\ast$}]{profile }\end{DoxyParamCaption})}



Take the current config and write it out to the named profile. 

This will take the current in-\/memory config and write it out to the named profile specified by {\ttfamily profile}. This will not change profile for the application or make other processes switch profile.


\begin{DoxyParams}{Parameters}
{\em profile} & The profile\textquotesingle{}s name\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+17 
\end{DoxySince}
\mbox{\label{group__Elm__Profile_gafedf998f8887c1b51b2ea9a969dbad8c}} 
\index{Elementary Profile@{Elementary Profile}!elm\+\_\+config\+\_\+profile\+\_\+set@{elm\+\_\+config\+\_\+profile\+\_\+set}}
\index{elm\+\_\+config\+\_\+profile\+\_\+set@{elm\+\_\+config\+\_\+profile\+\_\+set}!Elementary Profile@{Elementary Profile}}
\subsubsection{\texorpdfstring{elm\+\_\+config\+\_\+profile\+\_\+set()}{elm\_config\_profile\_set()}}
{\footnotesize\ttfamily void elm\+\_\+config\+\_\+profile\+\_\+set (\begin{DoxyParamCaption}\item[{const char $\ast$}]{profile }\end{DoxyParamCaption})}



Set Elementary\textquotesingle{}s profile. 

This sets the global profile that is applied to Elementary applications. Just the process the call comes from will be affected.


\begin{DoxyParams}{Parameters}
{\em profile} & The profile\textquotesingle{}s name \\
\hline
\end{DoxyParams}
