\hypertarget{group__Evas__Utils}{}\doxysection{General Utilities}
\label{group__Evas__Utils}\index{General Utilities@{General Utilities}}


Some functions that are handy but are not specific of canvas or objects.  


\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
EVAS\+\_\+\+API const char $\ast$ \mbox{\hyperlink{group__Evas__Utils_gaa067ec9b15e558d510a7ac373f700348}{evas\+\_\+load\+\_\+error\+\_\+str}} (\mbox{\hyperlink{group__Evas__Image_ga17a0211044defa51aa3ceaadaa4e53c2}{Evas\+\_\+\+Load\+\_\+\+Error}} error)
\begin{DoxyCompactList}\small\item\em Converts the given Evas image load error code into a string describing it in human-\/readable text. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void \mbox{\hyperlink{group__Evas__Utils_gaf32bd37c2594048152144504e5c00914}{evas\+\_\+color\+\_\+hsv\+\_\+to\+\_\+rgb}} (float h, float s, float v, int $\ast$r, int $\ast$g, int $\ast$b)
\begin{DoxyCompactList}\small\item\em Convert a given color from HSV to RGB format. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void \mbox{\hyperlink{group__Evas__Utils_gad4dbd6491ec0cfb53a3e1cf1874cde49}{evas\+\_\+color\+\_\+rgb\+\_\+to\+\_\+hsv}} (int r, int g, int b, float $\ast$h, float $\ast$s, float $\ast$v)
\begin{DoxyCompactList}\small\item\em Convert a given color from RGB to HSV format. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void \mbox{\hyperlink{group__Evas__Utils_gaf3b432607f6e8a987598a3489c7e386e}{evas\+\_\+color\+\_\+argb\+\_\+premul}} (int a, int $\ast$r, int $\ast$g, int $\ast$b)
\begin{DoxyCompactList}\small\item\em Pre-\/multiplies a rgb triplet by an alpha factor. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void \mbox{\hyperlink{group__Evas__Utils_ga67c6fcb9ce7f50f8ba44742e791768e3}{evas\+\_\+color\+\_\+argb\+\_\+unpremul}} (int a, int $\ast$r, int $\ast$g, int $\ast$b)
\begin{DoxyCompactList}\small\item\em Undo pre-\/multiplication of a rgb triplet by an alpha factor. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void \mbox{\hyperlink{group__Evas__Utils_gaebf9305bff4898ee8bbb4c6f892cabec}{evas\+\_\+data\+\_\+argb\+\_\+premul}} (unsigned int $\ast$data, unsigned int len)
\begin{DoxyCompactList}\small\item\em Pre-\/multiplies data by an alpha factor. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void \mbox{\hyperlink{group__Evas__Utils_ga73fc4a04edd95b8f9981db0ef032790d}{evas\+\_\+data\+\_\+argb\+\_\+unpremul}} (unsigned int $\ast$data, unsigned int len)
\begin{DoxyCompactList}\small\item\em Undo pre-\/multiplication data by an alpha factor. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API int \mbox{\hyperlink{group__Evas__Utils_ga54e157dd28ea82b37f8839477d26bd6f}{evas\+\_\+string\+\_\+char\+\_\+next\+\_\+get}} (const char $\ast$str, int pos, int $\ast$decoded)
\begin{DoxyCompactList}\small\item\em Gets the next character in the string. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API int \mbox{\hyperlink{group__Evas__Utils_ga94cdaf102cbea656ebde5672d34a4cf5}{evas\+\_\+string\+\_\+char\+\_\+prev\+\_\+get}} (const char $\ast$str, int pos, int $\ast$decoded)
\begin{DoxyCompactList}\small\item\em Gets the previous character in the string. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API int \mbox{\hyperlink{group__Evas__Utils_gaea63b550e380a825b52b818e0bd6c8ad}{evas\+\_\+string\+\_\+char\+\_\+len\+\_\+get}} (const char $\ast$str)
\begin{DoxyCompactList}\small\item\em Get the length in characters of the string. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API Evas\+\_\+\+Bi\+Di\+\_\+\+Direction \mbox{\hyperlink{group__Evas__Utils_gafd84774aa649886872b0d1bf47a1fc4f}{evas\+\_\+language\+\_\+direction\+\_\+get}} (void)
\begin{DoxyCompactList}\small\item\em Get language direction. \end{DoxyCompactList}\item 
EVAS\+\_\+\+API void \mbox{\hyperlink{group__Evas__Utils_ga1eef3657e3299c6394301d0f292d2360}{evas\+\_\+language\+\_\+reinit}} (void)
\begin{DoxyCompactList}\small\item\em Reinitialize language from the environment. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Some functions that are handy but are not specific of canvas or objects. 



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Evas__Utils_gaa067ec9b15e558d510a7ac373f700348}\label{group__Evas__Utils_gaa067ec9b15e558d510a7ac373f700348}} 
\index{General Utilities@{General Utilities}!evas\_load\_error\_str@{evas\_load\_error\_str}}
\index{evas\_load\_error\_str@{evas\_load\_error\_str}!General Utilities@{General Utilities}}
\doxysubsubsection{\texorpdfstring{evas\_load\_error\_str()}{evas\_load\_error\_str()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API const char $\ast$ evas\+\_\+load\+\_\+error\+\_\+str (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Evas__Image_ga17a0211044defa51aa3ceaadaa4e53c2}{Evas\+\_\+\+Load\+\_\+\+Error}}}]{error }\end{DoxyParamCaption})}



Converts the given Evas image load error code into a string describing it in human-\/readable text. 


\begin{DoxyParams}{Parameters}
{\em error} & the error code, a value in \mbox{\hyperlink{group__Evas__Image_ga17a0211044defa51aa3ceaadaa4e53c2}{Evas\+\_\+\+Load\+\_\+\+Error}}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Always returns a valid string. If the given {\ttfamily error} is not supported, {\ttfamily \char`\"{}\+Unknown error\char`\"{}} is returned.
\end{DoxyReturn}
Mostly \mbox{\hyperlink{group__Evas__Object__Image_gac2e588476b16b04f85ca9a594c140c1d}{evas\+\_\+object\+\_\+image\+\_\+file\+\_\+set()}} would be the function setting that error value afterwards, but also evas\+\_\+object\+\_\+image\+\_\+load(), \mbox{\hyperlink{group__Evas__Object__Image_ga08f2d379759c60776cb714df0a0c5f53}{evas\+\_\+object\+\_\+image\+\_\+save()}}, \mbox{\hyperlink{group__Evas__Image_ga34952d1934aeed3b2f6bbc5f9c82e6cd}{evas\+\_\+object\+\_\+image\+\_\+data\+\_\+get()}}, \mbox{\hyperlink{group__Evas__Object__Image_gaa226f4f77e534c1cce8e4d84edb4334a}{evas\+\_\+object\+\_\+image\+\_\+data\+\_\+convert()}}, \mbox{\hyperlink{group__Evas__Object__Image_gaf6ab05045ce2dd32d1c7e26ea5c75ce8}{evas\+\_\+object\+\_\+image\+\_\+pixels\+\_\+import()}} and evas\+\_\+object\+\_\+image\+\_\+is\+\_\+inside(). This function is meant to be used in conjunction with \mbox{\hyperlink{group__Evas__Object__Image_ga10a0117fbd14e665a988cd4913c324d9}{evas\+\_\+object\+\_\+image\+\_\+load\+\_\+error\+\_\+get()}}, as in\+:

Example code\+:  
\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{   d.img1 = \mbox{\hyperlink{group__Evas__Object__Image_ga6472e3566f3f4948f2c8d37dbbb91999}{evas\_object\_image\_add}}(d.evas);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Image_gac2e588476b16b04f85ca9a594c140c1d}{evas\_object\_image\_file\_set}}(d.img1, valid\_path, NULL);}
\DoxyCodeLine{   err = \mbox{\hyperlink{group__Evas__Object__Image_ga10a0117fbd14e665a988cd4913c324d9}{evas\_object\_image\_load\_error\_get}}(d.img1);}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (err != \mbox{\hyperlink{group__Evas__Image_gga17a0211044defa51aa3ceaadaa4e53c2a016233a6ae27765a3aa2759753c112ac}{EVAS\_LOAD\_ERROR\_NONE}})}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        fprintf(stderr, \textcolor{stringliteral}{"{}could not load image '\%s'. error string is \(\backslash\)"{}\%s\(\backslash\)"{}\(\backslash\)n"{}},}
\DoxyCodeLine{                valid\_path, \mbox{\hyperlink{group__Evas__Utils_gaa067ec9b15e558d510a7ac373f700348}{evas\_load\_error\_str}}(err));}
\DoxyCodeLine{     \}}
\DoxyCodeLine{   \textcolor{keywordflow}{else}}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        printf(\textcolor{stringliteral}{"{}loaded image '\%s' with succes! error string is \(\backslash\)"{}\%s\(\backslash\)"{}\(\backslash\)n"{}},}
\DoxyCodeLine{               valid\_path, \mbox{\hyperlink{group__Evas__Utils_gaa067ec9b15e558d510a7ac373f700348}{evas\_load\_error\_str}}(err));}
\DoxyCodeLine{}
\DoxyCodeLine{        \mbox{\hyperlink{group__Evas__Object__Group_ga335c8ee6eaeaac9710656af4f8b0db91}{evas\_object\_move}}(d.img1, 3, 3);}
\DoxyCodeLine{        \mbox{\hyperlink{group__Evas__Object__Image_ga0c5986f8900103c38228c3a6ebe9a100}{evas\_object\_image\_fill\_set}}(d.img1, 0, 0, WIDTH / 2, HEIGHT / 2);}
\DoxyCodeLine{        \mbox{\hyperlink{group__Evas__Object__Group_gacad94595f83580c18908cb3b69b08d1a}{evas\_object\_resize}}(d.img1, WIDTH / 2, HEIGHT / 2);}
\DoxyCodeLine{        \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga07208fcafd4739de606bc35fff684bf5}{evas\_object\_show}}(d.img1);}
\DoxyCodeLine{}
\DoxyCodeLine{        \mbox{\hyperlink{group__Evas__Object__Group_gac6d65f8896ab59780553676d0017c2ef}{evas\_object\_focus\_set}}(d.bg, \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\_TRUE}});}
\DoxyCodeLine{        \mbox{\hyperlink{group__Evas__Object__Group__Events_gac71a1038dad71da36f57b70c8ad10252}{evas\_object\_event\_callback\_add}}(}
\DoxyCodeLine{          d.bg, \mbox{\hyperlink{Evas__Common_8h_ad64cde0da38a60e7cb7905b3ab216968a336b86bad4f145f84c155e4922335584}{EVAS\_CALLBACK\_KEY\_DOWN}}, \_on\_keydown, NULL);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{}
\DoxyCodeLine{   \textcolor{comment}{/* this is a border around the image above, here just to emphasize}}
\DoxyCodeLine{\textcolor{comment}{    * its geometry */}}
\DoxyCodeLine{   d.border = \mbox{\hyperlink{group__Evas__Object__Image_gafb52be265f315186a28d43af2d559ec6}{evas\_object\_image\_filled\_add}}(d.evas);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Image_gac2e588476b16b04f85ca9a594c140c1d}{evas\_object\_image\_file\_set}}(d.border, border\_img\_path, NULL);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Image_ga063e5ad38b43897311bbdecfe8dc312d}{evas\_object\_image\_border\_set}}(d.border, 3, 3, 3, 3);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Image_ga5749943ce62e85ead67a1440960677fa}{evas\_object\_image\_border\_center\_fill\_set}}(d.border, \mbox{\hyperlink{group__Evas__Object__Image_gga9f789224285e646309b7dd81a2401910a2ad856ac6aab5e2659c3a584a37aec70}{EVAS\_BORDER\_FILL\_NONE}});}
\DoxyCodeLine{}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Group_ga335c8ee6eaeaac9710656af4f8b0db91}{evas\_object\_move}}(d.border, 0, 0);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Group_gacad94595f83580c18908cb3b69b08d1a}{evas\_object\_resize}}(d.border, (WIDTH / 2) + 6, (HEIGHT / 2) + 6);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga07208fcafd4739de606bc35fff684bf5}{evas\_object\_show}}(d.border);}
\DoxyCodeLine{}
\DoxyCodeLine{   \textcolor{comment}{/* image loading will fail for this one -\/-\/ unless one cheats and}}
\DoxyCodeLine{\textcolor{comment}{    * puts a valid image on that path */}}
\DoxyCodeLine{   d.img2 = \mbox{\hyperlink{group__Evas__Object__Image_ga6472e3566f3f4948f2c8d37dbbb91999}{evas\_object\_image\_add}}(d.evas);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Evas__Object__Image_gac2e588476b16b04f85ca9a594c140c1d}{evas\_object\_image\_file\_set}}(d.img2, bogus\_path, NULL);}
\DoxyCodeLine{   err = \mbox{\hyperlink{group__Evas__Object__Image_ga10a0117fbd14e665a988cd4913c324d9}{evas\_object\_image\_load\_error\_get}}(d.img2);}
\DoxyCodeLine{   \textcolor{keywordflow}{if} (err != \mbox{\hyperlink{group__Evas__Image_gga17a0211044defa51aa3ceaadaa4e53c2a016233a6ae27765a3aa2759753c112ac}{EVAS\_LOAD\_ERROR\_NONE}})}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        fprintf(stderr, \textcolor{stringliteral}{"{}could not load image '\%s': error string is \(\backslash\)"{}\%s\(\backslash\)"{}\(\backslash\)n"{}},}
\DoxyCodeLine{                bogus\_path, \mbox{\hyperlink{group__Evas__Utils_gaa067ec9b15e558d510a7ac373f700348}{evas\_load\_error\_str}}(err));}
\DoxyCodeLine{     \}}
\DoxyCodeLine{   \textcolor{keywordflow}{else}}
\DoxyCodeLine{     \{}
\DoxyCodeLine{        \mbox{\hyperlink{group__Evas__Object__Group_ga335c8ee6eaeaac9710656af4f8b0db91}{evas\_object\_move}}(d.img2, WIDTH / 2, HEIGHT / 2);}
\DoxyCodeLine{        \mbox{\hyperlink{group__Evas__Object__Image_ga0c5986f8900103c38228c3a6ebe9a100}{evas\_object\_image\_fill\_set}}(d.img2, 0, 0, WIDTH / 2, HEIGHT / 2);}
\DoxyCodeLine{        \mbox{\hyperlink{group__Evas__Object__Group_gacad94595f83580c18908cb3b69b08d1a}{evas\_object\_resize}}(d.img2, WIDTH / 2, HEIGHT / 2);}
\DoxyCodeLine{        \mbox{\hyperlink{group__Evas__Object__Group__Basic_ga07208fcafd4739de606bc35fff684bf5}{evas\_object\_show}}(d.img2);}
\DoxyCodeLine{     \}}
\DoxyCodeLine{}
\DoxyCodeLine{   puts(commands);}
\DoxyCodeLine{   \mbox{\hyperlink{group__Ecore__Main__Loop__Group_gaf103b9f668bb3e4fed12e52c6180132d}{ecore\_main\_loop\_begin}}();}

\end{DoxyCodeInclude}
 Here, being {\ttfamily valid\+\_\+path} the path to a valid image and {\ttfamily bogus\+\_\+path} a path to a file that does not exist, the two outputs of \mbox{\hyperlink{group__Evas__Utils_gaa067ec9b15e558d510a7ac373f700348}{evas\+\_\+load\+\_\+error\+\_\+str()}} would be (if no other errors occur)\+: {\ttfamily \char`\"{}\+No error on load\char`\"{}} and {\ttfamily \char`\"{}\+File (or file path) does not exist\char`\"{}}, respectively. See the full \mbox{\hyperlink{Example_Evas_Images}{example}}. 

References \mbox{\hyperlink{group__Evas__Image_gga17a0211044defa51aa3ceaadaa4e53c2a7ba46c8865335ca085213b7dbf039a75}{EVAS\+\_\+\+LOAD\+\_\+\+ERROR\+\_\+\+CORRUPT\+\_\+\+FILE}}, \mbox{\hyperlink{group__Evas__Image_gga17a0211044defa51aa3ceaadaa4e53c2a0230814bb1fe9cb194e253e840aa8529}{EVAS\+\_\+\+LOAD\+\_\+\+ERROR\+\_\+\+DOES\+\_\+\+NOT\+\_\+\+EXIST}}, \mbox{\hyperlink{group__Evas__Image_gga17a0211044defa51aa3ceaadaa4e53c2ab9e5061c8c74bcd8a283fb7598a8b81d}{EVAS\+\_\+\+LOAD\+\_\+\+ERROR\+\_\+\+GENERIC}}, \mbox{\hyperlink{group__Evas__Image_gga17a0211044defa51aa3ceaadaa4e53c2a016233a6ae27765a3aa2759753c112ac}{EVAS\+\_\+\+LOAD\+\_\+\+ERROR\+\_\+\+NONE}}, \mbox{\hyperlink{group__Evas__Image_gga17a0211044defa51aa3ceaadaa4e53c2a17e04ec01edcabf21f33537872fb7200}{EVAS\+\_\+\+LOAD\+\_\+\+ERROR\+\_\+\+PERMISSION\+\_\+\+DENIED}}, \mbox{\hyperlink{group__Evas__Image_gga17a0211044defa51aa3ceaadaa4e53c2a22a36ddde85a5fd1c1f2e68d7052f6f4}{EVAS\+\_\+\+LOAD\+\_\+\+ERROR\+\_\+\+RESOURCE\+\_\+\+ALLOCATION\+\_\+\+FAILED}}, and \mbox{\hyperlink{group__Evas__Image_gga17a0211044defa51aa3ceaadaa4e53c2a604b6c7bf6345c773d3083707d9f0a80}{EVAS\+\_\+\+LOAD\+\_\+\+ERROR\+\_\+\+UNKNOWN\+\_\+\+FORMAT}}.



Referenced by \mbox{\hyperlink{group__Elm__Image_ga1cf2802a24888d6622652c4a6a262d2e}{elm\+\_\+image\+\_\+memfile\+\_\+set()}}.

\mbox{\Hypertarget{group__Evas__Utils_gaf32bd37c2594048152144504e5c00914}\label{group__Evas__Utils_gaf32bd37c2594048152144504e5c00914}} 
\index{General Utilities@{General Utilities}!evas\_color\_hsv\_to\_rgb@{evas\_color\_hsv\_to\_rgb}}
\index{evas\_color\_hsv\_to\_rgb@{evas\_color\_hsv\_to\_rgb}!General Utilities@{General Utilities}}
\doxysubsubsection{\texorpdfstring{evas\_color\_hsv\_to\_rgb()}{evas\_color\_hsv\_to\_rgb()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void evas\+\_\+color\+\_\+hsv\+\_\+to\+\_\+rgb (\begin{DoxyParamCaption}\item[{float}]{h,  }\item[{float}]{s,  }\item[{float}]{v,  }\item[{int $\ast$}]{r,  }\item[{int $\ast$}]{g,  }\item[{int $\ast$}]{b }\end{DoxyParamCaption})}



Convert a given color from HSV to RGB format. 


\begin{DoxyParams}{Parameters}
{\em h} & The Hue component of the color. \\
\hline
{\em s} & The Saturation component of the color. \\
\hline
{\em v} & The Value component of the color. \\
\hline
{\em r} & The Red component of the color. \\
\hline
{\em g} & The Green component of the color. \\
\hline
{\em b} & The Blue component of the color.\\
\hline
\end{DoxyParams}
This function converts a given color in HSV color format to RGB color format. \mbox{\Hypertarget{group__Evas__Utils_gad4dbd6491ec0cfb53a3e1cf1874cde49}\label{group__Evas__Utils_gad4dbd6491ec0cfb53a3e1cf1874cde49}} 
\index{General Utilities@{General Utilities}!evas\_color\_rgb\_to\_hsv@{evas\_color\_rgb\_to\_hsv}}
\index{evas\_color\_rgb\_to\_hsv@{evas\_color\_rgb\_to\_hsv}!General Utilities@{General Utilities}}
\doxysubsubsection{\texorpdfstring{evas\_color\_rgb\_to\_hsv()}{evas\_color\_rgb\_to\_hsv()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void evas\+\_\+color\+\_\+rgb\+\_\+to\+\_\+hsv (\begin{DoxyParamCaption}\item[{int}]{r,  }\item[{int}]{g,  }\item[{int}]{b,  }\item[{float $\ast$}]{h,  }\item[{float $\ast$}]{s,  }\item[{float $\ast$}]{v }\end{DoxyParamCaption})}



Convert a given color from RGB to HSV format. 


\begin{DoxyParams}{Parameters}
{\em r} & The Red component of the color. \\
\hline
{\em g} & The Green component of the color. \\
\hline
{\em b} & The Blue component of the color. \\
\hline
{\em h} & The Hue component of the color. \\
\hline
{\em s} & The Saturation component of the color. \\
\hline
{\em v} & The Value component of the color.\\
\hline
\end{DoxyParams}
This function converts a given color in RGB color format to HSV color format. \mbox{\Hypertarget{group__Evas__Utils_gaf3b432607f6e8a987598a3489c7e386e}\label{group__Evas__Utils_gaf3b432607f6e8a987598a3489c7e386e}} 
\index{General Utilities@{General Utilities}!evas\_color\_argb\_premul@{evas\_color\_argb\_premul}}
\index{evas\_color\_argb\_premul@{evas\_color\_argb\_premul}!General Utilities@{General Utilities}}
\doxysubsubsection{\texorpdfstring{evas\_color\_argb\_premul()}{evas\_color\_argb\_premul()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void evas\+\_\+color\+\_\+argb\+\_\+premul (\begin{DoxyParamCaption}\item[{int}]{a,  }\item[{int $\ast$}]{r,  }\item[{int $\ast$}]{g,  }\item[{int $\ast$}]{b }\end{DoxyParamCaption})}



Pre-\/multiplies a rgb triplet by an alpha factor. 


\begin{DoxyParams}{Parameters}
{\em a} & The alpha factor. \\
\hline
{\em r} & The Red component of the color. \\
\hline
{\em g} & The Green component of the color. \\
\hline
{\em b} & The Blue component of the color.\\
\hline
\end{DoxyParams}
This function pre-\/multiplies a given rgb triplet by an alpha factor. Alpha factor is used to define transparency. \mbox{\Hypertarget{group__Evas__Utils_ga67c6fcb9ce7f50f8ba44742e791768e3}\label{group__Evas__Utils_ga67c6fcb9ce7f50f8ba44742e791768e3}} 
\index{General Utilities@{General Utilities}!evas\_color\_argb\_unpremul@{evas\_color\_argb\_unpremul}}
\index{evas\_color\_argb\_unpremul@{evas\_color\_argb\_unpremul}!General Utilities@{General Utilities}}
\doxysubsubsection{\texorpdfstring{evas\_color\_argb\_unpremul()}{evas\_color\_argb\_unpremul()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void evas\+\_\+color\+\_\+argb\+\_\+unpremul (\begin{DoxyParamCaption}\item[{int}]{a,  }\item[{int $\ast$}]{r,  }\item[{int $\ast$}]{g,  }\item[{int $\ast$}]{b }\end{DoxyParamCaption})}



Undo pre-\/multiplication of a rgb triplet by an alpha factor. 


\begin{DoxyParams}{Parameters}
{\em a} & The alpha factor. \\
\hline
{\em r} & The Red component of the color. \\
\hline
{\em g} & The Green component of the color. \\
\hline
{\em b} & The Blue component of the color.\\
\hline
\end{DoxyParams}
This function undoes pre-\/multiplication a given rbg triplet by an alpha factor. Alpha factor is used to define transparency.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Evas__Utils_gaf3b432607f6e8a987598a3489c7e386e}{evas\+\_\+color\+\_\+argb\+\_\+premul()}}. 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Evas__Utils_gaebf9305bff4898ee8bbb4c6f892cabec}\label{group__Evas__Utils_gaebf9305bff4898ee8bbb4c6f892cabec}} 
\index{General Utilities@{General Utilities}!evas\_data\_argb\_premul@{evas\_data\_argb\_premul}}
\index{evas\_data\_argb\_premul@{evas\_data\_argb\_premul}!General Utilities@{General Utilities}}
\doxysubsubsection{\texorpdfstring{evas\_data\_argb\_premul()}{evas\_data\_argb\_premul()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void evas\+\_\+data\+\_\+argb\+\_\+premul (\begin{DoxyParamCaption}\item[{unsigned int $\ast$}]{data,  }\item[{unsigned int}]{len }\end{DoxyParamCaption})}



Pre-\/multiplies data by an alpha factor. 


\begin{DoxyParams}{Parameters}
{\em data} & The data value. \\
\hline
{\em len} & The length value.\\
\hline
\end{DoxyParams}
This function pre-\/multiplies a given data by an alpha factor. Alpha factor is used to define transparency. \mbox{\Hypertarget{group__Evas__Utils_ga73fc4a04edd95b8f9981db0ef032790d}\label{group__Evas__Utils_ga73fc4a04edd95b8f9981db0ef032790d}} 
\index{General Utilities@{General Utilities}!evas\_data\_argb\_unpremul@{evas\_data\_argb\_unpremul}}
\index{evas\_data\_argb\_unpremul@{evas\_data\_argb\_unpremul}!General Utilities@{General Utilities}}
\doxysubsubsection{\texorpdfstring{evas\_data\_argb\_unpremul()}{evas\_data\_argb\_unpremul()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void evas\+\_\+data\+\_\+argb\+\_\+unpremul (\begin{DoxyParamCaption}\item[{unsigned int $\ast$}]{data,  }\item[{unsigned int}]{len }\end{DoxyParamCaption})}



Undo pre-\/multiplication data by an alpha factor. 


\begin{DoxyParams}{Parameters}
{\em data} & The data value. \\
\hline
{\em len} & The length value.\\
\hline
\end{DoxyParams}
This function undoes pre-\/multiplication of a given data by an alpha factor. Alpha factor is used to define transparency. \mbox{\Hypertarget{group__Evas__Utils_ga54e157dd28ea82b37f8839477d26bd6f}\label{group__Evas__Utils_ga54e157dd28ea82b37f8839477d26bd6f}} 
\index{General Utilities@{General Utilities}!evas\_string\_char\_next\_get@{evas\_string\_char\_next\_get}}
\index{evas\_string\_char\_next\_get@{evas\_string\_char\_next\_get}!General Utilities@{General Utilities}}
\doxysubsubsection{\texorpdfstring{evas\_string\_char\_next\_get()}{evas\_string\_char\_next\_get()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API int evas\+\_\+string\+\_\+char\+\_\+next\+\_\+get (\begin{DoxyParamCaption}\item[{const char $\ast$}]{str,  }\item[{int}]{pos,  }\item[{int $\ast$}]{decoded }\end{DoxyParamCaption})}



Gets the next character in the string. 

Given the UTF-\/8 string in {\ttfamily str}, and starting byte position in {\ttfamily pos}, this function will place in {\ttfamily decoded} the decoded code point at {\ttfamily pos} and return the byte index for the next character in the string.

The only boundary check done is that {\ttfamily pos} must be \texorpdfstring{$>$}{>}= 0. Other than that, no checks are performed, so passing an index value that\textquotesingle{}s not within the length of the string will result in undefined behavior.


\begin{DoxyParams}{Parameters}
{\em str} & The UTF-\/8 string \\
\hline
{\em pos} & The byte index where to start \\
\hline
{\em decoded} & Address where to store the decoded code point. Optional.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The byte index of the next character 
\end{DoxyReturn}


Referenced by \mbox{\hyperlink{group__Elm__Entry__Group_ga1e05b2bb8af5220b4705e9c719f6862d}{elm\+\_\+entry\+\_\+filter\+\_\+accept\+\_\+set()}}.

\mbox{\Hypertarget{group__Evas__Utils_ga94cdaf102cbea656ebde5672d34a4cf5}\label{group__Evas__Utils_ga94cdaf102cbea656ebde5672d34a4cf5}} 
\index{General Utilities@{General Utilities}!evas\_string\_char\_prev\_get@{evas\_string\_char\_prev\_get}}
\index{evas\_string\_char\_prev\_get@{evas\_string\_char\_prev\_get}!General Utilities@{General Utilities}}
\doxysubsubsection{\texorpdfstring{evas\_string\_char\_prev\_get()}{evas\_string\_char\_prev\_get()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API int evas\+\_\+string\+\_\+char\+\_\+prev\+\_\+get (\begin{DoxyParamCaption}\item[{const char $\ast$}]{str,  }\item[{int}]{pos,  }\item[{int $\ast$}]{decoded }\end{DoxyParamCaption})}



Gets the previous character in the string. 

Given the UTF-\/8 string in {\ttfamily str}, and starting byte position in {\ttfamily pos}, this function will place in {\ttfamily decoded} the decoded code point at {\ttfamily pos} and return the byte index for the previous character in the string.

The only boundary check done is that {\ttfamily pos} must be \texorpdfstring{$>$}{>}= 1. Other than that, no checks are performed, so passing an index value that\textquotesingle{}s not within the length of the string will result in undefined behavior.


\begin{DoxyParams}{Parameters}
{\em str} & The UTF-\/8 string \\
\hline
{\em pos} & The byte index where to start \\
\hline
{\em decoded} & Address where to store the decoded code point. Optional.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The byte index of the previous character 
\end{DoxyReturn}


References \mbox{\hyperlink{group__Eina__Unicode__String_gace21b00eaf871c3b6e1afc6ac18ad7b9}{eina\+\_\+unicode\+\_\+utf8\+\_\+get\+\_\+prev()}}.

\mbox{\Hypertarget{group__Evas__Utils_gaea63b550e380a825b52b818e0bd6c8ad}\label{group__Evas__Utils_gaea63b550e380a825b52b818e0bd6c8ad}} 
\index{General Utilities@{General Utilities}!evas\_string\_char\_len\_get@{evas\_string\_char\_len\_get}}
\index{evas\_string\_char\_len\_get@{evas\_string\_char\_len\_get}!General Utilities@{General Utilities}}
\doxysubsubsection{\texorpdfstring{evas\_string\_char\_len\_get()}{evas\_string\_char\_len\_get()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API int evas\+\_\+string\+\_\+char\+\_\+len\+\_\+get (\begin{DoxyParamCaption}\item[{const char $\ast$}]{str }\end{DoxyParamCaption})}



Get the length in characters of the string. 


\begin{DoxyParams}{Parameters}
{\em str} & The string to get the length of. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The length in characters (not bytes) 
\end{DoxyReturn}


References \mbox{\hyperlink{group__Eina__Unicode__String_ga37f4dfd0a937a1c6c1ed462e3dae7743}{eina\+\_\+unicode\+\_\+utf8\+\_\+get\+\_\+len()}}.



Referenced by \mbox{\hyperlink{group__Elm__Entry__Group_gad7c7596fbb344f228bfa47d890714681}{elm\+\_\+entry\+\_\+filter\+\_\+limit\+\_\+size()}}.

\mbox{\Hypertarget{group__Evas__Utils_gafd84774aa649886872b0d1bf47a1fc4f}\label{group__Evas__Utils_gafd84774aa649886872b0d1bf47a1fc4f}} 
\index{General Utilities@{General Utilities}!evas\_language\_direction\_get@{evas\_language\_direction\_get}}
\index{evas\_language\_direction\_get@{evas\_language\_direction\_get}!General Utilities@{General Utilities}}
\doxysubsubsection{\texorpdfstring{evas\_language\_direction\_get()}{evas\_language\_direction\_get()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API Evas\+\_\+\+Bi\+Di\+\_\+\+Direction evas\+\_\+language\+\_\+direction\+\_\+get (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Get language direction. 

\begin{DoxySince}{Since}
1.\+20 
\end{DoxySince}
\mbox{\Hypertarget{group__Evas__Utils_ga1eef3657e3299c6394301d0f292d2360}\label{group__Evas__Utils_ga1eef3657e3299c6394301d0f292d2360}} 
\index{General Utilities@{General Utilities}!evas\_language\_reinit@{evas\_language\_reinit}}
\index{evas\_language\_reinit@{evas\_language\_reinit}!General Utilities@{General Utilities}}
\doxysubsubsection{\texorpdfstring{evas\_language\_reinit()}{evas\_language\_reinit()}}
{\footnotesize\ttfamily EVAS\+\_\+\+API void evas\+\_\+language\+\_\+reinit (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Reinitialize language from the environment. 

The locale can change while a process is running. This call tells evas to reload the locale from the environment like it does on start.

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


Referenced by \mbox{\hyperlink{group__Elm__General_ga6b94ddc6b63885d4f4c5aa039589c96c}{elm\+\_\+language\+\_\+set()}}.

