# -*- coding: utf8 -*-

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


import wx

class LoginWindow(wx.Frame):
	
	def __init__(self, parent, label, title, size, pos, style, minsize, config):
		
		wx.Frame.__init__(self, parent, label, title = title, size = size, 
			pos = pos, style = style)
			
		self.panel = wx.Panel(self,wx.ID_ANY,style=wx.TAB_TRAVERSAL)
		
		self.config = config
		
		self.handle = wx.StaticText(self.panel, wx.ID_ANY, label = "Handle:")
		self.password = wx.StaticText(self.panel, wx.ID_ANY, 
			label = "Password:")
		self.server = wx.StaticText(self.panel, wx.ID_ANY, label = "Server: ")
		self.port = wx.StaticText(self.panel, wx.ID_ANY, label = "Port: ")
		
		self.loginName = wx.TextCtrl(self.panel, wx.ID_ANY, 
			value = self.config["loginName"], style = wx.TE_PROCESS_ENTER)
		self.loginPassword = wx.TextCtrl(self.panel, wx.ID_ANY, value = "", 
			style = wx.TE_PROCESS_ENTER | wx.TE_PASSWORD)
		self.loginServer = wx.TextCtrl(self.panel, wx.ID_ANY, 
			value = self.config["loginServer"], style = wx.TE_PROCESS_ENTER)
		self.loginPort = wx.TextCtrl(self.panel, wx.ID_ANY, 
			value = self.config["loginPort"], style = wx.TE_PROCESS_ENTER)
		
		self.loginButton = wx.Button(self.panel, wx.ID_ANY, label = "Connect")
		
		self.statusbar = self.CreateStatusBar()
		self.statusDisplay = wx.StaticText(self.statusbar, wx.ID_ANY, label="")
		
		
		self._setupsizers()
		self.SetSizer(self.vsizer)
		
	def _setupsizers(self):
		
		self.hsizer = wx.BoxSizer(wx.HORIZONTAL)
		self.vsizer = wx.BoxSizer(wx.VERTICAL)
		
		
		self.vsizer.AddSpacer((0,7), 0)
		self.vsizer.Add(self.handle, 0, 
			flag = wx.LEFT|wx.RIGHT, border = 10)
		self.vsizer.AddSpacer((0,5), 0)
		self.vsizer.Add(self.loginName, 0, 
			flag = wx.LEFT|wx.RIGHT, border = 10)
		self.vsizer.AddSpacer((0,10), 0)
		self.vsizer.Add(self.password, 0, 
			flag = wx.LEFT|wx.RIGHT, border = 10)
		self.vsizer.AddSpacer((0,5), 0)
		self.vsizer.Add(self.loginPassword, 0, 
			flag = wx.LEFT|wx.RIGHT, border = 10)
		self.vsizer.AddSpacer((0,10), 0)
		self.vsizer.Add(self.server, 0, flag = wx.LEFT|wx.RIGHT, border = 10)
		self.vsizer.AddSpacer((0,5), 0)
		self.vsizer.Add(self.loginServer, 0, 
			flag = wx.LEFT|wx.RIGHT, border = 10)
		self.vsizer.AddSpacer((0,10), 0)
		self.vsizer.Add(self.port, 0, flag = wx.LEFT|wx.RIGHT, border = 10)
		self.vsizer.AddSpacer((0,5), 0)
		self.vsizer.Add(self.loginPort, 0, flag = wx.LEFT|wx.RIGHT, border = 10)
		self.vsizer.AddSpacer((0,7), 0)
		self.vsizer.Add(self.hsizer)
		self.hsizer.AddSpacer((35, 0), 0)
		self.hsizer.Add(self.loginButton)
		
	def status(self, newStatus):
		self.statusDisplay.SetLabel(newStatus)