Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 0e77bba279395d1c9e1f98c452d3b010 > files > 180

edje-devel-1.0.0-2.fc15.i686.rpm

<html>
<head>
    <title>Edje: lua_script.edc</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>lua_script.edc</h1>  </div>
</div>
<div class="contents">
<p>This example show the usage of lua scripting to create and animate some objects in the canvas.</p>
<div class="fragment"><pre class="fragment">collections {
   group { <a name="a0"></a><a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;example&quot;</span>;
      lua_script_only: 1;
      lua_script {
         --<span class="comment">// stick object private/local vars here</span>
         local D;
         local count = 0;
         local fndata = 99;
 
         local function mycb3 (v)
            print(<span class="stringliteral">&quot;lua::callback transition &quot;</span> .. D.val .. <span class="stringliteral">&quot; v: &quot;</span> .. v);
            d = {};
            edje.size(d);
            print(<span class="stringliteral">&quot;lua::objsize= &quot;</span> .. d.w .. <span class="stringliteral">&quot; , &quot;</span> .. d.h);
            sz = {w=v * 80, h=v * 40};
            D.rect:geom(((d.w / 2) * math.sin(v * 2 * math.pi)) + ((d.w - sz.w) / 2),
                        ((d.h / 2) * math.cos(v * 2 * math.pi)) + ((d.h - sz.h) / 2),
                        sz.w, sz.h);
            D.rect:color(255, 128, v * 255, 255);
            D.rect:move(d);
            print(<span class="stringliteral">&quot;lua::pos= &quot;</span> .. d.x .. <span class="stringliteral">&quot; , &quot;</span> .. d.y);
 
            r = D.rect:above();
            <span class="keywordflow">if</span> (r ~= nil) then
               print(<span class="stringliteral">&quot;lua::rcol&quot;</span>);
               r:color(20, v * 255, 60, 255);
            <span class="keywordflow">else</span>
               print(<span class="stringliteral">&quot;lua::r none!!!!!!!!!!!!!!1&quot;</span>);
            end
            d = edje.size();
            D.clip:geom(10, 10, d.w - 20, d.h - 20);
            c = D.clip:clipees();
            <span class="keywordflow">for</span> i=1,table.getn(c),1 <span class="keywordflow">do</span>
               d = c[i]:geom();
               print(<span class="stringliteral">&quot;lua::&quot;</span> .. i .. <span class="stringliteral">&quot; geom = &quot;</span> .. d.x .. <span class="stringliteral">&quot;,&quot;</span> .. d.y .. <span class="stringliteral">&quot; &quot;</span> .. d.w .. <span class="stringliteral">&quot;x&quot;</span> .. d.h);
            end
            <span class="keywordflow">return</span> <span class="keyword">true</span>;  --<span class="comment">// repeat the timer</span>
         end
 
         local function mycb2 ()
            print(<span class="stringliteral">&quot;lua::callback animator &quot;</span> .. count);
            print(<span class="stringliteral">&quot;lua:: seconds: &quot;</span> .. edje.seconds());
            print(<span class="stringliteral">&quot;lua:: looptime: &quot;</span> .. edje.looptime());
            local date = edje.date();
            print(<span class="stringliteral">&quot;lua:: date: &quot;</span> ..
                  date.year .. <span class="stringliteral">&quot;|&quot;</span> ..
                  date.month .. <span class="stringliteral">&quot;|&quot;</span> ..
                  date.day .. <span class="stringliteral">&quot;|&quot;</span> ..
                  date.yearday .. <span class="stringliteral">&quot;|&quot;</span> ..
                  date.weekday .. <span class="stringliteral">&quot;|&quot;</span> ..
                  date.hour .. <span class="stringliteral">&quot;|&quot;</span> ..
                  date.min .. <span class="stringliteral">&quot;|&quot;</span> ..
                  date.sec
                 );
            <span class="keywordflow">return</span> <span class="keyword">true</span>;  --<span class="comment">// repeat the timer</span>
         end
 
         local function mycb ()
            print(<span class="stringliteral">&quot;lua::callback &quot;</span> .. count .. <span class="stringliteral">&quot; fndata = &quot;</span> .. fndata);
            count = count + 1; --<span class="comment">// keep count of calls - object data</span>
            fndata = fndata + 3; --<span class="comment">// play with object vars to see if they persist</span>
            D.tim = edje.timer(0.25, mycb); --<span class="comment">// inside cb add new timer</span>
            D.ani = edje.animator(mycb2);
            <span class="keywordflow">return</span> <span class="keyword">false</span>; --<span class="comment">// cease repeating the timer</span>
         end
 
         --<span class="comment">// init object here</span>
         D = {}; --<span class="comment">// data is empty table to start</span>
         D.val = math.random(); --<span class="comment">// start with some random value so</span>
         fndata = fndata + D.val; --<span class="comment">// func data start point</span>
         print(<span class="stringliteral">&quot;lua::init ... &quot;</span> .. D.val);
         edje.echo(<span class="stringliteral">&quot;lua::echo(&#39;hello world&#39;)&quot;</span>);

         --<span class="comment">// actually add the timer to call mycb in 1.23 sec</span>
         D.tim = edje.timer(1.23, mycb);
         D.tra = edje.transition(5.0, mycb3);
 
         <span class="keywordflow">if</span> (edje.spanky) then edje.spanky(); end

         --<span class="comment">// send some random edje message</span>
         edje.messagesend(7, <span class="stringliteral">&quot;none&quot;</span>      );
         edje.messagesend(7, <span class="stringliteral">&quot;sig&quot;</span>,      <span class="stringliteral">&quot;signal&quot;</span>, <span class="stringliteral">&quot;source&quot;</span>);
         edje.messagesend(7, <span class="stringliteral">&quot;str&quot;</span>,      <span class="stringliteral">&quot;hello world&quot;</span>);
         edje.messagesend(7, <span class="stringliteral">&quot;int&quot;</span>,      987);
         edje.messagesend(7, <span class="stringliteral">&quot;float&quot;</span>,    987.321);
         edje.messagesend(7, <span class="stringliteral">&quot;strset&quot;</span>,   {<span class="stringliteral">&quot;hello&quot;</span>, <span class="stringliteral">&quot;there&quot;</span>, <span class="stringliteral">&quot;world&quot;</span>});
         edje.messagesend(7, <span class="stringliteral">&quot;intset&quot;</span>,   {1, 2, 3});
         edje.messagesend(7, <span class="stringliteral">&quot;floatset&quot;</span>, {1.1, 2.2, 3.3});
         edje.messagesend(7, <span class="stringliteral">&quot;strint&quot;</span>,   <span class="stringliteral">&quot;hello world&quot;</span>, 7);
         edje.messagesend(7, <span class="stringliteral">&quot;strfloat&quot;</span>, <span class="stringliteral">&quot;hello world&quot;</span>, 7.654);
         edje.messagesend(7, <span class="stringliteral">&quot;strintset&quot;</span>,<span class="stringliteral">&quot;hello world&quot;</span>, {1, 2, 3});
                  
         D.rect = edje.rect();
         D.rect:geom  (5, 10, 50, 30);
         D.rect:color (255, 128, 60, 255);
         D.rect:show  ();
                  
         D.rect2 = edje.rect();
         D.rect2:geom  (50, 50, 50, 50);
         D.rect2:color (20, 30, 60, 120);
         D.rect2:show  ();

         D.clip = edje.rect();
         D.clip:geom  (10, 10, 150, 150);
         D.clip:color (200, 200, 50, 200);
         D.clip:show  ();
 
         D.rect2:clip(D.clip);
         D.rect:clip(D.clip);

         --<span class="comment">// example of deleting something</span>
         --<span class="comment">// D.tim:del();</span>
 
         --<span class="comment">// shutdown func - generally empty or not there. everything gcd for you</span>
         function shutdown ()
            print(<span class="stringliteral">&quot;lua::shutdown ... &quot;</span> .. D.val);
         end
         function show ()
            print(<span class="stringliteral">&quot;lua::show ... &quot;</span> .. D.val);
         end
         function hide ()
            print(<span class="stringliteral">&quot;lua::hide ... &quot;</span> .. D.val);
         end
         function move (x, y)
            print(<span class="stringliteral">&quot;lua::move ... &quot;</span> .. D.val);
            print(<span class="stringliteral">&quot;  x=&quot;</span> .. x .. <span class="stringliteral">&quot; x=&quot;</span> .. y);
         end
         function resize (w, h)
            print(<span class="stringliteral">&quot;lua::resize ... &quot;</span> .. D.val);
            print(<span class="stringliteral">&quot;  w=&quot;</span> .. w .. <span class="stringliteral">&quot; h=&quot;</span> .. h);
         end
         function message (<span class="keywordtype">id</span>, <a name="a1"></a><a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>, v1, v2)
            print(<span class="stringliteral">&quot;lua::message ... &quot;</span> .. D.val);
            print(<span class="stringliteral">&quot;  id=&quot;</span> .. <span class="keywordtype">id</span> .. <span class="stringliteral">&quot; type=&quot;</span> .. <a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>);
            --<span class="comment">// handle youre message type here. chekc id + type then use v1</span>
            --<span class="comment">// and/or v2 (or neither) appropriately. they are the same as</span>
            --<span class="comment">// the 2nd and 3rd param passed to edje.messagesend() (if any</span>
            --<span class="comment">// are passed at all)</span>
         end
         function signal (sig, src)
            print(<span class="stringliteral">&quot;lua::signal ... &quot;</span> .. D.val);
            print(<span class="stringliteral">&quot;  sig=&quot;</span> .. sig .. <span class="stringliteral">&quot; src=&quot;</span> .. src);
         end
      }
   }
}
</pre></div> </div>
</div>
 
 <div id="push"></div>
 </div> <!-- #content -->
  </div> <!-- .layout -->
 
 </div> <!-- #container -->
 
 
  <div id="footer">
    <table><tr>
      <td class="copyright">Copyright &copy;2011 Enlightenment</td>
      <td class="generated">Docs generated Tue Feb 8 2011 17:28:42</td>
    </tr></table>
  </div>


</body>
</html>