import wx
import wx.lib.scrolledpanel

class MainWindow(wx.Frame):
    def __init__(self):

        wx.Frame.__init__(self, None, size=(700,400) )

        framesizer = wx.BoxSizer()

        panelsizer = wx.FlexGridSizer(cols=1, rows=0)
        panelsizer.AddGrowableCol(0, 1)
        panelsizer.AddGrowableRow(1, 1)

        gridsizer1 = wx.GridSizer(cols=5, hgap=5, vgap=5)
                
        panel = wx.Panel(self)
        framesizer.Add(panel, proportion = 1, flag= wx.ALL | wx.EXPAND, border=2)               
        
        #############################
        # toolbar
        #############################

        toolbar = wx.ToolBar(panel, style=wx.TB_HORIZONTAL | wx.NO_BORDER)
##        toolbar.SetBackgroundColour("BLACK")

        toolbar.SetToolBitmapSize((48,48))# this required for non-standard size buttons on MSW

        toolbar.AddSimpleTool(-1, wx.Image('open.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'New', '')
        toolbar.AddSeparator()

        toolbar.AddSimpleTool(-1, wx.Image('open.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap(), 'New', '')
        toolbar.AddSeparator()
      
        toolbar.Realize()

        panelsizer.Add(toolbar, proportion = 0, flag= wx.ALL | wx.EXPAND, border=2)

        ################
        # scroll window
        ################

        sp =  wx.lib.scrolledpanel.ScrolledPanel(panel) #, style=wx.SUNKEN_BORDER)
        panelsizer.Add(sp, proportion = 1, flag= wx.ALL | wx.EXPAND, border=2)

        for i in range(50):

            bmp = wx.Bitmap("0001.jpg", wx.BITMAP_TYPE_JPEG)
            pic = wx.BitmapButton(sp, -1, bmp, size=(200, 200) )
            gridsizer1.Add(pic)

        sp.SetupScrolling()
##        sp.EnableScrolling(1, 1)
##        sp.SetScrollbars(20,10,10,700)

        self.SetSizer(framesizer)
        
        panel.SetSizer(panelsizer)
               
        sp.SetSizer(gridsizer1)
        
        framesizer.Layout()

        self.Layout()
        self.Refresh()


from wx.lib.mixins.inspection import InspectionMixin        
class BoaApp(wx.App, InspectionMixin):
    def OnInit(self):
        self.Init()
        frm = MainWindow()
        frm.Show()
        return True

def main():
    appl = BoaApp(redirect=0)
    appl.MainLoop()

if __name__ == u'__main__':
    main()

