\hypertarget{lua_script_8edc-example}{}\doxysection{lua\+\_\+script.\+edc}
This example shows the usage of lua scripting to create and animate some objects in the canvas.


\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{color\_classes \{}
\DoxyCodeLine{    color\_class \{ name: "test\_colour"; color: 255 255 255 255; \}}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{fonts \{}
\DoxyCodeLine{   font: "Vera.ttf" "default";}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{images \{}
\DoxyCodeLine{    image: "bubble.png" COMP;}
\DoxyCodeLine{    image: "test.png" COMP;}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{collections \{}
\DoxyCodeLine{   group \{}
\DoxyCodeLine{      name: "main";}
\DoxyCodeLine{      lua\_script\_only: 1;}
\DoxyCodeLine{      lua\_script \{}
\DoxyCodeLine{         -\/-\/// stick object private/local vars here}
\DoxyCodeLine{         local D;}
\DoxyCodeLine{         local count = 0;}
\DoxyCodeLine{         local fndata = 99;}
\DoxyCodeLine{         local text\_geom;}
\DoxyCodeLine{}
\DoxyCodeLine{         -\/-\/// Functions to print tables.}
\DoxyCodeLine{         local print\_table, print\_table\_start;}
\DoxyCodeLine{}
\DoxyCodeLine{         function print\_table\_start(table, space, name)}
\DoxyCodeLine{            print(space .. name .. ": ");}
\DoxyCodeLine{            print(space .. "\{");}
\DoxyCodeLine{            print\_table(table, space .. "  ");}
\DoxyCodeLine{            print(space .. "\}");}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         function print\_table(table, space)}
\DoxyCodeLine{            for k, v in pairs(table) do }
\DoxyCodeLine{               if type(v) == "table" then}
\DoxyCodeLine{                  print\_table\_start(v, space, k);}
\DoxyCodeLine{               elseif type(v) == "string" then}
\DoxyCodeLine{                  print(space .. k .. ': "' .. v .. '";')}
\DoxyCodeLine{               else}
\DoxyCodeLine{                  print(space .. k .. ": " .. v .. ";")}
\DoxyCodeLine{               end}
\DoxyCodeLine{            end}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         local function mycb3 (v)}
\DoxyCodeLine{            print("lua::callback transition " .. D.val .. " v: " .. v);}
\DoxyCodeLine{            d = \{\};}
\DoxyCodeLine{            d = edje.size(d);}
\DoxyCodeLine{            print("lua::objsize= " .. d.w .. " , " .. d.h);}
\DoxyCodeLine{            sz = \{w=v * 80, h=v * 40\};}
\DoxyCodeLine{            D.rect:geom(((d.w / 2) * math.sin(v * 2 * math.pi)) + ((d.w -\/ sz.w) / 2),}
\DoxyCodeLine{                        ((d.h / 2) * math.cos(v * 2 * math.pi)) + ((d.h -\/ sz.h) / 2),}
\DoxyCodeLine{                        sz.w, sz.h);}
\DoxyCodeLine{            D.rect:color(255, 128, v * 255, 255);}
\DoxyCodeLine{            d = D.rect:move(d);}
\DoxyCodeLine{            print("lua::pos= " .. d.x .. " , " .. d.y);}
\DoxyCodeLine{ }
\DoxyCodeLine{            r = D.rect:above();}
\DoxyCodeLine{            if (r ~= nil) then}
\DoxyCodeLine{               print("lua::rcol");}
\DoxyCodeLine{               r:color(20, v * 255, 60, 255);}
\DoxyCodeLine{            else}
\DoxyCodeLine{               print("lua::r none!!!!!!!!!!!!!!1");}
\DoxyCodeLine{            end}
\DoxyCodeLine{            d = edje.size();}
\DoxyCodeLine{            D.clip:geom(10, 10, d.w -\/ 20, d.h -\/ 20);}
\DoxyCodeLine{            c = D.clip:clipees();}
\DoxyCodeLine{            for i=1,\#c,1 do}
\DoxyCodeLine{               d = c[i]:geom();}
\DoxyCodeLine{               print("lua::" .. i .. " geom = " .. d.x .. "," .. d.y .. " " .. d.w .. "x" .. d.h);}
\DoxyCodeLine{            end}
\DoxyCodeLine{            return true;  -\/-\/// repeat the timer}
\DoxyCodeLine{         end}
\DoxyCodeLine{ }
\DoxyCodeLine{         local function mycb2 ()}
\DoxyCodeLine{            print("lua::callback animator " .. count .. " seconds: " .. edje.seconds() .. " looptime: " .. edje.looptime());}
\DoxyCodeLine{            edje.color\_class("test\_colour", 255, (count * 10) \% 255, 255, 255);}
\DoxyCodeLine{            edje.text\_class("test\_text\_class", "Sans:style=Bold", ((count * 3) \% 100) + 8);}
\DoxyCodeLine{            if (5 > (count \% 10)) then}
\DoxyCodeLine{               D.text:font("default", 32);}
\DoxyCodeLine{            else}
\DoxyCodeLine{               D.text:font("Sans:style=Bold", 32);}
\DoxyCodeLine{            end}
\DoxyCodeLine{            edje\_geom = edje.geom();}
\DoxyCodeLine{            text\_geom = D.text:geom();}
\DoxyCodeLine{            D.text:move((edje\_geom.w -\/ text\_geom.w) / 2, (edje\_geom.h -\/ text\_geom.h) / 8);}
\DoxyCodeLine{            return true;  -\/-\/// repeat the timer}
\DoxyCodeLine{         end}
\DoxyCodeLine{ }
\DoxyCodeLine{         local function mycb ()}
\DoxyCodeLine{            print("lua::callback timer " .. count .. " fndata = " .. fndata);}
\DoxyCodeLine{            count = count + 1; -\/-\/// keep count of calls -\/ object data}
\DoxyCodeLine{            fndata = fndata + 3; -\/-\/// play with object vars to see if they persist}
\DoxyCodeLine{            D.tim = edje.timer(0.25, mycb); -\/-\/// inside cb add new timer}
\DoxyCodeLine{            return false; -\/-\/// cease repeating the timer}
\DoxyCodeLine{         end}
\DoxyCodeLine{ }
\DoxyCodeLine{         -\/-\/// init object here}
\DoxyCodeLine{         D = \{\}; -\/-\/// data is empty table to start}
\DoxyCodeLine{         D.val = math.random(); -\/-\/// start with some random value so}
\DoxyCodeLine{         fndata = fndata + D.val; -\/-\/// func data start point}
\DoxyCodeLine{         print("lua::init ... " .. D.val);}
\DoxyCodeLine{         edje.echo("lua::echo('hello world')");}
\DoxyCodeLine{}
\DoxyCodeLine{         -\/-\/// How to check the edje version.}
\DoxyCodeLine{         version = edje.version();}
\DoxyCodeLine{         print("The edje version number is " .. version.major .. "." .. version.minor);}
\DoxyCodeLine{}
\DoxyCodeLine{         -\/-\/// actually add the timer to call mycb in 1.23 sec}
\DoxyCodeLine{         D.tim = edje.timer(1.23, mycb);}
\DoxyCodeLine{         D.tra = edje.transition(5.0, mycb3);}
\DoxyCodeLine{         D.ani = edje.animator(mycb2);}
\DoxyCodeLine{         edje\_geom = edje.geom();}
\DoxyCodeLine{ }
\DoxyCodeLine{         if (edje.spanky) then edje.spanky(); end}
\DoxyCodeLine{}
\DoxyCodeLine{         local date = edje.date();}
\DoxyCodeLine{         print("lua:: date: " ..}
\DoxyCodeLine{            date.year .. "|" ..}
\DoxyCodeLine{            date.month .. "|" ..}
\DoxyCodeLine{            date.day .. "|" ..}
\DoxyCodeLine{            date.yearday .. "|" ..}
\DoxyCodeLine{            date.weekday .. "|" ..}
\DoxyCodeLine{            date.hour .. "|" ..}
\DoxyCodeLine{            date.min .. "|" ..}
\DoxyCodeLine{            date.sec}
\DoxyCodeLine{         );}
\DoxyCodeLine{}
\DoxyCodeLine{         -\/-\/// send some random edje message}
\DoxyCodeLine{         edje.messagesend(7, "none"      );}
\DoxyCodeLine{         edje.messagesend(7, "sig",      "signal", "source");}
\DoxyCodeLine{         edje.messagesend(7, "str",      "hello world");}
\DoxyCodeLine{         edje.messagesend(7, "int",      987);}
\DoxyCodeLine{         edje.messagesend(7, "float",    987.321);}
\DoxyCodeLine{         edje.messagesend(7, "strset",   \{"hello", "there", "world"\});}
\DoxyCodeLine{         edje.messagesend(7, "intset",   \{1, 2, 3\});}
\DoxyCodeLine{         edje.messagesend(7, "floatset", \{1.1, 2.2, 3.3\});}
\DoxyCodeLine{         edje.messagesend(7, "strint",   "hello world", 7);}
\DoxyCodeLine{         edje.messagesend(7, "strfloat", "hello world", 7.654);}
\DoxyCodeLine{         edje.messagesend(7, "strintset","hello world", \{1, 2, 3\});}
\DoxyCodeLine{}
\DoxyCodeLine{         D.edje = edje.edje();}
\DoxyCodeLine{         D.edje:file("plain/edje/group");}
\DoxyCodeLine{         D.edje:show();}
\DoxyCodeLine{                  }
\DoxyCodeLine{         D.rect = edje.rect();}
\DoxyCodeLine{         D.rect:geom  (5, 10, 50, 30);}
\DoxyCodeLine{         D.rect:color (255, 128, 60, 255);}
\DoxyCodeLine{         D.rect:show  ();}
\DoxyCodeLine{                  }
\DoxyCodeLine{         D.rect2 = edje.rect();}
\DoxyCodeLine{         D.rect2:geom  (50, 50, 50, 50);}
\DoxyCodeLine{         D.rect2:color (20, 30, 60, 120);}
\DoxyCodeLine{         D.rect2:show  ();}
\DoxyCodeLine{}
\DoxyCodeLine{         D.clip = edje.rect();}
\DoxyCodeLine{         D.clip:geom  (10, 10, 150, 150);}
\DoxyCodeLine{         D.clip:color (200, 200, 50, 200);}
\DoxyCodeLine{         D.clip:show  ();}
\DoxyCodeLine{ }
\DoxyCodeLine{         D.rect2:clip(D.clip);}
\DoxyCodeLine{         D.rect:clip(D.clip);}
\DoxyCodeLine{}
\DoxyCodeLine{         D.text = edje.text();}
\DoxyCodeLine{         D.text:geom  (50, 5, 150, 50);}
\DoxyCodeLine{         D.text:color (255, 0, 0, 255);}
\DoxyCodeLine{         D.text:font("Sans:style=Bold", 32);}
\DoxyCodeLine{         D.text:text("Lua rocks!");}
\DoxyCodeLine{         text\_geom = D.text:geom();}
\DoxyCodeLine{         print(D.text:text());}
\DoxyCodeLine{         D.text:show();}
\DoxyCodeLine{}
\DoxyCodeLine{        -\/-\/// Put a few bogus API calls here to test the bogus API protection,}
\DoxyCodeLine{        -\/-\/// If the bogus API protection works, these should get ignored, but everything else runs smoothly.}
\DoxyCodeLine{        -\/-\/// Otherwise, the map is not done, the bubbles are not done, but the timers keep runinng.}
\DoxyCodeLine{         bogus.failme(1, "two", D.rect);}
\DoxyCodeLine{         temp = bogus.failme2();}
\DoxyCodeLine{         D.text.bogus();}
\DoxyCodeLine{         edje.bogus2();}
\DoxyCodeLine{}
\DoxyCodeLine{         -\/-\/// Fun with maps!}
\DoxyCodeLine{         D.map = edje.map(4);  -\/-\/// 4 is the only supported map size at the moment.}
\DoxyCodeLine{         -\/-\/// These all do the same thing.}
\DoxyCodeLine{         -\/-\/// Note, lua likes to start at 1, C (and thus evas) at 0.  I choose to agree with C.}
\DoxyCodeLine{         D.map:coord(0, 50, 50, 0);}
\DoxyCodeLine{         D.map:coord(1, 100, 50, 0);}
\DoxyCodeLine{         D.map:coord(2, 100, 100, 0);}
\DoxyCodeLine{         D.map:coord(3, 50, 100, 0);}
\DoxyCodeLine{         D.map:populate(50, 50, 50, 50, 0);}
\DoxyCodeLine{         D.map:populate(D.rect2, 0);}
\DoxyCodeLine{         D.map:populate(D.rect2);}
\DoxyCodeLine{}
\DoxyCodeLine{         -\/-\/// print the results}
\DoxyCodeLine{         D.coord = D.map:coord(0);}
\DoxyCodeLine{         print("lua::map coords for point 0 x=" .. D.coord.x .. " y=" .. D.coord.y .. " z=" .. D.coord.z);}
\DoxyCodeLine{         D.coord = D.map:coord(1);}
\DoxyCodeLine{         print("lua::map coords for point 1 x=" .. D.coord.x .. " y=" .. D.coord.y .. " z=" .. D.coord.z);}
\DoxyCodeLine{         D.coord = D.map:coord(2);}
\DoxyCodeLine{         print("lua::map coords for point 2 x=" .. D.coord.x .. " y=" .. D.coord.y .. " z=" .. D.coord.z);}
\DoxyCodeLine{         D.coord = D.map:coord(3);}
\DoxyCodeLine{         print("lua::map coords for point 3 x=" .. D.coord.x .. " y=" .. D.coord.y .. " z=" .. D.coord.z);}
\DoxyCodeLine{}
\DoxyCodeLine{         D.map:smooth(false);}
\DoxyCodeLine{         D.map:alpha(true);}
\DoxyCodeLine{}
\DoxyCodeLine{         if (D.map:alpha()) then}
\DoxyCodeLine{            print("lua::map is alpha");}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         if (D.map:smooth()) then}
\DoxyCodeLine{            print("lua::map is smooooth");}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         if (D.map:clockwise()) then}
\DoxyCodeLine{            print("lua::map is clockwise");}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         D.map:color(255, 255, 255, 255); // set all points to this colour.}
\DoxyCodeLine{         D.map:color(1, 255, 0, 255, 255);  // set just one point to this colour.}
\DoxyCodeLine{}
\DoxyCodeLine{         D.map:lighting(75, 75, 10, 255, 255, 255, 0, 255, 0);  // Ambient light and a 3D light source.}
\DoxyCodeLine{}
\DoxyCodeLine{         -\/-\/// Toss it around.}
\DoxyCodeLine{         D.map:rotate(45.0, 75, 75);}
\DoxyCodeLine{         D.map:zoom(1.5, 1.5, 75, 75);}
\DoxyCodeLine{         D.map:rotate3d(10.0, 20.0, 30.0, 75, 75, 0);}
\DoxyCodeLine{         D.map:perspective(200, 200, 0, 20);}
\DoxyCodeLine{}
\DoxyCodeLine{         -\/-\/// For image UV mapping.}
\DoxyCodeLine{         D.map:uv(0, 0.0, 0.0);}
\DoxyCodeLine{         D.map:uv(1, 50.0, 0.0);}
\DoxyCodeLine{         D.map:uv(2, 50.0, 50.0);}
\DoxyCodeLine{         D.map:uv(3, 0.0, 50.0);}
\DoxyCodeLine{}
\DoxyCodeLine{         -\/-\/// Actually apply the resulting transformations.}
\DoxyCodeLine{         D.rect2:map(D.map);}
\DoxyCodeLine{         D.rect2:map\_enable(true);}
\DoxyCodeLine{         if (D.rect2:map\_enable()) then}
\DoxyCodeLine{            print("lua::map enabled");}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         D.rect2:map\_source(D.rect);  -\/-\/// Don't think this is actually implemented in evas.}
\DoxyCodeLine{}
\DoxyCodeLine{-\/-\///         D.map:dup();}
\DoxyCodeLine{-\/-\///         D.map:size();  -\/-\/// perhaps overide the \# operator?  For now it's only gonna return 4 anyway.}
\DoxyCodeLine{}
\DoxyCodeLine{         -\/-\/// example of deleting something}
\DoxyCodeLine{         -\/-\/// D.tim:del();}
\DoxyCodeLine{}
\DoxyCodeLine{         -\/-\/// test the color\_class stuff}
\DoxyCodeLine{         colour = edje.color\_class("test\_colour");}
\DoxyCodeLine{         print("lua::color\_class= " .. colour.r .. "," .. colour.g .. "," .. colour.b .. "," .. colour.a);}
\DoxyCodeLine{         colour = edje.color\_class("test\_colour", 32, 64, 255, 128);}
\DoxyCodeLine{         print("lua::color\_class= " .. colour.r .. "," .. colour.g .. "," .. colour.b .. "," .. colour.a);}
\DoxyCodeLine{         colour = edje.color\_class("test\_colour", \{ r=255, g=0, b=255, a=255 \});}
\DoxyCodeLine{         print("lua::color\_class= " .. colour.r .. "," .. colour.g .. "," .. colour.b .. "," .. colour.a);}
\DoxyCodeLine{         text = edje.text\_class("test\_text\_class", "Sans:style=Bold", 8);}
\DoxyCodeLine{         print("lua::text\_class= " .. text.font .. " size " .. text.size);}
\DoxyCodeLine{ }
\DoxyCodeLine{         -\/-\/// Do something bad, just to see what happens.}
\DoxyCodeLine{-\/-\///         edje.color\_class(nil);}
\DoxyCodeLine{ }
\DoxyCodeLine{         -\/-\/// shutdown func -\/ generally empty or not there. everything garbage collected for you}
\DoxyCodeLine{         function shutdown ()}
\DoxyCodeLine{            print("lua::shutdown ... " .. D.val);}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         function show ()}
\DoxyCodeLine{            print("lua::show ... " .. D.val);}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         function hide ()}
\DoxyCodeLine{            print("lua::hide ... " .. D.val);}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         function move (x, y)}
\DoxyCodeLine{            print("lua::move x=" .. x .. " x=" .. y);}
\DoxyCodeLine{            D.edje:move(0, 0);}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         function resize (w, h)}
\DoxyCodeLine{            print("lua::resize w=" .. w .. " h=" .. h);}
\DoxyCodeLine{            D.text:move((w -\/ text\_geom.w) / 2, (h -\/ text\_geom.h) / 8);}
\DoxyCodeLine{            D.edje:resize(w, h);}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         function message (id, type, ...)}
\DoxyCodeLine{            print("lua::message id=" .. id .. " type=" .. type);}
\DoxyCodeLine{            -\/-\/// handle your message type here. check id + type then use the}
\DoxyCodeLine{            -\/-\/// vararg appropriately. they are the same as the params passed }
\DoxyCodeLine{            -\/-\/// to edje:messagesend() (if any are passed at all).  Any array}
\DoxyCodeLine{            -\/-\/// arguments are passed as a single table.}
\DoxyCodeLine{}
\DoxyCodeLine{            if ("none" == type) then}
\DoxyCodeLine{               print("lua::message no args");}
\DoxyCodeLine{            elseif ("strset" == type) then}
\DoxyCodeLine{               strs = ... ;}
\DoxyCodeLine{               print\_table\_start(strs, "", "lua::message strings");}
\DoxyCodeLine{            elseif ("intset" == type) then}
\DoxyCodeLine{               ints = ... ;}
\DoxyCodeLine{               print\_table\_start(ints, "", "lua::message ints");}
\DoxyCodeLine{            elseif ("floatset" == type) then}
\DoxyCodeLine{               floats = ... ;}
\DoxyCodeLine{               print\_table\_start(floats, "", "lua::message floats");}
\DoxyCodeLine{            elseif ("strintset" == type) then}
\DoxyCodeLine{               str, ints = ... ;}
\DoxyCodeLine{               print("lua::message " .. str);}
\DoxyCodeLine{               print\_table\_start(ints, "", "lua::message ints");}
\DoxyCodeLine{            elseif ("strfloatset" == type) then}
\DoxyCodeLine{               str, floats = ... ;}
\DoxyCodeLine{               print("lua::message " .. str);}
\DoxyCodeLine{               print\_table\_start(floats, "", "lua::message floats");}
\DoxyCodeLine{            else}
\DoxyCodeLine{               print("lua::message " .. ... );}
\DoxyCodeLine{            end}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         function signal (sig, src)}
\DoxyCodeLine{            print("lua::signal sig= " .. sig .. " src= " .. src);}
\DoxyCodeLine{         end}
\DoxyCodeLine{      \}}
\DoxyCodeLine{   \}}
\DoxyCodeLine{}
\DoxyCodeLine{   // The group name NEEDS a / in it, }
\DoxyCodeLine{   // or the part below that tries to swallow it won't work.}
\DoxyCodeLine{   // Leaving just the lua part visible.}
\DoxyCodeLine{   group \{}
\DoxyCodeLine{      name: "bubbles/lua";}
\DoxyCodeLine{      lua\_script\_only: 1;}
\DoxyCodeLine{      lua\_script \{}
\DoxyCodeLine{         local bubbles = \{ \};}
\DoxyCodeLine{         local bubbleCols = 8;}
\DoxyCodeLine{         local bubbleRows = 6;}
\DoxyCodeLine{}
\DoxyCodeLine{         for i = 1, bubbleRows do}
\DoxyCodeLine{            row = \{ \};}
\DoxyCodeLine{            for j = 1, bubbleCols do}
\DoxyCodeLine{               image = edje.image();}
\DoxyCodeLine{               image:image("bubble.png");}
\DoxyCodeLine{               image:show();}
\DoxyCodeLine{               table.insert(row, image);}
\DoxyCodeLine{            end}
\DoxyCodeLine{            table.insert(bubbles, row);}
\DoxyCodeLine{         end}
\DoxyCodeLine{}
\DoxyCodeLine{         function resize (w, h)}
\DoxyCodeLine{            for i = 1, bubbleRows do}
\DoxyCodeLine{               for j = 1, bubbleCols do}
\DoxyCodeLine{                  w1 = w / bubbleCols;}
\DoxyCodeLine{                  h1 = h / bubbleRows;}
\DoxyCodeLine{                  bubbles[i][j]:geom((j -\/ 1) * w1, (i -\/ 1) * h1, w1, h1);}
\DoxyCodeLine{                  if ((1 == i) or (1 == j) or (bubbleRows == i) or (bubbleCols == j)) then}
\DoxyCodeLine{                     bubbles[i][j]:color(0, 255, 0, 200);}
\DoxyCodeLine{                  else}
\DoxyCodeLine{                     bubbles[i][j]:color(math.random(200) + 55, 0, math.random(255) + 55, 200);}
\DoxyCodeLine{                  end}
\DoxyCodeLine{               end}
\DoxyCodeLine{            end}
\DoxyCodeLine{         end}
\DoxyCodeLine{      \}}
\DoxyCodeLine{   \}}
\DoxyCodeLine{}
\DoxyCodeLine{   group \{}
\DoxyCodeLine{      name: "plain/edje/group";}
\DoxyCodeLine{      parts \{}
\DoxyCodeLine{         part \{}
\DoxyCodeLine{            name: "background";}
\DoxyCodeLine{            type: RECT;}
\DoxyCodeLine{            mouse\_events: 0;}
\DoxyCodeLine{            description \{}
\DoxyCodeLine{               state: "default" 0.0;}
\DoxyCodeLine{               color: 0 0 0 255;}
\DoxyCodeLine{            \}}
\DoxyCodeLine{         \}}
\DoxyCodeLine{}
\DoxyCodeLine{         // A lua group embedded in an edje group.}
\DoxyCodeLine{         part \{}
\DoxyCodeLine{            name: "bubbles\_lua";}
\DoxyCodeLine{            type: GROUP;}
\DoxyCodeLine{            source: "bubbles/lua";}
\DoxyCodeLine{            mouse\_events: 0;}
\DoxyCodeLine{            description \{ state: "default" 0.0; \}}
\DoxyCodeLine{         \}}
\DoxyCodeLine{}
\DoxyCodeLine{         part \{}
\DoxyCodeLine{            name: "background\_image";}
\DoxyCodeLine{            type: IMAGE;}
\DoxyCodeLine{            mouse\_events: 0;}
\DoxyCodeLine{            description \{}
\DoxyCodeLine{               state: "default" 0.0;}
\DoxyCodeLine{               aspect\_preference: HORIZONTAL;}
\DoxyCodeLine{               color\_class: "test\_colour";}
\DoxyCodeLine{               image \{ normal: "test.png"; \}}
\DoxyCodeLine{            \}}
\DoxyCodeLine{         \}}
\DoxyCodeLine{}
\DoxyCodeLine{         part \{}
\DoxyCodeLine{            name: "some\_text";}
\DoxyCodeLine{            type: TEXT;}
\DoxyCodeLine{            mouse\_events: 0;}
\DoxyCodeLine{            description \{}
\DoxyCodeLine{               state: "default" 0;}
\DoxyCodeLine{               text}
\DoxyCodeLine{               \{}
\DoxyCodeLine{                  text: "This is test text.";}
\DoxyCodeLine{                  text\_class: "test\_text\_class";}
\DoxyCodeLine{               \}}
\DoxyCodeLine{            \}}
\DoxyCodeLine{         \}}
\DoxyCodeLine{}
\DoxyCodeLine{      \}}
\DoxyCodeLine{   \}}
\DoxyCodeLine{}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\end{DoxyCodeInclude}
 