<html> <head> <title>Edje: Edje Data Collection reference</title> <meta http-equiv="content-type" content="text/html;charset=UTF-8"> <meta name="author" content="Andres Blanc" > <link rel="icon" href="img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="img/favicon.png" type="image/x-icon"> <link rel="icon" href="img/favicon.png" type="image/ico"> <link rel="shortcut icon" href="img/favicon.png" type="image/ico"> <link rel="stylesheet" type="text/css" href="e.css"> <link rel="stylesheet" type="text/css" href="edoxy.css"> </head> <body> <div id="container"> <div id="header"> <div class="layout"> <h1><span>Enlightenment</span></h1> <h2><span>Beauty at your fingertips</span></h2> <table cellspacing="0" cellpadding="0" width="100%"><tr> <td id="header_logo"> <a href="http://www.enlightenment.org"></a> </td> <td id="header_menu"> <table cellspacing="0" cellpadding="0" align="right"><tr> <td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=home">Home</a></td> <td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=news">News</a></td> <td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=about">About</a></td> <td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=download">Download</a></td> <td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=support">Support</a></td> <td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=contribute">Contribute</a></td> <td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=contact">Contact</a></td> <td class="nav_passive"><a class="nav_passive" href="http://trac.enlightenment.org/e">Tracker</a></td> <td class="nav_passive"><a class="nav_passive" href="http://www.enlightenment.org/p.php?p=docs">Docs</a></td> </tr></table> </td> <td id="header_last"></td> </tr></table> <div class="doxytitle"> Edje Documentation <small>at Tue Feb 8 2011</small> </div> <div class="menu-container"> <div class="submenu"> <ul class="current"> <li><a href="files.html">Files</a></li> <li><a href="Edje__Edit_8h.html">Edje Edit API</a></li> <li><a href="examples.html">Examples</a></li> <li><a href="luaref.html">LUA scripting</a></li> <li><a href="Edje_8h.html">Edje API</a></li> <li><a href="edcref.html">EDC Reference</a></li> <li class="current"><a href="index.html">Main Page</a></li> </ul> </div> </div> <div class="clear"></div> </div> </div> <div id="content"> <div class="layout"> <!-- Generated by Doxygen 1.7.3 --> </div> <div class="header"> <div class="headertitle"> <h1>Edje Data Collection reference </h1> </div> </div> <div class="contents"> <div class="textblock"><p>An Edje Data Collection, it's a plain text file (normally identified with the .edc extension),consisting of instructions for the Edje Compiler.</p> <p>The syntax for the edje data collection files follows a simple structure of "blocks { .. }" that can contain "properties: ..", more blocks, or both.</p> <p><a class="anchor" id="sec_quickaccess"></a> Quick access to block descriptions: </p> <ul> <li> <a class="el" href="edcref.html#sec_toplevel">Top-Level</a> </li> <li> <a class="el" href="edcref.html#sec_group">Group</a> </li> <li> <a class="el" href="edcref.html#sec_description">State description</a> <ul> <li> <a class="el" href="edcref.html#sec_description_image">Image</a> </li> <li> <a class="el" href="edcref.html#sec_description_text">Text</a> </li> <li> <a class="el" href="edcref.html#sec_description_box">Box</a> </li> <li> <a class="el" href="edcref.html#sec_description_table">Table</a> </li> <li> <a class="el" href="edcref.html#sec_description_map">Map (3d/transformations)</a> </li> </ul> </li> <li> <a class="el" href="edcref.html#sec_program">Program block</a> </li> </ul> <dl class="author"><dt><b>Author:</b></dt><dd>Andres Blanc (dresb) <a href="mailto:andresblanc@gmail.com">andresblanc@gmail.com</a></dd></dl> <table class="edcref" border="0"> <tr class="section"> <td class="section" colspan="2"><p class="starttd"></p> <p><a class="anchor" id="sec_toplevel"></a> <a class="el" href="edcref.html#sec_quickaccess">Top-Level blocks</a></p> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> externals </b></td><td class="context" colspan="2"><div class="fragment"><pre class="fragment"> externals { external: <span class="stringliteral">"name"</span>; } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">The "externals" block is used to list each external module file that will be used in others programs. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> external </code></td><td class="parameters"><code> [external filename] </code></td></tr> <tr> <td> </td><td class="effect">Used to add a file to the externals list. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> images </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> images { image: <span class="stringliteral">"filename1.ext"</span> COMP; image: <span class="stringliteral">"filename2.ext"</span> LOSSY 99; <span class="keyword">set</span> { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">"image_name_used"</span>; image { image: <span class="stringliteral">"filename3.ext"</span> LOSSY 90; size: 201 201 500 500; } image { image: <span class="stringliteral">"filename4.ext"</span> COMP; size: 51 51 200 200; } image { image: <span class="stringliteral">"filename5.ext"</span> COMP; size: 11 11 50 50; } image { image: <span class="stringliteral">"filename6.ext"</span> RAW; size: 0 0 10 10; } } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">The "images" block is used to list each image file that will be used in the theme along with its compression method (if any). Besides the document's root, additional "images" blocks can be included inside other blocks, normally "collections", "group" and "part", easing maintenance of the file list when the theme is split among multiple files. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> image </code></td><td class="parameters"><code> [image file] [compression method] (compression level) </code></td></tr> <tr> <td> </td><td class="effect">Used to include each image file. The full path to the directory holding the images can be defined later with edje_cc's "-id" option. Compression methods: <ul> <li>RAW: Uncompressed. </li> <li>COMP: Lossless compression. </li> <li>LOSSY [0-100]: Lossy comression with quality from 0 to 100. </li> <li>USER: Do not embed the file, refer to the external file instead. </li> </ul> </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> set </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> <span class="keyword">set</span> { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">"image_name_used"</span>; image { image: <span class="stringliteral">"filename3.ext"</span> LOSSY 90; size: 201 201 500 500; } image { image: <span class="stringliteral">"filename4.ext"</span> COMP; size: 51 51 200 200; } image { image: <span class="stringliteral">"filename5.ext"</span> COMP; size: 11 11 50 50; } image { image: <span class="stringliteral">"filename6.ext"</span> RAW; size: 0 0 10 10; } } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">The "set" block is used to define an image with different content depending on their size. Besides the document's root, additional "set" blocks can be included inside other blocks, normally "collections", "group" and "part", easing maintenance of the file list when the theme is split among multiple files. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> name </code></td><td class="parameters"><code> [image name] </code></td></tr> <tr> <td> </td><td class="effect">Define the name that refer to this image description. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> size </code></td><td class="parameters"><code> [minw minh maxw mawh] </code></td></tr> <tr> <td> </td><td class="effect">Define the minimal and maximal size that will select the specified image. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> fonts </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> fonts { font: <span class="stringliteral">"filename1.ext"</span> <span class="stringliteral">"fontname"</span>; font: <span class="stringliteral">"filename2.ext"</span> <span class="stringliteral">"otherfontname"</span>; .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">The "fonts" block is used to list each font file with an alias used later in the theme. As with the "images" block, additional "fonts" blocks can be included inside other blocks. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> font </code></td><td class="parameters"><code> [font filename] [font alias] </code></td></tr> <tr> <td> </td><td class="effect">Defines each font "file" and "alias", the full path to the directory holding the font files can be defined with edje_cc's "-fd" option. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> data </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> data { item: <span class="stringliteral">"key"</span> <span class="stringliteral">"value"</span>; file: <span class="stringliteral">"otherkey"</span> <span class="stringliteral">"filename.ext"</span>; .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">The "data" block is used to pass arbitrary parameters from the theme to the application. Unlike the "images" and "fonts" blocks, additional "data" blocks can only be included inside the "group" block. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> item </code></td><td class="parameters"><code> [parameter name] [parameter value] </code></td></tr> <tr> <td> </td><td class="effect">Defines a new parameter, the value will be the string specified next to it. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> file </code></td><td class="parameters"><code> [parameter name] [parameter filename] </code></td></tr> <tr> <td> </td><td class="effect">Defines a new parameter , the value will be the contents of the specified file formated as a single string of text. This property only works with plain text files. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> color_classes </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> color_classes { color_class { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">"colorclassname"</span>; color: [0-255] [0-255] [0-255] [0-255]; color2: [0-255] [0-255] [0-255] [0-255]; color3: [0-255] [0-255] [0-255] [0-255] } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">The "color_classes" block contains a list of one or more "color_class" blocks. Each "color_class" allows the designer to name an arbitrary group of colors to be used in the theme, the application can use that name to alter the color values at runtime. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> name </code></td><td class="parameters"><code> [color class name] </code></td></tr> <tr> <td> </td><td class="effect">Sets the name for the color class, used as reference by both the theme and the application. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> color </code></td><td class="parameters"><code> [red] [green] [blue] [alpha] </code></td></tr> <tr> <td> </td><td class="effect">The main color. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> color2 </code></td><td class="parameters"><code> [red] [green] [blue] [alpha] </code></td></tr> <tr> <td> </td><td class="effect">Used as shadow in text and textblock parts. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> color3 </code></td><td class="parameters"><code> [red] [green] [blue] [alpha] </code></td></tr> <tr> <td> </td><td class="effect">Used as outline in text and textblock parts. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> styles </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> styles { style { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">"stylename"</span>; base: <span class="stringliteral">"..default style properties.."</span>; tag: <span class="stringliteral">"tagname"</span> <span class="stringliteral">"..style properties.."</span>; .. } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">The "styles" block contains a list of one or more "style" blocks. A "style" block is used to create style <tags> for advanced TEXTBLOCK formatting. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> name </code></td><td class="parameters"><code> [style name] </code></td></tr> <tr> <td> </td><td class="effect">The name of the style to be used as reference later in the theme. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> base </code></td><td class="parameters"><code> [style properties string] </code></td></tr> <tr> <td> </td><td class="effect">The default style properties that will be applied to the complete text. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> tag </code></td><td class="parameters"><code> [tag name] [style properties string] </code></td></tr> <tr> <td> </td><td class="effect">Style to be applied only to text between style <tags>..</tags>. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> collections </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> collections { .. group { } group { } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">The "collections" block is used to list the groups that compose the theme. Additional "collections" blocks do not prevent overriding group names. </p> <p class="endtd"></p> </td></tr> <tr class="section"> <td class="section" colspan="2"><p class="starttd"></p> <p><a class="anchor" id="sec_group"></a> <a class="el" href="edcref.html#sec_quickaccess">Group sub blocks</a></p> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> group </b></td><td class="context" colspan="2"><div class="fragment"><pre class="fragment"> collections { .. group { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">"nameusedbytheapplication"</span>; alias: <span class="stringliteral">"anothername"</span>; min: width height; max: width height; data { } script { } parts { } programs { } } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">A "group" block contains the list of parts and programs that compose a given Edje Object. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> name </code></td><td class="parameters"><code> [group name] </code></td></tr> <tr> <td> </td><td class="effect">The name that will be used by the application to load the resulting Edje object and to identify the group to swallow in a GROUP part. If a group with the same name exists already it will be completely overriden by the new group. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> script_only </code></td><td class="parameters"><code> [on/off] </code></td></tr> <tr> <td> </td><td class="effect">The flag (on/off) as to if this group is defined ONLY by script callbacks such as init(), resize() and shutdown() </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> alias </code></td><td class="parameters"><code> [aditional group name] </code></td></tr> <tr> <td> </td><td class="effect">Additional name to serve as identifier. Defining multiple aliases is supported. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> min </code></td><td class="parameters"><code> [width] [height] </code></td></tr> <tr> <td> </td><td class="effect">The minimum size for the container defined by the composition of the parts. It is not enforced. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> max </code></td><td class="parameters"><code> [width] [height] </code></td></tr> <tr> <td> </td><td class="effect">The maximum size for the container defined by the totality of the parts. It is not enforced. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> script </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> .. group { script { <span class="comment">//embryo script</span> } .. program { script { <span class="comment">//embryo script</span> } } .. } .. </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">This block is used to "inject" embryo scripts to a given Edje theme and it functions in two modalities. When it's included inside a "program" block, the script will be executed every time the program is run, on the other hand, when included directly into a "group", "part" or "description" block, it will be executed once at load time, in the load order. </p> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> parts </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> group { parts { alias: <span class="stringliteral">"theme_part_path"</span> <span class="stringliteral">"real_part_path"</span>; .. } } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">Alias of part give a chance to let the designer put the real one in a box or reuse one from a GROUP or inside a BOX. </p> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> part </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> group { parts { .. part { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">"partname"</span>; <a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>: IMAGE; mouse_events: 1; repeat_events: 0; ignore_flags: NONE; clip_to: <span class="stringliteral">"anotherpart"</span>; source: <span class="stringliteral">"groupname"</span>; pointer_mode: AUTOGRAB; use_alternate_font_metrics: 0; description { } dragable { } items { } } .. } } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">Parts are used to represent the most basic design elements of the theme, for example, a part can represent a line in a border or a label on a button. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> name </code></td><td class="parameters"><code> [part name] </code></td></tr> <tr> <td> </td><td class="effect">The part's name will be used as reference in the theme's relative positioning system, by programs and in some cases by the application. It must be unique within the group. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> type </code></td><td class="parameters"><code> [TYPE] </code></td></tr> <tr> <td> </td><td class="effect">Set the type (all caps) from among the available types, it's set to IMAGE by default. Valid types: <ul> <li>RECT </li> <li>TEXT </li> <li>IMAGE </li> <li>SWALLOW </li> <li>TEXTBLOCK </li> <li>GROUP </li> <li>BOX </li> <li>TABLE </li> <li>EXTERNAL </li> </ul> </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> mouse_events </code></td><td class="parameters"><code> [1 or 0] </code></td></tr> <tr> <td> </td><td class="effect">Specifies whether the part will emit signals, altought is named "mouse_events", disabling it (0) will prevent the part from emitting any type of signal at all. Its set to 1 by default. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> repeat_events </code></td><td class="parameters"><code> [1 or 0] </code></td></tr> <tr> <td> </td><td class="effect">Specifies whether a part echoes a mouse event to other parts below the pointer (1), or not (0). Its set to 0 by default. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> ignore_flags </code></td><td class="parameters"><code> [FLAG] ... </code></td></tr> <tr> <td> </td><td class="effect">Specifies whether events with the given flags should be ignored, i.e., will not have the signals emitted to the parts. Multiple flags must be separated by spaces, the effect will be ignoring all events with one of the flags specified. Possible flags: <ul> <li>NONE (default value, no event will be ignored) </li> <li>ON_HOLD </li> </ul> </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> scale </code></td><td class="parameters"><code> [1 or 0] </code></td></tr> <tr> <td> </td><td class="effect">Specifies whether the part will scale its size with an edje scaling factor. By default scale is off (0) and the default scale factor is 1.0 - that means no scaling. This would be used to scale properties such as font size, min/max size of the part, and possibly can be used to scale based on DPI of the target device. The reason to be selective is that some things work well being scaled, others do not, so the designer gets to choose what works best. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> pointer_mode </code></td><td class="parameters"><code> [MODE] </code></td></tr> <tr> <td> </td><td class="effect">Sets the mouse pointer behavior for a given part. The default value is AUTOGRAB. Aviable modes: <ul> <li>AUTOGRAB, when the part is clicked and the button remains pressed, the part will be the source of all future mouse signals emitted, even outside the object, until the button is released. </li> <li>NOGRAB, the effect will be limited to the part's container. </li> </ul> </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> precise_is_inside </code></td><td class="parameters"><code> [1 or 0] </code></td></tr> <tr> <td> </td><td class="effect">Enables precise point collision detection for the part, which is more resource intensive. Disabled by default. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> use_alternate_font_metrics </code></td><td class="parameters"><code> [1 or 0] </code></td></tr> <tr> <td> </td><td class="effect">Only affects text and textblock parts, when enabled Edje will use different size measurement functions. Disabled by default. (note from the author: I don't know what this is exactlu useful for?) </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> clip_to </code></td><td class="parameters"><code> [another part's name] </code></td></tr> <tr> <td> </td><td class="effect">Only renders the area of part that coincides with another part's container. Overflowing content will not be displayed. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> source </code></td><td class="parameters"><code> [another group's name] </code></td></tr> <tr> <td> </td><td class="effect">Only available to GROUP or TEXTBLOCK parts. Swallows the specified group into the part's container if a GROUP. If TEXTBLOCK it is used for the group to be loaded and used for selection display UNDER the selected text. source2 is used for on top of the selected text, if source2 is specified. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> source2 </code></td><td class="parameters"><code> [another group's name] </code></td></tr> <tr> <td> </td><td class="effect">Only available to TEXTBLOCK parts. It is used for the group to be loaded and used for selection display OVER the selected text. source is used for under of the selected text, if source is specified. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> source3 </code></td><td class="parameters"><code> [another group's name] </code></td></tr> <tr> <td> </td><td class="effect">Only available to TEXTBLOCK parts. It is used for the group to be loaded and used for cursor display UNDER the cursor position. source4 is used for over the cursor text, if source4 is specified. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> source4 </code></td><td class="parameters"><code> [another group's name] </code></td></tr> <tr> <td> </td><td class="effect">Only available to TEXTBLOCK parts. It is used for the group to be loaded and used for cursor display OVER the cursor position. source3 is used for under the cursor text, if source4 is specified. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> source5 </code></td><td class="parameters"><code> [another group's name] </code></td></tr> <tr> <td> </td><td class="effect">Only available to TEXTBLOCK parts. It is used for the group to be loaded and used for anchors display UNDER the anchor position. source6 is used for over the anchors text, if source6 is specified. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> source6 </code></td><td class="parameters"><code> [another group's name] </code></td></tr> <tr> <td> </td><td class="effect">Only available to TEXTBLOCK parts. It is used for the group to be loaded and used for anchor display OVER the anchor position. source5 is used for under the anchor text, if source6 is specified. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> effect </code></td><td class="parameters"><code> [EFFECT] </code></td></tr> <tr> <td> </td><td class="effect">Causes Edje to draw the selected effect among: <ul> <li>PLAIN </li> <li>OUTLINE </li> <li>SOFT_OUTLINE </li> <li>SHADOW </li> <li>SOFT_SHADOW </li> <li>OUTLINE_SHADOW </li> <li>OUTLINE_SOFT_SHADOW </li> <li>FAR_SHADOW </li> <li>FAR_SOFT_SHADOW </li> <li>GLOW </li> </ul> </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> entry_mode </code></td><td class="parameters"><code> [MODE] </code></td></tr> <tr> <td> </td><td class="effect">Sets the edit mode for a textblock part to one of: <ul> <li>NONE </li> <li>PLAIN </li> <li>EDITABLE </li> <li>PASSWORD It causes the part be editable if the edje object has the keyboard focus AND the part has the edje focus (or selectable always regardless of focus) and in the event of password mode, not selectable and all text chars replaced with *'s but editable and pastable. </li> </ul> </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> select_mode </code></td><td class="parameters"><code> [MODE] </code></td></tr> <tr> <td> </td><td class="effect">Sets the selection mode for a textblock part to one of: <ul> <li>DEFAULT </li> <li>EXPLICIT DEFAULT selection mode is what you would expect on any desktop. Press mouse, drag and release to end. EXPLICIT mode requires the application controlling the edje object has to explicitly begin and end selection modes, and the selection itself is dragable at both ends. </li> </ul> </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> multiline </code></td><td class="parameters"><code> [1 or 0] </code></td></tr> <tr> <td> </td><td class="effect">It causes a textblock that is editable to allow multiple lines for editing. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> dragable </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> part { .. dragable { confine: <span class="stringliteral">"another part"</span>; events: <span class="stringliteral">"another dragable part"</span>; x: 0 0 0; y: 0 0 0; } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">When this block is used the resulting part can be dragged around the interface, do not confuse with external drag & drop. By default Edje (and most applications) will attempt to use the minimal size possible for a dragable part. If the min property is not set in the description the part will be (most likely) set to 0px width and 0px height, thus invisible. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> x </code></td><td class="parameters"><code> [enable/disable] [step] [count] </code></td></tr> <tr> <td> </td><td class="effect">Used to setup dragging events for the X axis. The first parameter is used to enable (1 or -1) and disable (0) dragging along the axis. When enabled, 1 will set the starting point at 0.0 and -1 at 1.0. The second parameter takes any integer and will limit movement to values divisible by it, causing the part to jump from position to position. The third parameter, (question from the author: What is count for?). </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> y </code></td><td class="parameters"><code> [enable/disable] [step] [count] </code></td></tr> <tr> <td> </td><td class="effect">Used to setup dragging events for the Y axis. The first parameter is used to enable (1 or -1) and disable (0) dragging along the axis. When enabled, 1 will set the starting point at 0.0 and -1 at 1.0. The second parameter takes any integer and will limit movement to values divisibles by it, causing the part to jump from position to position. The third parameter, (question from the author: What is count for?). </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> confine </code></td><td class="parameters"><code> [another part's name] </code></td></tr> <tr> <td> </td><td class="effect">When set, limits the movement of the dragged part to another part's container. When you use confine don't forget to set a min size for the part, or the draggie will not show up. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> events </code></td><td class="parameters"><code> [another dragable part's name] </code></td></tr> <tr> <td> </td><td class="effect">It causes the part to forward the drag events to another part, thus ignoring them for itself. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> items </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> part { .. box { items { item { <a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>: TYPE; source: <span class="stringliteral">"some source"</span>; min: 1 1; max: 100 100; padding: 1 1 2 2; } item { <a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>: TYPE; source: <span class="stringliteral">"some other source"</span>; <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">"some name"</span>; align: 1.0 0.5; } .. } } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">On a part of type BOX, this block can be used to set other groups as elements of the box. These can be mixed with external objects set by the application through the edje_object_part_box_* API. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> type </code></td><td class="parameters"><code> Only GROUP for now (defaults to it) </code></td></tr> <tr> <td> </td><td class="effect">Sets the type of the object this item will hold. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> name </code></td><td class="parameters"><code> [name for the object] </code></td></tr> <tr> <td> </td><td class="effect">Sets the name of the object via evas_object_name_set(). </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> source </code></td><td class="parameters"><code> [another group's name] </code></td></tr> <tr> <td> </td><td class="effect">Sets the group this object will be made from. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> min </code></td><td class="parameters"><code> [width] [height] </code></td></tr> <tr> <td> </td><td class="effect">Sets the minimum size hints for this object. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> prefer </code></td><td class="parameters"><code> [width] [height] </code></td></tr> <tr> <td> </td><td class="effect">Sets the preferred size hints for this object. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> max </code></td><td class="parameters"><code> [width] [height] </code></td></tr> <tr> <td> </td><td class="effect">Sets the maximum size hints for this object. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> padding </code></td><td class="parameters"><code> [left] [right] [top] [bottom] </code></td></tr> <tr> <td> </td><td class="effect">Sets the padding hints for this object. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> align </code></td><td class="parameters"><code> [x] [y] </code></td></tr> <tr> <td> </td><td class="effect">Sets the alignment hints for this object. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> weight </code></td><td class="parameters"><code> [x] [y] </code></td></tr> <tr> <td> </td><td class="effect">Sets the weight hints for this object. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> aspect </code></td><td class="parameters"><code> [w] [h] </code></td></tr> <tr> <td> </td><td class="effect">Sets the aspect width and height hints for this object. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> aspect_mode </code></td><td class="parameters"><code> NONE, NEITHER, HORIZONTAL, VERTICAL, BOTH </code></td></tr> <tr> <td> </td><td class="effect">Sets the aspect control hints for this object. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> options </code></td><td class="parameters"><code> [extra options] </code></td></tr> <tr> <td> </td><td class="effect">Sets extra options for the object. Unused for now. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> position </code></td><td class="parameters"><code> [col] [row] </code></td></tr> <tr> <td> </td><td class="effect">Sets the position this item will have in the table. This is required for parts of type TABLE. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> span </code></td><td class="parameters"><code> [col] [row] </code></td></tr> <tr> <td> </td><td class="effect">Sets how many columns/rows this item will use. Defaults to 1 1. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr class="section"> <td class="section" colspan="2"><p class="starttd"></p> <p><a class="anchor" id="sec_description"></a> <a class="el" href="edcref.html#sec_quickaccess">State description sub blocks</a></p> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> description </b></td><td class="context" colspan="2"><div class="fragment"><pre class="fragment"> description { inherit: <span class="stringliteral">"another_description"</span> INDEX; state: <span class="stringliteral">"description_name"</span> INDEX; visible: 1; min: 0 0; max: -1 -1; align: 0.5 0.5; fixed: 0 0; step: 0 0; aspect: 1 1; rel1 { .. } rel2 { .. } } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">Every part can have one or more description blocks. Each description is used to define style and layout properties of a part in a given "state". </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> inherit </code></td><td class="parameters"><code> [another description's name] [another description's index] </code></td></tr> <tr> <td> </td><td class="effect">When set, the description will inherit all the properties from the named description. The properties defined in this part will override the inherited properties, reducing the amount of necessary code for simple state changes. Note: inheritance in Edje is single level only. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> state </code></td><td class="parameters"><code> [a name for the description] [an index] </code></td></tr> <tr> <td> </td><td class="effect">Sets a name used to identify a description inside a given part. Multiple descriptions are used to declare different states of the same part, like "clicked" or "invisible". All states declarations are also coupled with an index number between 0.0 and 1.0. All parts must have at least one description named "default 0.0". </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> visible </code></td><td class="parameters"><code> [0 or 1] </code></td></tr> <tr> <td> </td><td class="effect">Takes a boolean value specifying whether part is visible (1) or not (0). Non-visible parts do not emit signals. The default value is 1. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> align </code></td><td class="parameters"><code> [X axis] [Y axis] </code></td></tr> <tr> <td> </td><td class="effect">When the displayed object's size is smaller than its container, this property moves it relatively along both axis inside its container. The default value is "0.5 0.5". </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> fixed </code></td><td class="parameters"><code> [width, 0 or 1] [height, 0 or 1] </code></td></tr> <tr> <td> </td><td class="effect">This affects the minimum size calculation. See <a class="el" href="Edje_8h.html#af0d4d021bd06b39314596366e0f92df7" title="Calculate minimum size.">edje_object_size_min_calc()</a> and <a class="el" href="Edje_8h.html#a18bd6fd0f71c23b2d75a7ff3c9c9d52c" title="Calculate minimum size.">edje_object_size_min_restricted_calc()</a>. This tells the min size calculation routine that this part does not change size in width or height (1 for it doesn't, 0 for it does), so the routine should not try and expand or contract the part. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> min </code></td><td class="parameters"><code> [width] [height] </code></td></tr> <tr> <td> </td><td class="effect">The minimum size of the state. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> max </code></td><td class="parameters"><code> [width] [height] </code></td></tr> <tr> <td> </td><td class="effect">The maximum size of the state. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> step </code></td><td class="parameters"><code> [width] [height] </code></td></tr> <tr> <td> </td><td class="effect">Restricts resizing of each dimension to values divisibles by its value. This causes the part to jump from value to value while resizing. The default value is "0 0" disabling stepping. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> aspect </code></td><td class="parameters"><code> [min] [max] </code></td></tr> <tr> <td> </td><td class="effect">Normally width and height can be resized to any values independently. The aspect property forces the width to height ratio to be kept between the minimum and maximum set. For example, "1.0 1.0" will increase the width a pixel for every pixel added to heigh. The default value is "0.0 0.0" disabling aspect. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> aspect_preference </code></td><td class="parameters"><code> [DIMENSION] </code></td></tr> <tr> <td> </td><td class="effect">Sets the scope of the "aspect" property to a given dimension. Available options are BOTH, VERTICAL, HORIZONTAL and NONE </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> color_class </code></td><td class="parameters"><code> [color class name] </code></td></tr> <tr> <td> </td><td class="effect">The part will use the color values of the named color_class, these values can be overrided by the "color", "color2" and "color3" properties set below. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> color </code></td><td class="parameters"><code> [red] [green] [blue] [alpha] </code></td></tr> <tr> <td> </td><td class="effect">Sets the main color to the specified values (between 0 and 255). </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> color2 </code></td><td class="parameters"><code> [red] [green] [blue] [alpha] </code></td></tr> <tr> <td> </td><td class="effect">Sets the text shadow color to the specified values (0 to 255). </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> color3 </code></td><td class="parameters"><code> [red] [green] [blue] [alpha] </code></td></tr> <tr> <td> </td><td class="effect">Sets the text outline color to the specified values (0 to 255). </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> rel1/rel2 </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> description { .. rel1 { relative: 0.0 0.0; offset: 0 0; } .. rel2 { relative: 1.0 1.0; offset: -1 -1; } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">The rel1 and rel2 blocks are used to define the position of each corner of the part's container. With rel1 being the left-up corner and rel2 being the right-down corner. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> relative </code></td><td class="parameters"><code> [X axis] [Y axis] </code></td></tr> <tr> <td> </td><td class="effect">Moves a corner to a relative position inside the container of the relative "to" part. Values from 0.0 (0%, beginning) to 1.0 (100%, end) of each axis. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> offset </code></td><td class="parameters"><code> [X axis] [Y axis] </code></td></tr> <tr> <td> </td><td class="effect">Affects the corner position a fixed number of pixels along each axis. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> to </code></td><td class="parameters"><code> [another part's name] </code></td></tr> <tr> <td> </td><td class="effect">Causes a corner to be positioned relatively to another part's container. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> to_x </code></td><td class="parameters"><code> [another part's name] </code></td></tr> <tr> <td> </td><td class="effect">Causes a corner to be positioned relatively to the X axis of another part's container. Simply put affects the first parameter of "relative". </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> to_y </code></td><td class="parameters"><code> [another part's name] </code></td></tr> <tr> <td> </td><td class="effect">Causes a corner to be positioned relatively to the Y axis of another part's container. Simply put, affects the second parameter of "relative". </td></tr> </table> <p class="endtd"></p> </td></tr> <tr class="section"> <td class="section" colspan="2"><p class="starttd"></p> <p><a class="anchor" id="sec_description_image"></a> <a class="el" href="edcref.html#sec_quickaccess">Image state description sub blocks</a></p> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> image </b></td><td class="context" colspan="2"><div class="fragment"><pre class="fragment"> description { .. image { normal: <span class="stringliteral">"filename.ext"</span>; tween: <span class="stringliteral">"filename2.ext"</span>; .. tween: <span class="stringliteral">"filenameN.ext"</span>; border: left right top bottom; middle: 0/1/NONE/DEFAULT/SOLID; } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd"></p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> normal </code></td><td class="parameters"><code> [image's filename] </code></td></tr> <tr> <td> </td><td class="effect">Name of image to be used as previously declared in the images block. In an animation, this is the first and last image displayed. It's required in any image part </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> tween </code></td><td class="parameters"><code> [image's filename] </code></td></tr> <tr> <td> </td><td class="effect">Name of an image to be used in an animation loop, an image block can have none, one or multiple tween declarations. Images are displayed in the order they are listed. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> border </code></td><td class="parameters"><code> [left] [right] [top] [bottom] </code></td></tr> <tr> <td> </td><td class="effect">If set, the area (in pixels) of each side of the image will be displayed as a fixed size border, from the side -> inwards, preventing the corners from being changed on a resize. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> middle </code></td><td class="parameters"><code> 0, 1, NONE, DEFAULT, SOLID </code></td></tr> <tr> <td> </td><td class="effect">If border is set, this value tells Edje if the rest of the image (not covered by the defined border) will be displayed or not or be assumed to be solid (without alpha). The default is 1/DEFAULT. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> border_scale </code></td><td class="parameters"><code> 0, 1 </code></td></tr> <tr> <td> </td><td class="effect">If border is set, this value tells Edje if the border should be scaled by the object/global edje scale factors </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> scale_hint </code></td><td class="parameters"><code> 0, NONE, DYNAMIC, STATIC </code></td></tr> <tr> <td> </td><td class="effect">Sets the evas image scale hint letting the engine more effectively save cached copies of the scaled image if it makes sense </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> fill </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> description { .. fill { smooth: 0-1; origin { relative: <a class="code" href="edje__util_8c.html#afbf6fb01352ce735f460b444f1dca712">X</a>-axis Y-axis; offset: <a class="code" href="edje__util_8c.html#afbf6fb01352ce735f460b444f1dca712">X</a>-axis Y-axis; } size { relative: width height; offset: width height; } } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">The fill method is an optional block that defines the way an IMAGE part is going to be displayed inside its container. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> smooth </code></td><td class="parameters"><code> [0 or 1] </code></td></tr> <tr> <td> </td><td class="effect">The smooth property takes a boolean value to decide if the image will be smoothed on scaling (1) or not (0). The default value is 1. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> spread </code></td><td class="parameters"><code> TODO </code></td></tr> <tr> <td> </td><td class="effect">TODO </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> type </code></td><td class="parameters"><code> TODO </code></td></tr> <tr> <td> </td><td class="effect">TODO </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> origin </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> description { .. fill { .. origin { relative: 0.0 0.0; offset: 0 0; } .. } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">The origin block is used to place the starting point, inside the displayed element, that will be used to render the tile. By default, the origin is set at the element's left-up corner. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> relative </code></td><td class="parameters"><code> [X axis] [Y axis] </code></td></tr> <tr> <td> </td><td class="effect">Sets the starting point relatively to displayed element's content. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> offset </code></td><td class="parameters"><code> [X axis] [Y axis] </code></td></tr> <tr> <td> </td><td class="effect">Affects the starting point a fixed number of pixels along each axis. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> size </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> description { .. fill { .. size { relative: 1.0 1.0; offset: -1 -1; } .. } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">The size block defines the tile size of the content that will be displayed. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> relative </code></td><td class="parameters"><code> [width] [height] </code></td></tr> <tr> <td> </td><td class="effect">Takes a pair of decimal values that represent the a percentual value of the original size of the element. For example, "0.5 0.5" represents half the size, while "2.0 2.0" represents the double. The default value is "1.0 1.0". </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> offset </code></td><td class="parameters"><code> [X axis] [Y axis] </code></td></tr> <tr> <td> </td><td class="effect">Affects the size of the tile a fixed number of pixels along each axis. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr class="section"> <td class="section" colspan="2"><p class="starttd"></p> <p><a class="anchor" id="sec_description_text"></a> <a class="el" href="edcref.html#sec_quickaccess">Text state description sub blocks</a></p> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> text </b></td><td class="context" colspan="2"><div class="fragment"><pre class="fragment"> part { description { .. text { text: <span class="stringliteral">"some string of text to display"</span>; font: <span class="stringliteral">"font_name"</span>; size: SIZE; text_class: <span class="stringliteral">"class_name"</span>; fit: horizontal vertical; min: horizontal vertical; max: horizontal vertical; align: <a class="code" href="edje__util_8c.html#afbf6fb01352ce735f460b444f1dca712">X</a>-axis Y-axis; source: <span class="stringliteral">"part_name"</span>; text_source: <span class="stringliteral">"text_part_name"</span>; elipsis: 0.0-1.0; style: <span class="stringliteral">"stylename"</span>; } .. } } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd"></p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> text </code></td><td class="parameters"><code> [a string of text, or nothing] </code></td></tr> <tr> <td> </td><td class="effect">Sets the default content of a text part, normally the application is the one changing its value. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> text_class </code></td><td class="parameters"><code> [text class name] </code></td></tr> <tr> <td> </td><td class="effect">Similar to color_class, this is the name used by the application to alter the font family and size at runtime. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> font </code></td><td class="parameters"><code> [font alias] </code></td></tr> <tr> <td> </td><td class="effect">This sets the font family to one of the aliases set up in the "fonts" block. Can be overrided by the application. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> style </code></td><td class="parameters"><code> [the style name] </code></td></tr> <tr> <td> </td><td class="effect">Causes the part to use the default style and tags defined in the "style" block with the specified name. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> repch </code></td><td class="parameters"><code> [the replacement character string] </code></td></tr> <tr> <td> </td><td class="effect">If this is a textblock and is in PASSWORD mode this string is used to replace every character to hide the details of the entry. Normally you would use a "*", but you can use anything you like. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> size </code></td><td class="parameters"><code> [font size in points (pt)] </code></td></tr> <tr> <td> </td><td class="effect">Sets the default font size for the text part. Can be overrided by the application. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> fit </code></td><td class="parameters"><code> [horizontal] [vertical] </code></td></tr> <tr> <td> </td><td class="effect">When any of the parameters is set to 1 edje will resize the text for it to fit in it's container. Both are disabled by default. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> min </code></td><td class="parameters"><code> [horizontal] [vertical] </code></td></tr> <tr> <td> </td><td class="effect">When any of the parameters is enabled (1) it forces the minimum size of the container to be equal to the minimum size of the text. The default value is "0 0". </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> max </code></td><td class="parameters"><code> [horizontal] [vertical] </code></td></tr> <tr> <td> </td><td class="effect">When any of the parameters is enabled (1) it forces the maximum size of the container to be equal to the maximum size of the text. The default value is "0 0". </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> align </code></td><td class="parameters"><code> [horizontal] [vertical] </code></td></tr> <tr> <td> </td><td class="effect">Change the position of the point of balance inside the container. The default value is 0.5 0.5. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> source </code></td><td class="parameters"><code> [another TEXT part's name] </code></td></tr> <tr> <td> </td><td class="effect">Causes the part to use the text properties (like font and size) of another part and update them as they change. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> text_source </code></td><td class="parameters"><code> [another TEXT part's name] </code></td></tr> <tr> <td> </td><td class="effect">Causes the part to display the text content of another part and update them as they change. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> elipsis </code></td><td class="parameters"><code> [point of balance] </code></td></tr> <tr> <td> </td><td class="effect">Used to balance the text in a relative point from 0.0 to 1.0, this point is the last section of the string to be cut out in case of a resize that is smaller than the text itself. The default value is 0.0. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr class="section"> <td class="section" colspan="2"><p class="starttd"></p> <p><a class="anchor" id="sec_description_box"></a> <a class="el" href="edcref.html#sec_quickaccess">Box state description sub blocks</a></p> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> box </b></td><td class="context" colspan="2"><div class="fragment"><pre class="fragment"> part { description { .. box { layout: <span class="stringliteral">"vertical"</span>; padding: 0 2; align: 0.5 0.5; min: 0 0; } .. } } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">A box block can contain other objects and display them in different layouts, any of the predefined set, or a custom one, set by the application. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> layout </code></td><td class="parameters"><code> [primary layout] [fallback layout] </code></td></tr> <tr> <td> </td><td class="effect">Sets the layout for the box: <ul> <li>horizontal (default) </li> <li>vertical </li> <li>horizontal_homogeneous </li> <li>vertical_homogeneous </li> <li>horizontal_max (homogeneous to the max sized child) </li> <li>vertical_max </li> <li>horizontal_flow </li> <li>vertical_flow </li> <li>stack </li> <li>some_other_custom_layout_set_by_the_application You could set a custom layout as fallback, it makes very very little sense though, and if that one fails, it will default to horizontal. </li> </ul> </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> align </code></td><td class="parameters"><code> [horizontal] [vertical] </code></td></tr> <tr> <td> </td><td class="effect">Change the position of the point of balance inside the container. The default value is 0.5 0.5. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> padding </code></td><td class="parameters"><code> [horizontal] [vertical] </code></td></tr> <tr> <td> </td><td class="effect">Sets the space between cells in pixels. Defaults to 0 0. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> min </code></td><td class="parameters"><code> [horizontal] [vertical] </code></td></tr> <tr> <td> </td><td class="effect">When any of the parameters is enabled (1) it forces the minimum size of the box to be equal to the minimum size of the items. The default value is "0 0". </td></tr> </table> <p class="endtd"></p> </td></tr> <tr class="section"> <td class="section" colspan="2"><p class="starttd"></p> <p><a class="anchor" id="sec_description_table"></a> <a class="el" href="edcref.html#sec_quickaccess">Table state description sub blocks</a></p> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> table </b></td><td class="context" colspan="2"><div class="fragment"><pre class="fragment"> part { description { .. table { homogeneous: TABLE; padding: 0 2; align: 0.5 0.5; } .. } } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">A table block can contain other objects packed in multiple columns and rows, and each item can span across more than one column and/or row. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> homogeneous </code></td><td class="parameters"><code> [homogeneous mode] </code></td></tr> <tr> <td> </td><td class="effect">Sets the homogeneous mode for the table: <ul> <li>NONE (default) </li> <li>TABLE </li> <li>ITEM </li> </ul> </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> align </code></td><td class="parameters"><code> [horizontal] [vertical] </code></td></tr> <tr> <td> </td><td class="effect">Change the position of the point of balance inside the container. The default value is 0.5 0.5. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> padding </code></td><td class="parameters"><code> [horizontal] [vertical] </code></td></tr> <tr> <td> </td><td class="effect">Sets the space between cells in pixels. Defaults to 0 0. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr class="section"> <td class="section" colspan="2"><p class="starttd"></p> <p><a class="anchor" id="sec_description_map"></a> <a class="el" href="edcref.html#sec_quickaccess">Map state description sub blocks</a></p> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> map </b></td><td class="context" colspan="2"><div class="fragment"><pre class="fragment"> description { .. map { perspective: <span class="stringliteral">"name"</span>; light: <span class="stringliteral">"name"</span>; on: 1; smooth: 1; perspective_on: 1; backface_cull: 1; alpha: 1; rotation { .. } } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd"></p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> perspective </code></td><td class="parameters"><code> [another part's name] </code></td></tr> <tr> <td> </td><td class="effect">This sets the part that is used as the "perspective point" for giving a part a "3d look". The perspective point should have a perspective section that provides zplane and focal properties. The center of this part will be used as the focal point, so size, color and visibility etc. are not relevant just center point, zplane and focal are used. This also implicitly enables perspective transforms (see the on parameter for the map section). </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> light </code></td><td class="parameters"><code> [another part's name] </code></td></tr> <tr> <td> </td><td class="effect">This sets the part that is used as the "light" for calculating the brightness (based on how directly the part's surface is facing the light source point). Like the perspective point part, the center point is used and zplane is used for the z position (0 being the zero-plane where all 2D objects normally live) and positive values being further away into the distance. The light part color is used as the light color (alpha not used for light color). The color2 color is used for the ambient lighting when calculating brightness (alpha also not used). </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> on </code></td><td class="parameters"><code> [1 or 0] </code></td></tr> <tr> <td> </td><td class="effect">This enables mapping for the part. Default is 0. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> smooth </code></td><td class="parameters"><code> [1 or 0] </code></td></tr> <tr> <td> </td><td class="effect">This enable smooth map rendering. This may be linear interpolation, anisotropic filtering or anything the engine decides is "smooth". This is a best-effort hint and may not produce precisely the same results in all engines and situations. Default is 1 </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> alpha </code></td><td class="parameters"><code> [1 or 0] </code></td></tr> <tr> <td> </td><td class="effect">This enable alpha channel when map rendering. Default is 1. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> backface_cull </code></td><td class="parameters"><code> [1 or 0] </code></td></tr> <tr> <td> </td><td class="effect">This enables backface culling (when the rotated part that normally faces the camera is facing away after being rotated etc.). This means that the object will be hidden when "backface culled". </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> perspective_on </code></td><td class="parameters"><code> [1 or 0] </code></td></tr> <tr> <td> </td><td class="effect">Enable perspective when rotating even without a perspective point object. This would use perspective set for the object itself or for the canvas as a whole as the global perspective with <a class="el" href="Edje_8h.html#ac67b6372adcf093e43334d5385a1fed9">edje_perspective_set()</a> and <a class="el" href="Edje_8h.html#a135e2eef15d671a44374f08458f614fc">edje_perspective_global_set()</a>. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> rotation </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> map { .. rotation { center: <span class="stringliteral">"name"</span>; x: 45.0; y: 45.0; z: 45.0; } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">Rotates the part, optionally with the center on another part. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> center </code></td><td class="parameters"><code> [another part's name] </code></td></tr> <tr> <td> </td><td class="effect">This sets the part that is used as the center of rotation when rotating the part with this description. The part's center point is used as the rotation center when applying rotation around the x, y and z axes. If no center is given, the parts original center itself is used for the rotation center. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> x </code></td><td class="parameters"><code> [X degrees] </code></td></tr> <tr> <td> </td><td class="effect">This sets the rotation around the x axis of the part considering the center set. In degrees. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> y </code></td><td class="parameters"><code> [Y degrees] </code></td></tr> <tr> <td> </td><td class="effect">This sets the rotation around the u axis of the part considering the center set. In degrees. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> z </code></td><td class="parameters"><code> [Z degrees] </code></td></tr> <tr> <td> </td><td class="effect">This sets the rotation around the z axis of the part considering the center set. In degrees. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> perspective </b></td><td class="context" colspan="2"><p class="starttd"></p> <div class="fragment"><pre class="fragment"> description { .. perspective { zplane: 0; focal: 1000; } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">Adds focal and plane perspective to the part. Active if perspective_on is true. Must be provided if the part is being used by other part as it's perspective target. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><table class="edcref" border="0"> <tr> <td class="property"><code> zplane </code></td><td class="parameters"><code> [unscaled Z value] </code></td></tr> <tr> <td> </td><td class="effect">This sets the z value that will not be scaled. Normally this is 0 as that is the z distance that all objects are at normally. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> focal </code></td><td class="parameters"><code> [distance] </code></td></tr> <tr> <td> </td><td class="effect">This sets the distance from the focal z plane (zplane) and the camera - i.e. very much equating to focal length of the camera </td></tr> </table> <p class="endtd"></p> </td></tr> <tr class="section"> <td class="section" colspan="2"><p class="starttd"></p> <p><a class="anchor" id="sec_description_params"></a> <a class="el" href="edcref.html#sec_quickaccess">Params state description sub blocks</a></p> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> params </b></td><td class="context" colspan="2"><div class="fragment"><pre class="fragment"> description { .. params { <span class="keywordtype">int</span>: <span class="stringliteral">"name"</span> 0; <span class="keywordtype">double</span>: <span class="stringliteral">"other_name"</span> 0.0; <span class="keywordtype">string</span>: <span class="stringliteral">"another_name"</span> <span class="stringliteral">"some text"</span>; <span class="keywordtype">bool</span>: <span class="stringliteral">"name"</span> 1; choice: <span class="stringliteral">"some_name"</span> <span class="stringliteral">"value"</span>; } .. } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">Set parameters for EXTERNAL parts. The value overwrites previous definitions with the same name. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> int </code></td><td class="parameters"><code> [param_name] [int_value] </code></td></tr> <tr> <td> </td><td class="effect">Adds an integer parameter for an external object </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> double </code></td><td class="parameters"><code> [param_name] [double_value] </code></td></tr> <tr> <td> </td><td class="effect">Adds a double parameter for an external object </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> string </code></td><td class="parameters"><code> [param_name] [string_value] </code></td></tr> <tr> <td> </td><td class="effect">Adds a string parameter for an external object </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> bool </code></td><td class="parameters"><code> [param_name] [bool_value] </code></td></tr> <tr> <td> </td><td class="effect">Adds an boolean parameter for an external object. Value must be 0 or 1. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> choice </code></td><td class="parameters"><code> [param_name] [choice_string] </code></td></tr> <tr> <td> </td><td class="effect">Adds a choice parameter for an external object. The possible choice values are defined by external type at their register time and will be validated at runtime. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr class="section"> <td class="section" colspan="2"><p class="starttd"></p> <p><a class="anchor" id="sec_program"></a> <a class="el" href="edcref.html#sec_quickaccess">Program block</a></p> <p class="endtd"></p> </td></tr> <tr> <td class="block"><b> program </b></td><td class="context" colspan="2"><div class="fragment"><pre class="fragment"> group { programs { .. program { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">"programname"</span>; signal: <span class="stringliteral">"signalname"</span>; source: <span class="stringliteral">"partname"</span>; filter: <span class="stringliteral">"partname"</span> <span class="stringliteral">"statename"</span>; in: 0.3 0.0; action: STATE_SET <span class="stringliteral">"statename"</span> state_value; transition: LINEAR 0.5; target: <span class="stringliteral">"partname"</span>; target: <span class="stringliteral">"anotherpart"</span>; after: <span class="stringliteral">"programname"</span>; after: <span class="stringliteral">"anotherprogram"</span>; } .. } } </pre></div></td></tr> <tr> <td> </td><td class="description" colspan="2"><p class="starttd">Programs define how your interface reacts to events. Programs can change the state of parts, react to events or trigger other events. </p> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> name </code></td><td class="parameters"><code> [program name] </code></td></tr> <tr> <td> </td><td class="effect">Symbolic name of program as a unique identifier. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> signal </code></td><td class="parameters"><code> [signal name] </code></td></tr> <tr> <td> </td><td class="effect">Specifies signal(s) that should cause the program to run. The signal received must match the specified source to run. Signals may be globbed, but only one signal keyword per program may be used. ex: signal: "mouse,clicked,*"; (clicking any mouse button that matches source starts program). </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> source </code></td><td class="parameters"><code> [source name] </code></td></tr> <tr> <td> </td><td class="effect">Source of accepted signal. Sources may be globbed, but only one source keyword per program may be used. ex:source: "button-*"; (Signals from any part or program named "button-*" are accepted). </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> filter </code></td><td class="parameters"><code> [part] [state] </code></td></tr> <tr> <td> </td><td class="effect">Filter signals to be only accepted if the part [part] is in state named [state]. Only one filter per program can be used. If [state] is not given, the source of the event will be used instead. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> in </code></td><td class="parameters"><code> [from] [range] </code></td></tr> <tr> <td> </td><td class="effect">Wait 'from' seconds before executing the program. And add a random number of seconds (from 0 to 'range') to the total waiting time. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> action </code></td><td class="parameters"><code> [type] [param1] [param2] </code></td></tr> <tr> <td> </td><td class="effect">Action to be performed by the program. Valid actions are: STATE_SET, ACTION_STOP, SIGNAL_EMIT, DRAG_VAL_SET, DRAG_VAL_STEP, DRAG_VAL_PAGE, FOCUS_SET, PARAM_COPY, PARAM_SET Only one action can be specified per program. Examples:<br/> action: STATE_SET "statename" 0.5;<br/> action: ACTION_STOP;<br/> action: SIGNAL_EMIT "signalname" "emitter";<br/> action: DRAG_VAL_SET 0.5 0.0;<br/> action: DRAG_VAL_STEP 1.0 0.0;<br/> action: DRAG_VAL_PAGE 0.0 0.0;<br/> action: FOCUS_SET;<br/> action: FOCUS_OBJECT;<br/> action: PARAM_COPY "src_part" "src_param" "dst_part" "dst_param";<br/> action: PARAM_SET "part" "param" "value";<br/> </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> transition </code></td><td class="parameters"><code> [type] [length] </code></td></tr> <tr> <td> </td><td class="effect">Defines how transitions occur using STATE_SET action.<br/> Where 'type' is the style of the transition and 'length' is a double specifying the number of seconds in which to preform the transition.<br/> Valid types are: LINEAR, SINUSOIDAL, ACCELERATE, and DECELERATE. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> target </code></td><td class="parameters"><code> [target] </code></td></tr> <tr> <td> </td><td class="effect">Program or part on which the specified action acts. Multiple target keywords may be specified, one per target. SIGNAL_EMITs do not have targets. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> after </code></td><td class="parameters"><code> [after] </code></td></tr> <tr> <td> </td><td class="effect">Specifies a program to run after the current program completes. The source and signal parameters of a program run as an "after" are ignored. Multiple "after" statements can be specified per program. </td></tr> </table> <p class="endtd"></p> </td></tr> <tr> <td> </td><td><p class="starttd"></p> <table class="edcref" border="0"> <tr> <td class="property"><code> api </code></td><td class="parameters"><code> [name] [description] </code></td></tr> <tr> <td> </td><td class="effect">Specifies a hint to let applications (or IDE's) know how to bind things. The parameter name should contain the name of the function that the application should use, and description describes how it should be used. </td></tr> </table> <p class="endtd"></p> </td></tr> </table> </div></div> <div id="push"></div> </div> <!-- #content --> </div> <!-- .layout --> </div> <!-- #container --> <div id="footer"> <table><tr> <td class="copyright">Copyright ©2011 Enlightenment</td> <td class="generated">Docs generated Tue Feb 8 2011 17:28:43</td> </tr></table> </div> </body> </html>