Skip to content

Commit 011573c

Browse files
committed
refactor: ending support for WX3
1 parent c446969 commit 011573c

10 files changed

+88
-178
lines changed

Diff for: doc/source/api/diffpy.pdfgui.gui.wxextensions.rst

-8
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,6 @@ diffpy.pdfgui.gui.wxextensions package
1111
Submodules
1212
----------
1313

14-
diffpy.pdfgui.gui.wxextensions.wx12 module
15-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16-
17-
.. automodule:: diffpy.pdfgui.gui.wxextensions.wx12
18-
:members:
19-
:undoc-members:
20-
:show-inheritance:
21-
2214
diffpy.pdfgui.gui.wxextensions.listctrls module
2315
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2416

Diff for: news/wx3.rst

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
**Added:**
2+
3+
* <news item>
4+
5+
**Changed:**
6+
7+
* <news item>
8+
9+
**Deprecated:**
10+
11+
* <news item>
12+
13+
**Removed:**
14+
15+
* Removed wx3 support.
16+
17+
**Fixed:**
18+
19+
* <news item>
20+
21+
**Security:**
22+
23+
* <news item>

Diff for: src/diffpy/pdfgui/gui/extendedplotframe.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,10 @@
2525
from matplotlib.font_manager import FontProperties
2626

2727
from diffpy.pdfgui.gui.pdfguiglobals import iconpath
28-
from diffpy.pdfgui.gui.wxextensions import wx12
2928

3029
matplotlib.use("WXAgg")
3130

32-
DATA_SAVE_ID = wx12.NewIdRef()
31+
DATA_SAVE_ID = wx.NewIdRef()
3332

3433

3534
class ExtendedToolbar(NavToolbar):
@@ -40,7 +39,6 @@ class ExtendedToolbar(NavToolbar):
4039

4140
def __init__(self, canvas):
4241
NavToolbar.__init__(self, canvas)
43-
wx12.patchToolBarMethods(self)
4442
# Load customized icon image
4543
save_icon_fp = iconpath("exportplotdata.png")
4644
save_icon = wx.Bitmap(save_icon_fp)

Diff for: src/diffpy/pdfgui/gui/fittree.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,10 @@
3030
from diffpy.pdfgui.control.controlerrors import ControlError
3131
from diffpy.pdfgui.control.fitting import Fitting
3232
from diffpy.pdfgui.gui.pdfguiglobals import iconpath
33-
from diffpy.pdfgui.gui.wxextensions import wx12
3433
from diffpy.pdfgui.utils import safeCPickleDumps
3534

3635

37-
class FitTree(wx12.TreeCtrl):
36+
class FitTree(wx.TreeCtrl):
3837
"""TreeCtrl designed to organize pdffit fits.
3938
4039
The root of the tree is hidden. Below that there are several levels

Diff for: src/diffpy/pdfgui/gui/mainframe.py

+44-46
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
from diffpy.pdfgui.gui.rseriespanel import RSeriesPanel
4949
from diffpy.pdfgui.gui.temperatureseriespanel import TemperatureSeriesPanel
5050
from diffpy.pdfgui.gui.welcomepanel import WelcomePanel
51-
from diffpy.pdfgui.gui.wxextensions import wx12
5251

5352
(PDFCustomEvent, EVT_PDFCUSTOM) = wx.lib.newevent.NewEvent()
5453

@@ -234,14 +233,14 @@ def __defineLocalIds(self):
234233
"""
235234
# Functions that modify the tree.
236235
# These are used in the fitting right-click menu and the main menu.
237-
self.newFitId = wx12.NewIdRef() # New Fit
238-
self.newCalcId = wx12.NewIdRef() # New Calculation
239-
self.newPhaseId = wx12.NewIdRef() # New Phase
240-
self.newDataId = wx12.NewIdRef() # New Data Set
236+
self.newFitId = wx.NewIdRef() # New Fit
237+
self.newCalcId = wx.NewIdRef() # New Calculation
238+
self.newPhaseId = wx.NewIdRef() # New Phase
239+
self.newDataId = wx.NewIdRef() # New Data Set
241240
self.deleteId = wx.ID_DELETE # Delete tree item
242241
self.copyId = wx.ID_COPY # Copy a tree item
243242
self.pasteId = wx.ID_PASTE # Paste a tree item into tree
244-
self.pasteLinkId = wx12.NewIdRef() # Paste and link a fit node
243+
self.pasteLinkId = wx.NewIdRef() # Paste and link a fit node
245244

246245
# Misc. functions, these are exclusive to the main menu.
247246
self.newId = wx.ID_NEW # Start a new Project
@@ -250,19 +249,19 @@ def __defineLocalIds(self):
250249
self.saveId = wx.ID_SAVE # Save the project
251250
self.saveAsId = wx.ID_SAVEAS # Save the project as...
252251
self.quitId = wx.ID_CLOSE # Quit the program
253-
self.runFitId = wx12.NewIdRef() # Run a fit
254-
self.stopFitId = wx12.NewIdRef() # Stop a fit
255-
self.quickPlotId = wx12.NewIdRef() # Quick plot a fit
256-
self.exportFitPDFId = wx12.NewIdRef() # Save a fit PDF
257-
self.exportFitStruId = wx12.NewIdRef() # Save a fit structure
258-
self.exportNewStruId = wx12.NewIdRef() # Export a 'new' structure
259-
self.plotIStructId = wx12.NewIdRef() # Plot initial structure
260-
self.plotFStructId = wx12.NewIdRef() # Plot final structure
261-
self.printBLId = wx12.NewIdRef() # Print the bond lengths of a structure
262-
self.printBAId = wx12.NewIdRef() # Print the bond angles of a structure
263-
self.exportResId = wx12.NewIdRef() # Save the results file
264-
self.runCalcId = wx12.NewIdRef() # Run a calculation
265-
self.exportCalcPDFId = wx12.NewIdRef() # Save a calculated PDF
252+
self.runFitId = wx.NewIdRef() # Run a fit
253+
self.stopFitId = wx.NewIdRef() # Stop a fit
254+
self.quickPlotId = wx.NewIdRef() # Quick plot a fit
255+
self.exportFitPDFId = wx.NewIdRef() # Save a fit PDF
256+
self.exportFitStruId = wx.NewIdRef() # Save a fit structure
257+
self.exportNewStruId = wx.NewIdRef() # Export a 'new' structure
258+
self.plotIStructId = wx.NewIdRef() # Plot initial structure
259+
self.plotFStructId = wx.NewIdRef() # Plot final structure
260+
self.printBLId = wx.NewIdRef() # Print the bond lengths of a structure
261+
self.printBAId = wx.NewIdRef() # Print the bond angles of a structure
262+
self.exportResId = wx.NewIdRef() # Save the results file
263+
self.runCalcId = wx.NewIdRef() # Run a calculation
264+
self.exportCalcPDFId = wx.NewIdRef() # Save a calculated PDF
266265
return
267266

268267
def __customProperties(self):
@@ -438,12 +437,12 @@ def __setupMainMenu(self):
438437
self.SetMenuBar(self.menuBar)
439438

440439
# File Menu
441-
self.fileMenu = wx12.Menu()
440+
self.fileMenu = wx.Menu()
442441
self.newItem = wx.MenuItem(self.fileMenu, self.newId, "&New Project\tCtrl+n", "", wx.ITEM_NORMAL)
443442
self.fileMenu.Append(self.newItem)
444443
self.openItem = wx.MenuItem(self.fileMenu, self.openId, "&Open Project\tCtrl+o", "", wx.ITEM_NORMAL)
445444
self.fileMenu.Append(self.openItem)
446-
self.recentMenu = wx12.Menu()
445+
self.recentMenu = wx.Menu()
447446
msub = self.fileMenu.AppendSubMenu(self.recentMenu, "&Recent Files")
448447
self.recentId = msub.Id
449448
self.fileMenu.AppendSeparator()
@@ -464,7 +463,7 @@ def __setupMainMenu(self):
464463
# End File Menu
465464

466465
# Edit Menu
467-
self.editMenu = wx12.Menu()
466+
self.editMenu = wx.Menu()
468467
self.delItem = wx.MenuItem(self.editMenu, self.deleteId, "&Delete Item(s)\tCtrl+X", "", wx.ITEM_NORMAL)
469468
self.editMenu.Append(self.delItem)
470469
self.copyItem = wx.MenuItem(self.editMenu, self.copyId, "&Copy Item\tCtrl+C", "", wx.ITEM_NORMAL)
@@ -474,33 +473,33 @@ def __setupMainMenu(self):
474473
self.pasteLinkItem = wx.MenuItem(self.editMenu, self.pasteLinkId, "Paste &Linked Fit", "", wx.ITEM_NORMAL)
475474
self.editMenu.Append(self.pasteLinkItem)
476475
self.editMenu.AppendSeparator()
477-
self.prefItem = wx.MenuItem(self.editMenu, wx12.NewIdRef(), "&Preferences", "", wx.ITEM_NORMAL)
476+
self.prefItem = wx.MenuItem(self.editMenu, wx.NewIdRef(), "&Preferences", "", wx.ITEM_NORMAL)
478477
self.editMenu.Append(self.prefItem)
479478
self.menuBar.Append(self.editMenu, "&Edit")
480479
# End Edit Menu
481480

482481
# View Menu
483-
self.viewMenu = wx12.Menu()
482+
self.viewMenu = wx.Menu()
484483
self.defaultLayoutItem = wx.MenuItem(
485-
self.editMenu, wx12.NewIdRef(), "Default Window Layout", "", wx.ITEM_NORMAL
484+
self.editMenu, wx.NewIdRef(), "Default Window Layout", "", wx.ITEM_NORMAL
486485
)
487486
self.viewMenu.Append(self.defaultLayoutItem)
488487
self.viewMenu.AppendSeparator()
489488
# These items are context sensitive.
490-
self.showFitItem = wx.MenuItem(self.viewMenu, wx12.NewIdRef(), "Show Fit Tree", "", wx.ITEM_NORMAL)
489+
self.showFitItem = wx.MenuItem(self.viewMenu, wx.NewIdRef(), "Show Fit Tree", "", wx.ITEM_NORMAL)
491490
self.viewMenu.Append(self.showFitItem)
492-
self.showPlotItem = wx.MenuItem(self.viewMenu, wx12.NewIdRef(), "Show Plot Control", "", wx.ITEM_NORMAL)
491+
self.showPlotItem = wx.MenuItem(self.viewMenu, wx.NewIdRef(), "Show Plot Control", "", wx.ITEM_NORMAL)
493492
self.viewMenu.Append(self.showPlotItem)
494-
self.showOutputItem = wx.MenuItem(self.viewMenu, wx12.NewIdRef(), "Show Output", "", wx.ITEM_NORMAL)
493+
self.showOutputItem = wx.MenuItem(self.viewMenu, wx.NewIdRef(), "Show Output", "", wx.ITEM_NORMAL)
495494
self.viewMenu.Append(self.showOutputItem)
496495
self.showJournalItem = wx.MenuItem(
497-
self.viewMenu, wx12.NewIdRef(), "Show Journal\tCtrl+j", "", wx.ITEM_NORMAL
496+
self.viewMenu, wx.NewIdRef(), "Show Journal\tCtrl+j", "", wx.ITEM_NORMAL
498497
)
499498
self.viewMenu.Append(self.showJournalItem)
500499
self.menuBar.Append(self.viewMenu, "&View")
501500

502501
# Fits Menu
503-
self.fitsMenu = wx12.Menu()
502+
self.fitsMenu = wx.Menu()
504503
self.newFitItem = wx.MenuItem(self.fitsMenu, self.newFitId, "&New Fit\tCtrl+t", "", wx.ITEM_NORMAL)
505504
self.fitsMenu.Append(self.newFitItem)
506505
self.fitsMenu.AppendSeparator()
@@ -513,19 +512,19 @@ def __setupMainMenu(self):
513512
self.fitsMenu.Append(self.expResItem)
514513
self.fitsMenu.AppendSeparator()
515514
# Macros sub-menu
516-
self.macrosMenu = wx12.Menu()
517-
self.rseriesItem = wx.MenuItem(self.macrosMenu, wx12.NewIdRef(), "r-Series", "", wx.ITEM_NORMAL)
515+
self.macrosMenu = wx.Menu()
516+
self.rseriesItem = wx.MenuItem(self.macrosMenu, wx.NewIdRef(), "r-Series", "", wx.ITEM_NORMAL)
518517
self.macrosMenu.Append(self.rseriesItem)
519-
self.tseriesItem = wx.MenuItem(self.macrosMenu, wx12.NewIdRef(), "Temperature Series", "", wx.ITEM_NORMAL)
518+
self.tseriesItem = wx.MenuItem(self.macrosMenu, wx.NewIdRef(), "Temperature Series", "", wx.ITEM_NORMAL)
520519
self.macrosMenu.Append(self.tseriesItem)
521-
self.dseriesItem = wx.MenuItem(self.macrosMenu, wx12.NewIdRef(), "Doping Series", "", wx.ITEM_NORMAL)
520+
self.dseriesItem = wx.MenuItem(self.macrosMenu, wx.NewIdRef(), "Doping Series", "", wx.ITEM_NORMAL)
522521
self.macrosMenu.Append(self.dseriesItem)
523522
self.fitsMenu.AppendSubMenu(self.macrosMenu, "Macros")
524523
self.menuBar.Append(self.fitsMenu, "Fi&ts")
525524
# End Fits Menu
526525

527526
# Phases Menu
528-
self.phasesMenu = wx12.Menu()
527+
self.phasesMenu = wx.Menu()
529528
self.newPhaseItem = wx.MenuItem(self.phasesMenu, self.newPhaseId, "&New Phase\tCtrl+p", "", wx.ITEM_NORMAL)
530529
self.phasesMenu.Append(self.newPhaseItem)
531530
self.phasesMenu.AppendSeparator()
@@ -580,7 +579,7 @@ def __setupMainMenu(self):
580579
# End Phases Menu
581580

582581
# Data Menu
583-
self.dataMenu = wx12.Menu()
582+
self.dataMenu = wx.Menu()
584583
self.newDataItem = wx.MenuItem(self.dataMenu, self.newDataId, "&New Data Set\tCtrl+d", "", wx.ITEM_NORMAL)
585584
self.dataMenu.Append(self.newDataItem)
586585
self.dataMenu.AppendSeparator()
@@ -590,7 +589,7 @@ def __setupMainMenu(self):
590589
# End Data Menu
591590

592591
# Calculations Menu
593-
self.calcMenu = wx12.Menu()
592+
self.calcMenu = wx.Menu()
594593
self.newCalcItem = wx.MenuItem(
595594
self.calcMenu,
596595
self.newCalcId,
@@ -621,20 +620,20 @@ def __setupMainMenu(self):
621620
# End Calculations Menu
622621

623622
# Help Menu
624-
self.helpMenu = wx12.Menu()
625-
self.docItem = wx.MenuItem(self.helpMenu, wx12.NewIdRef(), "&Documentation\tF1", "", wx.ITEM_NORMAL)
623+
self.helpMenu = wx.Menu()
624+
self.docItem = wx.MenuItem(self.helpMenu, wx.NewIdRef(), "&Documentation\tF1", "", wx.ITEM_NORMAL)
626625
self.helpMenu.Append(self.docItem)
627626
self.requestItem = wx.MenuItem(
628627
self.helpMenu,
629-
wx12.NewIdRef(),
628+
wx.NewIdRef(),
630629
"Request a Feature / Report a Bug",
631630
"",
632631
wx.ITEM_NORMAL,
633632
)
634633
self.helpMenu.Append(self.requestItem)
635-
self.communityItem = wx.MenuItem(self.helpMenu, wx12.NewIdRef(), "PDFgui Community", "", wx.ITEM_NORMAL)
634+
self.communityItem = wx.MenuItem(self.helpMenu, wx.NewIdRef(), "PDFgui Community", "", wx.ITEM_NORMAL)
636635
self.helpMenu.Append(self.communityItem)
637-
self.aboutItem = wx.MenuItem(self.helpMenu, wx12.NewIdRef(), "&About", "", wx.ITEM_NORMAL)
636+
self.aboutItem = wx.MenuItem(self.helpMenu, wx.NewIdRef(), "&About", "", wx.ITEM_NORMAL)
638637
self.helpMenu.Append(self.aboutItem)
639638
self.menuBar.Append(self.helpMenu, "&Help")
640639
# End Help Menu
@@ -648,7 +647,6 @@ def __setupMainMenu(self):
648647
def __setupToolBar(self):
649648
"""This sets up the tool bar in the parent window."""
650649
self.toolBar = self.CreateToolBar()
651-
wx12.patchToolBarMethods(self.toolBar)
652650
size = (16, 16)
653651
bitmap = wx.ArtProvider.GetBitmap(wx.ART_NEW, wx.ART_TOOLBAR, size)
654652
self.toolBar.AddTool(
@@ -1312,7 +1310,7 @@ def onRightClick(self, event): # wxGlade: MainPanel.<event_handler>
13121310
if self.mode == "fitting":
13131311

13141312
# The menu Ids are defined in __defineLocalIds.
1315-
menu = wx12.Menu()
1313+
menu = wx.Menu()
13161314
menu.Append(self.newFitId, "New Fit")
13171315
menu.AppendSeparator()
13181316
menu.Append(self.copyId, "Copy")
@@ -2546,11 +2544,11 @@ def showMessage(self, info, title="PDF Control Error"):
25462544

25472545
# control items
25482546
def lock(self):
2549-
if not wx12.IsMainThread():
2547+
if not wx.IsMainThread():
25502548
wx.MutexGuiEnter()
25512549

25522550
def unlock(self):
2553-
if not wx12.IsMainThread():
2551+
if not wx.IsMainThread():
25542552
wx.MutexGuiLeave()
25552553

25562554
def postEvent(self, type, info):

Diff for: src/diffpy/pdfgui/gui/parameterspanel.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import wx.grid
2525

2626
from diffpy.pdfgui.gui.pdfpanel import PDFPanel
27-
from diffpy.pdfgui.gui.wxextensions import wx12
2827
from diffpy.pdfgui.gui.wxextensions.autowidthlabelsgrid import AutoWidthLabelsGrid
2928
from diffpy.utils.wx import gridutils
3029

@@ -274,9 +273,9 @@ def popupMenu(self, window, x, y):
274273
# only do this part the first time so the events are only bound once
275274
if not hasattr(self, "did_popupIDs"):
276275
self.did_popupIDs = True
277-
self.popupID1 = wx12.NewIdRef()
278-
self.popupID2 = wx12.NewIdRef()
279-
self.popupID3 = wx12.NewIdRef()
276+
self.popupID1 = wx.NewIdRef()
277+
self.popupID2 = wx.NewIdRef()
278+
self.popupID3 = wx.NewIdRef()
280279

281280
self.Bind(wx.EVT_MENU, self.onPopupFixFree, id=self.popupID1)
282281
self.Bind(wx.EVT_MENU, self.onPopupCopyRefinedToInitial, id=self.popupID2)

Diff for: src/diffpy/pdfgui/gui/phaseconfigurepanel.py

+7-8
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
from diffpy.pdfgui.gui import phasepanelutils, tooltips
2525
from diffpy.pdfgui.gui.insertrowsdialog import InsertRowsDialog
2626
from diffpy.pdfgui.gui.pdfpanel import PDFPanel
27-
from diffpy.pdfgui.gui.wxextensions import wx12
2827
from diffpy.pdfgui.gui.wxextensions.autowidthlabelsgrid import AutoWidthLabelsGrid
2928
from diffpy.pdfgui.gui.wxextensions.textctrlutils import textCtrlAsGridCell
3029
from diffpy.pdfgui.gui.wxextensions.validators import FLOAT_ONLY, TextValidator
@@ -642,13 +641,13 @@ def popupMenu(self, window, x, y):
642641
"""
643642
# only do this part the first time so the events are only bound once
644643
if not hasattr(self, "insertID"):
645-
self.insertID = wx12.NewIdRef()
646-
self.deleteID = wx12.NewIdRef()
647-
self.selectID = wx12.NewIdRef()
648-
self.copyID = wx12.NewIdRef()
649-
self.pasteID = wx12.NewIdRef()
650-
self.supercellID = wx12.NewIdRef()
651-
self.spaceGroupID = wx12.NewIdRef()
644+
self.insertID = wx.NewIdRef()
645+
self.deleteID = wx.NewIdRef()
646+
self.selectID = wx.NewIdRef()
647+
self.copyID = wx.NewIdRef()
648+
self.pasteID = wx.NewIdRef()
649+
self.supercellID = wx.NewIdRef()
650+
self.spaceGroupID = wx.NewIdRef()
652651

653652
self.Bind(wx.EVT_MENU, self.onPopupInsert, id=self.insertID)
654653
self.Bind(wx.EVT_MENU, self.onPopupDelete, id=self.deleteID)

Diff for: src/diffpy/pdfgui/gui/phaseconstraintspanel.py

+4-5
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
from diffpy.pdfgui.gui import phasepanelutils, tooltips
2727
from diffpy.pdfgui.gui.pdfpanel import PDFPanel
2828
from diffpy.pdfgui.gui.sgconstraindialog import SGConstrainDialog
29-
from diffpy.pdfgui.gui.wxextensions import wx12
3029
from diffpy.pdfgui.gui.wxextensions.autowidthlabelsgrid import AutoWidthLabelsGrid
3130
from diffpy.pdfgui.gui.wxextensions.textctrlutils import textCtrlAsGridCell
3231
from diffpy.utils.wx import gridutils
@@ -582,10 +581,10 @@ def popupMenu(self, window, x, y):
582581
"""
583582
# only do this part the first time so the events are only bound once
584583
if not hasattr(self, "spaceGroupID"):
585-
self.spaceGroupID = wx12.NewIdRef()
586-
self.selectID = wx12.NewIdRef()
587-
self.copyID = wx12.NewIdRef()
588-
self.pasteID = wx12.NewIdRef()
584+
self.spaceGroupID = wx.NewIdRef()
585+
self.selectID = wx.NewIdRef()
586+
self.copyID = wx.NewIdRef()
587+
self.pasteID = wx.NewIdRef()
589588

590589
self.Bind(wx.EVT_MENU, self.onPopupSpaceGroup, id=self.spaceGroupID)
591590
self.Bind(wx.EVT_MENU, self.onPopupSelect, id=self.selectID)

Diff for: src/diffpy/pdfgui/gui/wxextensions/listctrls.py

+5-7
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,12 @@
2525
import wx
2626
import wx.lib.mixins.listctrl as listmix
2727

28-
from diffpy.pdfgui.gui.wxextensions import wx12
2928

30-
31-
class AutoWidthListCtrl(wx12.ListCtrl, listmix.ListCtrlAutoWidthMixin):
29+
class AutoWidthListCtrl(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin):
3230
"""WxListCtrl subclass that automatically adjusts its column width."""
3331

3432
def __init__(self, parent, ID, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, *args, **kwargs):
35-
wx12.ListCtrl.__init__(self, parent, ID, pos, size, style, *args, **kwargs)
33+
wx.ListCtrl.__init__(self, parent, ID, pos, size, style, *args, **kwargs)
3634
listmix.ListCtrlAutoWidthMixin.__init__(self)
3735

3836
def clearSelections(self):
@@ -185,6 +183,6 @@ def OnKeyDown(self, evt):
185183
# End of class KeyEventsListCtrl
186184

187185
# verify inheritance of all ListCtrl classes
188-
assert issubclass(AutoWidthListCtrl, wx12.ListCtrl)
189-
assert issubclass(ColumnSortListCtrl, wx12.ListCtrl)
190-
assert issubclass(KeyEventsListCtrl, wx12.ListCtrl)
186+
assert issubclass(AutoWidthListCtrl, wx.ListCtrl)
187+
assert issubclass(ColumnSortListCtrl, wx.ListCtrl)
188+
assert issubclass(KeyEventsListCtrl, wx.ListCtrl)

0 commit comments

Comments
 (0)