diff --git a/demo/AUI_DockingWindowMgr.py b/demo/AUI_DockingWindowMgr.py
index c1f8dafd..dfc2caaa 100644
--- a/demo/AUI_DockingWindowMgr.py
+++ b/demo/AUI_DockingWindowMgr.py
@@ -5,7 +5,7 @@ import wx.grid
import wx.html
import wx.aui
-import cStringIO
+from wx.lib.six import BytesIO
ID_CreateTree = wx.NewId()
ID_CreateGrid = wx.NewId()
@@ -42,47 +42,47 @@ ID_FirstPerspective = ID_CreatePerspective+1000
#----------------------------------------------------------------------
def GetMondrianData():
return \
-'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\x00\x00 \x08\x06\x00\
+b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\x00\x00 \x08\x06\x00\
\x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\x00qID\
ATX\x85\xed\xd6;\n\x800\x10E\xd1{\xc5\x8d\xb9r\x97\x16\x0b\xad$\x8a\x82:\x16\
o\xda\x84pB2\x1f\x81Fa\x8c\x9c\x08\x04Z{\xcf\xa72\xbcv\xfa\xc5\x08 \x80r\x80\
\xfc\xa2\x0e\x1c\xe4\xba\xfaX\x1d\xd0\xde]S\x07\x02\xd8>\xe1wa-`\x9fQ\xe9\
\x86\x01\x04\x10\x00\\(Dk\x1b-\x04\xdc\x1d\x07\x14\x98;\x0bS\x7f\x7f\xf9\x13\
-\x04\x10@\xf9X\xbe\x00\xc9 \x14K\xc1<={\x00\x00\x00\x00IEND\xaeB`\x82'
+\x04\x10@\xf9X\xbe\x00\xc9 \x14K\xc1<={\x00\x00\x00\x00IEND\xaeB`\x82'
def GetMondrianBitmap():
- return wx.BitmapFromImage(GetMondrianImage())
+ return wx.Bitmap(GetMondrianImage())
def GetMondrianImage():
- stream = cStringIO.StringIO(GetMondrianData())
- return wx.ImageFromStream(stream)
+ stream = BytesIO(GetMondrianData())
+ return wx.Image(stream)
def GetMondrianIcon():
- icon = wx.EmptyIcon()
+ icon = wx.Icon()
icon.CopyFromBitmap(GetMondrianBitmap())
return icon
class PyAUIFrame(wx.Frame):
-
+
def __init__(self, parent, id=-1, title="", pos=wx.DefaultPosition,
size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE |
wx.SUNKEN_BORDER |
wx.CLIP_CHILDREN):
wx.Frame.__init__(self, parent, id, title, pos, size, style)
-
- # tell FrameManager to manage this frame
+
+ # tell FrameManager to manage this frame
self._mgr = wx.aui.AuiManager()
self._mgr.SetManagedWindow(self)
-
+
self._perspectives = []
self.n = 0
self.x = 0
-
+
self.SetIcon(GetMondrianIcon())
# create menu
@@ -102,8 +102,8 @@ class PyAUIFrame(wx.Frame):
view_menu.Append(ID_TextContent, "Use a Text Control for the Content Pane")
view_menu.Append(ID_HTMLContent, "Use an HTML Control for the Content Pane")
view_menu.Append(ID_TreeContent, "Use a Tree Control for the Content Pane")
- view_menu.Append(ID_SizeReportContent, "Use a Size Reporter for the Content Pane")
-
+ view_menu.Append(ID_SizeReportContent, "Use a Size Reporter for the Content Pane")
+
options_menu = wx.Menu()
options_menu.AppendRadioItem(ID_TransparentHint, "Transparent Hint")
options_menu.AppendRadioItem(ID_VenetianBlindsHint, "Venetian Blinds Hint")
@@ -132,13 +132,13 @@ class PyAUIFrame(wx.Frame):
help_menu = wx.Menu()
help_menu.Append(ID_About, "About...")
-
+
mb.Append(file_menu, "File")
mb.Append(view_menu, "View")
mb.Append(self._perspectives_menu, "Perspectives")
mb.Append(options_menu, "Options")
mb.Append(help_menu, "Help")
-
+
self.SetMenuBar(mb)
self.statusbar = self.CreateStatusBar(2, wx.ST_SIZEGRIP)
@@ -180,7 +180,7 @@ class PyAUIFrame(wx.Frame):
tb2.AddLabelTool(101, "Test", tb2_bmp1)
tb2.AddLabelTool(101, "Test", tb2_bmp1)
tb2.Realize()
-
+
tb3 = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
wx.TB_FLAT | wx.TB_NODIVIDER)
tb3.SetToolBitmapSize(wx.Size(16,16))
@@ -212,7 +212,7 @@ class PyAUIFrame(wx.Frame):
tb5 = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
wx.TB_FLAT | wx.TB_NODIVIDER | wx.TB_VERTICAL)
tb5.SetToolBitmapSize(wx.Size(48, 48))
- tb5.AddLabelTool(101, "Test", wx.ArtProvider.GetBitmap(wx.ART_ERROR))
+ tb5.AddLabelTool(101, "Test", wx.ArtProvider_GetBitmap(wx.ART_ERROR))
tb5.AddSeparator()
tb5.AddLabelTool(102, "Test", wx.ArtProvider.GetBitmap(wx.ART_QUESTION))
tb5.AddLabelTool(103, "Test", wx.ArtProvider.GetBitmap(wx.ART_INFORMATION))
@@ -232,15 +232,15 @@ class PyAUIFrame(wx.Frame):
self._mgr.AddPane(self.CreateSizeReportCtrl(), wx.aui.AuiPaneInfo().
Name("test3").Caption("Client Size Reporter").
Bottom().CloseButton(True).MaximizeButton(True))
-
+
self._mgr.AddPane(self.CreateSizeReportCtrl(), wx.aui.AuiPaneInfo().
Name("test4").Caption("Pane Caption").
Left().CloseButton(True).MaximizeButton(True))
-
+
self._mgr.AddPane(self.CreateSizeReportCtrl(), wx.aui.AuiPaneInfo().
Name("test5").Caption("Pane Caption").
Right().CloseButton(True).MaximizeButton(True))
-
+
self._mgr.AddPane(self.CreateSizeReportCtrl(), wx.aui.AuiPaneInfo().
Name("test6").Caption("Client Size Reporter").
Right().Row(1).CloseButton(True).MaximizeButton(True))
@@ -248,11 +248,11 @@ class PyAUIFrame(wx.Frame):
self._mgr.AddPane(self.CreateSizeReportCtrl(), wx.aui.AuiPaneInfo().
Name("test7").Caption("Client Size Reporter").
Left().Layer(1).CloseButton(True).MaximizeButton(True))
-
+
self._mgr.AddPane(self.CreateTreeCtrl(), wx.aui.AuiPaneInfo().
Name("test8").Caption("Tree Pane").
Left().Layer(1).Position(1).CloseButton(True).MaximizeButton(True))
-
+
self._mgr.AddPane(self.CreateSizeReportCtrl(), wx.aui.AuiPaneInfo().
Name("test9").Caption("Min Size 200x100").
BestSize(wx.Size(200,100)).MinSize(wx.Size(200,100)).
@@ -261,7 +261,7 @@ class PyAUIFrame(wx.Frame):
self._mgr.AddPane(self.CreateTextCtrl(), wx.aui.AuiPaneInfo().
Name("test10").Caption("Text Pane").
Bottom().Layer(1).Position(1).CloseButton(True).MaximizeButton(True))
-
+
self._mgr.AddPane(self.CreateSizeReportCtrl(), wx.aui.AuiPaneInfo().
Name("test11").Caption("Fixed Pane").
Bottom().Layer(1).Position(2).Fixed().CloseButton(True).MaximizeButton(True))
@@ -277,7 +277,7 @@ class PyAUIFrame(wx.Frame):
self._mgr.AddPane(self.CreateTreeCtrl(), wx.aui.AuiPaneInfo().Name("tree_content").
CenterPane().Hide())
-
+
self._mgr.AddPane(self.CreateSizeReportCtrl(), wx.aui.AuiPaneInfo().Name("sizereport_content").
CenterPane().Hide())
@@ -286,9 +286,9 @@ class PyAUIFrame(wx.Frame):
self._mgr.AddPane(self.CreateHTMLCtrl(), wx.aui.AuiPaneInfo().Name("html_content").
CenterPane())
-
+
# add the toolbars to the manager
-
+
self._mgr.AddPane(tb1, wx.aui.AuiPaneInfo().
Name("tb1").Caption("Big Toolbar").
ToolbarPane().Top().
@@ -298,12 +298,12 @@ class PyAUIFrame(wx.Frame):
Name("tb2").Caption("Toolbar 2").
ToolbarPane().Top().Row(1).
LeftDockable(False).RightDockable(False))
-
+
self._mgr.AddPane(tb3, wx.aui.AuiPaneInfo().
Name("tb3").Caption("Toolbar 3").
ToolbarPane().Top().Row(1).Position(1).
LeftDockable(False).RightDockable(False))
-
+
self._mgr.AddPane(tb4, wx.aui.AuiPaneInfo().
Name("tb4").Caption("Sample Bookmark Toolbar").
ToolbarPane().Top().Row(2).
@@ -313,7 +313,7 @@ class PyAUIFrame(wx.Frame):
Name("tbvert").Caption("Sample Vertical Toolbar").
ToolbarPane().Left().GripperTop().
TopDockable(False).BottomDockable(False))
-
+
self._mgr.AddPane(wx.Button(self, -1, "Test Button"),
wx.aui.AuiPaneInfo().Name("tb5").
ToolbarPane().Top().Row(2).Position(1).
@@ -322,15 +322,15 @@ class PyAUIFrame(wx.Frame):
# make some default perspectives
self._mgr.GetPane("tbvert").Hide()
-
+
perspective_all = self._mgr.SavePerspective()
-
+
all_panes = self._mgr.GetAllPanes()
-
+
for ii in xrange(len(all_panes)):
if not all_panes[ii].IsToolbar():
all_panes[ii].Hide()
-
+
self._mgr.GetPane("tb1").Hide()
self._mgr.GetPane("tb5").Hide()
self._mgr.GetPane("test8").Show().Left().Layer(0).Row(0).Position(0)
@@ -352,7 +352,7 @@ class PyAUIFrame(wx.Frame):
self._mgr.GetPane("html_content").Show()
perspective_vert = self._mgr.SavePerspective()
-
+
self._perspectives.append(perspective_default)
self._perspectives.append(perspective_all)
self._perspectives.append(perspective_vert)
@@ -360,7 +360,7 @@ class PyAUIFrame(wx.Frame):
self._mgr.GetPane("tbvert").Hide()
self._mgr.GetPane("grid_content").Hide()
- # "commit" all changes made to FrameManager
+ # "commit" all changes made to FrameManager
self._mgr.Update()
self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
@@ -369,7 +369,7 @@ class PyAUIFrame(wx.Frame):
# Show How To Use The Closing Panes Event
self.Bind(wx.aui.EVT_AUI_PANE_CLOSE, self.OnPaneClose)
-
+
self.Bind(wx.EVT_MENU, self.OnCreateTree, id=ID_CreateTree)
self.Bind(wx.EVT_MENU, self.OnCreateGrid, id=ID_CreateGrid)
self.Bind(wx.EVT_MENU, self.OnCreateText, id=ID_CreateText)
@@ -387,7 +387,7 @@ class PyAUIFrame(wx.Frame):
self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_NoVenetianFade)
self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_TransparentDrag)
self.Bind(wx.EVT_MENU, self.OnManagerFlag, id=ID_AllowActivePane)
-
+
self.Bind(wx.EVT_MENU, self.OnGradient, id=ID_NoGradient)
self.Bind(wx.EVT_MENU, self.OnGradient, id=ID_VerticalGradient)
self.Bind(wx.EVT_MENU, self.OnGradient, id=ID_HorizontalGradient)
@@ -413,7 +413,7 @@ class PyAUIFrame(wx.Frame):
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_VerticalGradient)
self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateUI, id=ID_HorizontalGradient)
-
+
self.Bind(wx.EVT_MENU_RANGE, self.OnRestorePerspective, id=ID_FirstPerspective,
id2=ID_FirstPerspective+1000)
@@ -430,7 +430,7 @@ class PyAUIFrame(wx.Frame):
if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]:
event.Veto()
dlg.Destroy()
-
+
def OnClose(self, event):
self._mgr.UnInit()
@@ -449,7 +449,7 @@ class PyAUIFrame(wx.Frame):
dlg = wx.MessageDialog(self, msg, "About wx.aui Demo",
wx.OK | wx.ICON_INFORMATION)
dlg.ShowModal()
- dlg.Destroy()
+ dlg.Destroy()
def GetDockArt(self):
@@ -526,7 +526,7 @@ class PyAUIFrame(wx.Frame):
flag = wx.aui.AUI_MGR_VENETIAN_BLINDS_HINT
elif eid == ID_RectangleHint:
flag = wx.aui.AUI_MGR_RECTANGLE_HINT
-
+
self._mgr.SetFlags(self._mgr.GetFlags() ^ flag)
@@ -534,7 +534,7 @@ class PyAUIFrame(wx.Frame):
flags = self._mgr.GetFlags()
eid = event.GetId()
-
+
if eid == ID_NoGradient:
event.Check(self._mgr.GetArtProvider().GetMetric(wx.aui.AUI_DOCKART_GRADIENT_TYPE) == wx.aui.AUI_GRADIENT_NONE)
@@ -570,20 +570,20 @@ class PyAUIFrame(wx.Frame):
elif eid == ID_NoVenetianFade:
event.Check((flags & wx.aui.AUI_MGR_NO_VENETIAN_BLINDS_FADE) != 0);
-
+
def OnCreatePerspective(self, event):
dlg = wx.TextEntryDialog(self, "Enter a name for the new perspective:", "AUI Test")
-
+
dlg.SetValue(("Perspective %d")%(len(self._perspectives)+1))
if dlg.ShowModal() != wx.ID_OK:
return
-
+
if len(self._perspectives) == 0:
self._perspectives_menu.AppendSeparator()
-
+
self._perspectives_menu.Append(ID_FirstPerspective + len(self._perspectives), dlg.GetValue())
self._perspectives.append(self._mgr.SavePerspective())
@@ -591,12 +591,12 @@ class PyAUIFrame(wx.Frame):
def OnCopyPerspective(self, event):
s = self._mgr.SavePerspective()
-
+
if wx.TheClipboard.Open():
-
+
wx.TheClipboard.SetData(wx.TextDataObject(s))
wx.TheClipboard.Close()
-
+
def OnRestorePerspective(self, event):
self._mgr.LoadPerspective(self._perspectives[event.GetId() - ID_FirstPerspective])
@@ -607,7 +607,7 @@ class PyAUIFrame(wx.Frame):
self.x = self.x + 20
x = self.x
pt = self.ClientToScreen(wx.Point(0, 0))
-
+
return wx.Point(pt.x + x, pt.y + x)
@@ -674,7 +674,7 @@ class PyAUIFrame(wx.Frame):
grid = wx.grid.Grid(self, -1, wx.Point(0, 0), wx.Size(150, 250),
wx.NO_BORDER | wx.WANTS_CHARS)
-
+
grid.CreateGrid(50, 20)
return grid
@@ -684,7 +684,7 @@ class PyAUIFrame(wx.Frame):
tree = wx.TreeCtrl(self, -1, wx.Point(0, 0), wx.Size(160, 250),
wx.TR_DEFAULT_STYLE | wx.NO_BORDER)
-
+
root = tree.AddRoot("AUI Project")
items = []
@@ -700,14 +700,14 @@ class PyAUIFrame(wx.Frame):
items.append(tree.AppendItem(root, "Item 5", 0))
for ii in xrange(len(items)):
-
+
id = items[ii]
tree.AppendItem(id, "Subitem 1", 1)
tree.AppendItem(id, "Subitem 2", 1)
tree.AppendItem(id, "Subitem 3", 1)
tree.AppendItem(id, "Subitem 4", 1)
tree.AppendItem(id, "Subitem 5", 1)
-
+
tree.Expand(root)
return tree
@@ -724,7 +724,7 @@ class PyAUIFrame(wx.Frame):
ctrl = wx.html.HtmlWindow(self, -1, wx.DefaultPosition, wx.Size(400, 300))
if "gtk2" in wx.PlatformInfo:
ctrl.SetStandardFonts()
- ctrl.SetPage(self.GetIntroText())
+ ctrl.SetPage(self.GetIntroText())
return ctrl
@@ -741,7 +741,7 @@ class SizeReportCtrl(wx.PyControl):
size=wx.DefaultSize, mgr=None):
wx.PyControl.__init__(self, parent, id, pos, size, wx.NO_BORDER)
-
+
self._mgr = mgr
self.Bind(wx.EVT_PAINT, self.OnPaint)
@@ -752,7 +752,7 @@ class SizeReportCtrl(wx.PyControl):
def OnPaint(self, event):
dc = wx.PaintDC(self)
-
+
size = self.GetClientSize()
s = ("Size: %d x %d")%(size.x, size.y)
@@ -766,38 +766,38 @@ class SizeReportCtrl(wx.PyControl):
dc.DrawLine(0, 0, size.x, size.y)
dc.DrawLine(0, size.y, size.x, 0)
dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2))
-
+
if self._mgr:
-
+
pi = self._mgr.GetPane(self)
-
+
s = ("Layer: %d")%pi.dock_layer
w, h = dc.GetTextExtent(s)
dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*1))
-
+
s = ("Dock: %d Row: %d")%(pi.dock_direction, pi.dock_row)
w, h = dc.GetTextExtent(s)
dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*2))
-
+
s = ("Position: %d")%pi.dock_pos
w, h = dc.GetTextExtent(s)
dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*3))
-
+
s = ("Proportion: %d")%pi.dock_proportion
w, h = dc.GetTextExtent(s)
dc.DrawText(s, (size.x-w)/2, ((size.y-(height*5))/2)+(height*4))
-
+
def OnEraseBackground(self, event):
# intentionally empty
- pass
-
+ pass
+
def OnSize(self, event):
-
+
self.Refresh()
event.Skip()
-
+
ID_PaneBorderSize = wx.ID_HIGHEST + 1
ID_SashSize = ID_PaneBorderSize + 1
@@ -812,16 +812,16 @@ ID_ActiveCaptionGradientColor = ID_PaneBorderSize + 9
ID_ActiveCaptionTextColor = ID_PaneBorderSize + 10
ID_BorderColor = ID_PaneBorderSize + 11
ID_GripperColor = ID_PaneBorderSize + 12
-
+
class SettingsPanel(wx.Panel):
-
+
def __init__(self, parent, frame):
wx.Panel.__init__(self, parent, wx.ID_ANY, wx.DefaultPosition,
wx.DefaultSize)
self._frame = frame
-
+
vert = wx.BoxSizer(wx.VERTICAL)
s1 = wx.BoxSizer(wx.HORIZONTAL)
@@ -942,7 +942,7 @@ class SettingsPanel(wx.Panel):
s13.Add(self._gripper_color)
s13.Add((1, 1), 1, wx.EXPAND)
s13.SetItemMinSize(1, (180, 20))
-
+
grid_sizer = wx.GridSizer(cols=2)
grid_sizer.SetHGap(5)
grid_sizer.Add(s1)
@@ -959,7 +959,7 @@ class SettingsPanel(wx.Panel):
grid_sizer.Add(s10)
grid_sizer.Add(s8)
grid_sizer.Add(s11)
-
+
cont_sizer = wx.BoxSizer(wx.VERTICAL)
cont_sizer.Add(grid_sizer, 1, wx.EXPAND | wx.ALL, 5)
self.SetSizer(cont_sizer)
@@ -968,7 +968,7 @@ class SettingsPanel(wx.Panel):
self._border_size.SetValue(frame.GetDockArt().GetMetric(wx.aui.AUI_DOCKART_PANE_BORDER_SIZE))
self._sash_size.SetValue(frame.GetDockArt().GetMetric(wx.aui.AUI_DOCKART_SASH_SIZE))
self._caption_size.SetValue(frame.GetDockArt().GetMetric(wx.aui.AUI_DOCKART_CAPTION_SIZE))
-
+
self.UpdateColors()
self.Bind(wx.EVT_SPINCTRL, self.OnPaneBorderSize, id=ID_PaneBorderSize)
@@ -984,8 +984,8 @@ class SettingsPanel(wx.Panel):
self.Bind(wx.EVT_BUTTON, self.OnSetColor, id=ID_ActiveCaptionTextColor)
self.Bind(wx.EVT_BUTTON, self.OnSetColor, id=ID_BorderColor)
self.Bind(wx.EVT_BUTTON, self.OnSetColor, id=ID_GripperColor)
-
-
+
+
def CreateColorBitmap(self, c):
image = wx.Image(25, 14)
@@ -994,47 +994,47 @@ class SettingsPanel(wx.Panel):
pixcol = c
if x == 0 or x == 24 or y == 0 or y == 13:
pixcol = wx.BLACK
-
+
image.SetRGB(x, y, pixcol.Red(), pixcol.Green(), pixcol.Blue())
-
+
return image.ConvertToBitmap()
-
-
+
+
def UpdateColors(self):
-
+
bk = self._frame.GetDockArt().GetColour(wx.aui.AUI_DOCKART_BACKGROUND_COLOUR)
self._background_color.SetBitmapLabel(self.CreateColorBitmap(bk))
-
+
cap = self._frame.GetDockArt().GetColour(wx.aui.AUI_DOCKART_INACTIVE_CAPTION_COLOUR)
self._inactive_caption_color.SetBitmapLabel(self.CreateColorBitmap(cap))
-
+
capgrad = self._frame.GetDockArt().GetColour(wx.aui.AUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR)
self._inactive_caption_gradient_color.SetBitmapLabel(self.CreateColorBitmap(capgrad))
-
+
captxt = self._frame.GetDockArt().GetColour(wx.aui.AUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR)
self._inactive_caption_text_color.SetBitmapLabel(self.CreateColorBitmap(captxt))
-
+
acap = self._frame.GetDockArt().GetColour(wx.aui.AUI_DOCKART_ACTIVE_CAPTION_COLOUR)
self._active_caption_color.SetBitmapLabel(self.CreateColorBitmap(acap))
-
+
acapgrad = self._frame.GetDockArt().GetColour(wx.aui.AUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR)
self._active_caption_gradient_color.SetBitmapLabel(self.CreateColorBitmap(acapgrad))
-
+
acaptxt = self._frame.GetDockArt().GetColour(wx.aui.AUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR)
self._active_caption_text_color.SetBitmapLabel(self.CreateColorBitmap(acaptxt))
-
+
sash = self._frame.GetDockArt().GetColour(wx.aui.AUI_DOCKART_SASH_COLOUR)
self._sash_color.SetBitmapLabel(self.CreateColorBitmap(sash))
-
+
border = self._frame.GetDockArt().GetColour(wx.aui.AUI_DOCKART_BORDER_COLOUR)
self._border_color.SetBitmapLabel(self.CreateColorBitmap(border))
-
+
gripper = self._frame.GetDockArt().GetColour(wx.aui.AUI_DOCKART_GRIPPER_COLOUR)
self._gripper_color.SetBitmapLabel(self.CreateColorBitmap(gripper))
-
-
+
+
def OnPaneBorderSize(self, event):
-
+
self._frame.GetDockArt().SetMetric(wx.aui.AUI_DOCKART_PANE_BORDER_SIZE,
event.GetInt())
self._frame.DoUpdate()
@@ -1045,24 +1045,24 @@ class SettingsPanel(wx.Panel):
self._frame.GetDockArt().SetMetric(wx.aui.AUI_DOCKART_SASH_SIZE,
event.GetInt())
self._frame.DoUpdate()
-
+
def OnCaptionSize(self, event):
-
+
self._frame.GetDockArt().SetMetric(wx.aui.AUI_DOCKART_CAPTION_SIZE,
event.GetInt())
self._frame.DoUpdate()
-
+
def OnSetColor(self, event):
-
+
dlg = wx.ColourDialog(self._frame)
-
+
dlg.SetTitle("Color Picker")
-
+
if dlg.ShowModal() != wx.ID_OK:
return
-
+
var = 0
if event.GetId() == ID_BackgroundColor:
var = wx.aui.AUI_DOCKART_BACKGROUND_COLOUR
@@ -1085,8 +1085,8 @@ class SettingsPanel(wx.Panel):
elif event.GetId() == ID_GripperColor:
var = wx.aui.AUI_DOCKART_GRIPPER_COLOUR
else:
- return
-
+ return
+
self._frame.GetDockArt().SetColor(var, dlg.GetColourData().GetColour())
self._frame.DoUpdate()
self.UpdateColors()
@@ -1122,8 +1122,8 @@ overview = """\
Overview
-
wx.aui is an Advanced User Interface library for the wxWidgets toolkit -that allows developers to create high-quality, cross-platform user +
wx.aui is an Advanced User Interface library for the wxWidgets toolkit +that allows developers to create high-quality, cross-platform user interfaces quickly and easily.
Features
diff --git a/demo/ArtProvider.py b/demo/ArtProvider.py index 92d065ed..875eee70 100644 --- a/demo/ArtProvider.py +++ b/demo/ArtProvider.py @@ -1,7 +1,9 @@ #!/usr/bin/env python +# Tags: phoenix-port, py3-port -import cStringIO -import wx +from wx.lib.six import BytesIO + +import wx #---------------------------------------------------------------------- @@ -276,7 +278,7 @@ provided by wx.ArtProvider.GetBitmap or wx.ArtProvider.GetIcon methods. def makeBitmap(data): - stream = cStringIO.StringIO(data) + stream = BytesIO(data) return wx.Bitmap(wx.Image(stream)) diff --git a/demo/Cursor.py b/demo/Cursor.py index d598d1c9..812bb8e4 100644 --- a/demo/Cursor.py +++ b/demo/Cursor.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Tags: phoenix-port, py3-port import wx import images @@ -48,8 +49,7 @@ class TestPanel(wx.Panel): wx.Panel.__init__(self, parent, -1) # create a list of choices from the dictionary above - choices = cursors.keys() - choices.sort() + choices = sorted(cursors.keys()) # create the controls self.cb = wx.ComboBox(self, -1, "wx.CURSOR_DEFAULT", choices=choices, diff --git a/demo/CustomDragAndDrop.py b/demo/CustomDragAndDrop.py index 0b2e363a..b638ef7f 100644 --- a/demo/CustomDragAndDrop.py +++ b/demo/CustomDragAndDrop.py @@ -1,7 +1,7 @@ #!/usr/bin/env python -import cPickle -import wx +from wx.lib.six.moves import cPickle +import wx #---------------------------------------------------------------------- diff --git a/demo/DVC_CustomRenderer.py b/demo/DVC_CustomRenderer.py index 584e862c..2ce726cc 100644 --- a/demo/DVC_CustomRenderer.py +++ b/demo/DVC_CustomRenderer.py @@ -1,13 +1,14 @@ #!/usr/bin/env python +# Tags: phoenix-port, py3-port import wx import wx.dataview as dv #---------------------------------------------------------------------- -class MyCustomRenderer(dv.PyDataViewCustomRenderer): +class MyCustomRenderer(dv.DataViewCustomRenderer): def __init__(self, log, *args, **kw): - dv.PyDataViewCustomRenderer.__init__(self, *args, **kw) + dv.DataViewCustomRenderer.__init__(self, *args, **kw) self.log = log self.value = None @@ -51,6 +52,7 @@ class MyCustomRenderer(dv.PyDataViewCustomRenderer): state # wxDataViewCellRenderState flags ) + return True # The HasEditorCtrl, CreateEditorCtrl and GetValueFromEditorCtrl # methods need to be implemented if this renderer is going to @@ -154,7 +156,7 @@ def runTest(frame, nb, log): # as the first element of each sublist. import ListCtrl musicdata = ListCtrl.musicdata.items() - musicdata.sort() + musicdata = sorted(musicdata) musicdata = [[str(k)] + list(v) for k,v in musicdata] win = TestPanel(nb, log, data=musicdata) diff --git a/demo/DVC_DataViewModel.py b/demo/DVC_DataViewModel.py index 01714295..dd5f6c10 100644 --- a/demo/DVC_DataViewModel.py +++ b/demo/DVC_DataViewModel.py @@ -71,15 +71,13 @@ class MyTreeListModel(dv.PyDataViewModel): self.data = data self.log = log - # The objmapper is an instance of DataViewItemObjectMapper and is used - # to help associate Python objects with DataViewItem objects. Normally - # a dictionary is used so any Python object can be used as data nodes. - # If the data nodes are weak-referencable then the objmapper can use a - # WeakValueDictionary instead. Each PyDataViewModel automagically has - # an instance of DataViewItemObjectMapper preassigned. This - # self.objmapper is used by the self.ObjectToItem and - # self.ItemToObject methods used below. - self.objmapper.UseWeakRefs(True) + # The PyDataViewModel derives from both DataViewModel and from + # DataViewItemObjectMapper, which has methods that help associate + # data view items with Python objects. Normally a dictionary is used + # so any Python object can be used as data nodes. If the data nodes + # are weak-referencable then the objmapper can use a + # WeakValueDictionary instead. + self.UseWeakRefs(True) # Report how many columns this model provides data for. @@ -305,8 +303,7 @@ def runTest(frame, nb, log): # Reuse the music data in the ListCtrl sample, and put it in a # hierarchical structure so we can show it as a tree import ListCtrl - musicdata = ListCtrl.musicdata.items() - musicdata.sort() + musicdata = sorted(ListCtrl.musicdata.items()) ## For testing Unicode #musicdata = { diff --git a/demo/DVC_IndexListModel.py b/demo/DVC_IndexListModel.py index bcc379f0..ca6a549b 100644 --- a/demo/DVC_IndexListModel.py +++ b/demo/DVC_IndexListModel.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Tags: phoenix-port, py3-port import wx import wx.dataview as dv @@ -222,8 +223,7 @@ def runTest(frame, nb, log): # from a dictionary to a list of lists, including the dictionary key # as the first element of each sublist. import ListCtrl - musicdata = ListCtrl.musicdata.items() - musicdata.sort() + musicdata = sorted(ListCtrl.musicdata.items()) musicdata = [[str(k)] + list(v) for k,v in musicdata] win = TestPanel(nb, log, data=musicdata) diff --git a/demo/FontEnumerator.py b/demo/FontEnumerator.py index 33a25bbd..bfa96059 100644 --- a/demo/FontEnumerator.py +++ b/demo/FontEnumerator.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Tags: phoenix-port, py3-port import wx diff --git a/demo/GLCanvas.py b/demo/GLCanvas.py index ba011028..f82506bf 100644 --- a/demo/GLCanvas.py +++ b/demo/GLCanvas.py @@ -33,8 +33,7 @@ class ButtonPanel(wx.Panel): box = wx.BoxSizer(wx.VERTICAL) box.Add((20, 30)) - keys = buttonDefs.keys() - keys.sort() + keys = sorted(buttonDefs.keys()) for k in keys: text = buttonDefs[k][1] btn = wx.Button(self, k, text) diff --git a/demo/Grid.py b/demo/Grid.py index 081494bd..8e5a0d55 100644 --- a/demo/Grid.py +++ b/demo/Grid.py @@ -23,8 +23,7 @@ class ButtonPanel(wx.Panel): box = wx.BoxSizer(wx.VERTICAL) box.Add((20, 20)) - keys = buttonDefs.keys() - keys.sort() + keys = sorted(buttonDefs.keys()) for k in keys: text = buttonDefs[k][1] diff --git a/demo/GridCustTable.py b/demo/GridCustTable.py index 070ea756..b3082993 100644 --- a/demo/GridCustTable.py +++ b/demo/GridCustTable.py @@ -120,7 +120,7 @@ class CustTableGrid(gridlib.Grid): self.SetMargins(0,0) self.AutoSizeColumns(False) - gridlib.EVT_GRID_CELL_LEFT_DCLICK(self, self.OnLeftDClick) + self.Bind(gridlib.EVT_GRID_CELL_LEFT_DCLICK, self.OnLeftDClick) # I do this because I don't like the default behaviour of not starting the diff --git a/demo/GridDragAndDrop.py b/demo/GridDragAndDrop.py index 50de6775..d1b9ba68 100644 --- a/demo/GridDragAndDrop.py +++ b/demo/GridDragAndDrop.py @@ -34,9 +34,9 @@ class GridFileDropTarget(wx.FileDropTarget): -class FooTable(gridlib.PyGridTableBase): +class FooTable(gridlib.GridTableBase): def __init__(self): - gridlib.PyGridTableBase.__init__(self) + gridlib.GridTableBase.__init__(self) self.dropTargets = {(0,0):"Drag", (1,0):"A", (2,0):"File", diff --git a/demo/GridDragable.py b/demo/GridDragable.py index 0e80c118..1a80d6dc 100644 --- a/demo/GridDragable.py +++ b/demo/GridDragable.py @@ -6,9 +6,9 @@ import wx.lib.gridmovers as gridmovers #--------------------------------------------------------------------------- -class CustomDataTable(gridlib.PyGridTableBase): +class CustomDataTable(gridlib.GridTableBase): def __init__(self, log): - gridlib.PyGridTableBase.__init__(self) + gridlib.GridTableBase.__init__(self) self.log = log self.identifiers = ['id','ds','sv','pr','pl','op','fx','ts'] diff --git a/demo/GridHugeTable.py b/demo/GridHugeTable.py index 21aa38d5..2a6bfd60 100644 --- a/demo/GridHugeTable.py +++ b/demo/GridHugeTable.py @@ -5,7 +5,7 @@ import wx.grid as gridlib #--------------------------------------------------------------------------- -class HugeTable(gridlib.PyGridTableBase): +class HugeTable(gridlib.GridTableBase): def __init__(self, log): gridlib.GridTableBase.__init__(self) diff --git a/demo/GridLabelRenderer.py b/demo/GridLabelRenderer.py index 21413f5a..5a93707e 100644 --- a/demo/GridLabelRenderer.py +++ b/demo/GridLabelRenderer.py @@ -19,7 +19,7 @@ class MyRowLabelRenderer(glr.GridLabelRenderer): def Draw(self, grid, dc, rect, row): dc.SetBrush(wx.Brush(self._bgcolor)) dc.SetPen(wx.TRANSPARENT_PEN) - dc.DrawRectangleRect(rect) + dc.DrawRectangle(rect) hAlign, vAlign = grid.GetRowLabelAlignment() text = grid.GetRowLabelValue(row) self.DrawBorder(grid, dc, rect) diff --git a/demo/ImageFromStream.py b/demo/ImageFromStream.py index d4ac350a..a95f802d 100644 --- a/demo/ImageFromStream.py +++ b/demo/ImageFromStream.py @@ -1,6 +1,7 @@ #!/usr/bin/env python +# Tags: phoenix-port, py3-port -import cStringIO +from wx.lib.six import BytesIO import wx @@ -13,7 +14,7 @@ class TestPanel(wx.Panel): wx.Panel.__init__(self, parent, -1) data = open(opj('bitmaps/image.png'), "rb").read() - stream = cStringIO.StringIO(data) + stream = BytesIO(data) bmp = wx.Bitmap(wx.Image(stream)) diff --git a/demo/ListBox.py b/demo/ListBox.py index da6acb20..00538741 100644 --- a/demo/ListBox.py +++ b/demo/ListBox.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Tags: phoenix-port, py3-port import wx diff --git a/demo/Main.py b/demo/Main.py index 466a3969..b07c63e1 100644 --- a/demo/Main.py +++ b/demo/Main.py @@ -9,6 +9,7 @@ # RCS-ID: $Id: Main.py 71772 2012-06-14 22:37:10Z RD $ # Copyright: (c) 1999 by Total Control Software # Licence: wxWindows license +# Tags: phoenix-port, py3-port #---------------------------------------------------------------------------- # FIXME List: @@ -615,10 +616,9 @@ def FindImages(text, widgetName): if "src=" in items: possibleImage = items.replace("src=", "").strip() - possibleImage = possibleImage.replace("'", "") + possibleImage = possibleImage.replace('"', "") f = urllib.request.urlopen(_trunkURL + possibleImage) stream = f.read() - elif "alt=" in items: plat = items.replace("alt=", "").replace("'", "").strip() path = os.path.join(imagesDir, plat, widgetName + ".png") @@ -660,7 +660,10 @@ class InternetThread(Thread): url = _docsURL % ReplaceCapitals(self.selectedClass) fid = urllib.request.urlopen(url) - originalText = fid.read() + if six.PY2: + originalText = fid.read() + else: + originalText = fid.read().decode("utf-8") text = RemoveHTMLTags(originalText).split("\n") data = FindWindowStyles(text, originalText, self.selectedClass) @@ -1344,7 +1347,8 @@ class DemoModules(object): if self.name != __name__: source = self.modules[modID][1] description = self.modules[modID][2] - description = description.encode(sys.getfilesystemencoding()) + if six.PY2: + description = description.encode(sys.getfilesystemencoding()) try: code = compile(source, description, "exec") @@ -1438,7 +1442,7 @@ class DemoError(object): self.exception_type = excType.__name__ else: self.exception_type = excType - + # If it's a syntax error, extra information needs # to be added to the traceback if excType is SyntaxError: @@ -2437,9 +2441,9 @@ class wxPythonDemo(wx.Frame): if error: if self.sendDownloadError: - self.log.write("Warning: problems in downloading documentation from the wxWidgets website.\n") - self.log.write("Error message from the documentation downloader was:\n") - self.log.write("\n".join(error)) + self.log.AppendText("Warning: problems in downloading documentation from the wxWidgets website.\n") + self.log.AppendText("Error message from the documentation downloader was:\n") + self.log.AppendText("\n".join(error)) self.sendDownloadError = False self.nb.SetPageImage(0, 0) @@ -2486,7 +2490,8 @@ class wxPythonDemo(wx.Frame): self.pickledData[itemText] = data - if wx.USE_UNICODE: + if six.PY2: + # TODO: verify that this encoding is correct text = text.decode('iso8859_1') self.StopDownload() @@ -2509,7 +2514,7 @@ class wxPythonDemo(wx.Frame): def OnAllowDownload(self, event): - self.allowDocs = event.Checked() + self.allowDocs = event.IsChecked() if self.allowDocs: self.StartDownload() else: diff --git a/demo/MimeTypesManager.py b/demo/MimeTypesManager.py index fa7dd6fd..d6c03895 100644 --- a/demo/MimeTypesManager.py +++ b/demo/MimeTypesManager.py @@ -21,9 +21,8 @@ import images # helper function to make sure we don't convert unicode objects to strings # or vice versa when converting lists and None values to text. -convert = str -if 'unicode' in wx.PlatformInfo: - convert = unicode +import wx.lib.six as six +convert = six.text_type #---------------------------------------------------------------------------- @@ -271,7 +270,7 @@ class MimeTypesDemoPanel(wx.Panel): self.iconoffset.SetValue("") else: icon, file, idx = info - if icon.Ok(): + if icon.IsOk(): self.icon.SetIcon(icon) else: bmp = images.NoIcon.GetBitmap() diff --git a/demo/PropertyGrid.py b/demo/PropertyGrid.py index c9cbdf0e..57e0c750 100644 --- a/demo/PropertyGrid.py +++ b/demo/PropertyGrid.py @@ -7,6 +7,7 @@ import os import os.path import wx +from wx.lib.six import exec_ _ = wx.GetTranslation import wx.propgrid as wxpg @@ -873,7 +874,7 @@ class TestPanel( wx.Panel ): sandbox = {'obj':ValueObject(), 'wx':wx, 'datetime':datetime} - exec dlg.tc.GetValue() in sandbox + exec_(dlg.tc.GetValue(), sandbox) t_start = time.time() #print(sandbox['obj'].__dict__) self.pg.SetPropertyValues(sandbox['obj']) @@ -919,7 +920,7 @@ class TestPanel( wx.Panel ): dlg = MemoDialog(self,"Enter Content for Object Used for AutoFill",default_object_content1) if dlg.ShowModal() == wx.ID_OK: sandbox = {'object':ValueObject(),'wx':wx} - exec dlg.tc.GetValue() in sandbox + exec_(dlg.tc.GetValue(), sandbox) t_start = time.time() self.pg.AutoFill(sandbox['object']) t_end = time.time() diff --git a/demo/RichTextCtrl.py b/demo/RichTextCtrl.py index 5021280a..c260b69f 100644 --- a/demo/RichTextCtrl.py +++ b/demo/RichTextCtrl.py @@ -1,5 +1,7 @@ #!/usr/bin/env python +from wx.lib.six import BytesIO + import wx import wx.richtext as rt import images @@ -314,8 +316,7 @@ class RichTextFrame(wx.Frame): handler.SetFlags(rt.RICHTEXT_HANDLER_SAVE_IMAGES_TO_MEMORY) handler.SetFontSizeMapping([7,9,11,12,14,22,100]) - import cStringIO - stream = cStringIO.StringIO() + stream = BytesIO() if not handler.SaveStream(self.rtc.GetBuffer(), stream): return diff --git a/demo/agw/FoldPanelBar.py b/demo/agw/FoldPanelBar.py index 7973239f..53d11162 100644 --- a/demo/agw/FoldPanelBar.py +++ b/demo/agw/FoldPanelBar.py @@ -1,10 +1,13 @@ #!/usr/bin/env python +# Tags: phoenix-port, py3-port import wx import wx.adv import os import sys +from wx.lib.six import BytesIO + try: dirName = os.path.dirname(os.path.abspath(__file__)) except: @@ -33,7 +36,7 @@ except ImportError: # if it's not there locally, try the wxPython lib. def GetCollapsedIconData(): return \ -'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x10\x08\x06\ +b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x10\x08\x06\ \x00\x00\x00\x1f\xf3\xffa\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\ \x00\x01\x8eIDAT8\x8d\xa5\x93-n\xe4@\x10\x85?g\x03\n6lh)\xc4\xd2\x12\xc3\x81\ \xd6\xa2I\x90\x154\xb9\x81\x8f1G\xc8\x11\x16\x86\xcd\xa0\x99F\xb3A\x91\xa1\ @@ -56,14 +59,13 @@ def GetCollapsedIconBitmap(): return wx.Bitmap(GetCollapsedIconImage()) def GetCollapsedIconImage(): - import cStringIO - stream = cStringIO.StringIO(GetCollapsedIconData()) + stream = BytesIO(GetCollapsedIconData()) return wx.Image(stream) #---------------------------------------------------------------------- def GetExpandedIconData(): return \ -'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x10\x08\x06\ +b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x10\x08\x06\ \x00\x00\x00\x1f\xf3\xffa\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\ \x00\x01\x9fIDAT8\x8d\x95\x93\xa1\x8e\xdc0\x14EO\xb2\xc4\xd0\xd2\x12\xb7(mI\ \xa4%V\xd1lQT4[4-\x9a\xfe\xc1\xc2|\xc6\xc2~BY\x83:A3E\xd3\xa0*\xa4\xd2\x90H!\ @@ -88,27 +90,25 @@ def GetExpandedIconBitmap(): return wx.Bitmap(GetExpandedIconImage()) def GetExpandedIconImage(): - import cStringIO - stream = cStringIO.StringIO(GetExpandedIconData()) + stream = BytesIO(GetExpandedIconData()) return wx.Image(stream) #---------------------------------------------------------------------- def GetMondrianData(): return \ -'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\x00\x00 \x08\x06\x00\ +b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00 \x00\x00\x00 \x08\x06\x00\ \x00\x00szz\xf4\x00\x00\x00\x04sBIT\x08\x08\x08\x08|\x08d\x88\x00\x00\x00qID\ ATX\x85\xed\xd6;\n\x800\x10E\xd1{\xc5\x8d\xb9r\x97\x16\x0b\xad$\x8a\x82:\x16\ o\xda\x84pB2\x1f\x81Fa\x8c\x9c\x08\x04Z{\xcf\xa72\xbcv\xfa\xc5\x08 \x80r\x80\ \xfc\xa2\x0e\x1c\xe4\xba\xfaX\x1d\xd0\xde]S\x07\x02\xd8>\xe1wa-`\x9fQ\xe9\ \x86\x01\x04\x10\x00\\(Dk\x1b-\x04\xdc\x1d\x07\x14\x98;\x0bS\x7f\x7f\xf9\x13\ -\x04\x10@\xf9X\xbe\x00\xc9 \x14K\xc1<={\x00\x00\x00\x00IEND\xaeB`\x82' +\x04\x10@\xf9X\xbe\x00\xc9 \x14K\xc1<={\x00\x00\x00\x00IEND\xaeB`\x82' def GetMondrianBitmap(): return wx.Bitmap(GetMondrianImage()) def GetMondrianImage(): - import cStringIO - stream = cStringIO.StringIO(GetMondrianData()) + stream = BytesIO(GetMondrianData()) return wx.Image(stream) def GetMondrianIcon(): @@ -191,7 +191,7 @@ class Extended(wx.Frame): dlg = wx.MessageDialog(self, msg, "FoldPanelBar Extended Demo", wx.OK | wx.ICON_INFORMATION) - dlg.SetFont(wx.Font(8, wx.FONTFAMILY_NORMAL, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Verdana")) + dlg.SetFont(wx.Font(8, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Verdana")) dlg.ShowModal() dlg.Destroy() diff --git a/demo/agw/HyperTreeList.py b/demo/agw/HyperTreeList.py index 6dcc32c9..46396181 100644 --- a/demo/agw/HyperTreeList.py +++ b/demo/agw/HyperTreeList.py @@ -1,4 +1,5 @@ #!/usr/bin/env python +# Tags: phoenix-port, py3-port import os import string @@ -10,6 +11,8 @@ import wx.lib.colourutils as cutils import sys +from wx.lib.six import BytesIO + try: dirName = os.path.dirname(os.path.abspath(__file__)) except: @@ -192,8 +195,7 @@ def GetMondrianBitmap(): return wx.Bitmap(GetMondrianImage()) def GetMondrianImage(): - import cStringIO - stream = cStringIO.StringIO(GetMondrianData()) + stream = BytesIO(GetMondrianData()) return wx.Image(stream) def GetMondrianIcon(): @@ -239,8 +241,7 @@ def GetSmilesBitmap(): return wx.Bitmap(GetSmilesImage()) def GetSmilesImage(): - import cStringIO - stream = cStringIO.StringIO(GetSmilesData()) + stream = BytesIO(GetSmilesData()) return wx.Image(stream) @@ -1901,7 +1902,7 @@ class HyperTreeList(HTL.HyperTreeList): items.append(tree.AppendItem(root, "Item 4", 0)) items.append(tree.AppendItem(root, "Item 5", 0)) - for ii in xrange(len(items)): + for ii in range(len(items)): id = items[ii] tree.AppendItem(id, "Subitem 1", 1) diff --git a/demo/agw/ListCtrl.py b/demo/agw/ListCtrl.py index 90b7efcd..977f933b 100644 --- a/demo/agw/ListCtrl.py +++ b/demo/agw/ListCtrl.py @@ -10,9 +10,10 @@ # RCS-ID: $Id: ListCtrl.py 51049 2008-01-06 21:38:01Z RD $ # Copyright: (c) 1998 by Total Control Software # Licence: wxWindows license +# Tags: phoenix-port, py3-port #---------------------------------------------------------------------------- -import sys +import wx.lib.six as six import wx import wx.lib.mixins.listctrl as listmix @@ -173,21 +174,21 @@ class TestListCtrlPanel(wx.Panel, listmix.ColumnSorterMixin): info.Image = -1 info.Align = 0 info.Text = "Artist" - self.list.InsertColumnInfo(0, info) + self.list.InsertColumn(0, info) info.Align = wx.LIST_FORMAT_RIGHT info.Text = "Title" - self.list.InsertColumnInfo(1, info) + self.list.InsertColumn(1, info) info.Align = 0 info.Text = "Genre" - self.list.InsertColumnInfo(2, info) + self.list.InsertColumn(2, info) items = musicdata.items() for key, data in items: - index = self.list.InsertImageStringItem(sys.maxint, data[0], self.idx1) - self.list.SetStringItem(index, 1, data[1]) - self.list.SetStringItem(index, 2, data[2]) + index = self.list.InsertItem(six.MAXSIZE, data[0], self.idx1) + self.list.SetItem(index, 1, data[1]) + self.list.SetItem(index, 2, data[2]) self.list.SetItemData(index, key) self.list.SetColumnWidth(0, wx.LIST_AUTOSIZE) @@ -506,7 +507,7 @@ selection is enabled) if __name__ == '__main__': - import sys,os + import sys, os import run run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:]) diff --git a/wx/lib/analogclock/lib_setup/buttontreectrlpanel.py b/wx/lib/analogclock/lib_setup/buttontreectrlpanel.py index 0b1ba0ee..158f5952 100644 --- a/wx/lib/analogclock/lib_setup/buttontreectrlpanel.py +++ b/wx/lib/analogclock/lib_setup/buttontreectrlpanel.py @@ -29,8 +29,6 @@ please drop me an e-mail. For updates please visit(+y\xdb\xba7\x0e*\x1f\xefL\x97I\xe4b<\ @@ -116,13 +117,13 @@ def getMoveCursorBitmap(): return BitmapFromImage(getMoveCursorImage()) def getMoveCursorImage(): - stream = cStringIO.StringIO(getMoveCursorData()) + stream = BytesIO(getMoveCursorData()) return ImageFromStream(stream) #---------------------------------------------------------------------- def getMoveRLCursorData(): return zlib.decompress( -"x\xda\xeb\x0c\xf0s\xe7\xe5\x92\xe2b``\xe0\xf5\xf4p\t\x02\xd2\xc2 \xcc\xc1\ +b"x\xda\xeb\x0c\xf0s\xe7\xe5\x92\xe2b``\xe0\xf5\xf4p\t\x02\xd2\xc2 \xcc\xc1\ \x06$\x8b\x02\xcc\xce\x00)\x96b'\xcf\x10\x0e \xa8\xe1H\xe9\x00\xf2{<]\x1cC*\ \xe6\x9c\xbd\xe2\xc8\xd7\xa0\xc0\xc3r \xf6\xc1\x7f}\xb6WG\xa5Z\xa75H=\x96\ \x93\xb6Z\xb8\xa4\x91G0_u\x8fZm\xdb\xd5I\xa9K\xdf%mMQ\xbciZU*~\xb9-\xd0\xe6C\ @@ -136,13 +137,13 @@ def getMoveRLCursorBitmap(): return BitmapFromImage(getMoveRLCursorImage()) def getMoveRLCursorImage(): - stream = cStringIO.StringIO(getMoveRLCursorData()) + stream = BytesIO(getMoveRLCursorData()) return ImageFromStream(stream) #---------------------------------------------------------------------- def getMoveUDCursorData(): return zlib.decompress( -'x\xda\xeb\x0c\xf0s\xe7\xe5\x92\xe2b``\xe0\xf5\xf4p\t\x02\xd2\xc2 \xcc\xc1\ +b'x\xda\xeb\x0c\xf0s\xe7\xe5\x92\xe2b``\xe0\xf5\xf4p\t\x02\xd2\xc2 \xcc\xc1\ \x06$\x8b\x02\xcc\xce\x00)\x96b\'\xcf\x10\x0e \xa8\xe1H\xe9\x00\xf2gx\xba8\ \x86T\xccY{\xc5\x91\xef\x88\x02\x07k@\xc0\xfb\xfaG\xdb\xf6\xcf6\x14t\xb1\x9b\ ,\xb9\xedE\xb7\xc2\xaa[\xbb6T\xbc\xe3^\xcb\x9f\xfa:\x8a5(\xb4\xf2\x1d\xb7}\ @@ -157,13 +158,13 @@ def getMoveUDCursorBitmap(): return BitmapFromImage(getMoveUDCursorImage()) def getMoveUDCursorImage(): - stream = cStringIO.StringIO(getMoveUDCursorData()) + stream = BytesIO(getMoveUDCursorData()) return ImageFromStream(stream) #---------------------------------------------------------------------- def getGrabHandData(): return zlib.decompress( -'x\xda\x01Z\x01\xa5\xfe\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\ +b'x\xda\x01Z\x01\xa5\xfe\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\ \x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0w=\xf8\x00\x00\x00\x04sBIT\x08\x08\ \x08\x08|\x08d\x88\x00\x00\x01\x11IDATx\x9c\xb5U\xd1\x12\x830\x08Kh\xff\xff\ \x8b7\xb3\x97\xd1C\xa4Zw\x93;\x1fJ1\t\x98VJ\x92\xb5N<\x14\x04 I\x00\x80H\xb4\ @@ -182,13 +183,13 @@ def getGrabHandBitmap(): return BitmapFromImage(getGrabHandImage()) def getGrabHandImage(): - stream = cStringIO.StringIO(getGrabHandData()) + stream = BytesIO(getGrabHandData()) return ImageFromStream(stream) #---------------------------------------------------------------------- def getHandData(): return zlib.decompress( -'x\xda\x01Y\x01\xa6\xfe\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\ +b'x\xda\x01Y\x01\xa6\xfe\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\ \x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0w=\xf8\x00\x00\x00\x04sBIT\x08\x08\ \x08\x08|\x08d\x88\x00\x00\x01\x10IDATx\x9c\xad\x96\xe1\x02\xc2 \x08\x849\ \xf5\xfd\x9fx\xdb\xf5\'\x8c!\xa8\xab\xee\x975\xe5\x83\x0b\\@\xa9\xb2\xab\xeb\ @@ -207,13 +208,13 @@ def getHandBitmap(): return BitmapFromImage(getHandImage()) def getHandImage(): - stream = cStringIO.StringIO(getHandData()) + stream = BytesIO(getHandData()) return ImageFromStream(stream) #---------------------------------------------------------------------- def getGrabHand16Data(): return zlib.decompress( -'x\xda\x01\x0f\x01\xf0\xfe\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\ +b'x\xda\x01\x0f\x01\xf0\xfe\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\ \x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xffa\x00\x00\x00\x04sBIT\ \x08\x08\x08\x08|\x08d\x88\x00\x00\x00\xc6IDATx\x9c\x9d\x92Qn\x031\x08D\x07\ \xd6\xc7\xc0\xf7?\x98}\x8c$\xaf\x1f[,\xaf\xb5n\x9a !\r\x08\x0f\x0c\xd8\x00\ @@ -230,13 +231,13 @@ def getGrabHand16Bitmap(): return BitmapFromImage(getGrabHand16Image()) def getGrabHand16Image(): - stream = cStringIO.StringIO(getGrabHand16Data()) + stream = BytesIO(getGrabHand16Data()) return ImageFromStream(stream) #---------------------------------------------------------------------- def getMondrianData(): return zlib.decompress( -'x\xda\xeb\x0c\xf0s\xe7\xe5\x92\xe2b``\xe0\xf5\xf4p\t\x02\xd2\n \xcc\xc1\x04\ +b'x\xda\xeb\x0c\xf0s\xe7\xe5\x92\xe2b``\xe0\xf5\xf4p\t\x02\xd2\n \xcc\xc1\x04\ $\xffH\xbc]\x0c\xa4\x98\x8b\x9d+9\xc4\xe8\xf3\x1dn\x06\xed\x89\x02\x05F\x06\ @@ -292,13 +293,13 @@ def getMagPlus16Bitmap(): return BitmapFromImage(getMagPlus16Image()) def getMagPlus16Image(): - stream = cStringIO.StringIO(getMagPlus16Data()) + stream = BytesIO(getMagPlus16Data()) return ImageFromStream(stream) #---------------------------------------------------------------------- def getMagMinus16Data(): return zlib.decompress( -"x\xda\xeb\x0c\xf0s\xe7\xe5\x92\xe2b``\xe0\xf5\xf4p\t\x02\xd2\x02 \xcc\xc1\ +b"x\xda\xeb\x0c\xf0s\xe7\xe5\x92\xe2b``\xe0\xf5\xf4p\t\x02\xd2\x02 \xcc\xc1\ \x06$\xe5?\xffO\x04R,\xc5N\x9e!\x1c@P\xc3\x91\xd2\x01\xe4\xaf\xf4tq\x0c\xa9\ \x98\xb36\xd8Q\xa8\xc5\x80C\xf9\x80\xf1\x9b\xff\xf6+\xd3\xf8\xb5\xb75\x87\ \xdc\x9dy\xd6P5\xd3I4`\xb2\xe0\xefmABWdfrW\x881_\x8f\x9c4g\xe6\x1c6E5}\xc6'\ @@ -313,6 +314,6 @@ def getMagMinus16Bitmap(): return BitmapFromImage(getMagMinus16Image()) def getMagMinus16Image(): - stream = cStringIO.StringIO(getMagMinus16Data()) + stream = BytesIO(getMagMinus16Data()) return ImageFromStream(stream) diff --git a/wx/lib/floatcanvas/ScreenShot.py b/wx/lib/floatcanvas/ScreenShot.py index 8d1c9dcc..abd59dac 100644 --- a/wx/lib/floatcanvas/ScreenShot.py +++ b/wx/lib/floatcanvas/ScreenShot.py @@ -4,7 +4,8 @@ from wx import Image as ImageFromStream from wx import BitmapFromImage -import cStringIO, zlib +from wx.lib.six import BytesIO +import zlib def getScreenShotData(): @@ -1782,6 +1783,6 @@ def getScreenShotBitmap(): return BitmapFromImage(getScreenShotImage()) def getScreenShotImage(): - stream = cStringIO.StringIO(getScreenShotData()) + stream = BytesIO(getScreenShotData()) return ImageFromStream(stream) diff --git a/wx/lib/pdfviewer/viewer.py b/wx/lib/pdfviewer/viewer.py index 27d9bab4..eacb7621 100644 --- a/wx/lib/pdfviewer/viewer.py +++ b/wx/lib/pdfviewer/viewer.py @@ -22,8 +22,14 @@ This module provides the :class:`~lib.pdfviewer.viewer.pdfViewer` to view PDF files. """ -import sys, os, time, types -import copy, shutil, cStringIO +import sys +import os +import time +import types +import copy +import shutil + +from wx.lib.six import BytesIO USE_CAIRO = True FONTSCALE = 1.0 @@ -842,7 +848,7 @@ class pdfViewer(wx.ScrolledWindow): if '/Fl' in filters or '/FlateDecode' in filters: data = FlateDecode.decode(data, None) if '/DCT' in filters or '/DCTDecode' in filters: - stream = cStringIO.StringIO(data) + stream = BytesIO(data) image = wx.Image(stream, wx.BITMAP_TYPE_JPEG) bitmap = wx.Bitmap(image) else: diff --git a/wx/lib/rcsizer.py b/wx/lib/rcsizer.py index bb1a4939..aa64af69 100644 --- a/wx/lib/rcsizer.py +++ b/wx/lib/rcsizer.py @@ -34,7 +34,7 @@ encouraged to switch. import operator import wx -import six +import wx.lib.six as six if six.PY3: from functools import reduce as reduce