forked from pkulchenko/wxlua
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpropgrid_minimal.wx.lua
More file actions
63 lines (46 loc) · 1.95 KB
/
propgrid_minimal.wx.lua
File metadata and controls
63 lines (46 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package.cpath = package.cpath..";./?.dll;./?.so;../lib/?.so;../lib/vc_dll/?.dll;../lib/bcc_dll/?.dll;../lib/mingw_dll/?.dll;"
local wx = require"wx"
local ID_ACTION = wx.wxID_HIGHEST + 1
local function DisplayMinimalFrame(parent)
local frame = wx.wxFrame(parent, wx.wxID_ANY, "wxPropertyGrid Minimal")
local menu = wx.wxMenu()
menu:Append(ID_ACTION, "Action")
local menuBar = wx.wxMenuBar()
menuBar:Append(menu, "Action")
frame:SetMenuBar(menuBar)
print(wx.wxPG_SPLITTER_AUTO_CENTER)
print(wx.wxPG_BOLD_MODIFIED)
local pg = wx.wxPropertyGrid(frame, wx.wxID_ANY, wx.wxDefaultPosition, wx.wxSize(400, 400),
wx.wxPG_SPLITTER_AUTO_CENTER + wx.wxPG_BOLD_MODIFIED)
pg:Append(wx.wxStringProperty("String Property", wx.wxPG_LABEL))
pg:Append(wx.wxIntProperty("Int Property", wx.wxPG_LABEL))
pg:Append(wx.wxBoolProperty("Bool Property", wx.wxPG_LABEL))
frame:SetSize(400, 600)
local function OnAction(_)
end
local function OnPropertyGridChange(event)
local p = event:GetProperty()
if p then
wx.wxLogVerbose(("OnPropertyGridChange(%s, value=%s)"):format(p:GetName(), p:GetValueAsString()))
else
wx.wxLogVerbose("OnPropertyGridChange(NULL)")
end
end
local function OnPropertyGridChanging(event)
local p = event:GetProperty()
wx.wxLogVerbose(("OnPropertyGridChanging(%s)"):format(p:GetName()))
end
frame:Connect(ID_ACTION, wx.wxEVT_MENU, OnAction)
frame:Connect(wx.wxID_ANY, wx.wxEVT_PG_CHANGED, OnPropertyGridChange)
frame:Connect(wx.wxID_ANY, wx.wxEVT_PG_CHANGING, OnPropertyGridChanging)
frame:Show()
return frame
end
local frame = DisplayMinimalFrame(wx.NULL)
wx.wxLog.SetVerbose(true)
local logWindow = wx.wxLogWindow(frame, "Log Messages", false)
local pos = frame:GetPosition()
local size = frame:GetSize()
logWindow:GetFrame():Move(pos:GetX() + size:GetWidth() + 10, pos:GetY())
logWindow:Show()
wx.wxGetApp():MainLoop()