[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: primitive graphics application
- From: steve donovan <steve.j.donovan@...>
- Date: Mon, 4 May 2009 11:06:21 +0200
On Mon, May 4, 2009 at 7:15 AM, Dave Smead <smead@amplepower.com> wrote:
> My immediate interest is using Lua to access graphics primitives such as
> draw-line, draw-circle, draw-arc, etc
wxLua is probably a good fit. A simple GUI program with graphics
primitives is really straightforward, very portable. (This was tested
using wxLua bundled with Lua For Windows)
steve d.
------------------------------------------------------------------------------------------
-- draw.wlua (based on Minimal.wx.wlua from LfW)
-- Load the wxLua module, does nothing if running from wxLua,
wxLuaFreeze, or wxLuaEdit
require("wx")
frame = nil
-- paint event handler for the frame that's called by wxEVT_PAINT
function OnPaint(event)
-- must always create a wxPaintDC in a wxEVT_PAINT handler
local dc = wx.wxPaintDC(panel)
-- call some drawing functions
dc:DrawRectangle(10, 10, 300, 300);
dc:DrawRoundedRectangle(20, 20, 280, 280, 20);
dc:DrawEllipse(30, 30, 260, 260);
dc:DrawText("A test string", 50, 150);
-- the paint DC will be automatically destroyed by the garbage collector,
-- however on Windows 9x/Me this may be too late (DC's are
precious resource)
-- so delete it here
dc:delete() -- ALWAYS delete() any wxDCs created when done
end
frame = wx.wxFrame( wx.NULL, -- no parent for toplevel windows
wx.wxID_ANY, -- don't need a wxWindow ID
"wxLua Draw Demo", -- caption on the frame
wx.wxDefaultPosition, -- let system place the frame
wx.wxSize(450, 450), -- set the size of the frame
wx.wxDEFAULT_FRAME_STYLE ) -- use default frame styles
panel = wx.wxPanel(frame, wx.wxID_ANY)
-- connect the paint event handler function with the paint event
panel:Connect(wx.wxEVT_PAINT, OnPaint)
frame:Show(true)
wx.wxGetApp():MainLoop()
---------------------------------------------------------------