Hi,

(It seems I can post with this mail address)

In unittest you'll see following lines (at ~229):

a = wx.wxRect(1,2,3,4);
function a.Print(self) return string.format("%d,%d,%d,%d", self:GetX(), 
self:GetY(), self:GetWidth(), self:GetHeight()) end
PrintOk(a:Print() == "1,2,3,4", "Add a new lua function to an already 
created wx.wxRect")

I found that usage "trick" from the hard way :) I should have study 
samples carefully..


-- 
Regards,
Hakki Dogusan


-- 8< --[[ veryminimalframe.lua ]]-----------------------------------
local wx = wx
local setmetatable = setmetatable
local require = require
local module = module
local tostring = tostring
module"veryminimalframe"

local function SaySomethingElse(t, s)
     wx.wxMessageBox(tostring(t) .. "\n" ..
          "Hello again, " .. (s or ""),
          "wxLua", wx.wxOK, t)
end

local function create(parent, id, title, pos, size, style)
     local parent = parent or wx.NULL
     local id = id or wx.wxID_ANY
     local title = title or "wxLua Very Minimal Demo"
     local pos = pos or wx.wxDefaultPosition
     local size = size or wx.wxSize(450, 450)
     local style = style or wx.wxDEFAULT_FRAME_STYLE
     local frame = wx.wxFrame( parent, id, title, pos, size, style)
     -- attach some methods
     frame.SaySomething = function(t, s)
          wx.wxMessageBox(tostring(t) .. "\n" ..
             "Hello, " .. (s or "") .. "\n" ..
             t.m_var, "wxLua", wx.wxOK, t)
       end
     frame.SaySomethingElse = SaySomethingElse
     frame.m_var = ""
     return frame
end

-- simulate ctor
function __call(self, ...)
     return create(...)
end
setmetatable(_M, _M)

-- 8< --[[ application.lua ]]----------------------------------------
local wx = wx
local module = module
local setmetatable = setmetatable
local require = require
local module = module
module"application"

local function Run(t, ...)
     local VeryMinimalFrame = require"veryminimalframe"
     local fa = VeryMinimalFrame()
     local fb = VeryMinimalFrame(wx.NULL, -1, "Testing module")
     fa:Show(true)
     fb:Show(true)
     fa.m_var = "fa's member variable "
     fa:SaySomething("fa")
     fb:SaySomething("fb")
     fb:SaySomethingElse("fb")
     fa:Destroy()
     --commented to left something to see fb:Destroy()
end

local function create(...)
     local a = {}
     a.OnInit = Run
     return a
end

-- simulate ctor
function __call(self, ...)
     return create(...)
end
setmetatable(_M, _M)

-- 8< --[[ main.lua ]]-----------------------------------------------
local require = require
local App = require"application"
local a = App()
a:OnInit()
-- 8< --------------------------------------------------------------





-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
wxlua-users mailing list
wxlua-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxlua-users

Reply via email to