From: John L. <jr...@us...> - 2007-06-22 03:20:32
|
Update of /cvsroot/wxlua/wxLua/samples In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv23505/wxLua/samples Modified Files: controls.wx.lua Log Message: Fix wxEVT_CONTEXT_MENU in bindings finish off the controls.wx.lua sample Index: controls.wx.lua =================================================================== RCS file: /cvsroot/wxlua/wxLua/samples/controls.wx.lua,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** controls.wx.lua 21 Jun 2007 22:02:58 -0000 1.4 --- controls.wx.lua 22 Jun 2007 03:20:26 -0000 1.5 *************** *** 13,17 **** --- 13,20 ---- textCtrl = nil + -- wxBitmap to use for controls that need one bmp = wx.wxArtProvider.GetBitmap(wx.wxART_INFORMATION, wx.wxART_TOOLBAR, wx.wxSize(16, 16)) + + -- wxImageList for any controls that need them imageList = wx.wxImageList(16, 16) imageList:Add(wx.wxArtProvider.GetBitmap(wx.wxART_NORMAL_FILE, wx.wxART_TOOLBAR, wx.wxSize(16, 16))) *************** *** 21,26 **** --- 24,35 ---- colorList = { wx.wxColour(255, 100, 100), wx.wxColour(100, 100, 255), wx.wxColour(100, 255, 100), wx.wxWHITE } + -- wxImageList for the wxListCtrl that shows the events + listImageList = wx.wxImageList(16, 16) + listImageList:Add(wx.wxArtProvider.GetBitmap(wx.wxART_CROSS_MARK, wx.wxART_TOOLBAR, wx.wxSize(16, 16))) + listImageList:Add(wx.wxArtProvider.GetBitmap(wx.wxART_TICK_MARK, wx.wxART_TOOLBAR, wx.wxSize(16, 16))) + -- IDs for the windows that we show ID_PARENT_SCROLLEDWINDOW = 1000 + ID_ANIMATIONCTRL = 1001 ID_BITMAPBUTTON = 1002 *************** *** 49,54 **** ID_RADIOBOX = 1025 ID_RADIOBUTTON = 1026 ! ID_SCROLLBAR = 1027 ! ID_SCROLLEDWINDOW = 1028 ID_SLIDER = 1029 ID_SPINBUTTON = 1030 --- 58,65 ---- ID_RADIOBOX = 1025 ID_RADIOBUTTON = 1026 ! ID_SASHLAYOUTWINDOW = 1026 ! ID_SASHWINDOW = 1027 ! ID_SCROLLBAR = 1028 ! ID_SCROLLEDWINDOW = 1029 ID_SLIDER = 1029 ID_SPINBUTTON = 1030 *************** *** 76,82 **** for i = 1, #wxEVT_Array do wxEVT_TableByType[wxEVT_Array[i].eventType] = wxEVT_Array[i] ! table.insert(wxEVT_List, string.format("%s %s", wxlua.wxlua_typename(wxEVT_Array[i].class_tag), wxEVT_Array[i].name)) end ! table.sort(wxEVT_List) -- Turn the array from the binding into a lookup table by class name --- 87,93 ---- for i = 1, #wxEVT_Array do wxEVT_TableByType[wxEVT_Array[i].eventType] = wxEVT_Array[i] ! table.insert(wxEVT_List, {wxlua.wxlua_typename(wxEVT_Array[i].class_tag), wxEVT_Array[i].name}) end ! table.sort(wxEVT_List, function(t1, t2) return t1[1] > t2[1] end) -- Turn the array from the binding into a lookup table by class name *************** *** 88,139 **** -- --------------------------------------------------------------------------- ! -- Format the values you can get from different event types -- --------------------------------------------------------------------------- ! function FuncsToString(event, funcTable) ! local t = {} ! ! for n = 1, #funcTable do ! local v = event[funcTable[n]](event) -- each item is a function name ! ! local s = funcTable[n].."=" ! local typ = wxlua.wxlua_type(v) ! local typ_name = wxlua.wxlua_typename(typ) ! if typ == wxlua.WXLUAARG_String then ! s = s.."'"..tostring(v).."'" ! elseif typ == wxlua.WXLUAARG_Table then ! s = s.."("..table.concat(v, ",")..")" ! elseif typ <= 0 then -- the rest of generic lua types ! s = s..tostring(v) ! elseif typ_name == "wxPoint" then ! s = s..string.format("(%d, %d) ", v:GetX(), v:GetY()) ! elseif typ_name == "wxSize" then ! s = s..string.format("(%d, %d) ", v:GetWidth(), v:GetHeight()) ! elseif typ_name == "wxRect" then ! s = s..string.format("(%d, %d, %d, %d)", v:GetX(), v:GetY(), v:GetWidth(), v:GetHeight()) ! elseif typ_name == "wxColour" then ! s = s..v:GetAsString() ! v:delete() ! elseif typ_name == "wxFont" then ! s = s..v:GetNativeFontInfoDesc() ! v:delete() ! elseif typ_name == "wxDateTime" then ! s = s..v:Format() ! elseif typ_name == "wxTreeItemId" then ! s = s..tostring(v) ! elseif typ_name == "wxWindow" then ! s = s..typ_name.."(GetName="..v:GetName()..")" ! else ! s = s..tostring(v) ! v:delete() ! print("Unhandled wxLua data type in FuncsToString from ", wxlua.wxlua_typename(wxlua.wxlua_type(event)), typ_name) ! end ! table.insert(t, s) end ! return table.concat(t, ", ") end --- 99,142 ---- -- --------------------------------------------------------------------------- ! -- wxEventTypes that we don't want to initially handle -- --------------------------------------------------------------------------- ! ignoreEVTs = { ! ["wxEVT_CREATE"] = true, ! ["wxEVT_ENTER_WINDOW"] = true, ! ["wxEVT_ERASE_BACKGROUND"] = true, ! ["wxEVT_IDLE"] = true, ! ["wxEVT_LEAVE_WINDOW"] = true, ! ["wxEVT_MOTION"] = true, ! ["wxEVT_PAINT"] = true, ! ["wxEVT_SET_CURSOR"] = true, ! ["wxEVT_SHOW"] = true, ! ["wxEVT_SIZE"] = true, ! ["wxEVT_TIMER"] = true, ! ["wxEVT_UPDATE_UI"] = true, ! } ! -- --------------------------------------------------------------------------- ! -- All wxEvent derived classes and their GetXXX functions (none modify event) ! -- --------------------------------------------------------------------------- ! function OnSplitterEvent(event) ! -- asserts if these are called inappropriately ! -- {"GetSashPosition", "GetX", "GetY", "GetWindowBeingRemoved"} ! local typ = event:GetEventType() ! local s = "" ! if (typ == wx.wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING) or (typ == wx.wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED) then ! s = s.."GetSashPosition="..tostring(event:GetSashPosition()) ! end ! if (typ == wx.wxEVT_COMMAND_SPLITTER_DOUBLECLICKED) then ! s = s.." GetX="..tostring(event:GetX()) ! s = s.." GetY="..tostring(event:GetY()) ! end ! if (typ == wx.wxEVT_COMMAND_SPLITTER_UNSPLIT) then ! s = s.." GetWindowBeingRemoved="..tostring(event:GetWindowBeingRemoved()) end ! return s end *************** *** 196,200 **** ["wxSocketEvent"] = nil, ["wxSpinEvent"] = {"GetPosition"}, ! ["wxSplitterEvent"] = {}, --FIXME "GetSashPosition"}, -- , "GetX", "GetY", "GetWindowBeingRemoved" asserts if these are called inappropriately ["wxSysColourChangedEvent"] = {}, ["wxTaskBarIconEvent"] = {}, --- 199,203 ---- ["wxSocketEvent"] = nil, ["wxSpinEvent"] = {"GetPosition"}, ! ["wxSplitterEvent"] = OnSplitterEvent, -- {"GetSashPosition", "GetX", "GetY", "GetWindowBeingRemoved"} asserts if these are called inappropriately ["wxSysColourChangedEvent"] = {}, ["wxTaskBarIconEvent"] = {}, *************** *** 210,228 **** -- --------------------------------------------------------------------------- ! -- Handle all wxEvents -- --------------------------------------------------------------------------- ! ignoreEVTs = { ! ["wxEVT_IDLE"] = true, ! ["wxEVT_UPDATE_UI"] = true, ! ["wxEVT_ERASE_BACKGROUND"] = true, ! ["wxEVT_PAINT"] = true, ! ["wxEVT_MOTION"] = true, ! ["wxEVT_SET_CURSOR"] = true, ! ["wxEVT_CREATE"] = true, ! ["wxEVT_SIZE"] = true, ! ["wxEVT_TIMER"] = true, ! ["wxEVT_SHOW"] = true, ! } function OnEvent(event) --- 213,275 ---- -- --------------------------------------------------------------------------- ! -- Format the values you can get from different event types -- --------------------------------------------------------------------------- ! function FuncsToString(event, funcTable) ! local t = {} ! ! for n = 1, #funcTable do ! local v = event[funcTable[n]](event) -- each item is a function name ! ! local s = funcTable[n].."=" ! ! local typ = wxlua.wxlua_type(v) ! local typ_name = wxlua.wxlua_typename(typ) ! ! if typ == wxlua.WXLUAARG_String then ! s = s.."'"..tostring(v).."'" ! elseif typ == wxlua.WXLUAARG_Table then ! s = s.."("..table.concat(v, ",")..")" ! elseif typ <= 0 then -- the rest of generic lua types ! s = s..tostring(v) ! elseif typ_name == "wxPoint" then ! s = s..string.format("(%d, %d) ", v:GetX(), v:GetY()) ! elseif typ_name == "wxSize" then ! s = s..string.format("(%d, %d) ", v:GetWidth(), v:GetHeight()) ! elseif typ_name == "wxRect" then ! s = s..string.format("(%d, %d, %d, %d)", v:GetX(), v:GetY(), v:GetWidth(), v:GetHeight()) ! elseif typ_name == "wxColour" then ! s = s..v:GetAsString() ! v:delete() ! elseif typ_name == "wxFont" then ! s = s..v:GetNativeFontInfoDesc() ! v:delete() ! elseif typ_name == "wxDateTime" then ! s = s..v:Format() ! elseif typ_name == "wxTreeItemId" then ! local tree = event:GetEventObject():DynamicCast("wxTreeCtrl") ! if v:IsOk() then ! s = s..typ_name.."(tree:GetItemText='"..tree:GetItemText(v).."')" ! else ! s = s..typ_name.."!IsOk" ! end ! elseif typ_name == "wxWindow" then ! s = s..typ_name.."(GetName="..v:GetName()..")" ! else ! s = s..tostring(v) ! --v:delete() ! -- If we haven't handled it yet, we probably should ! print("Unhandled wxLua data type in FuncsToString from ", wxlua.wxlua_typename(wxlua.wxlua_type(event)), typ_name) ! end ! ! table.insert(t, s) ! end ! ! return table.concat(t, ", ") ! end ! ! -- --------------------------------------------------------------------------- ! -- Handle all wxEvents ! -- --------------------------------------------------------------------------- function OnEvent(event) *************** *** 230,234 **** local evtTypeStr = wxEVT_TableByType[event:GetEventType()].name ! -- during showdown, we nil textCtrl since events are sent and we don't want them anymore if (not textCtrl) or ignoreEVTs[evtTypeStr] then event:Skip() --- 277,288 ---- local evtTypeStr = wxEVT_TableByType[event:GetEventType()].name ! if event:GetEventType() == wx.wxEVT_PAINT then ! -- You absolutely must create a wxPaintDC for a wxEVT_PAINT in MSW ! -- to clear the region to be updated, otherwise you'll keep getting them ! local dc = wx.wxPaintDC(event:GetEventObject():DynamicCast("wxWindow")) ! dc:delete() ! end ! ! -- during shutdown, we nil textCtrl since events are sent and we don't want them anymore if (not textCtrl) or ignoreEVTs[evtTypeStr] then event:Skip() *************** *** 236,240 **** end ! print(evtClassName, wxEVT_TableByType[event:GetEventType()].name) -- try to figure out where this came from using the GetEventObject() --- 290,294 ---- end ! --print(evtClassName, wxEVT_TableByType[event:GetEventType()].name) -- try to figure out where this came from using the GetEventObject() *************** *** 249,257 **** end ! local s = string.format("%s %s(%s) GetEventObject = %s", wx.wxNow(), evtClassName, evtTypeStr, obj_str) -- Gather up all the info from the functions for the event and it's base classes while wxEvent_GetFuncs[evtClassName] do ! s = s.."\n\t"..evtClassName.." - "..FuncsToString(event, wxEvent_GetFuncs[evtClassName]) evtClassName = wxCLASS_TableByName[evtClassName].baseclassName end --- 303,315 ---- end ! local s = string.format("%s %s(%s) GetEventObject=%s", wx.wxNow(), evtClassName, evtTypeStr, obj_str) -- Gather up all the info from the functions for the event and it's base classes while wxEvent_GetFuncs[evtClassName] do ! if type(wxEvent_GetFuncs[evtClassName]) == "table" then ! s = s.."\n\t"..evtClassName.." - "..FuncsToString(event, wxEvent_GetFuncs[evtClassName]) ! else ! s = s.."\n\t"..evtClassName.." - "..wxEvent_GetFuncs[evtClassName](event) ! end evtClassName = wxCLASS_TableByName[evtClassName].baseclassName end *************** *** 293,301 **** end - local mainSizer = wx.wxBoxSizer(wx.wxVERTICAL) local flexSizer = wx.wxFlexGridSizer(20, 2, 5, 5) flexSizer:AddGrowableCol(1) ! local statText = nil -- not used outside of this function -- ----------------------------------------------------------------------- --- 351,358 ---- end local flexSizer = wx.wxFlexGridSizer(20, 2, 5, 5) flexSizer:AddGrowableCol(1) ! local control = nil -- not used outside of this function -- ----------------------------------------------------------------------- *************** *** 307,311 **** for i = 1, #wxEVT_Array do ! if not ignoreEVTs[wxEVT_Array[i].name] then control:Connect(wx.wxID_ANY, wxEVT_Array[i].eventType, OnEvent) end --- 364,368 ---- for i = 1, #wxEVT_Array do ! if true then --not ignoreEVTs[wxEVT_Array[i].name] then control:Connect(wx.wxID_ANY, wxEVT_Array[i].eventType, OnEvent) end *************** *** 329,333 **** -- ----------------------------------------------------------------------- ! function CreatePage(parent, num) local p = wx.wxPanel(parent, wx.wxID_ANY) local s = wx.wxBoxSizer(wx.wxVERTICAL) --- 386,390 ---- -- ----------------------------------------------------------------------- ! function CreateBookPage(parent, num) local p = wx.wxPanel(parent, wx.wxID_ANY) local s = wx.wxBoxSizer(wx.wxVERTICAL) *************** *** 348,369 **** control:SetImageList(imageList) ! control:AddPage(CreatePage(control, 1), "Page 1", true, 0) ! control:AddPage(CreatePage(control, 2), "Page 2", false, 1) ! control:AddPage(CreatePage(control, 3), "Page 3", false, 2) end -- ----------------------------------------------------------------------- ! local control = nil ! ! -- ----------------------------------------------------------------------- ! ! local e1 = wx.wxFileExists("throbber.gif") ! local e2 = wx.wxFileExists("../art/throbber.gif") ! if wx.wxAnimation and (e1 or e2) then ! local ani = wx.wxAnimation() ! if e1 then ani:LoadFile("throbber.gif") end ! if e2 then ani:LoadFile("../art/throbber.gif") end control = wx.wxAnimationCtrl(scrollWin, ID_ANIMATIONCTRL, ani, --- 405,424 ---- control:SetImageList(imageList) ! control:AddPage(CreateBookPage(control, 1), "Page 1", true, 0) ! control:AddPage(CreateBookPage(control, 2), "Page 2", false, 1) ! control:AddPage(CreateBookPage(control, 3), "Page 3", false, 2) end -- ----------------------------------------------------------------------- ! local path = nil ! local paths = {"throbber.gif", "../art/throbber.gif", "../../art/throbber.gif", "../../../art/throbber.gif"} ! for n = 1, #paths do ! if wx.wxFileExists(paths[n]) then path = paths[n]; break; end ! end ! if wx.wxAnimation and path then ! local ani = wx.wxAnimation() -- note cannot load from constuctor in GTK ! ani:LoadFile(path) control = wx.wxAnimationCtrl(scrollWin, ID_ANIMATIONCTRL, ani, *************** *** 384,390 **** -- ----------------------------------------------------------------------- ! control = wx.wxBitmapComboBox(scrollWin, ID_BITMAPCOMBOBOX, "wxBitmapComboBox!", wx.wxDefaultPosition, wx.wxDefaultSize, ! {"Item 1", "Item 2", "Item 3 text is long for default size"}, wx.wxTE_PROCESS_ENTER) -- generates event when enter is pressed control:Append("Appended w/ bitmap", bmp) --- 439,445 ---- -- ----------------------------------------------------------------------- ! control = wx.wxBitmapComboBox(scrollWin, ID_BITMAPCOMBOBOX, "wxBitmapComboBox", wx.wxDefaultPosition, wx.wxDefaultSize, ! {"Item 1", "Item 2", "Item 3 text is long to check default size"}, wx.wxTE_PROCESS_ENTER) -- generates event when enter is pressed control:Append("Appended w/ bitmap", bmp) *************** *** 452,458 **** -- ----------------------------------------------------------------------- ! control = wx.wxComboBox(scrollWin, ID_COMBOBOX, "wxComboBox!", wx.wxDefaultPosition, wx.wxDefaultSize, ! {"Item 1", "Item 2", "Item 3 text is long for default size"}, wx.wxTE_PROCESS_ENTER) -- generates event when enter is pressed control:Append("Appended item") --- 507,513 ---- -- ----------------------------------------------------------------------- ! control = wx.wxComboBox(scrollWin, ID_COMBOBOX, "wxComboBox", wx.wxDefaultPosition, wx.wxDefaultSize, ! {"Item 1", "Item 2", "Item 3 text is long to check default size"}, wx.wxTE_PROCESS_ENTER) -- generates event when enter is pressed control:Append("Appended item") *************** *** 515,519 **** -- ----------------------------------------------------------------------- ! control = wx.wxHyperlinkCtrl(scrollWin, ID_HYPERLINKCTRL, "Goto wxlua.sourceforge.net", "http://wxlua.sourceforge.net", wx.wxDefaultPosition, wx.wxDefaultSize) AddControl("wxHyperlinkCtrl", control) --- 570,575 ---- -- ----------------------------------------------------------------------- ! control = wx.wxHyperlinkCtrl(scrollWin, ID_HYPERLINKCTRL, ! "Goto wxlua.sourceforge.net", "http://wxlua.sourceforge.net", wx.wxDefaultPosition, wx.wxDefaultSize) AddControl("wxHyperlinkCtrl", control) *************** *** 541,545 **** -- ----------------------------------------------------------------------- ! -- wxListView is a wxListCtrl w/ a couple of methods added -- ----------------------------------------------------------------------- --- 597,602 ---- -- ----------------------------------------------------------------------- ! control = wx.wxStaticText(scrollWin, wx.wxID_ANY, "wxListView is a wxListCtrl with a couple of methods added") ! AddControl("wxListView", control) -- ----------------------------------------------------------------------- *************** *** 596,601 **** -- ----------------------------------------------------------------------- ! -- wxSashLayoutWindow ! -- wxSashWindow -- ----------------------------------------------------------------------- --- 653,663 ---- -- ----------------------------------------------------------------------- ! control = wx.wxStaticText(scrollWin, wx.wxID_ANY, "wxSashLayoutWindow must have a top level window as parent") ! AddControl("wxSashLayoutWindow", control) ! ! -- ----------------------------------------------------------------------- ! ! control = wx.wxStaticText(scrollWin, wx.wxID_ANY, "wxSashWindow must have a top level window as parent") ! AddControl("wxSashWindow", control) -- ----------------------------------------------------------------------- *************** *** 604,608 **** wx.wxDefaultPosition, wx.wxSize(200, -1)) control:SetScrollbar(10, 10, 100, 20) ! AddControl("wxScrollBar - range=100, thumb=10, pageSize=20", control) -- ----------------------------------------------------------------------- --- 666,670 ---- wx.wxDefaultPosition, wx.wxSize(200, -1)) control:SetScrollbar(10, 10, 100, 20) ! AddControl("wxScrollBar\n range=100\n thumb=10\n pageSize=20", control) -- ----------------------------------------------------------------------- *************** *** 613,617 **** control:SetBackgroundColour(wx.wxRED) wx.wxButton(control, wx.wxID_ANY, "Child button of wxScrolledWindow", wx.wxPoint(50, 50)) ! AddControl("wxScrolledWindow - pixelsPerUnit=10, noUnits=100", control) flexSizer:SetItemMinSize(control, 200, 200) --- 675,679 ---- control:SetBackgroundColour(wx.wxRED) wx.wxButton(control, wx.wxID_ANY, "Child button of wxScrolledWindow", wx.wxPoint(50, 50)) ! AddControl("wxScrolledWindow\n pixelsPerUnit=10\n noUnits=100", control) flexSizer:SetItemMinSize(control, 200, 200) *************** *** 644,653 **** control = wx.wxSplitterWindow(p, ID_SPLITTERWINDOW, wx.wxDefaultPosition, wx.wxSize(300, 200)) ! control:SplitVertically(wx.wxWindow(control, wx.wxID_ANY, wx.wxDefaultPosition), ! wx.wxWindow(control, wx.wxID_ANY, wx.wxDefaultPosition), 100) - control:GetWindow1():SetBackgroundColour(wx.wxRED) - control:GetWindow2():SetBackgroundColour(wx.wxBLUE) - s:SetMinSize(300, 200) p:SetSizer(s) --- 706,712 ---- control = wx.wxSplitterWindow(p, ID_SPLITTERWINDOW, wx.wxDefaultPosition, wx.wxSize(300, 200)) ! control:SplitVertically(CreateBookPage(control, 1), ! CreateBookPage(control, 2), 100) s:SetMinSize(300, 200) p:SetSizer(s) *************** *** 693,698 **** control = wx.wxToolBar(scrollWin, ID_TOOLBAR, wx.wxDefaultPosition, wx.wxDefaultSize) ! control:AddTool(wx.wxID_ANY, "A tool", bmp, "Help for a tool", wx.wxITEM_NORMAL) ! control:AddCheckTool(wx.wxID_ANY, "A check tool", bmp, wx.wxNullBitmap, "Short help for checktool", "Long help for checktool") AddControl("wxToolBar", control) --- 752,760 ---- control = wx.wxToolBar(scrollWin, ID_TOOLBAR, wx.wxDefaultPosition, wx.wxDefaultSize) ! control:AddTool(wx.wxID_ANY, "A tool 1", bmp, "Help for a tool 1", wx.wxITEM_NORMAL) ! control:AddTool(wx.wxID_ANY, "A tool 2", bmp, "Help for a tool 2", wx.wxITEM_NORMAL) ! control:AddSeparator() ! control:AddCheckTool(wx.wxID_ANY, "A check tool 1", bmp, wx.wxNullBitmap, "Short help for checktool 1", "Long help for checktool ") ! control:AddCheckTool(wx.wxID_ANY, "A check tool 2", bmp, wx.wxNullBitmap, "Short help for checktool 2", "Long help for checktool 2") AddControl("wxToolBar", control) *************** *** 710,714 **** SetupBook(control) -- Now add special pages for the treebook ! control:AddSubPage(CreatePage(control, 4), "Subpage 1", false, 3) AddControl("wxTreebook", control) --- 772,776 ---- SetupBook(control) -- Now add special pages for the treebook ! control:AddSubPage(CreateBookPage(control, 4), "Subpage 1", false, 3) AddControl("wxTreebook", control) *************** *** 739,745 **** -- ----------------------------------------------------------------------- ! mainSizer:Add(flexSizer, 1, wx.wxEXPAND) ! scrollWin:SetSizer(mainSizer) ! mainSizer:Fit(scrollWin) return scrollWin --- 801,806 ---- -- ----------------------------------------------------------------------- ! scrollWin:SetSizer(flexSizer) ! flexSizer:Fit(scrollWin) return scrollWin *************** *** 788,791 **** --- 849,853 ---- function (event) wx.wxMessageBox('This is the "About" dialog of the Controls wxLua sample.\n'.. + 'Check or uncheck events you want shown.\n'.. wx.wxLUA_VERSION_STRING.." built with "..wx.wxVERSION_STRING, "About wxLua", *************** *** 799,818 **** splitter:SetSashGravity(.8) - splitter2 = wx.wxSplitterWindow(splitter, wx.wxID_ANY) splitter2:SetMinimumPaneSize(50) -- don't let it unsplit splitter2:SetSashGravity(.1) ! eventCheckListBox = wx.wxCheckListBox(splitter2, wx.wxID_ANY, ! wx.wxDefaultPosition, wx.wxDefaultSize, ! wxEVT_List, ! wx.wxLB_EXTENDED) controlsWin = CreateControlsWindow(splitter2) textCtrl = wx.wxTextCtrl(splitter, wx.wxID_ANY, "", wx.wxDefaultPosition, wx.wxDefaultSize, ! wx.wxTE_READONLY+wx.wxTE_MULTILINE+wx.wxTE_DONTWRAP) ! splitter2:SplitVertically(eventCheckListBox, controlsWin, 300) splitter:SplitHorizontally(splitter2, textCtrl, 300) --- 861,953 ---- splitter:SetSashGravity(.8) splitter2 = wx.wxSplitterWindow(splitter, wx.wxID_ANY) splitter2:SetMinimumPaneSize(50) -- don't let it unsplit splitter2:SetSashGravity(.1) ! -- ----------------------------------------------------------------------- ! eventListCtrl = wx.wxListCtrl(splitter2, wx.wxID_ANY, ! wx.wxDefaultPosition, wx.wxDefaultSize, ! wx.wxLC_REPORT) ! eventListCtrl:SetImageList(listImageList, wx.wxIMAGE_LIST_SMALL) ! eventListCtrl:InsertColumn(0, "wxEvent Class") ! eventListCtrl:InsertColumn(1, "wxEventType") ! ! local li = 0 ! local col0_width = 200 ! local col1_width = 300 ! for n = 1, #wxEVT_List do ! if ignoreEVTs[wxEVT_List[n][2]] then ! li = eventListCtrl:InsertItem(li, wxEVT_List[n][1], 0) ! else ! li = eventListCtrl:InsertItem(li, wxEVT_List[n][1], 1) ! end ! eventListCtrl:SetItem(li, 1, wxEVT_List[n][2]) ! ! local w = eventListCtrl:GetTextExtent(wxEVT_List[n][1]) ! if w > col0_width + 16 then w = col0_width + 16 end ! local w = eventListCtrl:GetTextExtent(wxEVT_List[n][2]) ! if w > col1_width + 16 then w = col1_width + 16 end ! end ! eventListCtrl:SetColumnWidth(0, col0_width) ! eventListCtrl:SetColumnWidth(1, col1_width) ! function OnEventListCtrl(event) ! event:Skip(false) ! local ignored_count = 0 ! local sel = {} ! ! for n = 1, eventListCtrl:GetItemCount() do ! local s = eventListCtrl:GetItemState(n-1, wx.wxLIST_STATE_SELECTED) ! if s ~= 0 then ! ! local litem = wx.wxListItem() ! litem:SetId(n-1) ! litem:SetMask(wx.wxLIST_MASK_IMAGE) ! eventListCtrl:GetItem(litem) ! if litem:GetImage() == 0 then ! ignored_count = ignored_count + 1 ! end ! ! litem:SetMask(wx.wxLIST_MASK_TEXT) ! litem:SetColumn(1) ! eventListCtrl:GetItem(litem) ! table.insert(sel, {n-1, litem:GetText()}) ! end ! end ! ! local img = 0 ! if (#sel) < 2*ignored_count then img = 1 end ! ! for n = 1, #sel do ! eventListCtrl:SetItemImage(sel[n][1], img) ! print(sel[n][2]) ! if img == 0 then ! ignoreEVTs[sel[n][2]] = true ! else ! ignoreEVTs[sel[n][2]] = nil ! end ! end ! end ! ! eventListCtrl:Connect(wx.wxEVT_COMMAND_LIST_KEY_DOWN, ! function(event) ! if event:GetKeyCode() == wx.WXK_SPACE then ! OnEventListCtrl(event) ! end ! end) ! eventListCtrl:Connect(wx.wxEVT_COMMAND_LIST_ITEM_ACTIVATED, OnEventListCtrl) ! ! -- ----------------------------------------------------------------------- ! controlsWin = CreateControlsWindow(splitter2) + -- ----------------------------------------------------------------------- + textCtrl = wx.wxTextCtrl(splitter, wx.wxID_ANY, "", wx.wxDefaultPosition, wx.wxDefaultSize, ! wx.wxTE_MULTILINE+wx.wxTE_DONTWRAP) ! -- ----------------------------------------------------------------------- ! ! splitter2:SplitVertically(eventListCtrl, controlsWin, 300) splitter:SplitHorizontally(splitter2, textCtrl, 300) |