Auto answering. I made a function (Collapsible) for getting what I wanted
////////////////////////
require("wx")
frame = nil
-- Generate a unique new wxWindowID
local ID_IDCOUNTER = wx.wxID_HIGHEST + 1
function NewID()
ID_IDCOUNTER = ID_IDCOUNTER + 1
return ID_IDCOUNTER
end
function main()
-- create the frame window
frame = wx.wxFrame( wx.NULL, wx.wxID_ANY, "wxLua Very Minimal Demo",
wx.wxDefaultPosition, wx.wxSize(450, 450),
wx.wxDEFAULT_FRAME_STYLE )
panel = wx.wxPanel(frame, wx.wxID_ANY)
panelSizer = wx.wxBoxSizer( wx.wxVERTICAL )
---[[
for i=1,3 do
local colsiz = Collapsible(panel,panelSizer,"collap "..i)
local cc=wx.wxStaticText(panel, wx.wxID_ANY, "vadsfklj "..i,
wx.wxDefaultPosition,wx.wxDefaultSize, wx.wxALIGN_CENTRE)
colsiz:Add(cc,0)
panelSizer:Hide(colsiz,true)
end
--]]
last = wx.wxStaticText(panel, wx.wxID_ANY, "last 1",
wx.wxDefaultPosition,wx.wxDefaultSize, wx.wxALIGN_CENTRE)
panelSizer:Add(last,1)
last2 = wx.wxStaticText(panel, wx.wxID_ANY, "last 2",
wx.wxDefaultPosition,wx.wxDefaultSize, wx.wxALIGN_CENTRE)
panelSizer:Add(last2,1)
panel:SetSizer(panelSizer);
panelSizer:SetSizeHints(panel);
-- show the frame window
frame:Show(true)
end
function Collapsible(parent,parentSizer,texto)
local panelSizer = wx.wxBoxSizer( wx.wxVERTICAL )
local ids = NewID()
local button =
wx.wxToggleButton(parent,ids,texto,wx.wxDefaultPosition,wx.wxSize(40,20))
button:SetFont(wx.wxSMALL_FONT)
panelSizer:Add(button, 0, wx.wxALL, 0);
local collapSizer = wx.wxBoxSizer( wx.wxVERTICAL )
parent:Connect(ids, wx.wxEVT_COMMAND_TOGGLEBUTTON_CLICKED,
function(event)
if button:GetValue() then
panelSizer:Show(collapSizer,true)
else
panelSizer:Hide(collapSizer,true)
end
parent:Layout()
end)
panelSizer:Add(collapSizer, 0, wx.wxALL, 0);
parentSizer:Add(panelSizer,0)
panelSizer:Hide(collapSizer,true)
return collapSizer
end
main()
wx.wxGetApp():MainLoop()
///////////////////////////////
but I have another question now:
I need two windows (one will be for AUImanager)
I wrote this. It does not work as I expected and also crashes on closing
/////////////////////////////////////////////
require("wx")
frame = nil
-- Generate a unique new wxWindowID
local ID_IDCOUNTER = wx.wxID_HIGHEST + 1
function NewID()
ID_IDCOUNTER = ID_IDCOUNTER + 1
return ID_IDCOUNTER
end
function main()
-- create the frame window
frame = wx.wxFrame( wx.NULL, wx.wxID_ANY, "wxLua Very Minimal Demo",
wx.wxDefaultPosition, wx.wxSize(450, 450),
wx.wxDEFAULT_FRAME_STYLE )
panel = wx.wxPanel(frame, wx.wxID_ANY)
paneltop = wx.wxPanel(panel, wx.wxID_ANY)
panelbottom = wx.wxPanel(panel, wx.wxID_ANY)
paneltopSizer = wx.wxBoxSizer( wx.wxHORIZONTAL )
panelbottomSizer = wx.wxBoxSizer( wx.wxHORIZONTAL )
for i=1,3 do
local cc=wx.wxStaticText(paneltop, wx.wxID_ANY, "top "..i,
wx.wxDefaultPosition,wx.wxDefaultSize, wx.wxALIGN_CENTRE)
paneltopSizer:Add(cc,0,wx.wxGROW)
end
for i=1,3 do
local cc=wx.wxStaticText(panelbottom, wx.wxID_ANY, "bottom "..i,
wx.wxDefaultPosition,wx.wxDefaultSize, wx.wxALIGN_CENTRE)
panelbottomSizer:Add(cc,0,wx.wxGROW)
end
paneltop:SetSizer(paneltopSizer);
paneltopSizer:SetSizeHints(paneltop);
panelbottom:SetSizer(panelbottomSizer);
panelbottomSizer:SetSizeHints(panelbottom);
panelSizer = wx.wxBoxSizer( wx.wxVERTICAL )
panelSizer:Add(paneltopSizer,1,wx.wxGROW)
panelSizer:Add(panelbottomSizer,1,wx.wxGROW)
panel:SetSizer(panelSizer);
panelSizer:SetSizeHints(panel);
-- show the frame window
frame:Show(true)
end
main()
wx.wxGetApp():MainLoop()
Best Regards and thanyou for reading
Victor Bombi
------------------------------------------------------------------------------
Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery
and much more. Keep your Java skills current with LearnJavaNow -
200+ hours of step-by-step video tutorials by Java experts.
SALE $49.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122612
_______________________________________________
wxlua-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wxlua-users