#!/usr/bin/env python

from wxPython.wx import *
from wxScrolledWindow import MyCanvas

import images
SHOW_BACKGROUND = 1

#----------------------------------------------------------------------

class MyParentFrame(wxMDIParentFrame):
    def __init__(self):
        wxMDIParentFrame.__init__(self, None, -1, "MDI Parent", size=(600,400))

        self.winCount = 0
        menu = wxMenu()
        menu.Append(5000, "&New Window")
        menu.AppendSeparator()
        menu.Append(5001, "E&xit")

        menubar = wxMenuBar()
        menubar.Append(menu, "&File")
        self.SetMenuBar(menubar)

        self.CreateStatusBar()

        EVT_MENU(self, 5000, self.OnNewWindow)
        EVT_MENU(self, 5001, self.OnExit)

        if SHOW_BACKGROUND:
            self.bg_bmp = images.getGridBGBitmap()
            EVT_ERASE_BACKGROUND(self.GetClientWindow(), self.OnEraseBackground)


    def OnExit(self, evt):
        self.Close(True)


    def OnNewWindow(self, evt):
        self.winCount = self.winCount + 1
        win = wxMDIChildFrame(self, -1, "Child Window: %d" % self.winCount)
        canvas = MyCanvas(win)
        win.Show(True)


    def OnEraseBackground(self, evt):
        dc = evt.GetDC()
        if not dc:
            dc = wxClientDC(self.GetClientWindow())

        # tile the background bitmap
        sz = self.GetClientSize()
        w = self.bg_bmp.GetWidth()
        h = self.bg_bmp.GetHeight()
        x = 0
        while x < sz.width:
            y = 0
            while y < sz.height:
                dc.DrawBitmap(self.bg_bmp, (x, y))
                y = y + h
            x = x + w


#----------------------------------------------------------------------

if __name__ == '__main__':
    class MyApp(wxApp):
        def OnInit(self):
            wxInitAllImageHandlers()
            frame = MyParentFrame()
            frame.Show(True)
            self.SetTopWindow(frame)
            return True


    app = MyApp(0)
    app.MainLoop()



