#!/usr/bin/env python

import sys
import wx
import CopyAndPaste

class ListControl(wx.Frame, CopyAndPaste):
#class ListControl(wx.Frame):
    def __init__(self, parent, id, title, list, max_list_width):
        wx.Frame.__init__(self,parent,id,title,size=(-1,-1), style=wx.DEFAULT_FRAME_STYLE)
        self.list = list
        self.list_ctrl = wx.ListCtrl(self, -1, style=wx.LC_REPORT| wx.LC_NO_HEADER)
        self.list_ctrl.InsertColumn(0, title)
        for i,line_ in enumerate(list):
            self.list_ctrl.InsertStringItem(i, line_)
        self.list_ctrl.SetColumnWidth(0, max_list_width)

        self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self.list_ctrl)

        self.Raise()
        self.Show(True)

    def OnItemSelected(self, evt):
        item = evt.GetText()
        max_list_width = 10 * len(item)
        ListControl(self, -1, item, item, max_list_width)

if __name__ == "__main__":
    list = [   "First Line", "Second Line", "Third Line"]
    app = wx.App(redirect=False)
    max_list_width = 6 * max([len(x) for x in list])
    ListControl(None, -1, "Parent Window", list, max_list_width)
    app.MainLoop()
