# -*- coding: cp1252 -*-

import wx

class MainWindow(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(320, 200))

        self.SetMinSize((320, 200))
        self.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_MENU))

        # panel for widgets
        self.panel       = wx.Panel(self)

        # box
        self.box       = wx.StaticBox(self.panel, wx.ID_ANY, "Text Controls")
        self.box_sizer = wx.StaticBoxSizer(self.box , wx.VERTICAL)
        self.box_inner_sizer = wx.FlexGridSizer(1, 3, vgap=10, hgap=10)
        
        self.text1     = wx.TextCtrl(self.panel, wx.ID_ANY, "text1", size=(60, -1))
        self.text2     = wx.TextCtrl(self.panel, wx.ID_ANY, "text2", size=(60, -1))
        self.text3     = wx.TextCtrl(self.panel, wx.ID_ANY, "text3", size=(60, -1))
        self.radio_on  = wx.RadioButton(self.panel, wx.ID_ANY, "on", style = wx.RB_GROUP)
        self.radio_off = wx.RadioButton(self.panel, wx.ID_ANY, "off")

        
        self.box_inner_sizer.Add(self.text1, 0, wx.ALIGN_CENTER | wx.EXPAND, 5)
        self.box_inner_sizer.Add(self.text2, 0, wx.ALIGN_CENTER | wx.EXPAND, 5)
        self.box_inner_sizer.Add(self.text3, 0, wx.ALIGN_CENTER | wx.EXPAND, 5)
                                            
        self.box_sizer.Add(self.box_inner_sizer, 0, wx.ALIGN_CENTER | wx.EXPAND, 5)       
        self.panel_sizer = wx.BoxSizer(wx.VERTICAL)
        self.panel_sizer.Add(self.box_sizer, 0, wx.ALIGN_CENTER | wx.EXPAND)
        self.panel_sizer.Add(self.radio_on, 0, wx.ALIGN_CENTER_VERTICAL, 5)
        self.panel_sizer.Add(self.radio_off, 0, wx.ALIGN_CENTER_VERTICAL, 5)
        
        self.panel.SetSizer(self.panel_sizer) 
        self.main_sizer = wx.BoxSizer(wx.VERTICAL)
        self.main_sizer.Add(self.panel, 0, wx.EXPAND)

        # Set events.

        self.Bind(wx.EVT_RADIOBUTTON, self.OnRadioOn, self.radio_on)
        self.Bind(wx.EVT_RADIOBUTTON, self.OnRadioOff, self.radio_off)
        
        self.SetSizer(self.main_sizer)
        self.SetAutoLayout(1)     
        self.Show(True)


    def OnRadioOn(self, e):
        self.text1.Enable()
        self.text2.Enable()
        self.text3.Enable()

    def OnRadioOff(self, e):
        self.text1.Disable()
        self.text2.Disable()
        self.text3.Disable()
               
        
app = wx.App(False)
frame = MainWindow(None, "Test")
app.MainLoop()
