--- /dev/null
+## import all of the wxPython GUI package
+from wxPython.wx import *
+
+"""
+I am trying to write a routine which will produce an entryform which I can
+later use to write GUI entryforms for databasis work. When you run this
+program and chose option 150 (Invoer) under "L=EAers" the following error
+appears (repeated 6 times):
+
+Gtk-CRITICAL **: file gtkwidget.c: line 1592 (gtk_widget_map): assertion
+`GTK_WIDGET_VISIBLE (widget) == TRUE' failed.=20
+"""
+
+class ToetsInvoer(wxPanel):
+ def __init__(self, parent):
+ wxPanel.__init__(self, parent, -1)
+
+ wxStaticText(self, -1, "wxTextCtrl", wxPoint(5, 25), wxSize(75, 20))
+ wxTextCtrl(self, 10, "", wxPoint(80, 25), wxSize(150, 20))
+ EVT_TEXT(self, 10, self.EvtText)
+
+ wxStaticText(self, -1, "Passsword", wxPoint(5, 50), wxSize(75, 20))
+ wxTextCtrl(self, 20, "", wxPoint(80, 50), wxSize(150, 20), wxTE_PASSWORD)
+ EVT_TEXT(self, 20, self.EvtText)
+
+ wxStaticText(self, -1, "Multi-line", wxPoint(5, 75), wxSize(75, 20))
+ wxTextCtrl(self, 30, "", wxPoint(80, 75), wxSize(200, 150), wxTE_MULTILINE)
+ EVT_TEXT(self, 30, self.EvtText)
+
+ self.Show(true)
+
+ def EvtText(self, event):
+ self.log.WriteText('EvtText: %s\n' % event.GetString())
+
+#---------------------------------------------------------------------------
+
+## Create a new frame class, derived from the wxPython Frame.
+class HoofRaam(wxFrame):
+
+ def __init__(self, pa, id, titel):
+ # First, call the base class' __init__ method to create the frame
+ wxFrame.__init__(self, pa, id, titel,wxPyDefaultPosition,
+ wxSize(420, 200))
+
+ self.CreateStatusBar(2)
+ mainmenu = wxMenuBar()
+ menu = wxMenu()
+ menu.Append(100, '&Kopieer', 'Maak rugsteun')
+ menu.Append(101, '&Nuwe stel', 'Begin nuwe databasis')
+ menu.Append(150, '&Invoer', 'Toets invoervorm')
+ menu.AppendSeparator()
+ menu.Append(200, 'Kl&aar', 'Gaan uit die program uit!')
+ mainmenu.Append(menu, "&L=EAers")
+ self.SetMenuBar(mainmenu)
+# if wxPlatform == '__WXMSW__':
+# print menu.GetHelpString(100)
+# print mainmenu.GetHelpString(101)
+# print mainmenu.GetHelpString(200)
+# self.DragAcceptFiles(true)
+
+
+
+ # Associate some events with methods of this class
+ self.Connect(-1, -1, wxEVT_SIZE, self.OnSize)
+ self.Connect(-1, -1, wxEVT_MOVE, self.OnMove)
+ self.Connect(-1, -1, wxEVT_COMMAND_MENU_SELECTED, self.OnMenuCommand)
+ self.Connect(-1, -1, wxEVT_DROP_FILES, self.OnDropFiles)
+
+ self.child = None
+ #self.child = ToetsInvoer(self)
+
+ # This method is called automatically when the CLOSE event is
+ # sent to this window
+ def OnCloseWindow(self, event):
+ # tell the window to kill itself
+ self.Destroy()
+
+
+ # This method is called by the System when the window is resized,
+ # because of the association above.
+ def OnSize(self, event):
+ size = event.GetSize()
+ print "grootte:", size.width, size.height
+ event.Skip()
+
+ # This method is called by the System when the window is moved,
+ # because of the association above.
+ def OnMove(self, event):
+ pos = event.GetPosition()
+ print "pos:", pos.x, pos.y
+
+ def OnMenuCommand(self, event):
+ # why isn't this a wxMenuEvent???
+ print event, event.GetInt()
+ if event.GetInt() == 200:
+ self.Close()
+ if event.GetInt() == 150:
+ x = ToetsInvoer(self)
+ if event.GetInt() == 101:
+ print "Nommer 101 is gekies"
+
+ def OnDropFiles(self, event): #werk net in windows
+ fileList = event.GetFiles()
+ for file in fileList:
+ print file
+
+ def OnCloseWindow(self, event):
+ print 'Klaar'
+ self.Destroy()
+
+#---------------------------------------------------------------------------
+
+# Every wxWindows application must have a class derived from wxApp
+class MyProg(wxApp):
+
+ # wxWindows calls this method to initialize the application
+ def OnInit(self):
+
+ # Create an instance of our customized Frame class
+ raam = HoofRaam(NULL, -1, "Taalunie")
+ raam.Show(true)
+
+ # Tell wxWindows that this is our main window
+ self.SetTopWindow(raam)
+
+ # Return a success flag
+ return true
+
+#---------------------------------------------------------------------------
+
+
+app = MyProg(0) # Create an instance of the application class
+app.MainLoop() # Tell it to start processing events
+
+
+