Project
Editor Theme:

	  
Execute Save
Clear Help
Edit Restart Pause
Copyright 2012 Two Lives Left Pty. Ltd. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Class.lua Compatible with Lua 5.1 (not 5.0).
function class(base) local c = {} -- a new class instance if type(base) == 'table' then -- our new class is a shallow copy of the base class! for i,v in pairs(base) do c[i] = v end c._base = base end -- the class will be the metatable for all its objects, -- and they will look up their methods in it. c.__index = c -- expose a constructor which can be called by <classname>(<args>) local mt = {} mt.__call = function(class_tbl, ...) local obj = {} setmetatable(obj,c) if class_tbl.init then class_tbl.init(obj,...) else -- make sure that any stuff from the base class is initialized! if base and base.init then base.init(obj, ...) end end return obj end c.is_a = function(self, klass) local m = getmetatable(self) while m do if m == klass then return true end m = m._base end return false end setmetatable(c, mt) return c end
local __parameter = parameter parameter = {} function parameter.text(t,n,i,f) local fn if type(f) == "function" then fn = function(a,b) f(b) end end __parameter.text(t,n,i,fn) end function parameter.watch(t,s) s = s or t local ufn = __parameter.watch(t) local fn = function() ufn(loadstring("return " .. s )()) end __parameter.watchfn(fn) end function parameter.colour(t,n,r,g,b,f) local c if not r or type(r) == "function" then c = colour() f = r elseif not g or type(g) == "function" then c = colour(r) f = g else c = colour(r,g,b) end local fn if type(f) == "function" then fn = function(a,b) f(b) end end __parameter.colour(t,n,c,fn) end parameter.color = parameter.colour function parameter.number(t,n,a,b,i,f) local fn if not a or type(a) == "function" then f = a a = 0 b = 1 i = 0 elseif not i or type(i) == "function" then f = i i = a end if type(f) == "function" then fn = function(a,b) f(b) end end __parameter.number(t,n,a,b,i,.001,fn) end function parameter.integer(t,n,a,b,i,f) local fn if not a or type(a) == "function" then f = a a = 0 b = 1 i = 0 elseif not i or type(i) == "function" then f = i i = a end if type(f) == "function" then fn = function(a,b) f(b) end end __parameter.number(t,n,a,b,i,1,fn) end function parameter.action(n,f) __parameter.action(n,f) end function parameter.boolean(t,n,i,f) local fn if not f and type(i) == "function" then f = i i = true end if i == nil then i = true end if type(f) == "function" then fn = function(a,b) f(b) end end __parameter.bool(t,n,i,fn) end function parameter.select(t,n,o,i,f) local fn if not f and type(i) == "function" then f = i i = o[1] end if type(f) == "function" then fn = function(a,b) f(b) end end __parameter.select(t,n,o,i,fn) end
function setup() print("hello world") end function draw() background(40,40,50) fill(150,200,30) stroke(200,30,150) strokeWidth(10) rect(20,20,100,100) end