Sophie

Sophie

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

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

<html>
<head>
    <title>Edje: external_emotion_elm.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>external_emotion_elm.edc</h1>  </div>
</div>
<div class="contents">
<p>Super-concise video player example using Edje/Emotion/Elementary.</p>
<div class="fragment"><pre class="fragment"><span class="comment">/*</span>
<span class="comment"> Super-concise video player example using Edje/Emotion/Elementary.</span>
<span class="comment"></span>
<span class="comment"> This is all in Edje by means of type:EXTERNAL, you don&#39;t need any C</span>
<span class="comment"> code other than emotion and edje installed with edje_external</span>
<span class="comment"> support enabled.</span>
<span class="comment"></span>
<span class="comment"> Compile: edje_cc     external-emotion-elm.edc</span>
<span class="comment"> Run....: edje_player external-emotion-elm.edj</span>
<span class="comment"></span>
<span class="comment"> */</span>
collections {
   group { <a name="a0"></a><a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;main&quot;</span>;
      min: 350 200; <span class="comment">/* set a min window size */</span>

      externals { <span class="comment">/* declare the modules you want to load */</span>
         external: <span class="stringliteral">&quot;emotion&quot;</span>; <span class="comment">/* video player engine */</span>
         external: <span class="stringliteral">&quot;elm&quot;</span>; <span class="comment">/* toolkit/widgets */</span>
      }

      parts {
         part { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;bg&quot;</span>; <span class="comment">/* dark gray rectangle as background */</span>
            <a name="a1"></a><a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>: RECT;
            description { state: <span class="stringliteral">&quot;default&quot;</span> 0.0;
               color: 64 64 64 255;
            }
         }

         part { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;video&quot;</span>; <span class="comment">/* video object */</span>
            <a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>: EXTERNAL;
            source: <span class="stringliteral">&quot;emotion&quot;</span>;
            description { state: <span class="stringliteral">&quot;default&quot;</span> 0.0;
               params {
                  <span class="comment">/* explicitly select the emotion engine</span>
<span class="comment">                   * [&#39;xine&#39;, &#39;gstreamer&#39; or &#39;vlc&#39;]</span>
<span class="comment">                   * or comment the line to autoselect the engine */</span>
                  <span class="comment">// choice: &quot;engine&quot; &quot;gstreamer&quot;;</span>
               }
            }
         }

         part { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;title&quot;</span>;
            <a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>: TEXT;
            effect: SOFT_SHADOW;
            description { state: <span class="stringliteral">&quot;default&quot;</span> 0.0;
               color: 255 255 255 0;
               color3: 0 0 0 0;
               align: 0.5 0.0;
               rel1 {
                  relative: 0.0 0.0;
                  offset: 10 2;
               }
               rel2 {
                  relative: 1.0 0.0;
                  offset: -11 10;
               }
               text {
                  font: <span class="stringliteral">&quot;Sans:style=Bold&quot;</span>;
                  align: 0.5 0.0;
                  size: 10;
                  min: 0 1;
                  text: <span class="stringliteral">&quot;&quot;</span>;
               }
            }
            description { state: <span class="stringliteral">&quot;visible&quot;</span> 0.0;
               inherit: <span class="stringliteral">&quot;default&quot;</span> 0.0;
               color: 255 255 255 255;
               color3: 0 0 0 255;
            }
         }

         part { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;controls-clipper&quot;</span>; <span class="comment">/* clipper to control visibility */</span>
            <a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>: RECT;
            description { state: <span class="stringliteral">&quot;default&quot;</span> 0.0;
               color: 255 255 255 32;
            }
            description { state: <span class="stringliteral">&quot;visible&quot;</span> 0.0;
               color: 255 255 255 255;
            }
         }

         part { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;controls-bg&quot;</span>; <span class="comment">/* controls background as</span>
<span class="comment">                                        semi-transparent black at bottom edge */</span>
            <a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>: RECT;
            clip_to: <span class="stringliteral">&quot;controls-clipper&quot;</span>;
            description { state: <span class="stringliteral">&quot;default&quot;</span> 0.0;
               color: 0 0 0 128;
               rel1 {
                  relative: 0.0 1.0;
                  offset: 0 -40;
               }
               rel2 {
                  relative: 1.0 1.0;
                  offset: -1 -1;
               }
            }
         }

         part { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;play&quot;</span>; <span class="comment">/* play button at bottom-left (relative</span>
<span class="comment">                                to controls-bg) */</span>
            <a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>: EXTERNAL;
            source: <span class="stringliteral">&quot;elm/button&quot;</span>;
            clip_to: <span class="stringliteral">&quot;controls-clipper&quot;</span>;
            description { state: <span class="stringliteral">&quot;default&quot;</span> 0.0;
               rel1 {
                  relative: 0.0 0.0;
                  offset: 0 0;
                  to: <span class="stringliteral">&quot;controls-bg&quot;</span>;
               }
               rel2 {
                  relative: 0.0 1.0;
                  offset: 50 -1;
                  to: <span class="stringliteral">&quot;controls-bg&quot;</span>;
               }
               params.string: <span class="stringliteral">&quot;icon&quot;</span> <span class="stringliteral">&quot;apps&quot;</span>;
            }
         }

         part { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;open&quot;</span>; <span class="comment">/* open file button next to play button */</span>
            <a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>: EXTERNAL;
            source: <span class="stringliteral">&quot;elm/fileselector_button&quot;</span>;
            clip_to: <span class="stringliteral">&quot;controls-clipper&quot;</span>;
            description { state: <span class="stringliteral">&quot;default&quot;</span> 0.0;
               rel1 {
                  relative: 0.0 0.0;
                  offset: 52 0;
                  to: <span class="stringliteral">&quot;controls-bg&quot;</span>;
               }
               rel2 {
                  relative: 0.0 1.0;
                  offset: 102 -1;
                  to: <span class="stringliteral">&quot;controls-bg&quot;</span>;
               }
               params.string: <span class="stringliteral">&quot;icon&quot;</span> <span class="stringliteral">&quot;folder&quot;</span>;
            }
         }

         part { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;time&quot;</span>; <span class="comment">/* time/progress */</span>
            <a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>: EXTERNAL;
            source: <span class="stringliteral">&quot;elm/slider&quot;</span>;
            clip_to: <span class="stringliteral">&quot;controls-clipper&quot;</span>;
            description { state: <span class="stringliteral">&quot;default&quot;</span> 0.0;
               rel1 {
                  relative: 0.0 0.0;
                  offset: 104 0;
                  to: <span class="stringliteral">&quot;controls-bg&quot;</span>;
               }
               rel2 {
                  relative: 1.0 1.0;
                  offset: -1 -1;
                  to: <span class="stringliteral">&quot;controls-bg&quot;</span>;
               }
            }
         }

         part { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;controls-eventarea&quot;</span>; <span class="comment">/* event area so we catch mouse in</span>
<span class="comment">                                               and out, repeat events so</span>
<span class="comment">                                               buttons get them */</span>
            <a class="code" href="edje__data_8c.html#a0dae2edc8bfd2bedabfa38415c35f3ec">type</a>: RECT;
            repeat_events: 1;
            description {
               state: <span class="stringliteral">&quot;default&quot;</span> 0.0;
               color: 255 255 255 0; <span class="comment">/* fully transparent as we don&#39;t</span>
<span class="comment">                                        need any visual feedback */</span>
               rel1.to: <span class="stringliteral">&quot;controls-bg&quot;</span>;
               rel2.to: <span class="stringliteral">&quot;controls-bg&quot;</span>;
            }
         }

         programs {
            <span class="comment">/* animated 0.2 linear fade in/out if mouse is over controls */</span>
            program { signal: <span class="stringliteral">&quot;mouse,in&quot;</span>;
               source: <span class="stringliteral">&quot;controls-eventarea&quot;</span>;
               action: STATE_SET <span class="stringliteral">&quot;visible&quot;</span> 0.0;
               transition: LINEAR 0.2;
               target: <span class="stringliteral">&quot;controls-clipper&quot;</span>;
               target: <span class="stringliteral">&quot;title&quot;</span>;
            }
            program { signal: <span class="stringliteral">&quot;mouse,out&quot;</span>;
               source: <span class="stringliteral">&quot;controls-eventarea&quot;</span>;
               action: STATE_SET <span class="stringliteral">&quot;default&quot;</span> 0.0;
               transition: LINEAR 0.2;
               target: <span class="stringliteral">&quot;controls-clipper&quot;</span>;
               target: <span class="stringliteral">&quot;title&quot;</span>;
            }

            <span class="comment">/* toggle video playing state when play is clicked */</span>
            program { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;toggle-play-video&quot;</span>;
               signal: <span class="stringliteral">&quot;clicked&quot;</span>;
               source: <span class="stringliteral">&quot;play&quot;</span>;
               script {
                  <span class="keyword">new</span> v = external_param_get_bool(PART:<span class="stringliteral">&quot;video&quot;</span>, <span class="stringliteral">&quot;play&quot;</span>);
                  external_param_set_bool(PART:<span class="stringliteral">&quot;video&quot;</span>, <span class="stringliteral">&quot;play&quot;</span>, !v);
               }
            }

            <span class="comment">/* whenever file is chosen, set and play it */</span>
            program { signal: <span class="stringliteral">&quot;file,chosen&quot;</span>;
               source: <span class="stringliteral">&quot;open&quot;</span>;
               action: PARAM_COPY <span class="stringliteral">&quot;open&quot;</span> <span class="stringliteral">&quot;path&quot;</span> <span class="stringliteral">&quot;video&quot;</span> <span class="stringliteral">&quot;file&quot;</span>;
               after: <span class="stringliteral">&quot;play-video&quot;</span>;
               after: <span class="stringliteral">&quot;set-title&quot;</span>;
            }
            program { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;play-video&quot;</span>;
               action: PARAM_SET <span class="stringliteral">&quot;video&quot;</span> <span class="stringliteral">&quot;play&quot;</span> <span class="stringliteral">&quot;1&quot;</span>;
            }
            program { <a class="code" href="edje__data_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>: <span class="stringliteral">&quot;set-title&quot;</span>;
               action: PARAM_COPY <span class="stringliteral">&quot;open&quot;</span> <span class="stringliteral">&quot;path&quot;</span> <span class="stringliteral">&quot;title&quot;</span> <span class="stringliteral">&quot;text&quot;</span>;
            }

            <span class="comment">/* if position changes, set slider (time) */</span>
            program { signal: <span class="stringliteral">&quot;position_update&quot;</span>;
               source: <span class="stringliteral">&quot;video&quot;</span>;
               script {
                  <span class="keyword">new</span> Float:p, Float:len;

                  p = external_param_get_float(PART:<span class="stringliteral">&quot;video&quot;</span>, <span class="stringliteral">&quot;position&quot;</span>);
                  len = external_param_get_float(PART:<span class="stringliteral">&quot;video&quot;</span>, <span class="stringliteral">&quot;play_length&quot;</span>);
                  <span class="keywordflow">if</span> (len &gt; 0.0)
                     external_param_set_float(PART:<span class="stringliteral">&quot;time&quot;</span>, <span class="stringliteral">&quot;value&quot;</span>, p / len);
               }
            }

            <span class="comment">/* if slider (time) changes, set the position (seek) */</span>
            program { signal: <span class="stringliteral">&quot;changed&quot;</span>;
               source: <span class="stringliteral">&quot;time&quot;</span>;
               script {
                  <span class="keyword">new</span> Float:v, Float:len;

                  v = external_param_get_float(PART:<span class="stringliteral">&quot;time&quot;</span>, <span class="stringliteral">&quot;value&quot;</span>);
                  len = external_param_get_float(PART:<span class="stringliteral">&quot;video&quot;</span>, <span class="stringliteral">&quot;play_length&quot;</span>);
                  <span class="keywordflow">if</span> (len &gt; 0.0)
                     external_param_set_float(PART:<span class="stringliteral">&quot;video&quot;</span>, <span class="stringliteral">&quot;position&quot;</span>, v * len);
               }
            }
         }
      }
   }
}
</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>