import wx
import wx.aui as wxaui

class MyAuiManager(wxaui.AuiManager):
    def __init__(self, managed_window):
        wxaui.AuiManager.__init__(self)
        self.SetManagedWindow(managed_window)

class MyAuiNotebook(wxaui.AuiNotebook):
    def __init__(self, parent):
        wxaui.AuiNotebook.__init__(self, parent=parent)
        self.paneInfo = wxaui.AuiPaneInfo()
        self.paneInfo.Caption('Main')
        self.paneInfo.MinimizeButton(visible=True)
        self.paneInfo.MaximizeButton(visible=True)
        self.paneInfo.PinButton(visible=True)

class MyPanel(wx.Panel):

    def __init__(self,parent):
        wx.Panel.__init__(self, parent=parent)

#        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
# In wxPython 2.9.x wx.BG_STYLE_CUSTOM causes issues with setting
# a background image on a panel
        self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)

        self.frame = parent

    def OnEraseBackground(self, evt):
        # yanked from ColourDB.py
        dc = evt.GetDC()
        if not dc:
            dc = wx.ClientDC(self)
            rect = self.GetUpdateRegion().GetBox()
            dc.SetClippingRect(rect)
        dc.Clear()
        bmp = wx.Bitmap('image.jpg')
        dc.DrawBitmap(bmp, 0, 0)

class MainFrame(wx.Frame):

    def __init__(self):
        wx.Frame.__init__(self, None, size=(600,450))
        self.aui_mgr = MyAuiManager(self)
        self.nb = MyAuiNotebook(self)
        self.nb.AddPage(MyPanel(self.nb), 'toto')
        self.aui_mgr.AddPane(self.nb,
            wxaui.AuiPaneInfo().Name('NB Content').CenterPane().PaneBorder(False))
        self.aui_mgr.Update()
        self.Center()
 
class Main(wx.App):

    def __init__(self, redirect=False, filename=None):
        """Constructor"""
        wx.App.__init__(self, redirect, filename)
        frame = MainFrame()
        frame.Show()
 
if __name__ == "__main__":
    app = Main()
    app.MainLoop()
