from wxPython.wx import *
from wxPython.calendar import *
from wxPython.grid import *
from wxPython.lib.mixins.grid import wxGridAutoEditMixin

class SimpleGrid(wxGrid):

	def __init__(self, parent, y, x):
		wxGrid.__init__(self, parent, -1)
		self.moveTo = None
		
		self.CreateGrid(y, x)
		
					
class MainWindow(wxFrame):
	
	def __init__(self, parent, id, title):
		wxFrame.__init__(self, parent, -4, title, size = ( 100, 100), style=wxDEFAULT_FRAME_STYLE|wxNO_FULL_REPAINT_ON_RESIZE)
		self.Show(true)
		
		self.vsizer1 = wxBoxSizer(wxVERTICAL)
				
		# Create controls for choosing a database
		defaultList = ['Please', 'Open', 'A', 'Database', 'First']
		self.tablelist = wxComboBox(self, 500, "Select a Tabledefault value", wxPoint(0,0), wxSize(95, -1), defaultList, wxCB_DROPDOWN)#|wxTE_PROCESS_ENTER)
		self.vsizer1.Add(self.tablelist, 2, wxEXPAND)
		
		# Create database table modifier grid and place it into a sizer
		self.tablegrid = SimpleGrid(self, 100, 10)
		self.vsizer1.Add(self.tablegrid, 8, wxEXPAND)
						
		# Menu setup
		
		# File Menu
		ID_OPENDATA = 101
		ID_SAVEDATA = 110
		ID_SAVEDATAAS = 120
		ID_CLOSEDATA = 130
		ID_IMPORT = 140
		ID_EXPORT = 160
		ID_EXIT = 170
		
		# Help Menu
		ID_ABOUT = 180
		
		filemenu = wxMenu()
		filemenu.Append(ID_OPENDATA, "&Open Datafile...")
		filemenu.Append(ID_SAVEDATA, "&Save Datafile")
		filemenu.Append(ID_SAVEDATAAS, "Save Datafile &As...")
		filemenu.Append(ID_CLOSEDATA, "Close Datafile")
		filemenu.AppendSeparator()
		filemenu.Append(ID_IMPORT, "Import...")
		filemenu.Append(ID_EXPORT, "Export...")
		filemenu.AppendSeparator()
		filemenu.Append(ID_EXIT, "E&xit")
		
		helpmenu = wxMenu()
		helpmenu.Append(ID_ABOUT, "&About MySQL Access")
				
		mainmenu = wxMenuBar()
		mainmenu.Append(filemenu, "&File")
		mainmenu.Append(helpmenu, "&Help")
		self.SetMenuBar(mainmenu)
		
		# Set up events
		EVT_MENU(self, ID_OPENDATA, self.OnDataOpen)
		EVT_MENU(self, ID_EXIT, self.Exit)
			
	def OnDataOpen(self, e):
		dlg = wxFileDialog(self, "Choose Datafile", "", "", "XML Datafiles (*.xml)|*.xml", wxOPEN)
		dlg.ShowModal()
		dlg.Destroy()
		
	def Exit(self, e):
		self.Close(true)
				
app = wxPySimpleApp()
frame = MainWindow(None, -1, "MySQL Access")
frame.Maximize(true)  # Doesn't work under with GTK
frame.Show(true)
app.MainLoop()