import wx

class View(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, 'test', style=wx.DEFAULT_FRAME_STYLE ^ (wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX))
        self.op = OutermostPanel(self)


class OutermostPanel(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, -1)
        self.view = self.GetTopLevelParent()
        self.drawStuff()
        self.layoutWindows()

    def drawStuff(self):
        self.remarks = wx.TextCtrl(self, -1, '', size=(-1, 50), style=wx.TE_MULTILINE);
        # self.remarks = wx.TextCtrl(self, -1, '', size=(-1, 50));
        #----- AbcRadios
        self.abcLbl = wx.StaticText(self, -1, "Abc Radios:")
        self.abcRadio0 = wx.RadioButton(self, -1, 'a', style=wx.RB_GROUP)
        self.abcRadio1 = wx.RadioButton(self, -1, 'bb')
        self.abcRadio2 = wx.RadioButton(self, -1, 'ccc')
        self.abcRadio1.SetValue(True)
        # --- Text2
        self.text2Lbl = wx.StaticText(self, -1, "Text2:")
        self.text2 = wx.TextCtrl(self, -1, '');
        return

    def layoutWindows(self):
        #-------------------------------------------------------- Now do the layout.
        fgSizer = wx.FlexGridSizer(cols=2, hgap=5, vgap=5)
        fgSizer.AddGrowableCol(1)
        fgSizer.Add(self.abcLbl, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        abcTitle = wx.StaticBox(self, -1, '')
        self.abcTitle = abcTitle
        radioSizer = wx.StaticBoxSizer(abcTitle, wx.HORIZONTAL)
        radioSizer.Add(self.abcRadio0, 0, wx.ALL, 3)
        radioSizer.Add((15,1), 0, wx.ALL, 3)
        radioSizer.Add(self.abcRadio1, 0, wx.ALL, 3)
        radioSizer.Add((15,1), 0, wx.ALL, 3)
        radioSizer.Add(self.abcRadio2, 0, wx.ALL, 3)
        fgSizer.Add(radioSizer, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL)
        fgSizer.Add(self.text2Lbl, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
        fgSizer.Add(self.text2, 1, wx.EXPAND)
        mainSizer = wx.BoxSizer(wx.VERTICAL)
        mainSizer.Add(self.remarks, 0, wx.EXPAND|wx.ALL, border=10)
        mainSizer.Add(fgSizer, 0, wx.EXPAND|wx.LEFT|wx.RIGHT, 40)
        self.SetSizer(mainSizer)
        mainSizer.Fit(self)
        mainSizer.SetSizeHints(self)

class App(wx.App):
    def __init__(self, redirect=False, filename=None):
        wx.App.__init__(self, redirect, filename)
        self.view = View()
        self.view.Show()


def mainTest():
    app = App(redirect=False)
    app.MainLoop()
   
if __name__ == "__main__":
    mainTest()
