From 692a2188b0197a2ed4834f0a1f2431d941369e4d Mon Sep 17 00:00:00 2001 From: Michal Chruszcz Date: Sun, 18 Sep 2005 01:30:10 +0000 Subject: [PATCH] - initial checkin Changed files: BitTornado-new-wxpython-namespace.patch -> 1.1 --- BitTornado-new-wxpython-namespace.patch | 2838 +++++++++++++++++++++++ 1 file changed, 2838 insertions(+) create mode 100644 BitTornado-new-wxpython-namespace.patch diff --git a/BitTornado-new-wxpython-namespace.patch b/BitTornado-new-wxpython-namespace.patch new file mode 100644 index 0000000..f8c1ae6 --- /dev/null +++ b/BitTornado-new-wxpython-namespace.patch @@ -0,0 +1,2838 @@ +diff -Naur BitTornado-CVS.orig/btcompletedirgui.py BitTornado-CVS/btcompletedirgui.py +--- BitTornado-CVS.orig/btcompletedirgui.py 2004-05-09 15:07:20.000000000 +0200 ++++ BitTornado-CVS/btcompletedirgui.py 2005-09-18 02:52:10.089587432 +0200 +@@ -20,7 +20,7 @@ + from os import getcwd + from os.path import join + try: +- from wxPython.wx import * ++ import wx + except: + print 'wxPython is either not installed or has not been installed properly.' + sys.exit(1) +@@ -31,14 +31,14 @@ + True = 1 + False = 0 + +-wxEVT_INVOKE = wxNewEventType() ++wxEVT_INVOKE = wx.NewEventType() + + def EVT_INVOKE(win, func): + win.Connect(-1, -1, wxEVT_INVOKE, func) + +-class InvokeEvent(wxPyEvent): ++class InvokeEvent(wx.PyEvent): + def __init__(self, func, args, kwargs): +- wxPyEvent.__init__(self) ++ wx.PyEvent.__init__(self) + self.SetEventType(wxEVT_INVOKE) + self.func = func + self.args = args +@@ -46,55 +46,55 @@ + + class DownloadInfo: + def __init__(self): +- frame = wxFrame(None, -1, 'BitTorrent complete dir 1.0.1', size = wxSize(550, 250)) ++ frame = wx.Frame(None, -1, 'BitTorrent complete dir 1.0.1', size = wx.Size(550, 250)) + self.frame = frame + +- panel = wxPanel(frame, -1) ++ panel = wx.Panel(frame, -1) + +- gridSizer = wxFlexGridSizer(cols = 2, rows = 2, vgap = 15, hgap = 8) ++ gridSizer = wx.FlexGridSizer(cols = 2, rows = 2, vgap = 15, hgap = 8) + +- gridSizer.Add(wxStaticText(panel, -1, 'directory to build:')) +- self.dirCtl = wxTextCtrl(panel, -1, '') ++ gridSizer.Add(wx.StaticText(panel, -1, 'directory to build:')) ++ self.dirCtl = wx.TextCtrl(panel, -1, '') + +- b = wxBoxSizer(wxHORIZONTAL) +- b.Add(self.dirCtl, 1, wxEXPAND) +-# b.Add(10, 10, 0, wxEXPAND) +- button = wxButton(panel, -1, 'select') +- b.Add(button, 0, wxEXPAND) +- EVT_BUTTON(frame, button.GetId(), self.select) +- +- gridSizer.Add(b, 0, wxEXPAND) +- +- gridSizer.Add(wxStaticText(panel, -1, 'announce url:')) +- self.annCtl = wxTextCtrl(panel, -1, 'http://my.tracker:6969/announce') +- gridSizer.Add(self.annCtl, 0, wxEXPAND) ++ b = wx.BoxSizer(wx.HORIZONTAL) ++ b.Add(self.dirCtl, 1, wx.EXPAND) ++# b.Add(10, 10, 0, wx.EXPAND) ++ button = wx.Button(panel, -1, 'select') ++ b.Add(button, 0, wx.EXPAND) ++ wx.EVT_BUTTON(frame, button.GetId(), self.select) ++ ++ gridSizer.Add(b, 0, wx.EXPAND) ++ ++ gridSizer.Add(wx.StaticText(panel, -1, 'announce url:')) ++ self.annCtl = wx.TextCtrl(panel, -1, 'http://my.tracker:6969/announce') ++ gridSizer.Add(self.annCtl, 0, wx.EXPAND) + +- gridSizer.Add(wxStaticText(panel, -1, 'piece size:')) +- self.piece_length = wxChoice(panel, -1, choices = ['2 ** 21', '2 ** 20', '2 ** 19', ++ gridSizer.Add(wx.StaticText(panel, -1, 'piece size:')) ++ self.piece_length = wx.Choice(panel, -1, choices = ['2 ** 21', '2 ** 20', '2 ** 19', + '2 ** 18', '2 ** 17', '2 ** 16', '2 ** 15']) + self.piece_length.SetSelection(3) + gridSizer.Add(self.piece_length) + + gridSizer.AddGrowableCol(1) + +- border = wxBoxSizer(wxVERTICAL) +- border.Add(gridSizer, 0, wxEXPAND | wxNORTH | wxEAST | wxWEST, 25) +- b2 = wxButton(panel, -1, 'make') +-# border.Add(10, 10, 1, wxEXPAND) +- border.Add(b2, 0, wxALIGN_CENTER | wxSOUTH, 20) +- EVT_BUTTON(frame, b2.GetId(), self.complete) ++ border = wx.BoxSizer(wx.VERTICAL) ++ border.Add(gridSizer, 0, wx.EXPAND | wx.NORTH | wx.EAST | wx.WEST, 25) ++ b2 = wx.Button(panel, -1, 'make') ++# border.Add(10, 10, 1, wx.EXPAND) ++ border.Add(b2, 0, wx.ALIGN_CENTER | wx.SOUTH, 20) ++ wx.EVT_BUTTON(frame, b2.GetId(), self.complete) + panel.SetSizer(border) + panel.SetAutoLayout(True) + + def select(self, x): +- dl = wxDirDialog(self.frame, style = wxDD_DEFAULT_STYLE | wxDD_NEW_DIR_BUTTON) +- if dl.ShowModal() == wxID_OK: ++ dl = wx.DirDialog(self.frame, style = wx.DD_DEFAULT_STYLE | wx.DD_NEW_DIR_BUTTON) ++ if dl.ShowModal() == wx.ID_OK: + self.dirCtl.SetValue(dl.GetPath()) + + def complete(self, x): + if self.dirCtl.GetValue() == '': +- dlg = wxMessageDialog(self.frame, message = 'You must select a directory', +- caption = 'Error', style = wxOK | wxICON_ERROR) ++ dlg = wx.MessageDialog(self.frame, message = 'You must select a directory', ++ caption = 'Error', style = wx.OK | wx.ICON_ERROR) + dlg.ShowModal() + dlg.Destroy() + return +@@ -112,31 +112,31 @@ + self.a = a + self.pl = pl + self.flag = Event() +- frame = wxFrame(None, -1, 'BitTorrent make directory', size = wxSize(550, 250)) ++ frame = wx.Frame(None, -1, 'BitTorrent make directory', size = wx.Size(550, 250)) + self.frame = frame + +- panel = wxPanel(frame, -1) ++ panel = wx.Panel(frame, -1) + +- gridSizer = wxFlexGridSizer(cols = 1, vgap = 15, hgap = 8) ++ gridSizer = wx.FlexGridSizer(cols = 1, vgap = 15, hgap = 8) + +- self.currentLabel = wxStaticText(panel, -1, 'checking file sizes') +- gridSizer.Add(self.currentLabel, 0, wxEXPAND) +- self.gauge = wxGauge(panel, -1, range = 1000, style = wxGA_SMOOTH) +- gridSizer.Add(self.gauge, 0, wxEXPAND) +- gridSizer.Add(10, 10, 1, wxEXPAND) +- self.button = wxButton(panel, -1, 'cancel') +- gridSizer.Add(self.button, 0, wxALIGN_CENTER) ++ self.currentLabel = wx.StaticText(panel, -1, 'checking file sizes') ++ gridSizer.Add(self.currentLabel, 0, wx.EXPAND) ++ self.gauge = wx.Gauge(panel, -1, range = 1000, style = wx.GA_SMOOTH) ++ gridSizer.Add(self.gauge, 0, wx.EXPAND) ++ gridSizer.Add(10, 10, 1, wx.EXPAND) ++ self.button = wx.Button(panel, -1, 'cancel') ++ gridSizer.Add(self.button, 0, wx.ALIGN_CENTER) + gridSizer.AddGrowableRow(2) + gridSizer.AddGrowableCol(0) + +- g2 = wxFlexGridSizer(cols = 1, vgap = 15, hgap = 8) +- g2.Add(gridSizer, 1, wxEXPAND | wxALL, 25) ++ g2 = wx.FlexGridSizer(cols = 1, vgap = 15, hgap = 8) ++ g2.Add(gridSizer, 1, wx.EXPAND | wx.ALL, 25) + g2.AddGrowableRow(0) + g2.AddGrowableCol(0) + panel.SetSizer(g2) + panel.SetAutoLayout(True) +- EVT_BUTTON(frame, self.button.GetId(), self.done) +- EVT_CLOSE(frame, self.done) ++ wx.EVT_BUTTON(frame, self.button.GetId(), self.done) ++ wx.EVT_CLOSE(frame, self.done) + EVT_INVOKE(frame, self.onInvoke) + frame.Show(True) + Thread(target = self.complete).start() +@@ -152,8 +152,8 @@ + except (OSError, IOError), e: + self.currentLabel.SetLabel('Error!') + self.button.SetLabel('Close') +- dlg = wxMessageDialog(self.frame, message = 'Error - ' + str(e), +- caption = 'Error', style = wxOK | wxICON_ERROR) ++ dlg = wx.MessageDialog(self.frame, message = 'Error - ' + str(e), ++ caption = 'Error', style = wx.OK | wx.ICON_ERROR) + dlg.ShowModal() + dlg.Destroy() + +@@ -175,13 +175,13 @@ + + def invokeLater(self, func, args = [], kwargs = {}): + if not self.flag.isSet(): +- wxPostEvent(self.frame, InvokeEvent(func, args, kwargs)) ++ wx.PostEvent(self.frame, InvokeEvent(func, args, kwargs)) + + def done(self, event): + self.flag.set() + self.frame.Destroy() + +-class btWxApp(wxApp): ++class btWxApp(wx.App): + def OnInit(self): + d = DownloadInfo() + d.frame.Show(True) +diff -Naur BitTornado-CVS.orig/btdownloadgui.py BitTornado-CVS/btdownloadgui.py +--- BitTornado-CVS.orig/btdownloadgui.py 2005-08-20 03:21:00.000000000 +0200 ++++ BitTornado-CVS/btdownloadgui.py 2005-09-18 03:04:18.777780400 +0200 +@@ -17,7 +17,7 @@ + assert version >= '2', "Install Python 2.0 or greater" + + try: +- from wxPython.wx import * ++ import wx + except: + print 'wxPython is either not installed or has not been installed properly.' + exit(1) +@@ -52,9 +52,9 @@ + WXPROFILER = False + + try: +- wxFULL_REPAINT_ON_RESIZE ++ wx.FULL_REPAINT_ON_RESIZE + except: +- wxFULL_REPAINT_ON_RESIZE = 0 # fix for wx pre-2.5 ++ wx.FULL_REPAINT_ON_RESIZE = 0 # fix for wx pre-2.5 + + # Note to packagers: edit OLDICONPATH in BitTornado/ConfigDir.py + +@@ -104,14 +104,14 @@ + r.append(hexmap[ord(c)]) + return ''.join(r) + +-wxEVT_INVOKE = wxNewEventType() ++wxEVT_INVOKE = wx.NewEventType() + + def EVT_INVOKE(win, func): + win.Connect(-1, -1, wxEVT_INVOKE, func) + +-class InvokeEvent(wxPyEvent): ++class InvokeEvent(wx.PyEvent): + def __init__(self, func = None, args = None, kwargs = None): +- wxPyEvent.__init__(self) ++ wx.PyEvent.__init__(self) + self.SetEventType(wxEVT_INVOKE) + self.func = func + self.args = args +@@ -124,9 +124,9 @@ + self._errorwindow = None + try: + self.FONT = configfile.config['gui_font'] +- self.default_font = wxFont(self.FONT, wxDEFAULT, wxNORMAL, wxNORMAL, False) +- frame = wxFrame(None, -1, 'BitTorrent ' + version + ' download', +- style = wxDEFAULT_FRAME_STYLE|wxFULL_REPAINT_ON_RESIZE) ++ self.default_font = wx.Font(self.FONT, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False) ++ frame = wx.Frame(None, -1, 'BitTorrent ' + version + ' download', ++ style = wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE) + self.flag = flag + self.configfile = configfile + self.configfileargs = configfile.config +@@ -172,10 +172,10 @@ + self.invokeLaterEvent = InvokeEvent() + self.invokeLaterList = [] + +- wxInitAllImageHandlers() ++ wx.InitAllImageHandlers() + self.basepath = self.configfile.getIconDir() +- self.icon = wxIcon(os.path.join(self.basepath,'icon_bt.ico'), wxBITMAP_TYPE_ICO) +- self.finicon = wxIcon(os.path.join(self.basepath,'icon_done.ico'), wxBITMAP_TYPE_ICO) ++ self.icon = wx.Icon(os.path.join(self.basepath,'icon_bt.ico'), wx.BITMAP_TYPE_ICO) ++ self.finicon = wx.Icon(os.path.join(self.basepath,'icon_done.ico'), wx.BITMAP_TYPE_ICO) + self.statusIconFiles={ + 'startup':os.path.join(self.basepath,'white.ico'), + 'disconnected':os.path.join(self.basepath,'black.ico'), +@@ -185,12 +185,12 @@ + 'allgood':os.path.join(self.basepath,'green.ico'), + } + self.statusIcons={} +- self.filestatusIcons = wxImageList(16, 16) +- self.filestatusIcons.Add(wxBitmap(os.path.join(self.basepath,'black1.ico'),wxBITMAP_TYPE_ICO)) +- self.filestatusIcons.Add(wxBitmap(os.path.join(self.basepath,'yellow1.ico'), wxBITMAP_TYPE_ICO)) +- self.filestatusIcons.Add(wxBitmap(os.path.join(self.basepath,'green1.ico'), wxBITMAP_TYPE_ICO)) ++ self.filestatusIcons = wx.ImageList(16, 16) ++ self.filestatusIcons.Add(wx.Bitmap(os.path.join(self.basepath,'black1.ico'),wx.BITMAP_TYPE_ICO)) ++ self.filestatusIcons.Add(wx.Bitmap(os.path.join(self.basepath,'yellow1.ico'), wx.BITMAP_TYPE_ICO)) ++ self.filestatusIcons.Add(wx.Bitmap(os.path.join(self.basepath,'green1.ico'), wx.BITMAP_TYPE_ICO)) + +- self.allocbuttonBitmap = wxBitmap(os.path.join(self.basepath,'alloc.gif'), wxBITMAP_TYPE_GIF) ++ self.allocbuttonBitmap = wx.Bitmap(os.path.join(self.basepath,'alloc.gif'), wx.BITMAP_TYPE_GIF) + + self.starttime = clock() + +@@ -200,239 +200,239 @@ + except: + pass + +- panel = wxPanel(frame, -1) ++ panel = wx.Panel(frame, -1) + self.bgcolor = panel.GetBackgroundColour() + + def StaticText(text, font = self.FONT, underline = False, color = None, panel = panel): +- x = wxStaticText(panel, -1, text, style = wxALIGN_LEFT) +- x.SetFont(wxFont(font, wxDEFAULT, wxNORMAL, wxNORMAL, underline)) ++ x = wx.StaticText(panel, -1, text, style = wx.ALIGN_LEFT) ++ x.SetFont(wx.Font(font, wx.DEFAULT, wx.NORMAL, wx.NORMAL, underline)) + if color is not None: + x.SetForegroundColour(color) + return x + +- colSizer = wxFlexGridSizer(cols = 1, vgap = 3) ++ colSizer = wx.FlexGridSizer(cols = 1, vgap = 3) + +- border = wxBoxSizer(wxHORIZONTAL) +- border.Add(colSizer, 1, wxEXPAND | wxALL, 4) ++ border = wx.BoxSizer(wx.HORIZONTAL) ++ border.Add(colSizer, 1, wx.EXPAND | wx.ALL, 4) + panel.SetSizer(border) + panel.SetAutoLayout(True) + +- topboxsizer = wxFlexGridSizer(cols = 3, vgap = 0) ++ topboxsizer = wx.FlexGridSizer(cols = 3, vgap = 0) + topboxsizer.AddGrowableCol (0) + +- fnsizer = wxFlexGridSizer(cols = 1, vgap = 0) ++ fnsizer = wx.FlexGridSizer(cols = 1, vgap = 0) + fnsizer.AddGrowableCol (0) + fnsizer.AddGrowableRow (1) + + fileNameText = StaticText('', self.FONT+4) +- fnsizer.Add(fileNameText, 1, wxALIGN_BOTTOM|wxEXPAND) ++ fnsizer.Add(fileNameText, 1, wx.ALIGN_BOTTOM|wx.EXPAND) + self.fileNameText = fileNameText + +- fnsizer2 = wxFlexGridSizer(cols = 8, vgap = 0) ++ fnsizer2 = wx.FlexGridSizer(cols = 8, vgap = 0) + fnsizer2.AddGrowableCol (0) + + fileSizeText = StaticText('') +- fnsizer2.Add(fileSizeText, 1, wxALIGN_BOTTOM|wxEXPAND) ++ fnsizer2.Add(fileSizeText, 1, wx.ALIGN_BOTTOM|wx.EXPAND) + self.fileSizeText = fileSizeText + + fileDetails = StaticText('Details', self.FONT, True, 'Blue') +- fnsizer2.Add(fileDetails, 0, wxALIGN_BOTTOM) ++ fnsizer2.Add(fileDetails, 0, wx.ALIGN_BOTTOM) + + fnsizer2.Add(StaticText(' ')) + + advText = StaticText('Advanced', self.FONT, True, 'Blue') +- fnsizer2.Add(advText, 0, wxALIGN_BOTTOM) ++ fnsizer2.Add(advText, 0, wx.ALIGN_BOTTOM) + fnsizer2.Add(StaticText(' ')) + + prefsText = StaticText('Prefs', self.FONT, True, 'Blue') +- fnsizer2.Add(prefsText, 0, wxALIGN_BOTTOM) ++ fnsizer2.Add(prefsText, 0, wx.ALIGN_BOTTOM) + fnsizer2.Add(StaticText(' ')) + + aboutText = StaticText('About', self.FONT, True, 'Blue') +- fnsizer2.Add(aboutText, 0, wxALIGN_BOTTOM) ++ fnsizer2.Add(aboutText, 0, wx.ALIGN_BOTTOM) + + fnsizer2.Add(StaticText(' ')) +- fnsizer.Add(fnsizer2,0,wxEXPAND) +- topboxsizer.Add(fnsizer,0,wxEXPAND) ++ fnsizer.Add(fnsizer2,0,wx.EXPAND) ++ topboxsizer.Add(fnsizer,0,wx.EXPAND) + topboxsizer.Add(StaticText(' ')) + +- self.statusIcon = wxEmptyBitmap(32,32) +- statidata = wxMemoryDC() ++ self.statusIcon = wx.EmptyBitmap(32,32) ++ statidata = wx.MemoryDC() + statidata.SelectObject(self.statusIcon) +- statidata.SetPen(wxTRANSPARENT_PEN) +- statidata.SetBrush(wxBrush(self.bgcolor,wxSOLID)) ++ statidata.SetPen(wx.TRANSPARENT_PEN) ++ statidata.SetBrush(wx.Brush(self.bgcolor,wx.SOLID)) + statidata.DrawRectangle(0,0,32,32) +- self.statusIconPtr = wxStaticBitmap(panel, -1, self.statusIcon) ++ self.statusIconPtr = wx.StaticBitmap(panel, -1, self.statusIcon) + topboxsizer.Add(self.statusIconPtr) + + self.fnsizer = fnsizer + self.fnsizer2 = fnsizer2 + self.topboxsizer = topboxsizer +- colSizer.Add(topboxsizer, 0, wxEXPAND) ++ colSizer.Add(topboxsizer, 0, wx.EXPAND) + +- self.gauge = wxGauge(panel, -1, range = 1000, style = wxGA_SMOOTH) +- colSizer.Add(self.gauge, 0, wxEXPAND) ++ self.gauge = wx.Gauge(panel, -1, range = 1000, style = wx.GA_SMOOTH) ++ colSizer.Add(self.gauge, 0, wx.EXPAND) + +- timeSizer = wxFlexGridSizer(cols = 2) ++ timeSizer = wx.FlexGridSizer(cols = 2) + timeSizer.Add(StaticText('Time elapsed / estimated : ')) + self.timeText = StaticText(self.activity+' ') + timeSizer.Add(self.timeText) + timeSizer.AddGrowableCol(1) + colSizer.Add(timeSizer) + +- destSizer = wxFlexGridSizer(cols = 2, hgap = 8) ++ destSizer = wx.FlexGridSizer(cols = 2, hgap = 8) + self.fileDestLabel = StaticText('Download to:') + destSizer.Add(self.fileDestLabel) + self.fileDestText = StaticText('') +- destSizer.Add(self.fileDestText, flag = wxEXPAND) ++ destSizer.Add(self.fileDestText, flag = wx.EXPAND) + destSizer.AddGrowableCol(1) +- colSizer.Add(destSizer, flag = wxEXPAND) ++ colSizer.Add(destSizer, flag = wx.EXPAND) + self.destSizer = destSizer + +- statSizer = wxFlexGridSizer(cols = 3, hgap = 8) ++ statSizer = wx.FlexGridSizer(cols = 3, hgap = 8) + +- self.ratesSizer = wxFlexGridSizer(cols = 2) +- self.infoSizer = wxFlexGridSizer(cols = 2) ++ self.ratesSizer = wx.FlexGridSizer(cols = 2) ++ self.infoSizer = wx.FlexGridSizer(cols = 2) + + self.ratesSizer.Add(StaticText(' Download rate: ')) + self.downRateText = StaticText('0 kB/s ') +- self.ratesSizer.Add(self.downRateText, flag = wxEXPAND) ++ self.ratesSizer.Add(self.downRateText, flag = wx.EXPAND) + + self.downTextLabel = StaticText('Downloaded: ') + self.infoSizer.Add(self.downTextLabel) + self.downText = StaticText('0.00 MiB ') +- self.infoSizer.Add(self.downText, flag = wxEXPAND) ++ self.infoSizer.Add(self.downText, flag = wx.EXPAND) + + self.ratesSizer.Add(StaticText(' Upload rate: ')) + self.upRateText = StaticText('0 kB/s ') +- self.ratesSizer.Add(self.upRateText, flag = wxEXPAND) ++ self.ratesSizer.Add(self.upRateText, flag = wx.EXPAND) + + self.upTextLabel = StaticText('Uploaded: ') + self.infoSizer.Add(self.upTextLabel) + self.upText = StaticText('0.00 MiB ') +- self.infoSizer.Add(self.upText, flag = wxEXPAND) ++ self.infoSizer.Add(self.upText, flag = wx.EXPAND) + +- shareSizer = wxFlexGridSizer(cols = 2, hgap = 8) ++ shareSizer = wx.FlexGridSizer(cols = 2, hgap = 8) + shareSizer.Add(StaticText('Share rating:')) + self.shareRatingText = StaticText('') + shareSizer.AddGrowableCol(1) +- shareSizer.Add(self.shareRatingText, flag = wxEXPAND) ++ shareSizer.Add(self.shareRatingText, flag = wx.EXPAND) + + statSizer.Add(self.ratesSizer) + statSizer.Add(self.infoSizer) +- statSizer.Add(shareSizer, flag = wxALIGN_CENTER_VERTICAL) ++ statSizer.Add(shareSizer, flag = wx.ALIGN_CENTER_VERTICAL) + colSizer.Add (statSizer) + +- torrentSizer = wxFlexGridSizer(cols = 1) ++ torrentSizer = wx.FlexGridSizer(cols = 1) + self.peerStatusText = StaticText('') +- torrentSizer.Add(self.peerStatusText, 0, wxEXPAND) ++ torrentSizer.Add(self.peerStatusText, 0, wx.EXPAND) + self.seedStatusText = StaticText('') +- torrentSizer.Add(self.seedStatusText, 0, wxEXPAND) ++ torrentSizer.Add(self.seedStatusText, 0, wx.EXPAND) + torrentSizer.AddGrowableCol(0) +- colSizer.Add(torrentSizer, 0, wxEXPAND) ++ colSizer.Add(torrentSizer, 0, wx.EXPAND) + self.torrentSizer = torrentSizer + +- self.errorTextSizer = wxFlexGridSizer(cols = 1) ++ self.errorTextSizer = wx.FlexGridSizer(cols = 1) + self.errorText = StaticText('', self.FONT, False, 'Red') +- self.errorTextSizer.Add(self.errorText, 0, wxEXPAND) +- colSizer.Add(self.errorTextSizer, 0, wxEXPAND) ++ self.errorTextSizer.Add(self.errorText, 0, wx.EXPAND) ++ colSizer.Add(self.errorTextSizer, 0, wx.EXPAND) + +- cancelSizer=wxGridSizer(cols = 2, hgap = 40) +- self.pauseButton = wxButton(panel, -1, 'Pause') +- cancelSizer.Add(self.pauseButton, 0, wxALIGN_CENTER) +- +- self.cancelButton = wxButton(panel, -1, 'Cancel') +- cancelSizer.Add(self.cancelButton, 0, wxALIGN_CENTER) +- colSizer.Add(cancelSizer, 0, wxALIGN_CENTER) ++ cancelSizer=wx.GridSizer(cols = 2, hgap = 40) ++ self.pauseButton = wx.Button(panel, -1, 'Pause') ++ cancelSizer.Add(self.pauseButton, 0, wx.ALIGN_CENTER) ++ ++ self.cancelButton = wx.Button(panel, -1, 'Cancel') ++ cancelSizer.Add(self.cancelButton, 0, wx.ALIGN_CENTER) ++ colSizer.Add(cancelSizer, 0, wx.ALIGN_CENTER) + + # Setting options + +- slideSizer = wxFlexGridSizer(cols = 7, hgap = 0, vgap = 5) ++ slideSizer = wx.FlexGridSizer(cols = 7, hgap = 0, vgap = 5) + + # dropdown + + self.connChoiceLabel = StaticText('Settings for ') +- slideSizer.Add (self.connChoiceLabel, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL) +- self.connChoice = wxChoice (panel, -1, (-1, -1), (self.FONT*11, -1), ++ slideSizer.Add (self.connChoiceLabel, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) ++ self.connChoice = wx.Choice (panel, -1, (-1, -1), (self.FONT*11, -1), + choices = connChoiceList) + self.connChoice.SetFont(self.default_font) + self.connChoice.SetSelection(0) +- slideSizer.Add (self.connChoice, 0, wxALIGN_CENTER) ++ slideSizer.Add (self.connChoice, 0, wx.ALIGN_CENTER) + self.rateSpinnerLabel = StaticText(' Upload rate (kB/s) ') +- slideSizer.Add (self.rateSpinnerLabel, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL) ++ slideSizer.Add (self.rateSpinnerLabel, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) + + # max upload rate + +- self.rateSpinner = wxSpinCtrl (panel, -1, "", (-1,-1), (50, -1)) ++ self.rateSpinner = wx.SpinCtrl (panel, -1, "", (-1,-1), (50, -1)) + self.rateSpinner.SetFont(self.default_font) + self.rateSpinner.SetRange(0,5000) + self.rateSpinner.SetValue(0) +- slideSizer.Add (self.rateSpinner, 0, wxALIGN_CENTER|wxALIGN_CENTER_VERTICAL) ++ slideSizer.Add (self.rateSpinner, 0, wx.ALIGN_CENTER|wx.ALIGN_CENTER_VERTICAL) + + self.rateLowerText = StaticText(' %5d' % (0)) + self.rateUpperText = StaticText('%5d' % (5000)) +- self.rateslider = wxSlider(panel, -1, 0, 0, 5000, (-1, -1), (80, -1)) ++ self.rateslider = wx.Slider(panel, -1, 0, 0, 5000, (-1, -1), (80, -1)) + +- slideSizer.Add(self.rateLowerText, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL) +- slideSizer.Add(self.rateslider, 0, wxALIGN_CENTER|wxALIGN_CENTER_VERTICAL) +- slideSizer.Add(self.rateUpperText, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL) ++ slideSizer.Add(self.rateLowerText, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) ++ slideSizer.Add(self.rateslider, 0, wx.ALIGN_CENTER|wx.ALIGN_CENTER_VERTICAL) ++ slideSizer.Add(self.rateUpperText, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) + +- slideSizer.Add(StaticText(''), 0, wxALIGN_LEFT) ++ slideSizer.Add(StaticText(''), 0, wx.ALIGN_LEFT) + + self.bgallocText = StaticText('', self.FONT+2, False, 'Red') +- slideSizer.Add(self.bgallocText, 0, wxALIGN_LEFT) ++ slideSizer.Add(self.bgallocText, 0, wx.ALIGN_LEFT) + + # max uploads + + self.connSpinnerLabel = StaticText(' Max uploads ') +- slideSizer.Add (self.connSpinnerLabel, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL) +- self.connSpinner = wxSpinCtrl (panel, -1, "", (-1,-1), (50, -1)) ++ slideSizer.Add (self.connSpinnerLabel, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) ++ self.connSpinner = wx.SpinCtrl (panel, -1, "", (-1,-1), (50, -1)) + self.connSpinner.SetFont(self.default_font) + self.connSpinner.SetRange(4,100) + self.connSpinner.SetValue(4) +- slideSizer.Add (self.connSpinner, 0, wxALIGN_CENTER|wxALIGN_CENTER_VERTICAL) ++ slideSizer.Add (self.connSpinner, 0, wx.ALIGN_CENTER|wx.ALIGN_CENTER_VERTICAL) + + self.connLowerText = StaticText(' %5d' % (4)) + self.connUpperText = StaticText('%5d' % (100)) +- self.connslider = wxSlider(panel, -1, 4, 4, 100, (-1, -1), (80, -1)) ++ self.connslider = wx.Slider(panel, -1, 4, 4, 100, (-1, -1), (80, -1)) + +- slideSizer.Add(self.connLowerText, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL) +- slideSizer.Add(self.connslider, 0, wxALIGN_CENTER|wxALIGN_CENTER_VERTICAL) +- slideSizer.Add(self.connUpperText, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL) ++ slideSizer.Add(self.connLowerText, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) ++ slideSizer.Add(self.connslider, 0, wx.ALIGN_CENTER|wx.ALIGN_CENTER_VERTICAL) ++ slideSizer.Add(self.connUpperText, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) + +- colSizer.Add(slideSizer, 1, wxALL|wxALIGN_CENTER|wxEXPAND, 0) ++ colSizer.Add(slideSizer, 1, wx.ALL|wx.ALIGN_CENTER|wx.EXPAND, 0) + + self.unlimitedLabel = StaticText('0 kB/s means unlimited. Tip: your download rate is proportional to your upload rate', self.FONT-2) +- colSizer.Add(self.unlimitedLabel, 0, wxALIGN_CENTER) ++ colSizer.Add(self.unlimitedLabel, 0, wx.ALIGN_CENTER) + +- self.priorityIDs = [wxNewId(),wxNewId(),wxNewId(),wxNewId()] +- self.prioritycolors = [ wxColour(160,160,160), +- wxColour(255,64,0), +- wxColour(0,0,0), +- wxColour(64,64,255) ] +- +- +- EVT_LEFT_DOWN(aboutText, self.about) +- EVT_LEFT_DOWN(fileDetails, self.details) +- EVT_LEFT_DOWN(self.statusIconPtr,self.statusIconHelp) +- EVT_LEFT_DOWN(advText, self.advanced) +- EVT_LEFT_DOWN(prefsText, self.openConfigMenu) +- EVT_CLOSE(frame, self.done) +- EVT_BUTTON(frame, self.pauseButton.GetId(), self.pause) +- EVT_BUTTON(frame, self.cancelButton.GetId(), self.done) ++ self.priorityIDs = [wx.NewId(),wx.NewId(),wx.NewId(),wx.NewId()] ++ self.prioritycolors = [ wx.Colour(160,160,160), ++ wx.Colour(255,64,0), ++ wx.Colour(0,0,0), ++ wx.Colour(64,64,255) ] ++ ++ ++ wx.EVT_LEFT_DOWN(aboutText, self.about) ++ wx.EVT_LEFT_DOWN(fileDetails, self.details) ++ wx.EVT_LEFT_DOWN(self.statusIconPtr,self.statusIconHelp) ++ wx.EVT_LEFT_DOWN(advText, self.advanced) ++ wx.EVT_LEFT_DOWN(prefsText, self.openConfigMenu) ++ wx.EVT_CLOSE(frame, self.done) ++ wx.EVT_BUTTON(frame, self.pauseButton.GetId(), self.pause) ++ wx.EVT_BUTTON(frame, self.cancelButton.GetId(), self.done) + EVT_INVOKE(frame, self.onInvoke) +- EVT_SCROLL(self.rateslider, self.onRateScroll) +- EVT_SCROLL(self.connslider, self.onConnScroll) +- EVT_CHOICE(self.connChoice, -1, self.onConnChoice) +- EVT_SPINCTRL(self.connSpinner, -1, self.onConnSpinner) +- EVT_SPINCTRL(self.rateSpinner, -1, self.onRateSpinner) ++ wx.EVT_SCROLL(self.rateslider, self.onRateScroll) ++ wx.EVT_SCROLL(self.connslider, self.onConnScroll) ++ wx.EVT_CHOICE(self.connChoice, -1, self.onConnChoice) ++ wx.EVT_SPINCTRL(self.connSpinner, -1, self.onConnSpinner) ++ wx.EVT_SPINCTRL(self.rateSpinner, -1, self.onRateSpinner) + if (sys.platform == 'win32'): +- self.frame.tbicon = wxTaskBarIcon() +- EVT_ICONIZE(self.frame, self.onIconify) +- EVT_TASKBAR_LEFT_DCLICK(self.frame.tbicon, self.onTaskBarActivate) +- EVT_TASKBAR_RIGHT_UP(self.frame.tbicon, self.onTaskBarMenu) +- EVT_MENU(self.frame.tbicon, self.TBMENU_RESTORE, self.onTaskBarActivate) +- EVT_MENU(self.frame.tbicon, self.TBMENU_CLOSE, self.done) ++ self.frame.tbicon = wx.TaskBarIcon() ++ wx.EVT_ICONIZE(self.frame, self.onIconify) ++ wx.EVT_TASKBAR_LEFT_DCLICK(self.frame.tbicon, self.onTaskBarActivate) ++ wx.EVT_TASKBAR_RIGHT_UP(self.frame.tbicon, self.onTaskBarMenu) ++ wx.EVT_MENU(self.frame.tbicon, self.TBMENU_RESTORE, self.onTaskBarActivate) ++ wx.EVT_MENU(self.frame.tbicon, self.TBMENU_CLOSE, self.done) + colSizer.AddGrowableCol (0) + colSizer.AddGrowableRow (6) + self.frame.Show() +@@ -468,7 +468,7 @@ + if not self.uiflag.isSet(): + self.invokeLaterList.append((func,args,kwargs)) + if len(self.invokeLaterList) == 1: +- wxPostEvent(self.frame, self.invokeLaterEvent) ++ wx.PostEvent(self.frame, self.invokeLaterEvent) + else: + def onInvoke(self, event): + if not self.uiflag.isSet(): +@@ -479,7 +479,7 @@ + + def invokeLater(self, func, args = [], kwargs = {}): + if not self.uiflag.isSet(): +- wxPostEvent(self.frame, InvokeEvent(func, args, kwargs)) ++ wx.PostEvent(self.frame, InvokeEvent(func, args, kwargs)) + + + def getStatusIcon(self, name, bitmap=False): +@@ -488,9 +488,9 @@ + if type(i) == type(self.icon) and not bitmap: + return i + if bitmap: +- i = wxBitmap(self.statusIconFiles[name], wxBITMAP_TYPE_ICO) ++ i = wx.Bitmap(self.statusIconFiles[name], wx.BITMAP_TYPE_ICO) + else: +- i = wxIcon(self.statusIconFiles[name], wxBITMAP_TYPE_ICO) ++ i = wx.Icon(self.statusIconFiles[name], wx.BITMAP_TYPE_ICO) + self.statusIcons[name] = i + return i + +@@ -499,7 +499,7 @@ + if name == self.statusIconValue: + return + self.statusIconValue = name +- statidata = wxMemoryDC() ++ statidata = wx.MemoryDC() + statidata.SelectObject(self.statusIcon) + statidata.BeginDrawing() + try: +@@ -507,16 +507,16 @@ + except: + statidata.DrawBitmap(self.getStatusIcon(name,True),0,0,True) + statidata.EndDrawing() +- statidata.SelectObject(wxNullBitmap) ++ statidata.SelectObject(wx.NullBitmap) + self.statusIconPtr.Refresh() + + + def createStatusIcon(self, name): +- iconbuffer = wxEmptyBitmap(32,32) +- bbdata = wxMemoryDC() ++ iconbuffer = wx.EmptyBitmap(32,32) ++ bbdata = wx.MemoryDC() + bbdata.SelectObject(iconbuffer) +- bbdata.SetPen(wxTRANSPARENT_PEN) +- bbdata.SetBrush(wxBrush(self.bgcolor,wxSOLID)) ++ bbdata.SetPen(wx.TRANSPARENT_PEN) ++ bbdata.SetBrush(wx.Brush(self.bgcolor,wx.SOLID)) + bbdata.DrawRectangle(0,0,32,32) + try: + bbdata.DrawIcon(self.getStatusIcon(name),0,0) +@@ -534,10 +534,10 @@ + self.gaugemode = selection + if selection < 0: + self.gauge.SetForegroundColour(self.configfile.getcheckingcolor()) +- self.gauge.SetBackgroundColour(wxSystemSettings_GetColour(wxSYS_COLOUR_MENU)) ++ self.gauge.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENU)) + elif selection == 0: + self.gauge.SetForegroundColour(self.configfile.getdownloadcolor()) +- self.gauge.SetBackgroundColour(wxSystemSettings_GetColour(wxSYS_COLOUR_MENU)) ++ self.gauge.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENU)) + else: + self.gauge.SetForegroundColour(self.configfile.getseedingcolor()) + self.gauge.SetBackgroundColour(self.configfile.getdownloadcolor()) +@@ -567,7 +567,7 @@ + self.frame.Raise() + self.frame.tbicon.RemoveIcon() + self.taskbaricon = False +- except wxPyDeadObjectError: ++ except wx.PyDeadObjectError: + pass + except: + self.exception() +@@ -576,7 +576,7 @@ + TBMENU_CLOSE = 1001 + + def onTaskBarMenu(self, evt): +- menu = wxMenu() ++ menu = wx.Menu() + menu.Append(self.TBMENU_RESTORE, "Restore BitTorrent") + menu.Append(self.TBMENU_CLOSE, "Close") + self.frame.tbicon.PopupMenu(menu) +@@ -721,33 +721,33 @@ + if (self.aboutBox is not None): + try: + self.aboutBox.Close () +- except wxPyDeadObjectError, e: ++ except wx.PyDeadObjectError, e: + self.aboutBox = None + +- self.aboutBox = wxFrame(None, -1, 'About BitTorrent', size = (1,1), +- style = wxDEFAULT_FRAME_STYLE|wxFULL_REPAINT_ON_RESIZE) ++ self.aboutBox = wx.Frame(None, -1, 'About BitTorrent', size = (1,1), ++ style = wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE) + try: + self.aboutBox.SetIcon(self.icon) + except: + pass + +- panel = wxPanel(self.aboutBox, -1) ++ panel = wx.Panel(self.aboutBox, -1) + + def StaticText(text, font = self.FONT, underline = False, color = None, panel = panel): +- x = wxStaticText(panel, -1, text, style = wxALIGN_LEFT) +- x.SetFont(wxFont(font, wxDEFAULT, wxNORMAL, wxNORMAL, underline)) ++ x = wx.StaticText(panel, -1, text, style = wx.ALIGN_LEFT) ++ x.SetFont(wx.Font(font, wx.DEFAULT, wx.NORMAL, wx.NORMAL, underline)) + if color is not None: + x.SetForegroundColour(color) + return x + +- colSizer = wxFlexGridSizer(cols = 1, vgap = 3) ++ colSizer = wx.FlexGridSizer(cols = 1, vgap = 3) + +- titleSizer = wxBoxSizer(wxHORIZONTAL) ++ titleSizer = wx.BoxSizer(wx.HORIZONTAL) + aboutTitle = StaticText('BitTorrent ' + version + ' ', self.FONT+4) + titleSizer.Add (aboutTitle) + linkDonate = StaticText('Donate to Bram', self.FONT, True, 'Blue') +- titleSizer.Add (linkDonate, 1, wxALIGN_BOTTOM&wxEXPAND) +- colSizer.Add(titleSizer, 0, wxEXPAND) ++ titleSizer.Add (linkDonate, 1, wx.ALIGN_BOTTOM&wx.EXPAND) ++ colSizer.Add(titleSizer, 0, wx.EXPAND) + + colSizer.Add(StaticText('created by Bram Cohen, Copyright 2001-2003,')) + colSizer.Add(StaticText('experimental version maintained by John Hoffman 2003')) +@@ -757,7 +757,7 @@ + + si = ( 'exact Version String: ' + version + '\n' + + 'Python version: ' + sys.version + '\n' + +- 'wxWindows version: ' + wxVERSION_STRING + '\n' ) ++ 'wxWidgets version: ' + wx.VERSION_STRING + '\n' ) + try: + si += 'Psyco version: ' + hex(psyco.__version__)[2:] + '\n' + except: +@@ -777,36 +777,36 @@ + colSizer.Add (babble4) + colSizer.Add (babble6) + +- okButton = wxButton(panel, -1, 'Ok') +- colSizer.Add(okButton, 0, wxALIGN_RIGHT) ++ okButton = wx.Button(panel, -1, 'Ok') ++ colSizer.Add(okButton, 0, wx.ALIGN_RIGHT) + colSizer.AddGrowableCol(0) + +- border = wxBoxSizer(wxHORIZONTAL) +- border.Add(colSizer, 1, wxEXPAND | wxALL, 4) ++ border = wx.BoxSizer(wx.HORIZONTAL) ++ border.Add(colSizer, 1, wx.EXPAND | wx.ALL, 4) + panel.SetSizer(border) + panel.SetAutoLayout(True) + + def donatelink(self): + Thread(target = open_new('https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=bram@bitconjurer.org&item_name=BitTorrent&amount=5.00&submit=donate')).start() +- EVT_LEFT_DOWN(linkDonate, donatelink) ++ wx.EVT_LEFT_DOWN(linkDonate, donatelink) + def aboutlink(self): + Thread(target = open_new('http://bitconjurer.org/BitTorrent/')).start() +- EVT_LEFT_DOWN(babble2, aboutlink) ++ wx.EVT_LEFT_DOWN(babble2, aboutlink) + def shadlink(self): + Thread(target = open_new('http://www.bittornado.com/')).start() +- EVT_LEFT_DOWN(babble3, shadlink) ++ wx.EVT_LEFT_DOWN(babble3, shadlink) + def explink(self): + Thread(target = open_new('http://ei.kefro.st/projects/btclient/')).start() +- EVT_LEFT_DOWN(babble4, explink) ++ wx.EVT_LEFT_DOWN(babble4, explink) + def licenselink(self): + Thread(target = open_new('http://ei.kefro.st/projects/btclient/LICENSE.TXT')).start() +- EVT_LEFT_DOWN(babble6, licenselink) +- EVT_LEFT_DOWN(credits, self.credits) ++ wx.EVT_LEFT_DOWN(babble6, licenselink) ++ wx.EVT_LEFT_DOWN(credits, self.credits) + + def closeAbout(e, self = self): + if self.aboutBox: + self.aboutBox.Close() +- EVT_BUTTON(self.aboutBox, okButton.GetId(), closeAbout) ++ wx.EVT_BUTTON(self.aboutBox, okButton.GetId(), closeAbout) + def kill(e, self = self): + try: + self.aboutBox.RemoveIcon() +@@ -814,7 +814,7 @@ + pass + self.aboutBox.Destroy() + self.aboutBox = None +- EVT_CLOSE(self.aboutBox, kill) ++ wx.EVT_CLOSE(self.aboutBox, kill) + + self.aboutBox.Show() + border.Fit(panel) +@@ -846,35 +846,35 @@ + if (self.detailBox is not None): + try: + self.detailBox.Close() +- except wxPyDeadObjectError, e: ++ except wx.PyDeadObjectError, e: + self.detailBox = None + +- self.detailBox = wxFrame(None, -1, 'Torrent Details ', size = wxSize(405,230), +- style = wxDEFAULT_FRAME_STYLE|wxFULL_REPAINT_ON_RESIZE) ++ self.detailBox = wx.Frame(None, -1, 'Torrent Details ', size = wx.Size(405,230), ++ style = wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE) + try: + self.detailBox.SetIcon(self.icon) + except: + pass + +- panel = wxPanel(self.detailBox, -1, size = wxSize (400,220)) ++ panel = wx.Panel(self.detailBox, -1, size = wx.Size (400,220)) + + def StaticText(text, font = self.FONT, underline = False, color = None, panel = panel): +- x = wxStaticText(panel, -1, text, style = wxALIGN_CENTER_VERTICAL) +- x.SetFont(wxFont(font, wxDEFAULT, wxNORMAL, wxNORMAL, underline)) ++ x = wx.StaticText(panel, -1, text, style = wx.ALIGN_CENTER_VERTICAL) ++ x.SetFont(wx.Font(font, wx.DEFAULT, wx.NORMAL, wx.NORMAL, underline)) + if color is not None: + x.SetForegroundColour(color) + return x + +- colSizer = wxFlexGridSizer(cols = 1, vgap = 3) ++ colSizer = wx.FlexGridSizer(cols = 1, vgap = 3) + colSizer.AddGrowableCol(0) + +- titleSizer = wxBoxSizer(wxHORIZONTAL) ++ titleSizer = wx.BoxSizer(wx.HORIZONTAL) + aboutTitle = StaticText('Details about ' + self.filename, self.FONT+4) + + titleSizer.Add (aboutTitle) + colSizer.Add (titleSizer) + +- detailSizer = wxFlexGridSizer(cols = 2, vgap = 6) ++ detailSizer = wx.FlexGridSizer(cols = 2, vgap = 6) + + if info.has_key('length'): + fileListID = None +@@ -886,37 +886,37 @@ + file_length = info['length'] + name = "file size" + else: +- detail1Sizer = wxFlexGridSizer(cols = 1, vgap = 6) ++ detail1Sizer = wx.FlexGridSizer(cols = 1, vgap = 6) + detail1Sizer.Add(StaticText('directory name : ' + info['name'])) + colSizer.Add (detail1Sizer) +- bgallocButton = wxBitmapButton(panel, -1, self.allocbuttonBitmap, size = (52,20)) ++ bgallocButton = wx.BitmapButton(panel, -1, self.allocbuttonBitmap, size = (52,20)) + def bgalloc(self, frame = self): + if frame.dow.storagewrapper is not None: + frame.dow.storagewrapper.bgalloc() +- EVT_BUTTON(self.detailBox, bgallocButton.GetId(), bgalloc) ++ wx.EVT_BUTTON(self.detailBox, bgallocButton.GetId(), bgalloc) + +- bgallocbuttonSizer = wxFlexGridSizer(cols = 4, hgap = 4, vgap = 0) +- bgallocbuttonSizer.Add(StaticText('(right-click to set priority)',self.FONT-1),0,wxALIGN_BOTTOM) +- bgallocbuttonSizer.Add(StaticText('(finish allocation)'), -1, wxALIGN_CENTER_VERTICAL) +- bgallocbuttonSizer.Add(bgallocButton, -1, wxALIGN_CENTER) ++ bgallocbuttonSizer = wx.FlexGridSizer(cols = 4, hgap = 4, vgap = 0) ++ bgallocbuttonSizer.Add(StaticText('(right-click to set priority)',self.FONT-1),0,wx.ALIGN_BOTTOM) ++ bgallocbuttonSizer.Add(StaticText('(finish allocation)'), -1, wx.ALIGN_CENTER_VERTICAL) ++ bgallocbuttonSizer.Add(bgallocButton, -1, wx.ALIGN_CENTER) + bgallocbuttonSizer.AddGrowableCol(0) +- colSizer.Add(bgallocbuttonSizer, -1, wxEXPAND) ++ colSizer.Add(bgallocbuttonSizer, -1, wx.EXPAND) + + file_length = 0 + +- fileListID = wxNewId() +- fileList = wxListCtrl(panel, fileListID, +- wxPoint(-1,-1), (325,100), wxLC_REPORT) ++ fileListID = wx.NewId() ++ fileList = wx.ListCtrl(panel, fileListID, ++ wx.Point(-1,-1), (325,100), wx.LC_REPORT) + self.fileList = fileList +- fileList.SetImageList(self.filestatusIcons, wxIMAGE_LIST_SMALL) ++ fileList.SetImageList(self.filestatusIcons, wx.IMAGE_LIST_SMALL) + + fileList.SetAutoLayout (True) + fileList.InsertColumn(0, "file") +- fileList.InsertColumn(1, "", format=wxLIST_FORMAT_RIGHT, width=55) ++ fileList.InsertColumn(1, "", format=wx.LIST_FORMAT_RIGHT, width=55) + fileList.InsertColumn(2, "") + + for i in range(len(info['files'])): +- x = wxListItem() ++ x = wx.ListItem() + fileList.InsertItem(x) + + x = 0 +@@ -937,15 +937,15 @@ + fileList.SetItem(item) + x += 1 + file_length += file['length'] +- fileList.SetColumnWidth(0,wxLIST_AUTOSIZE) +- fileList.SetColumnWidth(2,wxLIST_AUTOSIZE) ++ fileList.SetColumnWidth(0,wx.LIST_AUTOSIZE) ++ fileList.SetColumnWidth(2,wx.LIST_AUTOSIZE) + + name = 'archive size' +- colSizer.Add(fileList, 1, wxEXPAND) ++ colSizer.Add(fileList, 1, wx.EXPAND) + colSizer.AddGrowableRow(3) + +- detailSizer.Add(StaticText('info_hash :'),0,wxALIGN_CENTER_VERTICAL) +- detailSizer.Add(wxTextCtrl(panel, -1, tohex(info_hash), size = (325, -1), style = wxTE_READONLY)) ++ detailSizer.Add(StaticText('info_hash :'),0,wx.ALIGN_CENTER_VERTICAL) ++ detailSizer.Add(wx.TextCtrl(panel, -1, tohex(info_hash), size = (325, -1), style = wx.TE_READONLY)) + num_pieces = int((file_length+piece_length-1)/piece_length) + detailSizer.Add(StaticText(name + ' : ')) + detailSizer.Add(StaticText('%s (%s bytes)' % (size_format(file_length), comma_format(file_length)))) +@@ -956,22 +956,22 @@ + detailSizer.Add(StaticText('1')) + + if announce_list is None: +- detailSizer.Add(StaticText('announce url : '),0,wxALIGN_CENTER_VERTICAL) +- detailSizer.Add(wxTextCtrl(panel, -1, announce, size = (325, -1), style = wxTE_READONLY)) ++ detailSizer.Add(StaticText('announce url : '),0,wx.ALIGN_CENTER_VERTICAL) ++ detailSizer.Add(wx.TextCtrl(panel, -1, announce, size = (325, -1), style = wx.TE_READONLY)) + else: + detailSizer.Add(StaticText('')) +- trackerList = wxListCtrl(panel, -1, wxPoint(-1,-1), (325,75), wxLC_REPORT) ++ trackerList = wx.ListCtrl(panel, -1, wx.Point(-1,-1), (325,75), wx.LC_REPORT) + trackerList.SetAutoLayout (True) + trackerList.InsertColumn(0, "") + trackerList.InsertColumn(1, "announce urls") + + for tier in range(len(announce_list)): + for t in range(len(announce_list[tier])): +- i = wxListItem() ++ i = wx.ListItem() + trackerList.InsertItem(i) + if announce is not None: + for l in [1,2]: +- i = wxListItem() ++ i = wx.ListItem() + trackerList.InsertItem(i) + + x = 0 +@@ -984,8 +984,8 @@ + if announce is not None: + trackerList.SetStringItem(x+1, 0, 'single:') + trackerList.SetStringItem(x+1, 1, announce) +- trackerList.SetColumnWidth(0,wxLIST_AUTOSIZE) +- trackerList.SetColumnWidth(1,wxLIST_AUTOSIZE) ++ trackerList.SetColumnWidth(0,wx.LIST_AUTOSIZE) ++ trackerList.SetColumnWidth(1,wx.LIST_AUTOSIZE) + detailSizer.Add(trackerList) + + if announce is None and announce_list is not None: +@@ -1011,10 +1011,10 @@ + detailSizer.Add(StaticText('')) + + detailSizer.AddGrowableCol(1) +- colSizer.Add (detailSizer, 1, wxEXPAND) ++ colSizer.Add (detailSizer, 1, wx.EXPAND) + +- okButton = wxButton(panel, -1, 'Ok') +- colSizer.Add(okButton, 0, wxALIGN_RIGHT) ++ okButton = wx.Button(panel, -1, 'Ok') ++ colSizer.Add(okButton, 0, wx.ALIGN_RIGHT) + colSizer.AddGrowableCol(0) + + if not self.configfileargs['gui_stretchwindow']: +@@ -1022,8 +1022,8 @@ + else: + panel.SetAutoLayout(True) + +- border = wxBoxSizer(wxHORIZONTAL) +- border.Add(colSizer, 1, wxEXPAND | wxALL, 4) ++ border = wx.BoxSizer(wx.HORIZONTAL) ++ border.Add(colSizer, 1, wx.EXPAND | wx.ALL, 4) + panel.SetSizer(border) + panel.SetAutoLayout(True) + +@@ -1032,20 +1032,20 @@ + s = [] + i = -1 + while True: +- i = self.fileList.GetNextItem(i,state=wxLIST_STATE_SELECTED) ++ i = self.fileList.GetNextItem(i,state=wx.LIST_STATE_SELECTED) + if i == -1: + break + s.append(i) + if not s: # just in case + return + oldstate = self.dow.fileselector[s[0]] +- kind=wxITEM_RADIO ++ kind=wx.ITEM_RADIO + for i in s[1:]: + if self.dow.fileselector[i] != oldstate: + oldstate = None +- kind = wxITEM_NORMAL ++ kind = wx.ITEM_NORMAL + break +- menu = wxMenu() ++ menu = wx.Menu() + menu.Append(self.priorityIDs[1], "download first", kind=kind) + menu.Append(self.priorityIDs[2], "download normally", kind=kind) + menu.Append(self.priorityIDs[3], "download later", kind=kind) +@@ -1069,16 +1069,16 @@ + break + + for id in self.priorityIDs: +- EVT_MENU(self.detailBox, id, onSelection) ++ wx.EVT_MENU(self.detailBox, id, onSelection) + + self.detailBox.PopupMenu(menu, evt.GetPoint()) + +- EVT_LIST_ITEM_RIGHT_CLICK(self.detailBox, fileListID, onRightClick) ++ wx.EVT_LIST_ITEM_RIGHT_CLICK(self.detailBox, fileListID, onRightClick) + + def closeDetail(evt, self = self): + if self.detailBox: + self.detailBox.Close() +- EVT_BUTTON(self.detailBox, okButton.GetId(), closeDetail) ++ wx.EVT_BUTTON(self.detailBox, okButton.GetId(), closeDetail) + def kill(evt, self = self): + try: + self.detailBox.RemoveIcon() +@@ -1088,14 +1088,14 @@ + self.detailBox = None + self.fileList = None + self.dow.filedatflag.clear() +- EVT_CLOSE(self.detailBox, kill) ++ wx.EVT_CLOSE(self.detailBox, kill) + + def trackerurl(self, turl = turl): + try: + Thread(target = open_new(turl)).start() + except: + pass +- EVT_LEFT_DOWN(trackerUrl, trackerurl) ++ wx.EVT_LEFT_DOWN(trackerUrl, trackerurl) + + self.detailBox.Show () + border.Fit(panel) +@@ -1112,35 +1112,35 @@ + if (self.creditsBox is not None): + try: + self.creditsBox.Close() +- except wxPyDeadObjectError, e: ++ except wx.PyDeadObjectError, e: + self.creditsBox = None + +- self.creditsBox = wxFrame(None, -1, 'Credits', size = (1,1), +- style = wxDEFAULT_FRAME_STYLE|wxFULL_REPAINT_ON_RESIZE) ++ self.creditsBox = wx.Frame(None, -1, 'Credits', size = (1,1), ++ style = wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE) + try: + self.creditsBox.SetIcon(self.icon) + except: + pass + +- panel = wxPanel(self.creditsBox, -1) ++ panel = wx.Panel(self.creditsBox, -1) + + def StaticText(text, font = self.FONT, underline = False, color = None, panel = panel): +- x = wxStaticText(panel, -1, text, style = wxALIGN_LEFT) +- x.SetFont(wxFont(font, wxDEFAULT, wxNORMAL, wxNORMAL, underline)) ++ x = wx.StaticText(panel, -1, text, style = wx.ALIGN_LEFT) ++ x.SetFont(wx.Font(font, wx.DEFAULT, wx.NORMAL, wx.NORMAL, underline)) + if color is not None: + x.SetForegroundColour(color) + return x + +- colSizer = wxFlexGridSizer(cols = 1, vgap = 3) ++ colSizer = wx.FlexGridSizer(cols = 1, vgap = 3) + +- titleSizer = wxBoxSizer(wxHORIZONTAL) ++ titleSizer = wx.BoxSizer(wx.HORIZONTAL) + aboutTitle = StaticText('Credits', self.FONT+4) + titleSizer.Add (aboutTitle) + colSizer.Add (titleSizer) + colSizer.Add (StaticText( + 'The following people have all helped with this\n' + + 'version of BitTorrent in some way (in no particular order) -\n')); +- creditSizer = wxFlexGridSizer(cols = 3) ++ creditSizer = wx.FlexGridSizer(cols = 3) + creditSizer.Add(StaticText( + 'Bill Bumgarner\n' + + 'David Creswick\n' + +@@ -1178,20 +1178,20 @@ + 'Jon Wolf\n' + + 'Christoph Hohmann\n' + + 'Micah Anderson')) +- colSizer.Add (creditSizer, flag = wxALIGN_CENTER_HORIZONTAL) +- okButton = wxButton(panel, -1, 'Ok') +- colSizer.Add(okButton, 0, wxALIGN_RIGHT) ++ colSizer.Add (creditSizer, flag = wx.ALIGN_CENTER_HORIZONTAL) ++ okButton = wx.Button(panel, -1, 'Ok') ++ colSizer.Add(okButton, 0, wx.ALIGN_RIGHT) + colSizer.AddGrowableCol(0) + +- border = wxBoxSizer(wxHORIZONTAL) +- border.Add(colSizer, 1, wxEXPAND | wxALL, 4) ++ border = wx.BoxSizer(wx.HORIZONTAL) ++ border.Add(colSizer, 1, wx.EXPAND | wx.ALL, 4) + panel.SetSizer(border) + panel.SetAutoLayout(True) + + def closeCredits(e, self = self): + if self.creditsBox: + self.creditsBox.Close() +- EVT_BUTTON(self.creditsBox, okButton.GetId(), closeCredits) ++ wx.EVT_BUTTON(self.creditsBox, okButton.GetId(), closeCredits) + def kill(e, self = self): + try: + self.creditsBox.RemoveIcon() +@@ -1199,7 +1199,7 @@ + pass + self.creditsBox.Destroy() + self.creditsBox = None +- EVT_CLOSE(self.creditsBox, kill) ++ wx.EVT_CLOSE(self.creditsBox, kill) + + self.creditsBox.Show() + border.Fit(panel) +@@ -1213,86 +1213,86 @@ + if (self.statusIconHelpBox is not None): + try: + self.statusIconHelpBox.Close() +- except wxPyDeadObjectError, e: ++ except wx.PyDeadObjectError, e: + self.statusIconHelpBox = None + +- self.statusIconHelpBox = wxFrame(None, -1, 'Help with the BitTorrent Status Light', size = (1,1), +- style = wxDEFAULT_FRAME_STYLE|wxFULL_REPAINT_ON_RESIZE) ++ self.statusIconHelpBox = wx.Frame(None, -1, 'Help with the BitTorrent Status Light', size = (1,1), ++ style = wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE) + try: + self.statusIconHelpBox.SetIcon(self.icon) + except: + pass + +- panel = wxPanel(self.statusIconHelpBox, -1) ++ panel = wx.Panel(self.statusIconHelpBox, -1) + + def StaticText(text, font = self.FONT, underline = False, color = None, panel = panel): +- x = wxStaticText(panel, -1, text, style = wxALIGN_LEFT) +- x.SetFont(wxFont(font, wxDEFAULT, wxNORMAL, wxNORMAL, underline)) ++ x = wx.StaticText(panel, -1, text, style = wx.ALIGN_LEFT) ++ x.SetFont(wx.Font(font, wx.DEFAULT, wx.NORMAL, wx.NORMAL, underline)) + if color is not None: + x.SetForegroundColour(color) + return x + +- fullsizer = wxFlexGridSizer(cols = 1, vgap = 13) +- colsizer = wxFlexGridSizer(cols = 2, hgap = 13, vgap = 13) ++ fullsizer = wx.FlexGridSizer(cols = 1, vgap = 13) ++ colsizer = wx.FlexGridSizer(cols = 2, hgap = 13, vgap = 13) + + disconnectedicon=self.createStatusIcon('disconnected') +- colsizer.Add(wxStaticBitmap(panel, -1, disconnectedicon)) ++ colsizer.Add(wx.StaticBitmap(panel, -1, disconnectedicon)) + colsizer.Add(StaticText( + 'Waiting to connect to the tracker.\n' + + 'If the status light stays black for a long time the tracker\n' + + 'you are trying to connect to may not be working. Unless you\n' + + 'are receiving a message telling you otherwise, please wait,\n' + +- 'and BitTorrent will automatically try to reconnect for you.'), 1, wxALIGN_CENTER_VERTICAL) ++ 'and BitTorrent will automatically try to reconnect for you.'), 1, wx.ALIGN_CENTER_VERTICAL) + + noconnectionsicon=self.createStatusIcon('noconnections') +- colsizer.Add(wxStaticBitmap(panel, -1, noconnectionsicon)) ++ colsizer.Add(wx.StaticBitmap(panel, -1, noconnectionsicon)) + colsizer.Add(StaticText( + 'You have no connections with other clients.\n' + + 'Please be patient. If after several minutes the status\n' + +- 'light remains red, this torrent may be old and abandoned.'), 1, wxALIGN_CENTER_VERTICAL) ++ 'light remains red, this torrent may be old and abandoned.'), 1, wx.ALIGN_CENTER_VERTICAL) + + noincomingicon=self.createStatusIcon('noincoming') +- colsizer.Add(wxStaticBitmap(panel, -1, noincomingicon)) ++ colsizer.Add(wx.StaticBitmap(panel, -1, noincomingicon)) + colsizer.Add(StaticText( + 'You have not received any incoming connections from others.\n' + + 'It may only be because no one has tried. If you never see\n' + + 'the status light turn green, it may indicate your system\n' + + 'is behind a firewall or proxy server. Please look into\n' + + 'routing BitTorrent through your firewall in order to receive\n' + +- 'the best possible download rate.'), 1, wxALIGN_CENTER_VERTICAL) ++ 'the best possible download rate.'), 1, wx.ALIGN_CENTER_VERTICAL) + + nocompletesicon=self.createStatusIcon('nocompletes') +- colsizer.Add(wxStaticBitmap(panel, -1, nocompletesicon)) ++ colsizer.Add(wx.StaticBitmap(panel, -1, nocompletesicon)) + colsizer.Add(StaticText( + 'There are no complete copies among the clients you are\n' + + 'connected to. Don\'t panic, other clients in the torrent\n' + + "you can't see may have the missing data.\n" + + 'If the status light remains blue, you may have problems\n' + +- 'completing your download.'), 1, wxALIGN_CENTER_VERTICAL) ++ 'completing your download.'), 1, wx.ALIGN_CENTER_VERTICAL) + + allgoodicon=self.createStatusIcon('allgood') +- colsizer.Add(wxStaticBitmap(panel, -1, allgoodicon)) ++ colsizer.Add(wx.StaticBitmap(panel, -1, allgoodicon)) + colsizer.Add(StaticText( +- 'The torrent is operating properly.'), 1, wxALIGN_CENTER_VERTICAL) ++ 'The torrent is operating properly.'), 1, wx.ALIGN_CENTER_VERTICAL) + +- fullsizer.Add(colsizer, 0, wxALIGN_CENTER) +- colsizer2 = wxFlexGridSizer(cols = 1, hgap = 13) ++ fullsizer.Add(colsizer, 0, wx.ALIGN_CENTER) ++ colsizer2 = wx.FlexGridSizer(cols = 1, hgap = 13) + + colsizer2.Add(StaticText( + 'Please note that the status light is not omniscient, and that it may\n' + + 'be wrong in many instances. A torrent with a blue light may complete\n' + + "normally, and an occasional yellow light doesn't mean your computer\n" + +- 'has suddenly become firewalled.'), 1, wxALIGN_CENTER_VERTICAL) ++ 'has suddenly become firewalled.'), 1, wx.ALIGN_CENTER_VERTICAL) + + colspacer = StaticText(' ') + colsizer2.Add(colspacer) + +- okButton = wxButton(panel, -1, 'Ok') +- colsizer2.Add(okButton, 0, wxALIGN_CENTER) +- fullsizer.Add(colsizer2, 0, wxALIGN_CENTER) ++ okButton = wx.Button(panel, -1, 'Ok') ++ colsizer2.Add(okButton, 0, wx.ALIGN_CENTER) ++ fullsizer.Add(colsizer2, 0, wx.ALIGN_CENTER) + +- border = wxBoxSizer(wxHORIZONTAL) +- border.Add(fullsizer, 1, wxEXPAND | wxALL, 4) ++ border = wx.BoxSizer(wx.HORIZONTAL) ++ border.Add(fullsizer, 1, wx.EXPAND | wx.ALL, 4) + + panel.SetSizer(border) + panel.SetAutoLayout(True) +@@ -1300,7 +1300,7 @@ + + def closeHelp(self, frame = self): + frame.statusIconHelpBox.Close() +- EVT_BUTTON(self.statusIconHelpBox, okButton.GetId(), closeHelp) ++ wx.EVT_BUTTON(self.statusIconHelpBox, okButton.GetId(), closeHelp) + + self.statusIconHelpBox.Show () + border.Fit(panel) +@@ -1323,150 +1323,150 @@ + if (self.advBox is not None): + try: + self.advBox.Close () +- except wxPyDeadObjectError, e: ++ except wx.PyDeadObjectError, e: + self.advBox = None + +- self.advBox = wxFrame(None, -1, 'BitTorrent Advanced', size = wxSize(200,200), +- style = wxDEFAULT_FRAME_STYLE|wxFULL_REPAINT_ON_RESIZE) ++ self.advBox = wx.Frame(None, -1, 'BitTorrent Advanced', size = wx.Size(200,200), ++ style = wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE) + try: + self.advBox.SetIcon(self.icon) + except: + pass + +- panel = wxPanel(self.advBox, -1, size = wxSize (200,200)) ++ panel = wx.Panel(self.advBox, -1, size = wx.Size (200,200)) + + def StaticText(text, font = self.FONT, underline = False, color = None, panel = panel): +- x = wxStaticText(panel, -1, text, style = wxALIGN_LEFT) +- x.SetFont(wxFont(font, wxDEFAULT, wxNORMAL, wxNORMAL, underline)) ++ x = wx.StaticText(panel, -1, text, style = wx.ALIGN_LEFT) ++ x.SetFont(wx.Font(font, wx.DEFAULT, wx.NORMAL, wx.NORMAL, underline)) + if color is not None: + x.SetForegroundColour(color) + return x + +- colSizer = wxFlexGridSizer (cols = 1, vgap = 1) ++ colSizer = wx.FlexGridSizer (cols = 1, vgap = 1) + colSizer.Add (StaticText('Advanced Info for ' + self.filename, self.FONT+4)) + + try: # get system font width +- fw = wxSystemSettings_GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize()+1 ++ fw = wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT).GetPointSize()+1 + except: +- fw = wxSystemSettings_GetFont(wxSYS_SYSTEM_FONT).GetPointSize()+1 ++ fw = wx.SystemSettings_GetFont(wx.SYS_SYSTEM_FONT).GetPointSize()+1 + +- spewList = wxListCtrl(panel, -1, wxPoint(-1,-1), (fw*66,350), wxLC_REPORT|wxLC_HRULES|wxLC_VRULES) ++ spewList = wx.ListCtrl(panel, -1, wx.Point(-1,-1), (fw*66,350), wx.LC_REPORT|wx.LC_HRULES|wx.LC_VRULES) + self.spewList = spewList + spewList.SetAutoLayout (True) + +- colSizer.Add(spewList, -1, wxEXPAND) ++ colSizer.Add(spewList, -1, wx.EXPAND) + + colSizer.Add(StaticText('')) + self.storagestats1 = StaticText('') + self.storagestats2 = StaticText('') +- colSizer.Add(self.storagestats1, -1, wxEXPAND) +- colSizer.Add(self.storagestats2, -1, wxEXPAND) +- spinnerSizer = wxFlexGridSizer(cols=4,vgap=0,hgap=0) ++ colSizer.Add(self.storagestats1, -1, wx.EXPAND) ++ colSizer.Add(self.storagestats2, -1, wx.EXPAND) ++ spinnerSizer = wx.FlexGridSizer(cols=4,vgap=0,hgap=0) + cstats = ' Listening on ' + if self.connection_stats['interfaces']: + cstats += ', '.join(self.connection_stats['interfaces']) + ' on ' + cstats += 'port ' + str(self.connection_stats['port']) + if self.connection_stats['upnp']: + cstats += ', UPnP port forwarded' +- spinnerSizer.Add(StaticText(cstats), -1, wxEXPAND) ++ spinnerSizer.Add(StaticText(cstats), -1, wx.EXPAND) + spinnerSizer.AddGrowableCol(0) +- spinnerSizer.Add(StaticText('Max download rate (kB/s) '),0,wxALIGN_CENTER_VERTICAL) +- self.downrateSpinner = wxSpinCtrl (panel, -1, "", (-1,-1), (50, -1)) ++ spinnerSizer.Add(StaticText('Max download rate (kB/s) '),0,wx.ALIGN_CENTER_VERTICAL) ++ self.downrateSpinner = wx.SpinCtrl (panel, -1, "", (-1,-1), (50, -1)) + self.downrateSpinner.SetFont(self.default_font) + self.downrateSpinner.SetRange(0,5000) + self.downrateSpinner.SetValue(self.config['max_download_rate']) + spinnerSizer.Add (self.downrateSpinner, 0) +- EVT_SPINCTRL(self.downrateSpinner, -1, self.onDownRateSpinner) +- spinnerSizer.Add(StaticText(' (0 = unlimited) '),0,wxALIGN_CENTER_VERTICAL) +- colSizer.Add(spinnerSizer,0,wxEXPAND) ++ wx.EVT_SPINCTRL(self.downrateSpinner, -1, self.onDownRateSpinner) ++ spinnerSizer.Add(StaticText(' (0 = unlimited) '),0,wx.ALIGN_CENTER_VERTICAL) ++ colSizer.Add(spinnerSizer,0,wx.EXPAND) + + colSizer.Add(StaticText('')) + +- buttonSizer = wxFlexGridSizer (cols = 5, hgap = 20) ++ buttonSizer = wx.FlexGridSizer (cols = 5, hgap = 20) + +- reannounceButton = wxButton(panel, -1, 'Manual Announce') ++ reannounceButton = wx.Button(panel, -1, 'Manual Announce') + buttonSizer.Add (reannounceButton) + +- extannounceButton = wxButton(panel, -1, 'External Announce') ++ extannounceButton = wx.Button(panel, -1, 'External Announce') + buttonSizer.Add (extannounceButton) + +- bgallocButton = wxButton(panel, -1, 'Finish Allocation') ++ bgallocButton = wx.Button(panel, -1, 'Finish Allocation') + buttonSizer.Add (bgallocButton) + + buttonSizer.Add(StaticText('')) + +- okButton = wxButton(panel, -1, 'Ok') ++ okButton = wx.Button(panel, -1, 'Ok') + buttonSizer.Add (okButton) + +- colSizer.Add (buttonSizer, 0, wxALIGN_CENTER) ++ colSizer.Add (buttonSizer, 0, wx.ALIGN_CENTER) + colSizer.AddGrowableCol(0) + colSizer.AddGrowableRow(1) + + panel.SetSizer(colSizer) + panel.SetAutoLayout(True) + +- spewList.InsertColumn(0, "Optimistic Unchoke", format=wxLIST_FORMAT_CENTER, width=fw*2) ++ spewList.InsertColumn(0, "Optimistic Unchoke", format=wx.LIST_FORMAT_CENTER, width=fw*2) + spewList.InsertColumn(1, "Peer ID", width=0) + spewList.InsertColumn(2, "IP", width=fw*11) +- spewList.InsertColumn(3, "Local/Remote", format=wxLIST_FORMAT_CENTER, width=fw*3) +- spewList.InsertColumn(4, "Up", format=wxLIST_FORMAT_RIGHT, width=fw*6) +- spewList.InsertColumn(5, "Interested", format=wxLIST_FORMAT_CENTER, width=fw*2) +- spewList.InsertColumn(6, "Choking", format=wxLIST_FORMAT_CENTER, width=fw*2) +- spewList.InsertColumn(7, "Down", format=wxLIST_FORMAT_RIGHT, width=fw*6) +- spewList.InsertColumn(8, "Interesting", format=wxLIST_FORMAT_CENTER, width=fw*2) +- spewList.InsertColumn(9, "Choked", format=wxLIST_FORMAT_CENTER, width=fw*2) +- spewList.InsertColumn(10, "Snubbed", format=wxLIST_FORMAT_CENTER, width=fw*2) +- spewList.InsertColumn(11, "Downloaded", format=wxLIST_FORMAT_RIGHT, width=fw*7) +- spewList.InsertColumn(12, "Uploaded", format=wxLIST_FORMAT_RIGHT, width=fw*7) +- spewList.InsertColumn(13, "Completed", format=wxLIST_FORMAT_RIGHT, width=fw*6) +- spewList.InsertColumn(14, "Peer Download Speed", format=wxLIST_FORMAT_RIGHT, width=fw*6) ++ spewList.InsertColumn(3, "Local/Remote", format=wx.LIST_FORMAT_CENTER, width=fw*3) ++ spewList.InsertColumn(4, "Up", format=wx.LIST_FORMAT_RIGHT, width=fw*6) ++ spewList.InsertColumn(5, "Interested", format=wx.LIST_FORMAT_CENTER, width=fw*2) ++ spewList.InsertColumn(6, "Choking", format=wx.LIST_FORMAT_CENTER, width=fw*2) ++ spewList.InsertColumn(7, "Down", format=wx.LIST_FORMAT_RIGHT, width=fw*6) ++ spewList.InsertColumn(8, "Interesting", format=wx.LIST_FORMAT_CENTER, width=fw*2) ++ spewList.InsertColumn(9, "Choked", format=wx.LIST_FORMAT_CENTER, width=fw*2) ++ spewList.InsertColumn(10, "Snubbed", format=wx.LIST_FORMAT_CENTER, width=fw*2) ++ spewList.InsertColumn(11, "Downloaded", format=wx.LIST_FORMAT_RIGHT, width=fw*7) ++ spewList.InsertColumn(12, "Uploaded", format=wx.LIST_FORMAT_RIGHT, width=fw*7) ++ spewList.InsertColumn(13, "Completed", format=wx.LIST_FORMAT_RIGHT, width=fw*6) ++ spewList.InsertColumn(14, "Peer Download Speed", format=wx.LIST_FORMAT_RIGHT, width=fw*6) + + def reannounce(self, frame = self): + if (clock() - frame.reannouncelast > 60): + frame.reannouncelast = clock() + frame.dow.reannounce() +- EVT_BUTTON(self.advBox, reannounceButton.GetId(), reannounce) ++ wx.EVT_BUTTON(self.advBox, reannounceButton.GetId(), reannounce) + + self.advextannouncebox = None + def reannounce_external(self, frame = self): + if (frame.advextannouncebox is not None): + try: + frame.advextannouncebox.Close () +- except wxPyDeadObjectError, e: ++ except wx.PyDeadObjectError, e: + frame.advextannouncebox = None + +- frame.advextannouncebox = wxFrame(None, -1, 'External Announce', size = (1,1), +- style = wxDEFAULT_FRAME_STYLE|wxFULL_REPAINT_ON_RESIZE) ++ frame.advextannouncebox = wx.Frame(None, -1, 'External Announce', size = (1,1), ++ style = wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE) + try: + frame.advextannouncebox.SetIcon(frame.icon) + except: + pass + +- panel = wxPanel(frame.advextannouncebox, -1) ++ panel = wx.Panel(frame.advextannouncebox, -1) + +- fullsizer = wxFlexGridSizer(cols = 1, vgap = 13) +- msg = wxStaticText(panel, -1, "Enter tracker anounce URL:") ++ fullsizer = wx.FlexGridSizer(cols = 1, vgap = 13) ++ msg = wx.StaticText(panel, -1, "Enter tracker anounce URL:") + msg.SetFont(frame.default_font) + fullsizer.Add(msg) + +- frame.advexturl = wxTextCtrl(parent = panel, id = -1, value = '', +- size = (255, 20), style = wxTE_PROCESS_TAB) ++ frame.advexturl = wx.TextCtrl(parent = panel, id = -1, value = '', ++ size = (255, 20), style = wx.TE_PROCESS_TAB) + frame.advexturl.SetFont(frame.default_font) + frame.advexturl.SetValue(frame.lastexternalannounce) + fullsizer.Add(frame.advexturl) + +- buttonSizer = wxFlexGridSizer (cols = 2, hgap = 10) ++ buttonSizer = wx.FlexGridSizer (cols = 2, hgap = 10) + +- okButton = wxButton(panel, -1, 'OK') ++ okButton = wx.Button(panel, -1, 'OK') + buttonSizer.Add (okButton) + +- cancelButton = wxButton(panel, -1, 'Cancel') ++ cancelButton = wx.Button(panel, -1, 'Cancel') + buttonSizer.Add (cancelButton) + +- fullsizer.Add (buttonSizer, 0, wxALIGN_CENTER) ++ fullsizer.Add (buttonSizer, 0, wx.ALIGN_CENTER) + +- border = wxBoxSizer(wxHORIZONTAL) +- border.Add(fullsizer, 1, wxEXPAND | wxALL, 4) ++ border = wx.BoxSizer(wx.HORIZONTAL) ++ border.Add(fullsizer, 1, wx.EXPAND | wx.ALL, 4) + + panel.SetSizer(border) + panel.SetAutoLayout(True) +@@ -1479,22 +1479,22 @@ + frame.reannouncelast = clock() + frame.dow.reannounce(special) + frame.advextannouncebox.Close() +- EVT_BUTTON(frame.advextannouncebox, okButton.GetId(), ok) ++ wx.EVT_BUTTON(frame.advextannouncebox, okButton.GetId(), ok) + + def cancel(self, frame = frame): + frame.advextannouncebox.Close() +- EVT_BUTTON(frame.advextannouncebox, cancelButton.GetId(), cancel) ++ wx.EVT_BUTTON(frame.advextannouncebox, cancelButton.GetId(), cancel) + + frame.advextannouncebox.Show () + fullsizer.Fit(panel) + frame.advextannouncebox.Fit() + +- EVT_BUTTON(self.advBox, extannounceButton.GetId(), reannounce_external) ++ wx.EVT_BUTTON(self.advBox, extannounceButton.GetId(), reannounce_external) + + def bgalloc(self, frame = self): + if frame.dow.storagewrapper is not None: + frame.dow.storagewrapper.bgalloc() +- EVT_BUTTON(self.advBox, bgallocButton.GetId(), bgalloc) ++ wx.EVT_BUTTON(self.advBox, bgallocButton.GetId(), bgalloc) + + def closeAdv(evt, self = self): + self.advBox.Close() +@@ -1510,11 +1510,11 @@ + if (self.advextannouncebox is not None): + try: + self.advextannouncebox.Close() +- except wxPyDeadObjectError, e: ++ except wx.PyDeadObjectError, e: + pass + self.advextannouncebox = None +- EVT_BUTTON(self.advBox, okButton.GetId(), closeAdv) +- EVT_CLOSE(self.advBox, killAdv) ++ wx.EVT_BUTTON(self.advBox, okButton.GetId(), closeAdv) ++ wx.EVT_CLOSE(self.advBox, killAdv) + + self.advBox.Show () + colSizer.Fit(panel) +@@ -1531,25 +1531,25 @@ + def onDisplayUsage(self, text): + try: + self.done(None) +- w = wxFrame(None, -1, 'BITTORRENT USAGE', +- style = wxDEFAULT_FRAME_STYLE|wxFULL_REPAINT_ON_RESIZE) +- panel = wxPanel(w, -1) +- sizer = wxFlexGridSizer(cols = 1) +- sizer.Add(wxTextCtrl(panel, -1, text, +- size = (500,300), style = wxTE_READONLY|wxTE_MULTILINE)) +- okButton = wxButton(panel, -1, 'Ok') ++ w = wx.Frame(None, -1, 'BITTORRENT USAGE', ++ style = wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE) ++ panel = wx.Panel(w, -1) ++ sizer = wx.FlexGridSizer(cols = 1) ++ sizer.Add(wx.TextCtrl(panel, -1, text, ++ size = (500,300), style = wx.TE_READONLY|wx.TE_MULTILINE)) ++ okButton = wx.Button(panel, -1, 'Ok') + + def closeUsage(self, frame = self): + frame.usageBox.Close() +- EVT_BUTTON(w, okButton.GetId(), closeUsage) ++ wx.EVT_BUTTON(w, okButton.GetId(), closeUsage) + def kill(self, frame = self): + frame.usageBox.Destroy() + frame.usageBox = None +- EVT_CLOSE(w, kill) ++ wx.EVT_CLOSE(w, kill) + +- sizer.Add(okButton, 0, wxALIGN_RIGHT) +- border = wxBoxSizer(wxHORIZONTAL) +- border.Add(sizer, 1, wxEXPAND | wxALL, 4) ++ sizer.Add(okButton, 0, wx.ALIGN_RIGHT) ++ border = wx.BoxSizer(wx.HORIZONTAL) ++ border.Add(sizer, 1, wx.EXPAND | wx.ALL, 4) + + panel.SetSizer(border) + panel.SetAutoLayout(True) +@@ -1746,7 +1746,7 @@ + else: + kickbanlen = 0 + for x in range(spewlen-spewList.GetItemCount()): +- i = wxListItem() ++ i = wx.ListItem() + spewList.InsertItem(i) + for x in range(spewlen,spewList.GetItemCount()): + spewList.DeleteItem(len(spew)+1) +@@ -1997,16 +1997,16 @@ + start_dir1 = start_dir + if isdir(join(start_dir,default)): + start_dir = join(start_dir,default) +- dl = wxDirDialog(self.frame, ++ dl = wx.DirDialog(self.frame, + 'Choose a directory to save to, pick a partial download to resume', +- defaultPath = start_dir, style = wxDD_DEFAULT_STYLE | wxDD_NEW_DIR_BUTTON) ++ defaultPath = start_dir, style = wx.DD_DEFAULT_STYLE | wx.DD_NEW_DIR_BUTTON) + else: +- dl = wxFileDialog(self.frame, ++ dl = wx.FileDialog(self.frame, + 'Choose file to save as, pick a partial download to resume', + defaultDir = start_dir, defaultFile = default, wildcard = '*', +- style = wxSAVE) ++ style = wx.SAVE) + +- if dl.ShowModal() != wxID_OK: ++ if dl.ShowModal() != wx.ID_OK: + f.set() + self.done(None) + return +@@ -2100,28 +2100,28 @@ + if (self.detailBox is not None): + try: + self.detailBox.Close () +- except wxPyDeadObjectError, e: ++ except wx.PyDeadObjectError, e: + self.detailBox = None + if (self.aboutBox is not None): + try: + self.aboutBox.Close () +- except wxPyDeadObjectError, e: ++ except wx.PyDeadObjectError, e: + self.aboutBox = None + if (self.creditsBox is not None): + try: + self.creditsBox.Close () +- except wxPyDeadObjectError, e: ++ except wx.PyDeadObjectError, e: + self.creditsBox = None + if (self.advBox is not None): + try: + self.advBox.Close () +- except wxPyDeadObjectError, e: ++ except wx.PyDeadObjectError, e: + self.advBox = None + + if (self.statusIconHelpBox is not None): + try: + self.statusIconHelpBox.Close () +- except wxPyDeadObjectError, e: ++ except wx.PyDeadObjectError, e: + self.statusIconHelpBox = None + self.configfile.Close() + try: +@@ -2143,15 +2143,15 @@ + + def on_errorwindow(self, err): + if self._errorwindow is None: +- w = wxFrame(None, -1, 'BITTORRENT ERROR', size = (1,1), +- style = wxDEFAULT_FRAME_STYLE|wxFULL_REPAINT_ON_RESIZE) +- panel = wxPanel(w, -1) ++ w = wx.Frame(None, -1, 'BITTORRENT ERROR', size = (1,1), ++ style = wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE) ++ panel = wx.Panel(w, -1) + +- sizer = wxFlexGridSizer(cols = 1) ++ sizer = wx.FlexGridSizer(cols = 1) + t = ( 'BitTorrent ' + version + '\n' + + 'OS: ' + sys.platform + '\n' + + 'Python version: ' + sys.version + '\n' + +- 'wxWindows version: ' + wxVERSION_STRING + '\n' ) ++ 'wxWidgets version: ' + wx.VERSION_STRING + '\n' ) + try: + t += 'Psyco version: ' + hex(psyco.__version__)[2:] + '\n' + except: +@@ -2163,24 +2163,24 @@ + t += '\n' + except: + pass +- sizer.Add(wxTextCtrl(panel, -1, t + '\n' + err, +- size = (500,300), style = wxTE_READONLY|wxTE_MULTILINE)) ++ sizer.Add(wx.TextCtrl(panel, -1, t + '\n' + err, ++ size = (500,300), style = wx.TE_READONLY|wx.TE_MULTILINE)) + +- sizer.Add(wxStaticText(panel, -1, ++ sizer.Add(wx.StaticText(panel, -1, + '\nHelp us iron out the bugs in the engine!')) +- linkMail = wxStaticText(panel, -1, ++ linkMail = wx.StaticText(panel, -1, + 'Please report this error to '+report_email) +- linkMail.SetFont(wxFont(self.FONT, wxDEFAULT, wxNORMAL, wxNORMAL, True)) ++ linkMail.SetFont(wx.Font(self.FONT, wx.DEFAULT, wx.NORMAL, wx.NORMAL, True)) + linkMail.SetForegroundColour('Blue') + sizer.Add(linkMail) + + def maillink(self): + Thread(target = open_new("mailto:" + report_email + + "?subject=autobugreport")).start() +- EVT_LEFT_DOWN(linkMail, maillink) ++ wx.EVT_LEFT_DOWN(linkMail, maillink) + +- border = wxBoxSizer(wxHORIZONTAL) +- border.Add(sizer, 1, wxEXPAND | wxALL, 4) ++ border = wx.BoxSizer(wx.HORIZONTAL) ++ border.Add(sizer, 1, wx.EXPAND | wx.ALL, 4) + + panel.SetSizer(border) + panel.SetAutoLayout(True) +@@ -2191,10 +2191,10 @@ + self._errorwindow = w + + +-class btWxApp(wxApp): ++class btWxApp(wx.App): + def __init__(self, x, params): + self.params = params +- wxApp.__init__(self, x) ++ wx.App.__init__(self, x) + + def OnInit(self): + doneflag = Event() +@@ -2202,11 +2202,11 @@ + d = DownloadInfoFrame(doneflag, self.configfile) + self.SetTopWindow(d.frame) + if len(self.params) == 0: +- b = wxFileDialog (d.frame, 'Choose .torrent file to use', ++ b = wx.FileDialog (d.frame, 'Choose .torrent file to use', + defaultDir = '', defaultFile = '', wildcard = '*.torrent', +- style = wxOPEN) ++ style = wx.OPEN) + +- if b.ShowModal() == wxID_OK: ++ if b.ShowModal() == wx.ID_OK: + self.params.append (b.GetPath()) + + thread = Thread(target = next, args = [self.params, d, doneflag, self.configfile]) +diff -Naur BitTornado-CVS.orig/btmaketorrentgui.py BitTornado-CVS/btmaketorrentgui.py +--- BitTornado-CVS.orig/btmaketorrentgui.py 2004-07-02 18:39:32.000000000 +0200 ++++ BitTornado-CVS/btmaketorrentgui.py 2005-09-18 03:08:46.383098208 +0200 +@@ -22,7 +22,7 @@ + from os import getcwd + from os.path import join, isdir + try: +- from wxPython.wx import * ++ import wx + except: + print 'wxPython is either not installed or has not been installed properly.' + sys.exit(1) +@@ -33,14 +33,14 @@ + True = 1 + False = 0 + +-wxEVT_INVOKE = wxNewEventType() ++wxEVT_INVOKE = wx.NewEventType() + + def EVT_INVOKE(win, func): + win.Connect(-1, -1, wxEVT_INVOKE, func) + +-class InvokeEvent(wxPyEvent): ++class InvokeEvent(wx.PyEvent): + def __init__(self, func, args, kwargs): +- wxPyEvent.__init__(self) ++ wx.PyEvent.__init__(self) + self.SetEventType(wxEVT_INVOKE) + self.func = func + self.args = args +@@ -48,99 +48,99 @@ + + class DownloadInfo: + def __init__(self): +- frame = wxFrame(None, -1, 'BitTorrent Torrent File Maker', size = wxSize(550, 410)) ++ frame = wx.Frame(None, -1, 'BitTorrent Torrent File Maker', size = wx.Size(550, 410)) + self.frame = frame + +- panel = wxPanel(frame, -1) ++ panel = wx.Panel(frame, -1) + +- gridSizer = wxFlexGridSizer(cols = 2, rows = 2, vgap = 0, hgap = 8) ++ gridSizer = wx.FlexGridSizer(cols = 2, rows = 2, vgap = 0, hgap = 8) + +- gridSizer.Add(wxStaticText(panel, -1, 'make torrent of:')) ++ gridSizer.Add(wx.StaticText(panel, -1, 'make torrent of:')) + +- b = wxBoxSizer(wxHORIZONTAL) +- self.dirCtl = wxTextCtrl(panel, -1, '') +- b.Add(self.dirCtl, 1, wxEXPAND) +-# b.Add(10, 10, 0, wxEXPAND) ++ b = wx.BoxSizer(wx.HORIZONTAL) ++ self.dirCtl = wx.TextCtrl(panel, -1, '') ++ b.Add(self.dirCtl, 1, wx.EXPAND) ++# b.Add(10, 10, 0, wx.EXPAND) + +- button = wxButton(panel, -1, 'dir', size = (30,20)) +- EVT_BUTTON(frame, button.GetId(), self.selectdir) ++ button = wx.Button(panel, -1, 'dir', size = (30,20)) ++ wx.EVT_BUTTON(frame, button.GetId(), self.selectdir) + b.Add(button, 0) + +- button2 = wxButton(panel, -1, 'file', size = (30,20)) +- EVT_BUTTON(frame, button2.GetId(), self.selectfile) ++ button2 = wx.Button(panel, -1, 'file', size = (30,20)) ++ wx.EVT_BUTTON(frame, button2.GetId(), self.selectfile) + b.Add(button2, 0) + +- gridSizer.Add(b, 0, wxEXPAND) +- gridSizer.Add(wxStaticText(panel, -1, '')) +- gridSizer.Add(wxStaticText(panel, -1, '')) +- +- gridSizer.Add(wxStaticText(panel, -1, 'announce url:')) +- self.annCtl = wxTextCtrl(panel, -1, 'http://my.tracker:6969/announce') +- gridSizer.Add(self.annCtl, 0, wxEXPAND) +- gridSizer.Add(wxStaticText(panel, -1, '')) +- gridSizer.Add(wxStaticText(panel, -1, '')) +- +- a = wxFlexGridSizer(cols = 1) +- a.Add(wxStaticText(panel, -1, 'announce list:')) +- a.Add(wxStaticText(panel, -1, '')) +- abutton = wxButton(panel, -1, 'copy\nannounces\nfrom\ntorrent', size = (50,70)) +- EVT_BUTTON(frame, abutton.GetId(), self.announcecopy) +- a.Add(abutton, 0, wxEXPAND) +- gridSizer.Add(a, 0, wxEXPAND) ++ gridSizer.Add(b, 0, wx.EXPAND) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ ++ gridSizer.Add(wx.StaticText(panel, -1, 'announce url:')) ++ self.annCtl = wx.TextCtrl(panel, -1, 'http://my.tracker:6969/announce') ++ gridSizer.Add(self.annCtl, 0, wx.EXPAND) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ ++ a = wx.FlexGridSizer(cols = 1) ++ a.Add(wx.StaticText(panel, -1, 'announce list:')) ++ a.Add(wx.StaticText(panel, -1, '')) ++ abutton = wx.Button(panel, -1, 'copy\nannounces\nfrom\ntorrent', size = (50,70)) ++ wx.EVT_BUTTON(frame, abutton.GetId(), self.announcecopy) ++ a.Add(abutton, 0, wx.EXPAND) ++ gridSizer.Add(a, 0, wx.EXPAND) + +- self.annListCtl = wxTextCtrl(panel, -1, '\n\n\n\n\n', wxPoint(-1,-1), (400,120), +- wxTE_MULTILINE|wxHSCROLL|wxTE_DONTWRAP) +- gridSizer.Add(self.annListCtl, -1, wxEXPAND) ++ self.annListCtl = wx.TextCtrl(panel, -1, '\n\n\n\n\n', wx.Point(-1,-1), (400,120), ++ wx.TE_MULTILINE|wx.HSCROLL|wx.TE_DONTWRAP) ++ gridSizer.Add(self.annListCtl, -1, wx.EXPAND) + +- gridSizer.Add(wxStaticText(panel, -1, '')) +- exptext = wxStaticText(panel, -1, ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ exptext = wx.StaticText(panel, -1, + "a list of announces separated by commas " + + "or whitespace and on several lines -\n" + + "trackers on the same line will be tried randomly," + + "and all the trackers on one line\n" + + "will be tried before the trackers on the next line.") +- exptext.SetFont(wxFont(6, wxDEFAULT, wxNORMAL, wxNORMAL, False)) ++ exptext.SetFont(wx.Font(6, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False)) + gridSizer.Add(exptext) + +- gridSizer.Add(wxStaticText(panel, -1, '')) +- gridSizer.Add(wxStaticText(panel, -1, '')) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) + +- gridSizer.Add(wxStaticText(panel, -1, 'piece size:')) +- self.piece_length = wxChoice(panel, -1, ++ gridSizer.Add(wx.StaticText(panel, -1, 'piece size:')) ++ self.piece_length = wx.Choice(panel, -1, + choices = ['automatic', '2MiB', '1MiB', '512KiB', '256KiB', '128KiB', '64KiB', '32KiB']) + self.piece_length_list = [0, 21, 20, 19, 18, 17, 16, 15] + self.piece_length.SetSelection(0) + gridSizer.Add(self.piece_length) + +- gridSizer.Add(wxStaticText(panel, -1, '')) +- gridSizer.Add(wxStaticText(panel, -1, '')) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) + +- gridSizer.Add(wxStaticText(panel, -1, 'comment:')) +- self.commentCtl = wxTextCtrl(panel, -1, '') +- gridSizer.Add(self.commentCtl, 0, wxEXPAND) ++ gridSizer.Add(wx.StaticText(panel, -1, 'comment:')) ++ self.commentCtl = wx.TextCtrl(panel, -1, '') ++ gridSizer.Add(self.commentCtl, 0, wx.EXPAND) + + gridSizer.AddGrowableCol(1) + +- border = wxBoxSizer(wxVERTICAL) +- border.Add(gridSizer, 0, wxEXPAND | wxNORTH | wxEAST | wxWEST, 25) +- b2 = wxButton(panel, -1, 'make') +-# border.Add(10, 10, 1, wxEXPAND) +- border.Add(b2, 0, wxALIGN_CENTER | wxSOUTH, 20) +- EVT_BUTTON(frame, b2.GetId(), self.complete) ++ border = wx.BoxSizer(wx.VERTICAL) ++ border.Add(gridSizer, 0, wx.EXPAND | wx.NORTH | wx.EAST | wx.WEST, 25) ++ b2 = wx.Button(panel, -1, 'make') ++# border.Add(10, 10, 1, wx.EXPAND) ++ border.Add(b2, 0, wx.ALIGN_CENTER | wx.SOUTH, 20) ++ wx.EVT_BUTTON(frame, b2.GetId(), self.complete) + panel.SetSizer(border) + panel.SetAutoLayout(True) + + # panel.DragAcceptFiles(True) +-# EVT_DROP_FILES(panel, self.selectdrop) ++# wx.EVT_DROP_FILES(panel, self.selectdrop) + + def selectdir(self, x): +- dl = wxDirDialog(self.frame, style = wxDD_DEFAULT_STYLE | wxDD_NEW_DIR_BUTTON) +- if dl.ShowModal() == wxID_OK: ++ dl = wx.DirDialog(self.frame, style = wx.DD_DEFAULT_STYLE | wx.DD_NEW_DIR_BUTTON) ++ if dl.ShowModal() == wx.ID_OK: + self.dirCtl.SetValue(dl.GetPath()) + + def selectfile(self, x): +- dl = wxFileDialog (self.frame, 'Choose file or directory to use', '', '', '', wxOPEN) +- if dl.ShowModal() == wxID_OK: ++ dl = wx.FileDialog (self.frame, 'Choose file or directory to use', '', '', '', wx.OPEN) ++ if dl.ShowModal() == wx.ID_OK: + self.dirCtl.SetValue(dl.GetPath()) + + def selectdrop(self, x): +@@ -150,8 +150,8 @@ + self.dirCtl.SetValue(x[0]) + + def announcecopy(self, x): +- dl = wxFileDialog (self.frame, 'Choose .torrent file to use', '', '', '*.torrent', wxOPEN) +- if dl.ShowModal() == wxID_OK: ++ dl = wx.FileDialog (self.frame, 'Choose .torrent file to use', '', '', '*.torrent', wx.OPEN) ++ if dl.ShowModal() == wx.ID_OK: + try: + h = open(dl.GetPath(), 'rb') + metainfo = bdecode(h.read()) +@@ -187,8 +187,8 @@ + + def complete(self, x): + if self.dirCtl.GetValue() == '': +- dlg = wxMessageDialog(self.frame, message = 'You must select a\n file or directory', +- caption = 'Error', style = wxOK | wxICON_ERROR) ++ dlg = wx.MessageDialog(self.frame, message = 'You must select a\n file or directory', ++ caption = 'Error', style = wx.OK | wx.ICON_ERROR) + dlg.ShowModal() + dlg.Destroy() + return +@@ -217,41 +217,41 @@ + + if isdir(d): + self.choicemade = Event() +- frame = wxFrame(None, -1, 'BitTorrent make torrent', size = (1,1)) ++ frame = wx.Frame(None, -1, 'BitTorrent make torrent', size = (1,1)) + self.frame = frame +- panel = wxPanel(frame, -1) +- gridSizer = wxFlexGridSizer(cols = 1, vgap = 8, hgap = 8) ++ panel = wx.Panel(frame, -1) ++ gridSizer = wx.FlexGridSizer(cols = 1, vgap = 8, hgap = 8) + gridSizer.AddGrowableRow(1) +- gridSizer.Add(wxStaticText(panel, -1, +- 'Do you want to make a separate .torrent'),0,wxALIGN_CENTER) +- gridSizer.Add(wxStaticText(panel, -1, +- 'for every item in this directory?'),0,wxALIGN_CENTER) +- gridSizer.Add(wxStaticText(panel, -1, '')) ++ gridSizer.Add(wx.StaticText(panel, -1, ++ 'Do you want to make a separate .torrent'),0,wx.ALIGN_CENTER) ++ gridSizer.Add(wx.StaticText(panel, -1, ++ 'for every item in this directory?'),0,wx.ALIGN_CENTER) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) + +- b = wxFlexGridSizer(cols = 3, hgap = 10) +- yesbut = wxButton(panel, -1, 'Yes') ++ b = wx.FlexGridSizer(cols = 3, hgap = 10) ++ yesbut = wx.Button(panel, -1, 'Yes') + def saidyes(e, self = self): + self.frame.Destroy() + self.separatetorrents = True + self.begin() +- EVT_BUTTON(frame, yesbut.GetId(), saidyes) ++ wx.EVT_BUTTON(frame, yesbut.GetId(), saidyes) + b.Add(yesbut, 0) + +- nobut = wxButton(panel, -1, 'No') ++ nobut = wx.Button(panel, -1, 'No') + def saidno(e, self = self): + self.frame.Destroy() + self.begin() +- EVT_BUTTON(frame, nobut.GetId(), saidno) ++ wx.EVT_BUTTON(frame, nobut.GetId(), saidno) + b.Add(nobut, 0) + +- cancelbut = wxButton(panel, -1, 'Cancel') ++ cancelbut = wx.Button(panel, -1, 'Cancel') + def canceled(e, self = self): + self.frame.Destroy() +- EVT_BUTTON(frame, cancelbut.GetId(), canceled) ++ wx.EVT_BUTTON(frame, cancelbut.GetId(), canceled) + b.Add(cancelbut, 0) +- gridSizer.Add(b, 0, wxALIGN_CENTER) +- border = wxBoxSizer(wxHORIZONTAL) +- border.Add(gridSizer, 1, wxEXPAND | wxALL, 4) ++ gridSizer.Add(b, 0, wx.ALIGN_CENTER) ++ border = wx.BoxSizer(wx.HORIZONTAL) ++ border.Add(gridSizer, 1, wx.EXPAND | wx.ALL, 4) + + panel.SetSizer(border) + panel.SetAutoLayout(True) +@@ -264,35 +264,35 @@ + + def begin(self): + if self.separatetorrents: +- frame = wxFrame(None, -1, 'BitTorrent make directory', size = wxSize(550, 250)) ++ frame = wx.Frame(None, -1, 'BitTorrent make directory', size = wx.Size(550, 250)) + else: +- frame = wxFrame(None, -1, 'BitTorrent make torrent', size = wxSize(550, 250)) ++ frame = wx.Frame(None, -1, 'BitTorrent make torrent', size = wx.Size(550, 250)) + self.frame = frame + +- panel = wxPanel(frame, -1) +- gridSizer = wxFlexGridSizer(cols = 1, vgap = 15, hgap = 8) ++ panel = wx.Panel(frame, -1) ++ gridSizer = wx.FlexGridSizer(cols = 1, vgap = 15, hgap = 8) + + if self.separatetorrents: +- self.currentLabel = wxStaticText(panel, -1, 'checking file sizes') ++ self.currentLabel = wx.StaticText(panel, -1, 'checking file sizes') + else: +- self.currentLabel = wxStaticText(panel, -1, 'building ' + self.d + '.torrent') +- gridSizer.Add(self.currentLabel, 0, wxEXPAND) +- self.gauge = wxGauge(panel, -1, range = 1000, style = wxGA_SMOOTH) +- gridSizer.Add(self.gauge, 0, wxEXPAND) +- gridSizer.Add((10, 10), 1, wxEXPAND) +- self.button = wxButton(panel, -1, 'cancel') +- gridSizer.Add(self.button, 0, wxALIGN_CENTER) ++ self.currentLabel = wx.StaticText(panel, -1, 'building ' + self.d + '.torrent') ++ gridSizer.Add(self.currentLabel, 0, wx.EXPAND) ++ self.gauge = wx.Gauge(panel, -1, range = 1000, style = wx.GA_SMOOTH) ++ gridSizer.Add(self.gauge, 0, wx.EXPAND) ++ gridSizer.Add((10, 10), 1, wx.EXPAND) ++ self.button = wx.Button(panel, -1, 'cancel') ++ gridSizer.Add(self.button, 0, wx.ALIGN_CENTER) + gridSizer.AddGrowableRow(2) + gridSizer.AddGrowableCol(0) + +- g2 = wxFlexGridSizer(cols = 1, vgap = 15, hgap = 8) +- g2.Add(gridSizer, 1, wxEXPAND | wxALL, 25) ++ g2 = wx.FlexGridSizer(cols = 1, vgap = 15, hgap = 8) ++ g2.Add(gridSizer, 1, wx.EXPAND | wx.ALL, 25) + g2.AddGrowableRow(0) + g2.AddGrowableCol(0) + panel.SetSizer(g2) + panel.SetAutoLayout(True) +- EVT_BUTTON(frame, self.button.GetId(), self.done) +- EVT_CLOSE(frame, self.done) ++ wx.EVT_BUTTON(frame, self.button.GetId(), self.done) ++ wx.EVT_CLOSE(frame, self.done) + EVT_INVOKE(frame, self.onInvoke) + frame.Show(True) + Thread(target = self.complete).start() +@@ -313,8 +313,8 @@ + except (OSError, IOError), e: + self.currentLabel.SetLabel('Error!') + self.button.SetLabel('Close') +- dlg = wxMessageDialog(self.frame, message = 'Error - ' + str(e), +- caption = 'Error', style = wxOK | wxICON_ERROR) ++ dlg = wx.MessageDialog(self.frame, message = 'Error - ' + str(e), ++ caption = 'Error', style = wx.OK | wx.ICON_ERROR) + dlg.ShowModal() + dlg.Destroy() + +@@ -336,13 +336,13 @@ + + def invokeLater(self, func, args = [], kwargs = {}): + if not self.flag.isSet(): +- wxPostEvent(self.frame, InvokeEvent(func, args, kwargs)) ++ wx.PostEvent(self.frame, InvokeEvent(func, args, kwargs)) + + def done(self, event): + self.flag.set() + self.frame.Destroy() + +-class btWxApp(wxApp): ++class btWxApp(wx.App): + def OnInit(self): + d = DownloadInfo() + d.frame.Show(True) +diff -Naur BitTornado-CVS.orig/bt-t-make.py BitTornado-CVS/bt-t-make.py +--- BitTornado-CVS.orig/bt-t-make.py 2004-05-09 15:07:20.000000000 +0200 ++++ BitTornado-CVS/bt-t-make.py 2005-09-18 03:19:00.240777656 +0200 +@@ -23,7 +23,7 @@ + from os.path import join, isdir + from traceback import print_exc + try: +- from wxPython.wx import * ++ import wx + except: + print 'wxPython is either not installed or has not been installed properly.' + sys.exit(1) +@@ -42,14 +42,14 @@ + DROP_HERE = '' + + +-wxEVT_INVOKE = wxNewEventType() ++wxEVT_INVOKE = wx.NewEventType() + + def EVT_INVOKE(win, func): + win.Connect(-1, -1, wxEVT_INVOKE, func) + +-class InvokeEvent(wxPyEvent): ++class InvokeEvent(wx.PyEvent): + def __init__(self, func, args, kwargs): +- wxPyEvent.__init__(self) ++ wx.PyEvent.__init__(self) + self.SetEventType(wxEVT_INVOKE) + self.func = func + self.args = args +@@ -66,7 +66,7 @@ + self.switchlock = Lock() + self.working = False + self.queue = [] +- wxInitAllImageHandlers() ++ wx.InitAllImageHandlers() + self.thostselection = self.calls['getCurrentTHost']() + self.thostselectnum = 0 + self.choices = None +@@ -74,76 +74,76 @@ + self.announce = '' + self.announce_list = None + +- self.windowStyle = wxSYSTEM_MENU|wxCAPTION|wxMINIMIZE_BOX ++ self.windowStyle = wx.SYSTEM_MENU|wx.CAPTION|wx.MINIMIZE_BOX + if self.config['stayontop']: +- self.windowStyle |= wxSTAY_ON_TOP +- frame = wxFrame(None, -1, 'T-Make', +- size = wxSize(-1, -1), ++ self.windowStyle |= wx.STAY_ON_TOP ++ frame = wx.Frame(None, -1, 'T-Make', ++ size = wx.Size(-1, -1), + style = self.windowStyle) + self.frame = frame +- panel = wxPanel(frame, -1) +- mainSizer = wxBoxSizer(wxVERTICAL) +- groupSizer = wxFlexGridSizer(cols = 1, vgap = 0, hgap = 0) ++ panel = wx.Panel(frame, -1) ++ mainSizer = wx.BoxSizer(wx.VERTICAL) ++ groupSizer = wx.FlexGridSizer(cols = 1, vgap = 0, hgap = 0) + # self.dropTarget = self.calls['newDropTarget']((200,200)) + self.dropTarget = self.calls['newDropTarget']() +- self.dropTargetPtr = wxStaticBitmap(panel, -1, self.dropTarget) ++ self.dropTargetPtr = wx.StaticBitmap(panel, -1, self.dropTarget) + self.calls['setDropTargetRefresh'](self.dropTargetPtr.Refresh) + self.dropTargetWidth = self.dropTarget.GetWidth() +- EVT_LEFT_DOWN(self.dropTargetPtr,self.dropTargetClick) +- EVT_ENTER_WINDOW(self.dropTargetPtr,self.calls['dropTargetHovered']) +- EVT_LEAVE_WINDOW(self.dropTargetPtr,self.calls['dropTargetUnhovered']) +- groupSizer.Add(self.dropTargetPtr,0,wxALIGN_CENTER) +- lowerSizer1 = wxGridSizer(cols = 6) +- dirlink = wxStaticText(panel, -1, 'dir') +- dirlink.SetFont(wxFont(7, wxDEFAULT, wxNORMAL, wxNORMAL, True)) ++ wx.EVT_LEFT_DOWN(self.dropTargetPtr,self.dropTargetClick) ++ wx.EVT_ENTER_WINDOW(self.dropTargetPtr,self.calls['dropTargetHovered']) ++ wx.EVT_LEAVE_WINDOW(self.dropTargetPtr,self.calls['dropTargetUnhovered']) ++ groupSizer.Add(self.dropTargetPtr,0,wx.ALIGN_CENTER) ++ lowerSizer1 = wx.GridSizer(cols = 6) ++ dirlink = wx.StaticText(panel, -1, 'dir') ++ dirlink.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.NORMAL, True)) + dirlink.SetForegroundColour('blue') +- EVT_LEFT_UP(dirlink,self.selectdir) +- lowerSizer1.Add(dirlink, -1, wxALIGN_LEFT) +- lowerSizer1.Add(wxStaticText(panel, -1, ''), -1, wxALIGN_CENTER) +- lowerSizer1.Add(wxStaticText(panel, -1, ''), -1, wxALIGN_CENTER) +- lowerSizer1.Add(wxStaticText(panel, -1, ''), -1, wxALIGN_CENTER) +- lowerSizer1.Add(wxStaticText(panel, -1, ''), -1, wxALIGN_CENTER) +- filelink = wxStaticText(panel, -1, 'file') +- filelink.SetFont(wxFont(7, wxDEFAULT, wxNORMAL, wxNORMAL, True)) ++ wx.EVT_LEFT_UP(dirlink,self.selectdir) ++ lowerSizer1.Add(dirlink, -1, wx.ALIGN_LEFT) ++ lowerSizer1.Add(wx.StaticText(panel, -1, ''), -1, wx.ALIGN_CENTER) ++ lowerSizer1.Add(wx.StaticText(panel, -1, ''), -1, wx.ALIGN_CENTER) ++ lowerSizer1.Add(wx.StaticText(panel, -1, ''), -1, wx.ALIGN_CENTER) ++ lowerSizer1.Add(wx.StaticText(panel, -1, ''), -1, wx.ALIGN_CENTER) ++ filelink = wx.StaticText(panel, -1, 'file') ++ filelink.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.NORMAL, True)) + filelink.SetForegroundColour('blue') +- EVT_LEFT_UP(filelink,self.selectfile) +- lowerSizer1.Add(filelink, -1, wxALIGN_RIGHT) ++ wx.EVT_LEFT_UP(filelink,self.selectfile) ++ lowerSizer1.Add(filelink, -1, wx.ALIGN_RIGHT) + +- groupSizer.Add(lowerSizer1, -1, wxALIGN_CENTER) ++ groupSizer.Add(lowerSizer1, -1, wx.ALIGN_CENTER) + +- self.gauge = wxGauge(panel, -1, range = 1000, +- style = wxGA_HORIZONTAL, size = (-1,15)) +- groupSizer.Add(self.gauge, 0, wxEXPAND) +- self.statustext = wxStaticText(panel, -1, 'ready', +- style = wxALIGN_CENTER|wxST_NO_AUTORESIZE) +- self.statustext.SetFont(wxFont(7, wxDEFAULT, wxNORMAL, wxBOLD, False)) +- groupSizer.Add(self.statustext, -1, wxEXPAND) +- self.choices = wxChoice(panel, -1, (-1, -1), (self.dropTargetWidth, -1), ++ self.gauge = wx.Gauge(panel, -1, range = 1000, ++ style = wx.GA_HORIZONTAL, size = (-1,15)) ++ groupSizer.Add(self.gauge, 0, wx.EXPAND) ++ self.statustext = wx.StaticText(panel, -1, 'ready', ++ style = wx.ALIGN_CENTER|wx.ST_NO_AUTORESIZE) ++ self.statustext.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.BOLD, False)) ++ groupSizer.Add(self.statustext, -1, wx.EXPAND) ++ self.choices = wx.Choice(panel, -1, (-1, -1), (self.dropTargetWidth, -1), + choices = []) +- self.choices.SetFont(wxFont(7, wxDEFAULT, wxNORMAL, wxNORMAL, False)) +- EVT_CHOICE(self.choices, -1, self.set_thost) +- groupSizer.Add(self.choices, 0, wxEXPAND) +- cancellink = wxStaticText(panel, -1, 'cancel') +- cancellink.SetFont(wxFont(7, wxDEFAULT, wxNORMAL, wxNORMAL, True)) ++ self.choices.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False)) ++ wx.EVT_CHOICE(self.choices, -1, self.set_thost) ++ groupSizer.Add(self.choices, 0, wx.EXPAND) ++ cancellink = wx.StaticText(panel, -1, 'cancel') ++ cancellink.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.NORMAL, True)) + cancellink.SetForegroundColour('red') +- EVT_LEFT_UP(cancellink,self.cancel) +- groupSizer.Add(cancellink, -1, wxALIGN_CENTER) +- advlink = wxStaticText(panel, -1, 'advanced') +- advlink.SetFont(wxFont(7, wxDEFAULT, wxNORMAL, wxNORMAL, True)) ++ wx.EVT_LEFT_UP(cancellink,self.cancel) ++ groupSizer.Add(cancellink, -1, wx.ALIGN_CENTER) ++ advlink = wx.StaticText(panel, -1, 'advanced') ++ advlink.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.NORMAL, True)) + advlink.SetForegroundColour('blue') +- EVT_LEFT_UP(advlink,self.calls['switchToAdvanced']) +- groupSizer.Add(advlink, -1, wxALIGN_CENTER) +- mainSizer.Add(groupSizer, 0, wxALIGN_CENTER) ++ wx.EVT_LEFT_UP(advlink,self.calls['switchToAdvanced']) ++ groupSizer.Add(advlink, -1, wx.ALIGN_CENTER) ++ mainSizer.Add(groupSizer, 0, wx.ALIGN_CENTER) + + self.refresh_thostlist() + self._set_thost() + + if platform == 'win32': + self.dropTargetPtr.DragAcceptFiles(True) +- EVT_DROP_FILES(self.dropTargetPtr, self.selectdrop) ++ wx.EVT_DROP_FILES(self.dropTargetPtr, self.selectdrop) + +-# border = wxBoxSizer(wxHORIZONTAL) +-# border.Add(mainSizer, 1, wxEXPAND | wxALL, 0) ++# border = wx.BoxSizer(wx.HORIZONTAL) ++# border.Add(mainSizer, 1, wx.EXPAND | wx.ALL, 0) + panel.SetSizer(mainSizer) + panel.SetAutoLayout(True) + # border.Fit(panel) +@@ -152,13 +152,13 @@ + frame.Show(True) + + EVT_INVOKE(frame, self.onInvoke) +- EVT_CLOSE(frame, self._close) ++ wx.EVT_CLOSE(frame, self._close) + + + def selectdir(self, x = None): + self.calls['dropTargetHovered']() +- dl = wxDirDialog(self.frame, style = wxDD_DEFAULT_STYLE | wxDD_NEW_DIR_BUTTON) +- if dl.ShowModal() == wxID_OK: ++ dl = wx.DirDialog(self.frame, style = wx.DD_DEFAULT_STYLE | wx.DD_NEW_DIR_BUTTON) ++ if dl.ShowModal() == wx.ID_OK: + self.calls['dropTargetDropped']() + self.complete(dl.GetPath()) + else: +@@ -166,8 +166,8 @@ + + def selectfile(self, x = None): + self.calls['dropTargetHovered']() +- dl = wxFileDialog (self.frame, 'Choose file to use', '', '', '', wxOPEN) +- if dl.ShowModal() == wxID_OK: ++ dl = wx.FileDialog (self.frame, 'Choose file to use', '', '', '', wx.OPEN) ++ if dl.ShowModal() == wx.ID_OK: + self.calls['dropTargetDropped']() + self.complete(dl.GetPath()) + else: +@@ -266,7 +266,7 @@ + + def invokeLater(self, func, args = [], kwargs = {}): + if not self.uiflag.isSet(): +- wxPostEvent(self.frame, InvokeEvent(func, args, kwargs)) ++ wx.PostEvent(self.frame, InvokeEvent(func, args, kwargs)) + + def build_setgauge(self, x): + self.invokeLater(self.on_setgauge, [x]) +@@ -319,219 +319,219 @@ + self.switchlock = Lock() + self.working = False + self.queue = [] +- wxInitAllImageHandlers() ++ wx.InitAllImageHandlers() + self.thostselection = self.calls['getCurrentTHost']() + self.thostselectnum = 0 + self.choices = None + self.choices1 = None + +- self.windowStyle = wxSYSTEM_MENU|wxCAPTION|wxMINIMIZE_BOX ++ self.windowStyle = wx.SYSTEM_MENU|wx.CAPTION|wx.MINIMIZE_BOX + if self.config['stayontop']: +- self.windowStyle |= wxSTAY_ON_TOP +- frame = wxFrame(None, -1, 'T-Make', +- size = wxSize(-1, -1), ++ self.windowStyle |= wx.STAY_ON_TOP ++ frame = wx.Frame(None, -1, 'T-Make', ++ size = wx.Size(-1, -1), + style = self.windowStyle) + self.frame = frame +- panel = wxPanel(frame, -1) ++ panel = wx.Panel(frame, -1) + +- fullSizer = wxFlexGridSizer(cols = 1, vgap = 0, hgap = 8) ++ fullSizer = wx.FlexGridSizer(cols = 1, vgap = 0, hgap = 8) + +- colSizer = wxFlexGridSizer(cols = 2, vgap = 0, hgap = 8) +- leftSizer = wxFlexGridSizer(cols = 1, vgap = 3) ++ colSizer = wx.FlexGridSizer(cols = 2, vgap = 0, hgap = 8) ++ leftSizer = wx.FlexGridSizer(cols = 1, vgap = 3) + +- self.stayontop_checkbox = wxCheckBox(panel, -1, "stay on top") ++ self.stayontop_checkbox = wx.CheckBox(panel, -1, "stay on top") + self.stayontop_checkbox.SetValue(self.config['stayontop']) +- EVT_CHECKBOX(frame, self.stayontop_checkbox.GetId(), self.setstayontop) +- leftSizer.Add(self.stayontop_checkbox, -1, wxALIGN_CENTER) +- leftSizer.Add(wxStaticText(panel, -1, '')) +- +- button = wxButton(panel, -1, 'use image...') +- EVT_BUTTON(frame, button.GetId(), self.selectDropTarget) +- leftSizer.Add(button, -1, wxALIGN_CENTER) ++ wx.EVT_CHECKBOX(frame, self.stayontop_checkbox.GetId(), self.setstayontop) ++ leftSizer.Add(self.stayontop_checkbox, -1, wx.ALIGN_CENTER) ++ leftSizer.Add(wx.StaticText(panel, -1, '')) ++ ++ button = wx.Button(panel, -1, 'use image...') ++ wx.EVT_BUTTON(frame, button.GetId(), self.selectDropTarget) ++ leftSizer.Add(button, -1, wx.ALIGN_CENTER) + +- self.groupSizer1Box = wxStaticBox(panel, -1, '') +- groupSizer1 = wxStaticBoxSizer(self.groupSizer1Box, wxHORIZONTAL) +- groupSizer = wxFlexGridSizer(cols = 1, vgap = 0) ++ self.groupSizer1Box = wx.StaticBox(panel, -1, '') ++ groupSizer1 = wx.StaticBoxSizer(self.groupSizer1Box, wx.HORIZONTAL) ++ groupSizer = wx.FlexGridSizer(cols = 1, vgap = 0) + self.dropTarget = self.calls['newDropTarget']((200,200)) + # self.dropTarget = self.calls['newDropTarget']() +- self.dropTargetPtr = wxStaticBitmap(panel, -1, self.dropTarget) ++ self.dropTargetPtr = wx.StaticBitmap(panel, -1, self.dropTarget) + self.calls['setDropTargetRefresh'](self.dropTargetPtr.Refresh) + self.dropTargetWidth = self.dropTarget.GetWidth() +- EVT_LEFT_DOWN(self.dropTargetPtr,self.dropTargetClick) +- EVT_ENTER_WINDOW(self.dropTargetPtr,self.calls['dropTargetHovered']) +- EVT_LEAVE_WINDOW(self.dropTargetPtr,self.calls['dropTargetUnhovered']) +- groupSizer.Add(self.dropTargetPtr,0,wxALIGN_CENTER) +- lowerSizer1 = wxGridSizer(cols = 3) +- dirlink = wxStaticText(panel, -1, 'dir') +- dirlink.SetFont(wxFont(7, wxDEFAULT, wxNORMAL, wxNORMAL, True)) ++ wx.EVT_LEFT_DOWN(self.dropTargetPtr,self.dropTargetClick) ++ wx.EVT_ENTER_WINDOW(self.dropTargetPtr,self.calls['dropTargetHovered']) ++ wx.EVT_LEAVE_WINDOW(self.dropTargetPtr,self.calls['dropTargetUnhovered']) ++ groupSizer.Add(self.dropTargetPtr,0,wx.ALIGN_CENTER) ++ lowerSizer1 = wx.GridSizer(cols = 3) ++ dirlink = wx.StaticText(panel, -1, 'dir') ++ dirlink.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.NORMAL, True)) + dirlink.SetForegroundColour('blue') +- EVT_LEFT_UP(dirlink,self.selectdir) +- lowerSizer1.Add(dirlink, -1, wxALIGN_LEFT) +- lowerSizer1.Add(wxStaticText(panel, -1, ''), -1, wxALIGN_CENTER) +- filelink = wxStaticText(panel, -1, 'file') +- filelink.SetFont(wxFont(7, wxDEFAULT, wxNORMAL, wxNORMAL, True)) ++ wx.EVT_LEFT_UP(dirlink,self.selectdir) ++ lowerSizer1.Add(dirlink, -1, wx.ALIGN_LEFT) ++ lowerSizer1.Add(wx.StaticText(panel, -1, ''), -1, wx.ALIGN_CENTER) ++ filelink = wx.StaticText(panel, -1, 'file') ++ filelink.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.NORMAL, True)) + filelink.SetForegroundColour('blue') +- EVT_LEFT_UP(filelink,self.selectfile) +- lowerSizer1.Add(filelink, -1, wxALIGN_RIGHT) ++ wx.EVT_LEFT_UP(filelink,self.selectfile) ++ lowerSizer1.Add(filelink, -1, wx.ALIGN_RIGHT) + +- groupSizer.Add(lowerSizer1, -1, wxALIGN_CENTER) ++ groupSizer.Add(lowerSizer1, -1, wx.ALIGN_CENTER) + +- self.gauge = wxGauge(panel, -1, range = 1000, +- style = wxGA_HORIZONTAL, size = (-1,15)) +- groupSizer.Add(self.gauge, 0, wxEXPAND) +- self.statustext = wxStaticText(panel, -1, 'ready', +- style = wxALIGN_CENTER|wxST_NO_AUTORESIZE) +- self.statustext.SetFont(wxFont(7, wxDEFAULT, wxNORMAL, wxBOLD, False)) +- groupSizer.Add(self.statustext, -1, wxEXPAND) +- self.choices = wxChoice(panel, -1, (-1, -1), (self.dropTargetWidth, -1), ++ self.gauge = wx.Gauge(panel, -1, range = 1000, ++ style = wx.GA_HORIZONTAL, size = (-1,15)) ++ groupSizer.Add(self.gauge, 0, wx.EXPAND) ++ self.statustext = wx.StaticText(panel, -1, 'ready', ++ style = wx.ALIGN_CENTER|wx.ST_NO_AUTORESIZE) ++ self.statustext.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.BOLD, False)) ++ groupSizer.Add(self.statustext, -1, wx.EXPAND) ++ self.choices = wx.Choice(panel, -1, (-1, -1), (self.dropTargetWidth, -1), + choices = []) +- self.choices.SetFont(wxFont(7, wxDEFAULT, wxNORMAL, wxNORMAL, False)) +- EVT_CHOICE(self.choices, -1, self.set_thost) +- groupSizer.Add(self.choices, 0, wxEXPAND) +- cancellink = wxStaticText(panel, -1, 'cancel') +- cancellink.SetFont(wxFont(7, wxDEFAULT, wxNORMAL, wxNORMAL, True)) ++ self.choices.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False)) ++ wx.EVT_CHOICE(self.choices, -1, self.set_thost) ++ groupSizer.Add(self.choices, 0, wx.EXPAND) ++ cancellink = wx.StaticText(panel, -1, 'cancel') ++ cancellink.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.NORMAL, True)) + cancellink.SetForegroundColour('red') +- EVT_LEFT_UP(cancellink,self.cancel) +- groupSizer.Add(cancellink, -1, wxALIGN_CENTER) +- dummyadvlink = wxStaticText(panel, -1, 'advanced') +- dummyadvlink.SetFont(wxFont(7, wxDEFAULT, wxNORMAL, wxNORMAL, False)) ++ wx.EVT_LEFT_UP(cancellink,self.cancel) ++ groupSizer.Add(cancellink, -1, wx.ALIGN_CENTER) ++ dummyadvlink = wx.StaticText(panel, -1, 'advanced') ++ dummyadvlink.SetFont(wx.Font(7, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False)) + dummyadvlink.SetForegroundColour('blue') +- EVT_LEFT_UP(dirlink,self.selectdir) +- groupSizer.Add(dummyadvlink, -1, wxALIGN_CENTER) ++ wx.EVT_LEFT_UP(dirlink,self.selectdir) ++ groupSizer.Add(dummyadvlink, -1, wx.ALIGN_CENTER) + groupSizer1.Add(groupSizer) +- leftSizer.Add(groupSizer1, -1, wxALIGN_CENTER) ++ leftSizer.Add(groupSizer1, -1, wx.ALIGN_CENTER) + +- leftSizer.Add(wxStaticText(panel, -1, 'make torrent of:'),0,wxALIGN_CENTER) ++ leftSizer.Add(wx.StaticText(panel, -1, 'make torrent of:'),0,wx.ALIGN_CENTER) + +- self.dirCtl = wxTextCtrl(panel, -1, '', size = (250,-1)) +- leftSizer.Add(self.dirCtl, 1, wxEXPAND) ++ self.dirCtl = wx.TextCtrl(panel, -1, '', size = (250,-1)) ++ leftSizer.Add(self.dirCtl, 1, wx.EXPAND) + +- b = wxBoxSizer(wxHORIZONTAL) +- button = wxButton(panel, -1, 'dir') +- EVT_BUTTON(frame, button.GetId(), self.selectdir) ++ b = wx.BoxSizer(wx.HORIZONTAL) ++ button = wx.Button(panel, -1, 'dir') ++ wx.EVT_BUTTON(frame, button.GetId(), self.selectdir) + b.Add(button, 0) + +- button2 = wxButton(panel, -1, 'file') +- EVT_BUTTON(frame, button2.GetId(), self.selectfile) ++ button2 = wx.Button(panel, -1, 'file') ++ wx.EVT_BUTTON(frame, button2.GetId(), self.selectfile) + b.Add(button2, 0) + +- leftSizer.Add(b, 0, wxALIGN_CENTER) ++ leftSizer.Add(b, 0, wx.ALIGN_CENTER) + +- leftSizer.Add(wxStaticText(panel, -1, '')) ++ leftSizer.Add(wx.StaticText(panel, -1, '')) + +- simple_link = wxStaticText(panel, -1, 'back to basic mode') +- simple_link.SetFont(wxFont(-1, wxDEFAULT, wxNORMAL, wxNORMAL, True)) ++ simple_link = wx.StaticText(panel, -1, 'back to basic mode') ++ simple_link.SetFont(wx.Font(-1, wx.DEFAULT, wx.NORMAL, wx.NORMAL, True)) + simple_link.SetForegroundColour('blue') +- EVT_LEFT_UP(simple_link,self.calls['switchToBasic']) +- leftSizer.Add(simple_link, -1, wxALIGN_CENTER) ++ wx.EVT_LEFT_UP(simple_link,self.calls['switchToBasic']) ++ leftSizer.Add(simple_link, -1, wx.ALIGN_CENTER) + +- colSizer.Add(leftSizer, -1, wxALIGN_CENTER_VERTICAL) ++ colSizer.Add(leftSizer, -1, wx.ALIGN_CENTER_VERTICAL) + +- gridSizer = wxFlexGridSizer(cols = 2, vgap = 6, hgap = 8) ++ gridSizer = wx.FlexGridSizer(cols = 2, vgap = 6, hgap = 8) + +- gridSizer.Add(wxStaticText(panel, -1, 'Torrent host:'), -1, +- wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL) ++ gridSizer.Add(wx.StaticText(panel, -1, 'Torrent host:'), -1, ++ wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) + +- self.choices1 = wxChoice(panel, -1, (-1, -1), (-1, -1), ++ self.choices1 = wx.Choice(panel, -1, (-1, -1), (-1, -1), + choices = []) +- EVT_CHOICE(self.choices1, -1, self.set_thost1) +- gridSizer.Add(self.choices1, 0, wxEXPAND) ++ wx.EVT_CHOICE(self.choices1, -1, self.set_thost1) ++ gridSizer.Add(self.choices1, 0, wx.EXPAND) + +- b = wxBoxSizer(wxHORIZONTAL) +- button1 = wxButton(panel, -1, 'set default') +- EVT_BUTTON(frame, button1.GetId(), self.set_default_thost) ++ b = wx.BoxSizer(wx.HORIZONTAL) ++ button1 = wx.Button(panel, -1, 'set default') ++ wx.EVT_BUTTON(frame, button1.GetId(), self.set_default_thost) + b.Add(button1, 0) +- b.Add(wxStaticText(panel, -1, ' ')) +- button2 = wxButton(panel, -1, 'delete') +- EVT_BUTTON(frame, button2.GetId(), self.delete_thost) ++ b.Add(wx.StaticText(panel, -1, ' ')) ++ button2 = wx.Button(panel, -1, 'delete') ++ wx.EVT_BUTTON(frame, button2.GetId(), self.delete_thost) + b.Add(button2, 0) +- b.Add(wxStaticText(panel, -1, ' ')) +- button3 = wxButton(panel, -1, 'save as...') +- EVT_BUTTON(frame, button3.GetId(), self.save_thost) ++ b.Add(wx.StaticText(panel, -1, ' ')) ++ button3 = wx.Button(panel, -1, 'save as...') ++ wx.EVT_BUTTON(frame, button3.GetId(), self.save_thost) + b.Add(button3, 0) + +- gridSizer.Add(wxStaticText(panel, -1, '')) +- gridSizer.Add(b, 0, wxALIGN_CENTER) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ gridSizer.Add(b, 0, wx.ALIGN_CENTER) + +- gridSizer.Add(wxStaticText(panel, -1, '')) +- gridSizer.Add(wxStaticText(panel, -1, '')) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) + +- gridSizer.Add(wxStaticText(panel, -1, 'single tracker url:'),0, +- wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL) +- self.annCtl = wxTextCtrl(panel, -1, 'http://my.tracker:6969/announce') +- gridSizer.Add(self.annCtl, 0, wxEXPAND) +- +- a = wxFlexGridSizer(cols = 1, vgap = 3) +- a.Add(wxStaticText(panel, -1, 'tracker list:'),0,wxALIGN_RIGHT) +- a.Add(wxStaticText(panel, -1, '')) +- abutton = wxButton(panel, -1, 'copy\nannounces\nfrom\ntorrent', size = (70,70)) +- EVT_BUTTON(frame, abutton.GetId(), self.announcecopy) +- a.Add(abutton, -1, wxALIGN_CENTER) +- a.Add(wxStaticText(panel, -1, DROP_HERE), -1, wxALIGN_CENTER) +- gridSizer.Add(a, -1, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL) +- +- +- self.annListCtl = wxTextCtrl(panel, -1, '\n\n\n\n\n', wxPoint(-1,-1), (300,120), +- wxTE_MULTILINE|wxHSCROLL|wxTE_DONTWRAP) +- gridSizer.Add(self.annListCtl, -1, wxEXPAND) ++ gridSizer.Add(wx.StaticText(panel, -1, 'single tracker url:'),0, ++ wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) ++ self.annCtl = wx.TextCtrl(panel, -1, 'http://my.tracker:6969/announce') ++ gridSizer.Add(self.annCtl, 0, wx.EXPAND) ++ ++ a = wx.FlexGridSizer(cols = 1, vgap = 3) ++ a.Add(wx.StaticText(panel, -1, 'tracker list:'),0,wx.ALIGN_RIGHT) ++ a.Add(wx.StaticText(panel, -1, '')) ++ abutton = wx.Button(panel, -1, 'copy\nannounces\nfrom\ntorrent', size = (70,70)) ++ wx.EVT_BUTTON(frame, abutton.GetId(), self.announcecopy) ++ a.Add(abutton, -1, wx.ALIGN_CENTER) ++ a.Add(wx.StaticText(panel, -1, DROP_HERE), -1, wx.ALIGN_CENTER) ++ gridSizer.Add(a, -1, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) ++ ++ ++ self.annListCtl = wx.TextCtrl(panel, -1, '\n\n\n\n\n', wx.Point(-1,-1), (300,120), ++ wx.TE_MULTILINE|wx.HSCROLL|wx.TE_DONTWRAP) ++ gridSizer.Add(self.annListCtl, -1, wx.EXPAND) + +- gridSizer.Add(wxStaticText(panel, -1, '')) +- exptext = wxStaticText(panel, -1, ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ exptext = wx.StaticText(panel, -1, + "a list of tracker urls separated by commas or whitespace\n" + + "and on several lines -trackers on the same line will be\n" + + "tried randomly, and all the trackers on one line\n" + + "will be tried before the trackers on the next line.") +- exptext.SetFont(wxFont(6, wxDEFAULT, wxNORMAL, wxNORMAL, False)) +- gridSizer.Add(exptext, -1, wxALIGN_CENTER) ++ exptext.SetFont(wx.Font(6, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False)) ++ gridSizer.Add(exptext, -1, wx.ALIGN_CENTER) + + self.refresh_thostlist() + self._set_thost() + + if platform == 'win32': + self.dropTargetPtr.DragAcceptFiles(True) +- EVT_DROP_FILES(self.dropTargetPtr, self.selectdrop) ++ wx.EVT_DROP_FILES(self.dropTargetPtr, self.selectdrop) + self.groupSizer1Box.DragAcceptFiles(True) +- EVT_DROP_FILES(self.groupSizer1Box, self.selectdrop) ++ wx.EVT_DROP_FILES(self.groupSizer1Box, self.selectdrop) + abutton.DragAcceptFiles(True) +- EVT_DROP_FILES(abutton, self.announcedrop) ++ wx.EVT_DROP_FILES(abutton, self.announcedrop) + self.annCtl.DragAcceptFiles(True) +- EVT_DROP_FILES(self.annCtl, self.announcedrop) ++ wx.EVT_DROP_FILES(self.annCtl, self.announcedrop) + self.annListCtl.DragAcceptFiles(True) +- EVT_DROP_FILES(self.annListCtl, self.announcedrop) ++ wx.EVT_DROP_FILES(self.annListCtl, self.announcedrop) + +- gridSizer.Add(wxStaticText(panel, -1, '')) +- gridSizer.Add(wxStaticText(panel, -1, '')) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) + +- gridSizer.Add(wxStaticText(panel, -1, 'piece size:'),0, +- wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL) +- self.piece_length = wxChoice(panel, -1, ++ gridSizer.Add(wx.StaticText(panel, -1, 'piece size:'),0, ++ wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) ++ self.piece_length = wx.Choice(panel, -1, + choices = ['automatic', '2MiB', '1MiB', '512KiB', '256KiB', '128KiB', '64KiB', '32KiB']) + self.piece_length_list = [0, 21, 20, 19, 18, 17, 16, 15] + self.piece_length.SetSelection(0) + gridSizer.Add(self.piece_length) + +- gridSizer.Add(wxStaticText(panel, -1, 'comment:'),0, +- wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL) +- self.commentCtl = wxTextCtrl(panel, -1, '') +- gridSizer.Add(self.commentCtl, 0, wxEXPAND) +- +- gridSizer.Add(wxStaticText(panel, -1, '')) +- gridSizer.Add(wxStaticText(panel, -1, '')) +- +- b1 = wxButton(panel, -1, 'Cancel', size = (-1, 30)) +- EVT_BUTTON(frame, b1.GetId(), self.cancel) +- gridSizer.Add(b1, 0, wxEXPAND) +- b2 = wxButton(panel, -1, 'MAKE TORRENT', size = (-1, 30)) +- EVT_BUTTON(frame, b2.GetId(), self.complete) +- gridSizer.Add(b2, 0, wxEXPAND) ++ gridSizer.Add(wx.StaticText(panel, -1, 'comment:'),0, ++ wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) ++ self.commentCtl = wx.TextCtrl(panel, -1, '') ++ gridSizer.Add(self.commentCtl, 0, wx.EXPAND) ++ ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ gridSizer.Add(wx.StaticText(panel, -1, '')) ++ ++ b1 = wx.Button(panel, -1, 'Cancel', size = (-1, 30)) ++ wx.EVT_BUTTON(frame, b1.GetId(), self.cancel) ++ gridSizer.Add(b1, 0, wx.EXPAND) ++ b2 = wx.Button(panel, -1, 'MAKE TORRENT', size = (-1, 30)) ++ wx.EVT_BUTTON(frame, b2.GetId(), self.complete) ++ gridSizer.Add(b2, 0, wx.EXPAND) + + gridSizer.AddGrowableCol(1) +- colSizer.Add(gridSizer, -1, wxALIGN_CENTER_VERTICAL) ++ colSizer.Add(gridSizer, -1, wx.ALIGN_CENTER_VERTICAL) + fullSizer.Add(colSizer) + + +- border = wxBoxSizer(wxHORIZONTAL) +- border.Add(fullSizer, 1, wxEXPAND | wxALL, 15) ++ border = wx.BoxSizer(wx.HORIZONTAL) ++ border.Add(fullSizer, 1, wx.EXPAND | wx.ALL, 15) + panel.SetSizer(border) + panel.SetAutoLayout(True) + border.Fit(panel) +@@ -539,20 +539,20 @@ + frame.Show(True) + + EVT_INVOKE(frame, self.onInvoke) +- EVT_CLOSE(frame, self._close) ++ wx.EVT_CLOSE(frame, self._close) + + def setstayontop(self, x): + if self.stayontop_checkbox.GetValue(): +- self.windowStyle |= wxSTAY_ON_TOP ++ self.windowStyle |= wx.STAY_ON_TOP + else: +- self.windowStyle &= ~wxSTAY_ON_TOP ++ self.windowStyle &= ~wx.STAY_ON_TOP + self.frame.SetWindowStyle(self.windowStyle) + self.config['stayontop'] = self.stayontop_checkbox.GetValue() + + def selectdir(self, x = None): + self.calls['dropTargetHovered']() +- dl = wxDirDialog(self.frame, style = wxDD_DEFAULT_STYLE | wxDD_NEW_DIR_BUTTON) +- if dl.ShowModal() == wxID_OK: ++ dl = wx.DirDialog(self.frame, style = wx.DD_DEFAULT_STYLE | wx.DD_NEW_DIR_BUTTON) ++ if dl.ShowModal() == wx.ID_OK: + self.dirCtl.SetValue(dl.GetPath()) + self.calls['dropTargetDropped']() + else: +@@ -560,8 +560,8 @@ + + def selectfile(self, x = None): + self.calls['dropTargetHovered']() +- dl = wxFileDialog (self.frame, 'Choose file to use', '', '', '', wxOPEN) +- if dl.ShowModal() == wxID_OK: ++ dl = wx.FileDialog (self.frame, 'Choose file to use', '', '', '', wx.OPEN) ++ if dl.ShowModal() == wx.ID_OK: + self.dirCtl.SetValue(dl.GetPath()) + self.calls['dropTargetDropped']() + else: +@@ -573,8 +573,8 @@ + self.complete(f) + + def announcecopy(self, x): +- dl = wxFileDialog (self.frame, 'Choose .torrent file to use', '', '', '*.torrent', wxOPEN) +- if dl.ShowModal() == wxID_OK: ++ dl = wx.FileDialog (self.frame, 'Choose .torrent file to use', '', '', '*.torrent', wx.OPEN) ++ if dl.ShowModal() == wx.ID_OK: + self._announcecopy(dl.GetPath(), True) + + def announcedrop(self, dat): +@@ -619,14 +619,14 @@ + + def complete(self, x): + if not self.dirCtl.GetValue(): +- dlg = wxMessageDialog(self.frame, message = 'You must select a\nfile or directory', +- caption = 'Error', style = wxOK | wxICON_ERROR) ++ dlg = wx.MessageDialog(self.frame, message = 'You must select a\nfile or directory', ++ caption = 'Error', style = wx.OK | wx.ICON_ERROR) + dlg.ShowModal() + dlg.Destroy() + return + if not self.annCtl.GetValue(): +- dlg = wxMessageDialog(self.frame, message = 'You must specify a\nsingle tracker url', +- caption = 'Error', style = wxOK | wxICON_ERROR) ++ dlg = wx.MessageDialog(self.frame, message = 'You must specify a\nsingle tracker url', ++ caption = 'Error', style = wx.OK | wx.ICON_ERROR) + dlg.ShowModal() + dlg.Destroy() + return +@@ -649,10 +649,10 @@ + if warnings: + warnings += ('Are you sure you wish to produce a .torrent\n' + + 'with these parameters?') +- dlg = wxMessageDialog(self.frame, ++ dlg = wx.MessageDialog(self.frame, + message = warnings, +- caption = 'Warning', style = wxYES_NO | wxICON_QUESTION) +- if dlg.ShowModal() != wxID_YES: ++ caption = 'Warning', style = wx.YES_NO | wx.ICON_QUESTION) ++ if dlg.ShowModal() != wx.ID_YES: + dlg.Destroy() + return + params['real_announce_list'] = annlist +@@ -684,10 +684,10 @@ + self.switchlock.release() + + def selectDropTarget(self, x): +- dl = wxFileDialog (self.frame, 'Choose image to use', join(basepath,'targets'), ++ dl = wx.FileDialog (self.frame, 'Choose image to use', join(basepath,'targets'), + join(join(basepath,'targets'), self.config['target']), +- 'Supported images (*.bmp,*.gif)|*.*', wxOPEN|wxHIDE_READONLY) +- if dl.ShowModal() == wxID_OK: ++ 'Supported images (*.bmp,*.gif)|*.*', wx.OPEN|wx.HIDE_READONLY) ++ if dl.ShowModal() == wx.ID_OK: + try: + self.calls['changeDropTarget'](dl.GetPath()) + self.config['target'] = dl.GetPath() +@@ -760,8 +760,8 @@ + + def save_thost(self, x): + if not self.annCtl.GetValue(): +- dlg = wxMessageDialog(self.frame, message = 'You must specify a\nsingle tracker url', +- caption = 'Error', style = wxOK | wxICON_ERROR) ++ dlg = wx.MessageDialog(self.frame, message = 'You must specify a\nsingle tracker url', ++ caption = 'Error', style = wx.OK | wx.ICON_ERROR) + dlg.ShowModal() + dlg.Destroy() + return +@@ -786,10 +786,10 @@ + if warnings: + warnings += ('Are you sure you wish to save a torrent host\n' + + 'with these parameters?') +- dlg = wxMessageDialog(self.frame, ++ dlg = wx.MessageDialog(self.frame, + message = warnings, +- caption = 'Warning', style = wxYES_NO | wxICON_QUESTION) +- if dlg.ShowModal() != wxID_YES: ++ caption = 'Warning', style = wx.YES_NO | wx.ICON_QUESTION) ++ if dlg.ShowModal() != wx.ID_YES: + dlg.Destroy() + return + metainfo['announce-list'] = annlist +@@ -801,10 +801,10 @@ + d = self.thostselection + else: + d = '.thost' +- dl = wxFileDialog (self.frame, 'Save tracker data as', ++ dl = wx.FileDialog (self.frame, 'Save tracker data as', + join(basepath,'thosts'), d, '*.thost', +- wxSAVE|wxOVERWRITE_PROMPT) +- if dl.ShowModal() != wxID_OK: ++ wx.SAVE|wx.OVERWRITE_PROMPT) ++ if dl.ShowModal() != wx.ID_OK: + return + d = dl.GetPath() + +@@ -818,10 +818,10 @@ + self.refresh_thostlist() + + def delete_thost(self, x): +- dlg = wxMessageDialog(self.frame, ++ dlg = wx.MessageDialog(self.frame, + message = 'Are you sure you want to delete\n'+self.thostselection[:-6]+'?', +- caption = 'Warning', style = wxYES_NO | wxICON_EXCLAMATION) +- if dlg.ShowModal() != wxID_YES: ++ caption = 'Warning', style = wx.YES_NO | wx.ICON_EXCLAMATION) ++ if dlg.ShowModal() != wx.ID_YES: + dlg.Destroy() + return + dlg.Destroy() +@@ -835,7 +835,7 @@ + + def invokeLater(self, func, args = [], kwargs = {}): + if not self.uiflag.isSet(): +- wxPostEvent(self.frame, InvokeEvent(func, args, kwargs)) ++ wx.PostEvent(self.frame, InvokeEvent(func, args, kwargs)) + + def build_setgauge(self, x): + self.invokeLater(self.on_setgauge, [x]) +@@ -904,15 +904,15 @@ + def failed(self, e): + e = str(e) + self.call.build_failed(e) +- dlg = wxMessageDialog(self.frame, message = 'Error - ' + e, +- caption = 'Error', style = wxOK | wxICON_ERROR) ++ dlg = wx.MessageDialog(self.frame, message = 'Error - ' + e, ++ caption = 'Error', style = wx.OK | wx.ICON_ERROR) + dlg.ShowModal() + dlg.Destroy() + + + class T_make: + def __init__(self): +- self.configobj = wxConfig('BitTorrent_T-make',style=wxCONFIG_USE_LOCAL_FILE) ++ self.configobj = wx.Config('BitTorrent_T-make',style=wx.CONFIG_USE_LOCAL_FILE) + self.getConfig() + self.currentTHost = self.config['thost'] + # self.d = AdvancedDownloadInfo(self.config, self.getCalls()) +@@ -969,7 +969,7 @@ + + def newDropTarget(self, wh = None): + if wh: +- self.dropTarget = wxEmptyBitmap(wh[0],wh[1]) ++ self.dropTarget = wx.EmptyBitmap(wh[0],wh[1]) + try: + self.changeDropTarget(self.config['target']) + except: +@@ -983,7 +983,7 @@ + self.config['target'] = 'default.gif' + self.saveConfig() + except: +- self.dropTarget = wxEmptyBitmap(100,100) ++ self.dropTarget = wx.EmptyBitmap(100,100) + return self.dropTarget + + def setDropTargetRefresh(self, refreshfunc): +@@ -994,13 +994,13 @@ + w1,h1 = self.dropTarget.GetWidth(),self.dropTarget.GetHeight() + w,h = bmp.GetWidth(),bmp.GetHeight() + x1,y1 = int((w1-w)/2.0),int((h1-h)/2.0) +- bbdata = wxMemoryDC() ++ bbdata = wx.MemoryDC() + bbdata.SelectObject(self.dropTarget) +- bbdata.SetPen(wxTRANSPARENT_PEN) +- bbdata.SetBrush(wxBrush(wx.wxSystemSettings_GetColour(wxSYS_COLOUR_MENU),wxSOLID)) ++ bbdata.SetPen(wx.TRANSPARENT_PEN) ++ bbdata.SetBrush(wx.Brush(wx.SystemSettings_GetColour(wx.SYS_COLOUR_MENU),wx.SOLID)) + bbdata.DrawRectangle(0,0,w1,h1) +- bbdata.SetPen(wxBLACK_PEN) +- bbdata.SetBrush(wxTRANSPARENT_BRUSH) ++ bbdata.SetPen(wx.BLACK_PEN) ++ bbdata.SetBrush(wx.TRANSPARENT_BRUSH) + bbdata.DrawRectangle(x1-1,y1-1,w+2,h+2) + bbdata.DrawBitmap(bmp,x1,y1,True) + try: +@@ -1022,9 +1022,9 @@ + name = join(join(basepath,'targets'),new) + garbage, e = os.path.splitext(new.lower()) + if e == '.gif': +- bmp = wxBitmap(name, wxBITMAP_TYPE_GIF) ++ bmp = wx.Bitmap(name, wx.BITMAP_TYPE_GIF) + elif e == '.bmp': +- bmp = wxBitmap(name, wxBITMAP_TYPE_BMP) ++ bmp = wx.Bitmap(name, wx.BITMAP_TYPE_BMP) + else: + assert False + return bmp +@@ -1054,7 +1054,7 @@ + + + +-class btWxApp(wxApp): ++class btWxApp(wx.App): + def OnInit(self): + self.APP = T_make() + return True -- 2.43.0