From: John L. <jr...@us...> - 2007-06-22 15:48:57
|
Update of /cvsroot/wxlua/wxLua/samples In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv23295/wxLua/samples Modified Files: controls.wx.lua Log Message: Fix for wxAnimation for MSW Fixes for controls.wx.lua for MSW Index: controls.wx.lua =================================================================== RCS file: /cvsroot/wxlua/wxLua/samples/controls.wx.lua,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** controls.wx.lua 22 Jun 2007 03:20:26 -0000 1.5 --- controls.wx.lua 22 Jun 2007 15:48:50 -0000 1.6 *************** *** 28,31 **** --- 28,32 ---- 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))) + listImageList:Add(wx.wxArtProvider.GetBitmap(wx.wxART_ERROR, wx.wxART_TOOLBAR, wx.wxSize(16, 16))) -- IDs for the windows that we show *************** *** 58,79 **** ID_RADIOBOX = 1025 ID_RADIOBUTTON = 1026 ! ID_SASHLAYOUTWINDOW = 1026 ! ID_SASHWINDOW = 1027 ! ID_SCROLLBAR = 1028 ! ID_SCROLLEDWINDOW = 1029 ! ID_SLIDER = 1029 ! ID_SPINBUTTON = 1030 ! ID_SPINCTRL = 1031 ! ID_SPLITTERWINDOW = 1032 ! ID_STATICBITMAP = 1033 ! ID_STATICBOX = 1034 ! ID_STATICLINE = 1035 ! ID_TEXTCTRL = 1036 ! ID_TOGGLEBUTTON = 1037 ! ID_TOOLBAR = 1038 ! ID_TOOLBOOK = 1039 ! ID_TREEBOOK = 1040 ! ID_TREECTRL = 1041 ! ID_WINDOW = 1042 -- --------------------------------------------------------------------------- --- 59,80 ---- ID_RADIOBOX = 1025 ID_RADIOBUTTON = 1026 ! ID_SASHLAYOUTWINDOW = 1027 ! ID_SASHWINDOW = 1028 ! ID_SCROLLBAR = 1029 ! ID_SCROLLEDWINDOW = 1030 ! ID_SLIDER = 1031 ! ID_SPINBUTTON = 1032 ! ID_SPINCTRL = 1033 ! ID_SPLITTERWINDOW = 1034 ! ID_STATICBITMAP = 1035 ! ID_STATICBOX = 1036 ! ID_STATICLINE = 1037 ! ID_TEXTCTRL = 1038 ! ID_TOGGLEBUTTON = 1039 ! ID_TOOLBAR = 1040 ! ID_TOOLBOOK = 1041 ! ID_TREEBOOK = 1042 ! ID_TREECTRL = 1043 ! ID_WINDOW = 1044 -- --------------------------------------------------------------------------- *************** *** 108,113 **** --- 109,119 ---- ["wxEVT_IDLE"] = true, ["wxEVT_LEAVE_WINDOW"] = true, + ["wxEVT_LEFT_DOWN"] = true, + ["wxEVT_LEFT_UP"] = true, ["wxEVT_MOTION"] = true, + ["wxEVT_MOVE"] = true, ["wxEVT_PAINT"] = true, + ["wxEVT_RIGHT_DOWN"] = true, + ["wxEVT_RIGHT_UP"] = true, ["wxEVT_SET_CURSOR"] = true, ["wxEVT_SHOW"] = true, *************** *** 118,121 **** --- 124,135 ---- -- --------------------------------------------------------------------------- + -- wxEventTypes that we shouldn't ever handle because they cause problems + -- --------------------------------------------------------------------------- + + skipEVTs = { + ["wxEVT_PAINT"] = true, -- controls don't redraw if we connect to this in MSW, even if we Skip() it + } + + -- --------------------------------------------------------------------------- -- All wxEvent derived classes and their GetXXX functions (none modify event) -- --------------------------------------------------------------------------- *************** *** 277,283 **** 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() --- 291,298 ---- local evtTypeStr = wxEVT_TableByType[event:GetEventType()].name + -- 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 + -- Note: we always skip this anyway, see skipEVTs, but just to be sure... if event:GetEventType() == wx.wxEVT_PAINT then local dc = wx.wxPaintDC(event:GetEventObject():DynamicCast("wxWindow")) dc:delete() *************** *** 338,344 **** -- try to slightly change the background colour, doesn't work in GTK ! do local c = scrollWin:GetBackgroundColour() ! local d = 50 if (c:Red() >= 255-d) and (c:Green() >= 255-d) and (c:Blue() >= 255-d) then d = -d --- 353,359 ---- -- try to slightly change the background colour, doesn't work in GTK ! if false then local c = scrollWin:GetBackgroundColour() ! local d = 20 if (c:Red() >= 255-d) and (c:Green() >= 255-d) and (c:Blue() >= 255-d) then d = -d *************** *** 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 --- 379,383 ---- for i = 1, #wxEVT_Array do ! if not skipEVTs[wxEVT_Array[i].name] then control:Connect(wx.wxID_ANY, wxEVT_Array[i].eventType, OnEvent) end *************** *** 375,383 **** local statText = wx.wxStaticText(scrollWin, wx.wxID_ANY, txt) ! flexSizer:Add(statText, 0, wx.wxALIGN_CENTER_VERTICAL, 5) ! flexSizer:Add(control, 0, wx.wxALIGN_LEFT) ! flexSizer:Add(wx.wxStaticLine(scrollWin, wx.wxID_ANY), 0, wx.wxEXPAND) ! flexSizer:Add(wx.wxStaticLine(scrollWin, wx.wxID_ANY), 0, wx.wxEXPAND) ConnectEvents(real_control or control) -- connect to the real control --- 390,398 ---- local statText = wx.wxStaticText(scrollWin, wx.wxID_ANY, txt) ! flexSizer:Add(statText, 0, wx.wxALIGN_CENTER_VERTICAL+wx.wxALL, 5) ! flexSizer:Add(control, 0, wx.wxALIGN_LEFT+wx.wxALL, 5) ! flexSizer:Add(wx.wxStaticLine(scrollWin, wx.wxID_ANY), 0, wx.wxEXPAND+wx.wxALL, 5) ! flexSizer:Add(wx.wxStaticLine(scrollWin, wx.wxID_ANY), 0, wx.wxEXPAND+wx.wxALL, 5) ConnectEvents(real_control or control) -- connect to the real control *************** *** 725,729 **** control = wx.wxStaticBox(scrollWin, ID_STATICBOX, "wxStaticBox", ! wx.wxDefaultPosition, wx.wxSize(200, 200)) control:SetBackgroundColour(wx.wxRED) AddControl("wxStaticBox", control) --- 740,744 ---- control = wx.wxStaticBox(scrollWin, ID_STATICBOX, "wxStaticBox", ! wx.wxDefaultPosition, wx.wxSize(200, 100)) control:SetBackgroundColour(wx.wxRED) AddControl("wxStaticBox", control) *************** *** 873,881 **** 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 --- 888,898 ---- eventListCtrl:InsertColumn(1, "wxEventType") + -- Add all the initial items and find the best fitting col widths local li = 0 ! local col_widths = {200, 300} for n = 1, #wxEVT_List do ! if skipEVTs[wxEVT_List[n][2]] then ! li = eventListCtrl:InsertItem(li, wxEVT_List[n][1], 2) ! elseif ignoreEVTs[wxEVT_List[n][2]] then li = eventListCtrl:InsertItem(li, wxEVT_List[n][1], 0) else *************** *** 884,894 **** 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) --- 901,914 ---- eventListCtrl:SetItem(li, 1, wxEVT_List[n][2]) ! for i = 1, #col_widths do ! local w = eventListCtrl:GetTextExtent(wxEVT_List[n][i]) ! if w > col_widths[i] + 16 then w = col_widths[i] + 16 end ! end end ! for i = 1, #col_widths do ! eventListCtrl:SetColumnWidth(i-1, col_widths[i]) ! end ! ! -- Handle selecting or deselecting events function OnEventListCtrl(event) event:Skip(false) *************** *** 896,915 **** 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 --- 916,937 ---- local sel = {} + -- Find all the selected items 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() < 2 then -- skipEVTs ! 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 end *************** *** 920,924 **** for n = 1, #sel do eventListCtrl:SetItemImage(sel[n][1], img) ! print(sel[n][2]) if img == 0 then ignoreEVTs[sel[n][2]] = true --- 942,946 ---- for n = 1, #sel do eventListCtrl:SetItemImage(sel[n][1], img) ! if img == 0 then ignoreEVTs[sel[n][2]] = true *************** *** 949,954 **** -- ----------------------------------------------------------------------- - splitter2:SplitVertically(eventListCtrl, controlsWin, 300) splitter:SplitHorizontally(splitter2, textCtrl, 300) -- ----------------------------------------------------------------------- --- 971,976 ---- -- ----------------------------------------------------------------------- splitter:SplitHorizontally(splitter2, textCtrl, 300) + splitter2:SplitVertically(eventListCtrl, controlsWin, 300) -- ----------------------------------------------------------------------- |