From 28d7992ec74d3113e64ea15f6da12a77eedf75c6 Mon Sep 17 00:00:00 2001 From: davemds Date: Fri, 8 Oct 2010 20:14:14 +0000 Subject: [PATCH] Copy the lua script-only example (by raster) from edje doxy to doc/examples. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@53203 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- doc/examples/lua_script.edc | 146 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 doc/examples/lua_script.edc diff --git a/doc/examples/lua_script.edc b/doc/examples/lua_script.edc new file mode 100644 index 0000000..be0bafe --- /dev/null +++ b/doc/examples/lua_script.edc @@ -0,0 +1,146 @@ +collections { + group { name: "example"; + lua_script_only: 1; + lua_script { + --// stick object private/local vars here + local D; + local count = 0; + local fndata = 99; + + local function mycb3 (v) + print("lua::callback transition " .. D.val .. " v: " .. v); + d = {}; + edje.size(d); + print("lua::objsize= " .. d.w .. " , " .. 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("lua::pos= " .. d.x .. " , " .. d.y); + + r = D.rect:above(); + if (r ~= nil) then + print("lua::rcol"); + r:color(20, v * 255, 60, 255); + else + print("lua::r none!!!!!!!!!!!!!!1"); + end + d = edje.size(); + D.clip:geom(10, 10, d.w - 20, d.h - 20); + c = D.clip:clipees(); + for i=1,table.getn(c),1 do + d = c[i]:geom(); + print("lua::" .. i .. " geom = " .. d.x .. "," .. d.y .. " " .. d.w .. "x" .. d.h); + end + return true; --// repeat the timer + end + + local function mycb2 () + print("lua::callback animator " .. count); + print("lua:: seconds: " .. edje.seconds()); + print("lua:: looptime: " .. edje.looptime()); + local date = edje.date(); + print("lua:: date: " .. + date.year .. "|" .. + date.month .. "|" .. + date.day .. "|" .. + date.yearday .. "|" .. + date.weekday .. "|" .. + date.hour .. "|" .. + date.min .. "|" .. + date.sec + ); + return true; --// repeat the timer + end + + local function mycb () + print("lua::callback " .. count .. " fndata = " .. fndata); + count = count + 1; --// keep count of calls - object data + fndata = fndata + 3; --// play with object vars to see if they persist + D.tim = edje.timer(0.25, mycb); --// inside cb add new timer + D.ani = edje.animator(mycb2); + return false; --// cease repeating the timer + end + + --// init object here + D = {}; --// data is empty table to start + D.val = math.random(); --// start with some random value so + fndata = fndata + D.val; --// func data start point + print("lua::init ... " .. D.val); + edje.echo("lua::echo('hello world')"); + + --// actually add the timer to call mycb in 1.23 sec + D.tim = edje.timer(1.23, mycb); + D.tra = edje.transition(5.0, mycb3); + + if (edje.spanky) then edje.spanky(); end + + --// send some random edje message + edje.messagesend(7, "none" ); + edje.messagesend(7, "sig", "signal", "source"); + edje.messagesend(7, "str", "hello world"); + edje.messagesend(7, "int", 987); + edje.messagesend(7, "float", 987.321); + edje.messagesend(7, "strset", {"hello", "there", "world"}); + edje.messagesend(7, "intset", {1, 2, 3}); + edje.messagesend(7, "floatset", {1.1, 2.2, 3.3}); + edje.messagesend(7, "strint", "hello world", 7); + edje.messagesend(7, "strfloat", "hello world", 7.654); + edje.messagesend(7, "strintset","hello world", {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); + + --// example of deleting something + --// D.tim:del(); + + --// shutdown func - generally empty or not there. everything gcd for you + function shutdown () + print("lua::shutdown ... " .. D.val); + end + function show () + print("lua::show ... " .. D.val); + end + function hide () + print("lua::hide ... " .. D.val); + end + function move (x, y) + print("lua::move ... " .. D.val); + print(" x=" .. x .. " x=" .. y); + end + function resize (w, h) + print("lua::resize ... " .. D.val); + print(" w=" .. w .. " h=" .. h); + end + function message (id, type, v1, v2) + print("lua::message ... " .. D.val); + print(" id=" .. id .. " type=" .. type); + --// handle youre message type here. chekc id + type then use v1 + --// and/or v2 (or neither) appropriately. they are the same as + --// the 2nd and 3rd param passed to edje.messagesend() (if any + --// are passed at all) + end + function signal (sig, src) + print("lua::signal ... " .. D.val); + print(" sig=" .. sig .. " src=" .. src); + end + } + } +} -- 2.7.4