#!/usr/bin/env python

import sys

import wx
import wx.lib.agw.flatnotebook as FN
from wx.py.shell import Shell as PyShell
from wx.py.version import VERSION

import gettext
gettext.install('app', './locale', unicode = True)

class PyShellWindow(wx.Panel):
    """!Python Shell Window"""
    def __init__(self, parent, id = wx.ID_ANY, **kwargs):
        self.parent = parent
        
        wx.Panel.__init__(self, parent = parent, id = id, **kwargs)
        
        self.shell = PyShell(parent = self, id = wx.ID_ANY,
                             locals = {})
        
        self._layout()
        
    def _layout(self):
        sizer = wx.BoxSizer(wx.VERTICAL)
        
        sizer.Add(item = self.shell, proportion = 1,
                  flag = wx.EXPAND)
        
        sizer.Fit(self)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)        
        self.Layout()

class MyFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY, _("Shell Test"))
    
        self.notebook = FN.FlatNotebook(self, wx.ID_ANY)
        self.notebook.AddPage(wx.Panel(self), _("Tab 0"))
        self.notebook.AddPage(PyShellWindow(self), _("Tab 1"))
        self.notebook.Bind(FN.EVT_FLATNOTEBOOK_PAGE_CHANGED, self.OnPageChanged)

    def OnPageChanged(self, event):
        page = event.GetSelection()
        print 'page:', page
        print 'self.notebook:', self.notebook
        self.notebook.SetPageText(page, _("Tab %d") % page)
        event.Skip()

app = wx.App()
frame = MyFrame()
frame.Show(True)
app.MainLoop()
