Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 18b54cd0250a7489168a038c67771391 > files > 96

evas-devel-1.0.1-1.fc16.i686.rpm

<html>
<head>
    <title>Evas: Smart Object Functions</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" media="screen" href="e.css">
    <link rel="stylesheet" type="text/css" media="screen" 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>

    <div class="menu-container">
        <div class="menu">
            <ul>
	        <li class="current"><a href="http://web.enlightenment.org/p.php?p=docs">Docs</a></li>
                <li><a href="http://trac.enlightenment.org/e">Tracker</a></li>
                <li><a href="http://www.enlightenment.org/p.php?p=contact">Contact</a></li>
                <li><a href="http://www.enlightenment.org/p.php?p=contribute">Contribute</a></li>
                <li><a href="http://www.enlightenment.org/p.php?p=support">Support</a></li>
                <li><a href="http://www.enlightenment.org/p.php?p=download">Download</a></li>
                <li><a href="http://www.enlightenment.org/p.php?p=about">About</a></li>
                <li><a href="http://www.enlightenment.org/p.php?p=news">News</a></li>
                <li><a href="http://www.enlightenment.org/">Home</a></li>
            </ul>
        </div>
    </div>

    <div class="doxytitle">
        Evas Documentation <small>at Thu Jul 14 2011</small>
    </div>

    <div class="menu-container">
        <div class="submenu">
            <ul class="current">
                <li><a href="todo.html">Todo</a></li>
                <li><a href="files.html">Files</a></li>
                <li><a href="annotated.html">Data Structures</a></li>
                <li><a href="globals.html">Globals</a></li>
                <li><a href="modules.html">Modules</a></li>
                <li><a href="pages.html">Related Pages</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.4 -->
</div>
<div class="header">
  <div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Smart Object Functions</div>  </div>
</div>
<div class="contents">

<p>Functions dealing with evas smart objects (instances).  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="groups"></a>
Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Clipped.html">Clipped Smart Object</a></td></tr>

<p><tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Clipped smart object is a base to construct other smart objects that based on the concept of having an internal clipper that is applied to all its other children. </p>
<br/></td></tr>
</p>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Object__Box.html">Box (Sequence) Smart Object.</a></td></tr>

<p><tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Convenience smart object that packs children as a sequence using a layout function specified by user. </p>
<br/></td></tr>
</p>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Object__Table.html">Table Smart Object.</a></td></tr>

<p><tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Convenience smart object that packs children using a tabular layout using children size hints to define their size and alignment inside their cell space. </p>
<br/></td></tr>
</p>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#gae40928b2993cc169e606820ae21dbb6e">evas_object_smart_data_set</a> (<a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Store a pointer to user data for a smart object.  <a href="#gae40928b2993cc169e606820ae21dbb6e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#gad77ac4b3dcb2929ff7d02e76a26e272a">evas_object_smart_data_get</a> (const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve user data stored on a smart object.  <a href="#gad77ac4b3dcb2929ff7d02e76a26e272a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI <a class="el" href="Evas_8h.html#a7cdfd1afece1cad64c413eb9a778ddbb">Evas_Smart</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#gab1423d63011d7f3679c95ea1638fa714">evas_object_smart_smart_get</a> (const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the Evas_Smart from which <code>obj</code> was created.  <a href="#gab1423d63011d7f3679c95ea1638fa714"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#ga88c6f460884a87d5a2915282ab1cf06f">evas_object_smart_member_add</a> (<a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *smart_obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an evas object as a member of a smart object.  <a href="#ga88c6f460884a87d5a2915282ab1cf06f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#gaffa3573bd0f16f3eb21c3da8122194f7">evas_object_smart_member_del</a> (<a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a member object from a smart object.  <a href="#gaffa3573bd0f16f3eb21c3da8122194f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#gaee8228f86a2a896112b3dbfe09d83511">evas_object_smart_parent_get</a> (const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the smart parent of an Evas_Object.  <a href="#gaee8228f86a2a896112b3dbfe09d83511"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI Eina_Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#ga21c7f06371bf49bebaba0df0b8c7cbef">evas_object_smart_type_check</a> (const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, const char *type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the Smart type of the object and its parents.  <a href="#ga21c7f06371bf49bebaba0df0b8c7cbef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI Eina_Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#ga2e93ee5ffcc0beec181cc640961ee3e6">evas_object_smart_type_check_ptr</a> (const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, const char *type)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks the Smart type of the object and its parents using pointer comparison.  <a href="#ga2e93ee5ffcc0beec181cc640961ee3e6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#gaa61f845ee24ddb252a6fcb76d5f3c148">evas_object_smart_add</a> (<a class="el" href="group__Evas__Canvas.html#ga5ff87cc4ce6bc43e3b640a6d37f73043">Evas</a> *e, <a class="el" href="Evas_8h.html#a7cdfd1afece1cad64c413eb9a778ddbb">Evas_Smart</a> *s)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Instantiates a new smart object described by <code>s</code>.  <a href="#gaa61f845ee24ddb252a6fcb76d5f3c148"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#ga13db802166db6890fe25bf63143ad3ee">evas_object_smart_callback_add</a> (<a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, const char *event, void(*func)(void *data, <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, void *event_info), const void *data)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a callback for the smart event specified by <code>event</code>.  <a href="#ga13db802166db6890fe25bf63143ad3ee"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#gab1f7248ecf036480e0fa2d1ca4e91c35">evas_object_smart_callback_del</a> (<a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, const char *event, void(*func)(void *data, <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, void *event_info))</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a smart callback.  <a href="#gab1f7248ecf036480e0fa2d1ca4e91c35"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#ga17bbe660f5bf9d8997913b08882f6f9e">evas_object_smart_callback_call</a> (<a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, const char *event, void *event_info)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Call any smart callbacks on <code>obj</code> for <code>event</code>.  <a href="#ga17bbe660f5bf9d8997913b08882f6f9e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI Eina_Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#gaf724dbb075cdaf2b4b44dd883b792dc3">evas_object_smart_callbacks_descriptions_set</a> (<a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, const <a class="el" href="struct__Evas__Smart__Cb__Description.html">Evas_Smart_Cb_Description</a> *descriptions)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set smart object instance callbacks descriptions.  <a href="#gaf724dbb075cdaf2b4b44dd883b792dc3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#gaf58d78bc21229defb9eafd541063391d">evas_object_smart_callbacks_descriptions_get</a> (const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, const <a class="el" href="struct__Evas__Smart__Cb__Description.html">Evas_Smart_Cb_Description</a> ***class_descriptions, unsigned int *class_count, const <a class="el" href="struct__Evas__Smart__Cb__Description.html">Evas_Smart_Cb_Description</a> ***instance_descriptions, unsigned int *instance_count)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the callbacks descriptions known by this smart object.  <a href="#gaf58d78bc21229defb9eafd541063391d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#ga58c34092eac9bfe6878b8e6ebc026de1">evas_object_smart_need_recalculate_set</a> (<a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, Eina_Bool value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the need_recalculate flag of given smart object.  <a href="#ga58c34092eac9bfe6878b8e6ebc026de1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI Eina_Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#ga38be19a4f09b071b3d984996b8f9b3ee">evas_object_smart_need_recalculate_get</a> (const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current value of need_recalculate flag.  <a href="#ga38be19a4f09b071b3d984996b8f9b3ee"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#ga8013936b96d99d2ff375ca2b0b287f39">evas_object_smart_calculate</a> (<a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Call user provided calculate() and unset need_calculate.  <a href="#ga8013936b96d99d2ff375ca2b0b287f39"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#gaa30fa648297b723a73f28632d1dbec62">evas_smart_objects_calculate</a> (<a class="el" href="group__Evas__Canvas.html#ga5ff87cc4ce6bc43e3b640a6d37f73043">Evas</a> *e)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Call user provided calculate() and unset need_calculate on all objects.  <a href="#gaa30fa648297b723a73f28632d1dbec62"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">EAPI void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Evas__Smart__Object__Group.html#ga20b3bce805c272f3d11f4ba0ae952dc6">evas_object_smart_changed</a> (<a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark smart object as changed, dirty.  <a href="#ga20b3bce805c272f3d11f4ba0ae952dc6"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Functions dealing with evas smart objects (instances). </p>
<p>Smart objects are groupings of primitive evas objects that behave as a cohesive group. For instance, a file manager icon may be a smart object composed of an image object, a text label and two rectangles that appear behind the image and text when the icon is selected. As a smart object, the normal evas api could be used on the icon object.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__Evas__Smart__Group.html">Smart Functions</a> for class definitions. </dd></dl>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gaa61f845ee24ddb252a6fcb76d5f3c148"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_add" ref="gaa61f845ee24ddb252a6fcb76d5f3c148" args="(Evas *e, Evas_Smart *s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a>* evas_object_smart_add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Evas__Canvas.html#ga5ff87cc4ce6bc43e3b640a6d37f73043">Evas</a> *&#160;</td>
          <td class="paramname"><em>e</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="Evas_8h.html#a7cdfd1afece1cad64c413eb9a778ddbb">Evas_Smart</a> *&#160;</td>
          <td class="paramname"><em>s</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Instantiates a new smart object described by <code>s</code>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">e</td><td>the evas on which to add the object </td></tr>
    <tr><td class="paramname">s</td><td>the Evas_Smart describing the smart object </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a new Evas_Object </dd></dl>

<p>Referenced by <a class="el" href="group__Evas__Object__Box.html#ga84e87534e6a45a725d59c0366f4e6544">evas_object_box_add()</a>, and <a class="el" href="group__Evas__Object__Table.html#gaa8950ef1784409f64fc02345b839768d">evas_object_table_add()</a>.</p>

</div>
</div>
<a class="anchor" id="ga8013936b96d99d2ff375ca2b0b287f39"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_calculate" ref="ga8013936b96d99d2ff375ca2b0b287f39" args="(Evas_Object *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI void evas_object_smart_calculate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Call user provided calculate() and unset need_calculate. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>the smart object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga13db802166db6890fe25bf63143ad3ee"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_callback_add" ref="ga13db802166db6890fe25bf63143ad3ee" args="(Evas_Object *obj, const char *event, void(*func)(void *data, Evas_Object *obj, void *event_info), const void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI void evas_object_smart_callback_add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(*)(void *data, <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, void *event_info)&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a callback for the smart event specified by <code>event</code>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a smart object </td></tr>
    <tr><td class="paramname">event</td><td>the event name </td></tr>
    <tr><td class="paramname">func</td><td>the callback function </td></tr>
    <tr><td class="paramname">data</td><td>user data to be passed to the callback function </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga17bbe660f5bf9d8997913b08882f6f9e"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_callback_call" ref="ga17bbe660f5bf9d8997913b08882f6f9e" args="(Evas_Object *obj, const char *event, void *event_info)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI void evas_object_smart_callback_call </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>event_info</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Call any smart callbacks on <code>obj</code> for <code>event</code>. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>the smart object </td></tr>
    <tr><td class="paramname">event</td><td>the event name </td></tr>
    <tr><td class="paramname">event_info</td><td>an event specific struct of info to pass to the callback</td></tr>
  </table>
  </dd>
</dl>
<p>This should be called internally in the smart object when some specific event has occurred. The documentation for the smart object should include a list of possible events and what type of <code>event_info</code> to expect. </p>

</div>
</div>
<a class="anchor" id="gab1f7248ecf036480e0fa2d1ca4e91c35"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_callback_del" ref="gab1f7248ecf036480e0fa2d1ca4e91c35" args="(Evas_Object *obj, const char *event, void(*func)(void *data, Evas_Object *obj, void *event_info))" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI void* evas_object_smart_callback_del </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(*)(void *data, <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *obj, void *event_info)&#160;</td>
          <td class="paramname"><em>func</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Remove a smart callback. </p>
<p>Removes a callback that was added by <a class="el" href="group__Evas__Smart__Object__Group.html#ga13db802166db6890fe25bf63143ad3ee" title="Add a callback for the smart event specified by event.">evas_object_smart_callback_add()</a></p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a smart object </td></tr>
    <tr><td class="paramname">event</td><td>the event name </td></tr>
    <tr><td class="paramname">func</td><td>the callback function </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the data pointer </dd></dl>

</div>
</div>
<a class="anchor" id="gaf58d78bc21229defb9eafd541063391d"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_callbacks_descriptions_get" ref="gaf58d78bc21229defb9eafd541063391d" args="(const Evas_Object *obj, const Evas_Smart_Cb_Description ***class_descriptions, unsigned int *class_count, const Evas_Smart_Cb_Description ***instance_descriptions, unsigned int *instance_count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI void evas_object_smart_callbacks_descriptions_get </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="struct__Evas__Smart__Cb__Description.html">Evas_Smart_Cb_Description</a> ***&#160;</td>
          <td class="paramname"><em>class_descriptions</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&#160;</td>
          <td class="paramname"><em>class_count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="struct__Evas__Smart__Cb__Description.html">Evas_Smart_Cb_Description</a> ***&#160;</td>
          <td class="paramname"><em>instance_descriptions</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&#160;</td>
          <td class="paramname"><em>instance_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the callbacks descriptions known by this smart object. </p>
<p>This call retrieves processed callbacks descriptions for both instance and class. These arrays are sorted by description's name and are <code>NULL</code> terminated, so both <em>class_count</em> and <em>instance_count</em> can be ignored, the terminator <code>NULL</code> is not counted in these values.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>the smart object. </td></tr>
    <tr><td class="paramname">class_descriptions</td><td>where to store class callbacks descriptions array, if any is known. If no descriptions are known, <code>NULL</code> is returned. This parameter may be <code>NULL</code> if it is not of interest. </td></tr>
    <tr><td class="paramname">class_count</td><td>returns how many class callbacks descriptions are known. </td></tr>
    <tr><td class="paramname">instance_descriptions</td><td>where to store instance callbacks descriptions array, if any is known. If no descriptions are known, <code>NULL</code> is returned. This parameter may be <code>NULL</code> if it is not of interest. </td></tr>
    <tr><td class="paramname">instance_count</td><td>returns how many instance callbacks descriptions are known.</td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>if just class descriptions are of interest, try <a class="el" href="group__Evas__Smart__Group.html#ga67ca7d389fd32a2dc4d7d6e29430d900" title="Get the callbacks known by this Evas_Smart.">evas_smart_callbacks_descriptions_get()</a> instead.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__Evas__Smart__Group.html#ga67ca7d389fd32a2dc4d7d6e29430d900" title="Get the callbacks known by this Evas_Smart.">evas_smart_callbacks_descriptions_get()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaf724dbb075cdaf2b4b44dd883b792dc3"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_callbacks_descriptions_set" ref="gaf724dbb075cdaf2b4b44dd883b792dc3" args="(Evas_Object *obj, const Evas_Smart_Cb_Description *descriptions)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI Eina_Bool evas_object_smart_callbacks_descriptions_set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="struct__Evas__Smart__Cb__Description.html">Evas_Smart_Cb_Description</a> *&#160;</td>
          <td class="paramname"><em>descriptions</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set smart object instance callbacks descriptions. </p>
<p>These descriptions are hints to be used by introspection and are not enforced in any way.</p>
<p>It will not be checked if instance callbacks descriptions have the same name as another in class. Both are kept in different arrays and users of <a class="el" href="group__Evas__Smart__Object__Group.html#gaf58d78bc21229defb9eafd541063391d" title="Get the callbacks descriptions known by this smart object.">evas_object_smart_callbacks_descriptions_get()</a> should handle this case as they wish.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>The smart object </td></tr>
    <tr><td class="paramname">descriptions</td><td>NULL terminated (name != NULL) array with descriptions. Array elements will not be modified, but reference to them and their contents will be made, so this array should be kept alive during object lifetime. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 on success, 0 on failure.</dd></dl>
<dl class="note"><dt><b>Note:</b></dt><dd>while instance callbacks descriptions are possible, they are not recommended. Use class callbacks descriptions instead as they make user's life simpler and will use less memory as descriptions and arrays will be shared among all instances. </dd></dl>

<p>References <a class="el" href="struct__Evas__Smart__Cb__Description.html#ab377859f4cfcf1c2dd3c149a76b70b53">_Evas_Smart_Cb_Description::name</a>.</p>

</div>
</div>
<a class="anchor" id="ga20b3bce805c272f3d11f4ba0ae952dc6"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_changed" ref="ga20b3bce805c272f3d11f4ba0ae952dc6" args="(Evas_Object *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI void evas_object_smart_changed </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Mark smart object as changed, dirty. </p>
<p>This will inform the scene that it changed and needs to be redraw, also setting need_recalculate on the given object.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__Evas__Smart__Object__Group.html#ga58c34092eac9bfe6878b8e6ebc026de1" title="Set the need_recalculate flag of given smart object.">evas_object_smart_need_recalculate_set()</a>. </dd></dl>

<p>References <a class="el" href="group__Evas__Smart__Object__Group.html#ga58c34092eac9bfe6878b8e6ebc026de1">evas_object_smart_need_recalculate_set()</a>.</p>

<p>Referenced by <a class="el" href="group__Evas__Object__Box.html#gae66fe763591e62621cf6352528d97e10">evas_object_box_align_set()</a>, <a class="el" href="group__Evas__Object__Box.html#gaa06e910577a949fc55b3a661d17f2fb3">evas_object_box_append()</a>, <a class="el" href="group__Evas__Object__Box.html#ga9b1fc7ee0200ce3917da70b00fb8637c">evas_object_box_insert_after()</a>, <a class="el" href="group__Evas__Object__Box.html#ga01b2f0564057297d6853844b77fba3a6">evas_object_box_insert_at()</a>, <a class="el" href="group__Evas__Object__Box.html#ga5759fa41a7c3541f43ae98f58bd1ec85">evas_object_box_insert_before()</a>, <a class="el" href="group__Evas__Object__Box.html#ga2116d23c11ab08d7c50cbcb588de5570">evas_object_box_layout_set()</a>, <a class="el" href="group__Evas__Object__Box.html#ga56c828490bb5778be68908147c32fa6d">evas_object_box_option_property_vset()</a>, <a class="el" href="group__Evas__Object__Box.html#ga75ab3d2f84c328010c26a6b8d89c9c67">evas_object_box_padding_set()</a>, <a class="el" href="group__Evas__Object__Box.html#ga0fec96faf6bbc106b8af28ff479ddfc3">evas_object_box_prepend()</a>, <a class="el" href="group__Evas__Object__Box.html#ga90c644be44c06e2e4f966cb14b7a93a5">evas_object_box_remove()</a>, <a class="el" href="group__Evas__Object__Box.html#ga6c114f237f66c0208f0669783f671318">evas_object_box_remove_all()</a>, <a class="el" href="group__Evas__Object__Box.html#ga7d6a7321327f1398790d1f12cccd38f3">evas_object_box_remove_at()</a>, <a class="el" href="group__Evas__Object__Table.html#ga7299bcee8de1f9304fa31fff43347a45">evas_object_table_align_set()</a>, <a class="el" href="group__Evas__Object__Table.html#gaec5a10416b76102f7e22c7b799bfac04">evas_object_table_clear()</a>, <a class="el" href="group__Evas__Object__Table.html#ga85462a0cbafd4ee4ceface6f3f69b413">evas_object_table_homogeneous_set()</a>, <a class="el" href="group__Evas__Object__Table.html#ga6c1129dcd7509ebde06cf753cf6a681d">evas_object_table_pack()</a>, <a class="el" href="group__Evas__Object__Table.html#ga6ea229f05036a9c5d30010ad40a30c66">evas_object_table_padding_set()</a>, and <a class="el" href="group__Evas__Object__Table.html#gac8b800b8a8f38589eae4b979ffc2d598">evas_object_table_unpack()</a>.</p>

</div>
</div>
<a class="anchor" id="gad77ac4b3dcb2929ff7d02e76a26e272a"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_data_get" ref="gad77ac4b3dcb2929ff7d02e76a26e272a" args="(const Evas_Object *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI void* evas_object_smart_data_get </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve user data stored on a smart object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>The smart object </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer to data stored using <a class="el" href="group__Evas__Smart__Object__Group.html#gae40928b2993cc169e606820ae21dbb6e" title="Store a pointer to user data for a smart object.">evas_object_smart_data_set()</a>, or NULL if none has been set. </dd></dl>

<p>Referenced by <a class="el" href="group__Evas__Smart__Object__Clipped.html#ga27b74fdbecd5d915c9ec832199048907">evas_object_smart_clipped_clipper_get()</a>.</p>

</div>
</div>
<a class="anchor" id="gae40928b2993cc169e606820ae21dbb6e"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_data_set" ref="gae40928b2993cc169e606820ae21dbb6e" args="(Evas_Object *obj, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI void evas_object_smart_data_set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Store a pointer to user data for a smart object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>The smart object </td></tr>
    <tr><td class="paramname">data</td><td>A pointer to user data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga88c6f460884a87d5a2915282ab1cf06f"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_member_add" ref="ga88c6f460884a87d5a2915282ab1cf06f" args="(Evas_Object *obj, Evas_Object *smart_obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI void evas_object_smart_member_add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>smart_obj</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set an evas object as a member of a smart object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>The member object </td></tr>
    <tr><td class="paramname">smart_obj</td><td>The smart object</td></tr>
  </table>
  </dd>
</dl>
<p>Members will automatically be stacked and layered with the smart object. The various stacking function will operate on members relative to the other members instead of the entire canvas.</p>
<p>Non-member objects can not interleave a smart object's members. </p>

<p>References <a class="el" href="group__Evas__Smart__Object__Group.html#gaffa3573bd0f16f3eb21c3da8122194f7">evas_object_smart_member_del()</a>.</p>

<p>Referenced by <a class="el" href="group__Evas__Object__Box.html#gaf332313478211a06a09038755cf139bf">evas_object_box_add_to()</a>, <a class="el" href="group__Evas__Object__Box.html#gaa06e910577a949fc55b3a661d17f2fb3">evas_object_box_append()</a>, <a class="el" href="group__Evas__Object__Box.html#ga9b1fc7ee0200ce3917da70b00fb8637c">evas_object_box_insert_after()</a>, <a class="el" href="group__Evas__Object__Box.html#ga01b2f0564057297d6853844b77fba3a6">evas_object_box_insert_at()</a>, <a class="el" href="group__Evas__Object__Box.html#ga5759fa41a7c3541f43ae98f58bd1ec85">evas_object_box_insert_before()</a>, <a class="el" href="group__Evas__Object__Box.html#ga0fec96faf6bbc106b8af28ff479ddfc3">evas_object_box_prepend()</a>, <a class="el" href="group__Evas__Object__Table.html#gab5789072764ac24f48368182bd35d297">evas_object_table_add_to()</a>, and <a class="el" href="group__Evas__Object__Table.html#ga6c1129dcd7509ebde06cf753cf6a681d">evas_object_table_pack()</a>.</p>

</div>
</div>
<a class="anchor" id="gaffa3573bd0f16f3eb21c3da8122194f7"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_member_del" ref="gaffa3573bd0f16f3eb21c3da8122194f7" args="(Evas_Object *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI void evas_object_smart_member_del </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Removes a member object from a smart object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>the member object</td></tr>
  </table>
  </dd>
</dl>
<p>This removes a member object from a smart object. The object will still be on the canvas, but no longer associated with whichever smart object it was associated with. </p>

<p>Referenced by <a class="el" href="group__Evas__Object__Box.html#ga90c644be44c06e2e4f966cb14b7a93a5">evas_object_box_remove()</a>, <a class="el" href="group__Evas__Object__Box.html#ga6c114f237f66c0208f0669783f671318">evas_object_box_remove_all()</a>, <a class="el" href="group__Evas__Object__Box.html#ga7d6a7321327f1398790d1f12cccd38f3">evas_object_box_remove_at()</a>, <a class="el" href="group__Evas__Smart__Object__Group.html#ga88c6f460884a87d5a2915282ab1cf06f">evas_object_smart_member_add()</a>, <a class="el" href="group__Evas__Object__Table.html#gaec5a10416b76102f7e22c7b799bfac04">evas_object_table_clear()</a>, and <a class="el" href="group__Evas__Object__Table.html#gac8b800b8a8f38589eae4b979ffc2d598">evas_object_table_unpack()</a>.</p>

</div>
</div>
<a class="anchor" id="ga38be19a4f09b071b3d984996b8f9b3ee"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_need_recalculate_get" ref="ga38be19a4f09b071b3d984996b8f9b3ee" args="(const Evas_Object *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI Eina_Bool evas_object_smart_need_recalculate_get </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the current value of need_recalculate flag. </p>
<dl class="note"><dt><b>Note:</b></dt><dd>this flag will be unset during the render phase, after calculate() is called if one is provided. If no calculate() is provided, then the flag will be left unchanged after render phase.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>the smart object </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>if flag is set or not. </dd></dl>

</div>
</div>
<a class="anchor" id="ga58c34092eac9bfe6878b8e6ebc026de1"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_need_recalculate_set" ref="ga58c34092eac9bfe6878b8e6ebc026de1" args="(Evas_Object *obj, Eina_Bool value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI void evas_object_smart_need_recalculate_set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eina_Bool&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the need_recalculate flag of given smart object. </p>
<p>If this flag is set then calculate() callback (method) of the given smart object will be called, if one is provided, during render phase usually <a class="el" href="group__Evas__Canvas.html#ga241869ebb085b8ab11ff6af26e1aeaaf" title="Force renderization of the given canvas.">evas_render()</a>. After this step, this flag will be automatically unset.</p>
<p>If no calculate() is provided, this flag will be left unchanged.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>just setting this flag will not make scene dirty and <a class="el" href="group__Evas__Canvas.html#ga241869ebb085b8ab11ff6af26e1aeaaf" title="Force renderization of the given canvas.">evas_render()</a> will have no effect. To do that, use <a class="el" href="group__Evas__Smart__Object__Group.html#ga20b3bce805c272f3d11f4ba0ae952dc6" title="Mark smart object as changed, dirty.">evas_object_smart_changed()</a>, that will automatically call this function with 1 as parameter.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>the smart object </td></tr>
    <tr><td class="paramname">value</td><td>if one want to set or unset the need_recalculate flag. </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="group__Evas__Smart__Object__Group.html#ga20b3bce805c272f3d11f4ba0ae952dc6">evas_object_smart_changed()</a>.</p>

</div>
</div>
<a class="anchor" id="gaee8228f86a2a896112b3dbfe09d83511"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_parent_get" ref="gaee8228f86a2a896112b3dbfe09d83511" args="(const Evas_Object *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a>* evas_object_smart_parent_get </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the smart parent of an Evas_Object. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>the Evas_Object you want to get the parent </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Returns the smart parent of <em>obj</em>, or NULL if <em>obj</em> is not a smart member of another Evas_Object </dd></dl>

<p>Referenced by <a class="el" href="group__Evas__Object__Table.html#gac8b800b8a8f38589eae4b979ffc2d598">evas_object_table_unpack()</a>.</p>

</div>
</div>
<a class="anchor" id="gab1423d63011d7f3679c95ea1638fa714"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_smart_get" ref="gab1423d63011d7f3679c95ea1638fa714" args="(const Evas_Object *obj)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI <a class="el" href="Evas_8h.html#a7cdfd1afece1cad64c413eb9a778ddbb">Evas_Smart</a>* evas_object_smart_smart_get </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the Evas_Smart from which <code>obj</code> was created. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>a smart object </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the Evas_Smart </dd></dl>

</div>
</div>
<a class="anchor" id="ga21c7f06371bf49bebaba0df0b8c7cbef"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_type_check" ref="ga21c7f06371bf49bebaba0df0b8c7cbef" args="(const Evas_Object *obj, const char *type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI Eina_Bool evas_object_smart_type_check </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks the Smart type of the object and its parents. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>the Evas_Object to check the type of </td></tr>
    <tr><td class="paramname">type</td><td>the type to check for </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>EINA_TRUE if <em>obj</em> or any of its parents if of type <em>type</em>, EINA_FALSE otherwise </dd></dl>

<p>References <a class="el" href="struct__Evas__Smart__Class.html#a34b0476dfa714dff39812ed72636005f">_Evas_Smart_Class::name</a>, and <a class="el" href="struct__Evas__Smart__Class.html#a4b009bf8125551b4bec8bc114756fc3e">_Evas_Smart_Class::parent</a>.</p>

</div>
</div>
<a class="anchor" id="ga2e93ee5ffcc0beec181cc640961ee3e6"></a><!-- doxytag: member="evas_object_smart.c::evas_object_smart_type_check_ptr" ref="ga2e93ee5ffcc0beec181cc640961ee3e6" args="(const Evas_Object *obj, const char *type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI Eina_Bool evas_object_smart_type_check_ptr </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__Evas__Object__Group.html#ga9e19e6dd1f517a0ba437c0114d3e7c97">Evas_Object</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks the Smart type of the object and its parents using pointer comparison. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">obj</td><td>the Evas_Object to check the type of </td></tr>
    <tr><td class="paramname">type</td><td>the type to check for. Must be the name pointer in the smart class used to create the object </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>EINA_TRUE if <em>obj</em> or any of its parents if of type <em>type</em>, EINA_FALSE otherwise </dd></dl>

<p>References <a class="el" href="struct__Evas__Smart__Class.html#a34b0476dfa714dff39812ed72636005f">_Evas_Smart_Class::name</a>, and <a class="el" href="struct__Evas__Smart__Class.html#a4b009bf8125551b4bec8bc114756fc3e">_Evas_Smart_Class::parent</a>.</p>

</div>
</div>
<a class="anchor" id="gaa30fa648297b723a73f28632d1dbec62"></a><!-- doxytag: member="evas_object_smart.c::evas_smart_objects_calculate" ref="gaa30fa648297b723a73f28632d1dbec62" args="(Evas *e)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">EAPI void evas_smart_objects_calculate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Evas__Canvas.html#ga5ff87cc4ce6bc43e3b640a6d37f73043">Evas</a> *&#160;</td>
          <td class="paramname"><em>e</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Call user provided calculate() and unset need_calculate on all objects. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">e</td><td>The canvas to calculate all objects in </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div>
 
 <div id="push"></div>
 </div> <!-- #content -->
  </div> <!-- .layout -->
 
 </div> <!-- #container -->
 
 
  <div id="footer">
    <table><tr>
      <td class="poweredby"><img src="doxygen.png"></td>
      <td class="copyright">Copyright &copy;2011 Enlightenment</td>
      <td class="generated">Docs generated Thu Jul 14 2011 20:45:33</td>
    </tr></table>
  </div>


</body>
</html>