--- /dev/null
+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('<cannot read date>'))
+
+ 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