# -*- coding: utf8 -*-

# Copyright (c) 2006, Jonathan R. Woodworth
#Distributed under the BSD license. See LICENSE for details.


import wx
from ClientClock import ClientClock
import datetime

class MainWindow(wx.Frame):
	"""
	The star of the show, this window is where the chat action happens. 
	Pretty self-explanitory.
	
	"""
	
	def __init__(self, title, size, position, minsize):
		wx.Frame.__init__(self, None, wx.ID_ANY, title = title, size = size, 
			pos = position, style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL)
		self.SetMinSize(minsize)
		
		self.CreateStatusBar()
		
		self._setupSizers()
		
		self.SetSizer(self.hsizer)


	def _setupSizers(self):
		self.hsizer = wx.BoxSizer(wx.HORIZONTAL)
		
		self.vsizer0 = wx.BoxSizer(wx.VERTICAL)
		self.vsizer1 = wx.BoxSizer(wx.VERTICAL)
		
		self.hsizer.Add(self.vsizer0, 0, wx.GROW | wx.ALL, 5)
		self.hsizer.Add(self.vsizer1, 1, wx.GROW | wx.ALL, 5)
		
		self._setupMainWindow()
		
		self.vsizer0.Add(self.clock, flag = wx.GROW)
		self.vsizer0.Add(self.userList, 1, flag = wx.GROW)
		self.vsizer0.Add(self.initiativeList, 1, flag = wx.GROW)
		self.vsizer1.Add(self.displayWindow, 1, flag = wx.GROW)
		self.vsizer1.Add(self.entryWindow, flag = wx.GROW)
		
	def _setupMainWindow(self):

		self.entryWindow = wx.TextCtrl(self, value = "", 
			style = wx.TE_MULTILINE)
		self.displayWindow = wx.TextCtrl(self, value = "", 
			style = wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_BESTWRAP)		
				
		self.clock = ClientClock(self, datetime.datetime.today())
		self.userList = wx.TextCtrl(self, value = "", 
			style = wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_DONTWRAP)
		self.initiativeList = wx.TextCtrl(self, value = "", 
			style = wx.TE_MULTILINE | wx.TE_READONLY)
		
	def _setClock(self, time):
		self.clock.set(time)
