]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/tests/test4.py
added some more URLs
[wxWidgets.git] / utils / wxPython / tests / test4.py
index db3702860d283878455402ae6638138b1f96e17d..2370a498ba14b2c1e2ffaf8caa67f2cf9ad13e9d 100644 (file)
@@ -12,7 +12,7 @@
 #----------------------------------------------------------------------------
 
 
-from wxPython import *
+from wxPython.wx import *
 
 import time
 
@@ -22,11 +22,11 @@ class TestSimpleControlsDlg(wxDialog):
     def __init__(self, parent, log):
         self.log = log
         wxDialog.__init__(self, parent, -1, "Test Simple Controls",
-                          wxPyDefaultPosition, wxSize(350, 350))
+                          wxDefaultPosition, wxSize(350, 350))
 
 
-        sampleList = ['zero', 'one', 'two', 'three', 'four', 'five',
-                      'six', 'seven', 'eight']
+        sampleList = ["zero", "one", "two", "three", "four", "five",
+                      "six", "seven", "eight", "nine", "ten"]
 
         y_pos = 5
         delta = 25
@@ -40,14 +40,14 @@ class TestSimpleControlsDlg(wxDialog):
         EVT_CHECKBOX(self, 20, self.EvtCheckBox)
         y_pos = y_pos + delta
 
-        rb = wxRadioBox(self, 30, "wxRadioBox", wxPoint(80, y_pos), wxPyDefaultSize,
-                        sampleList, 3, wxRA_HORIZONTAL| wxNO_BORDER)
+        rb = wxRadioBox(self, 30, "wxRadioBox", wxPoint(80, y_pos), wxDefaultSize,
+                        sampleList, 3, wxRA_SPECIFY_COLS | wxNO_BORDER)
         EVT_RADIOBOX(self, 30, self.EvtRadioBox)
-        width, height = rb.GetSize()
+        width, height = rb.GetSizeTuple()
         y_pos = y_pos + height + 5
 
         wxStaticText(self, -1, "wxChoice", wxPoint(5, y_pos), wxSize(75, 20))
-        wxChoice(self, 40, wxPoint(80, y_pos), wxSize(95, 20), #wxPyDefaultSize,
+        wxChoice(self, 40, wxPoint(80, y_pos), wxSize(95, 20), #wxDefaultSize,
                  sampleList)
         EVT_CHOICE(self, 40, self.EvtChoice)
         y_pos = y_pos + delta
@@ -59,18 +59,18 @@ class TestSimpleControlsDlg(wxDialog):
         y_pos = y_pos + delta
 
         wxStaticText(self, -1, "wxListBox", wxPoint(5, y_pos), wxSize(75, 18))
-        lb = wxListBox(self, 60, wxPoint(80, y_pos), wxPyDefaultSize,
+        lb = wxListBox(self, 60, wxPoint(80, y_pos), wxDefaultSize,
                        sampleList, wxLB_SINGLE)
         EVT_LISTBOX(self, 60, self.EvtListBox)
         EVT_LISTBOX_DCLICK(self, 60, self.EvtListBoxDClick)
         lb.SetSelection(0)
-        width, height = lb.GetSize()
+        width, height = lb.GetSizeTuple()
         y_pos = y_pos + height + 5
 
 
 
         y_pos = y_pos + 15
-        wxButton(self, wxID_OK, ' OK ', wxPoint(80, y_pos), wxPyDefaultSize).SetDefault()
+        wxButton(self, wxID_OK, ' OK ', wxPoint(80, y_pos), wxDefaultSize).SetDefault()
         wxButton(self, wxID_CANCEL, ' Cancel ', wxPoint(140, y_pos))
 
 
@@ -114,12 +114,12 @@ class TestTimer(wxTimer):
 class TestLayoutConstraints(wxFrame):
     def __init__(self, parent):
         wxFrame.__init__(self, parent, -1, 'Test Layout Constraints',
-                         wxPyDefaultPosition, wxSize(500, 300))
+                         wxDefaultPosition, wxSize(500, 300))
 
         self.SetAutoLayout(true)
         EVT_BUTTON(self, 100, self.OnButton)
 
-        self.panelA = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize,
+        self.panelA = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize,
                                wxSIMPLE_BORDER)
         self.panelA.SetBackgroundColour(wxBLUE)
         lc = wxLayoutConstraints()
@@ -129,7 +129,7 @@ class TestLayoutConstraints(wxFrame):
         lc.right.PercentOf(self, wxRight, 50)
         self.panelA.SetConstraints(lc)
 
-        self.panelB = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize,
+        self.panelB = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize,
                                wxSIMPLE_BORDER)
         self.panelB.SetBackgroundColour(wxRED)
         lc = wxLayoutConstraints()
@@ -139,7 +139,7 @@ class TestLayoutConstraints(wxFrame):
         lc.left.RightOf(self.panelA, 10)
         self.panelB.SetConstraints(lc)
 
-        self.panelC = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize,
+        self.panelC = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize,
                                wxSIMPLE_BORDER)
         self.panelC.SetBackgroundColour(wxWHITE)
         lc = wxLayoutConstraints()
@@ -165,7 +165,7 @@ class TestLayoutConstraints(wxFrame):
         lc.width.AsIs       ()
         b.SetConstraints(lc);
 
-        self.panelD = wxWindow(self.panelC, -1, wxPyDefaultPosition, wxPyDefaultSize,
+        self.panelD = wxWindow(self.panelC, -1, wxDefaultPosition, wxDefaultSize,
                             wxSIMPLE_BORDER)
         self.panelD.SetBackgroundColour(wxGREEN)
         wxStaticText(self.panelD, -1, "Panel D", wxPoint(4, 4)).SetBackgroundColour(wxGREEN)
@@ -199,7 +199,7 @@ class TestLayoutConstraints(wxFrame):
 class TestGrid(wxFrame):
     def __init__(self, parent, log):
         wxFrame.__init__(self, parent, -1, 'Test Grid',
-                         wxPyDefaultPosition, wxSize(500, 300))
+                         wxDefaultPosition, wxSize(500, 300))
         self.log = log
 
         grid = wxGrid(self, -1)
@@ -244,14 +244,14 @@ class TestGrid(wxFrame):
 class ColoredPanel(wxWindow):
     def __init__(self, parent, color):
         wxWindow.__init__(self, parent, -1,
-                          wxPyDefaultPosition, wxPyDefaultSize, wxRAISED_BORDER)
+                          wxDefaultPosition, wxDefaultSize, wxRAISED_BORDER)
         self.SetBackgroundColour(color)
 
 
 class TestNotebookWindow(wxFrame):
     def __init__(self, parent, log):
         wxFrame.__init__(self, parent, -1, 'Test wxNotebook',
-                         wxPyDefaultPosition, wxPyDefaultSize)
+                         wxDefaultPosition, wxDefaultSize)
 
         nb = wxNotebook(self, -1)
 
@@ -271,6 +271,9 @@ class TestNotebookWindow(wxFrame):
         win = TestTreeCtrlPanel(nb, log)
         nb.AddPage(win, "TreeCtrl")
 
+        win = TestListCtrlPanel(nb, log)
+        nb.AddPage(win, "ListCtrl")
+
         win = ColoredPanel(nb, wxRED)
         nb.AddPage(win, "Red")
 
@@ -305,7 +308,7 @@ class TestNotebookWindow(wxFrame):
 class TestSplitterWindow(wxFrame):
     def __init__(self, parent):
         wxFrame.__init__(self, parent, -1, 'Test wxSplitterWindow',
-                         wxPyDefaultPosition, wxSize(500, 300))
+                         wxDefaultPosition, wxSize(500, 300))
 
         splitter = wxSplitterWindow(self, -1)
 
@@ -338,7 +341,7 @@ class CustomStatusBar(wxStatusBar):
         # figure out how tall to make it.
         dc = wxClientDC(self)
         dc.SetFont(self.GetFont())
-        (w,h, d,e) = dc.GetTextExtent('X')
+        (w,h) = dc.GetTextExtent('X')
         h = int(h * 1.8)
         self.SetSize(wxSize(100, h))
 
@@ -365,6 +368,7 @@ class CustomStatusBar(wxStatusBar):
     # reposition the checkbox
     def OnSize(self, event):
         rect = self.GetFieldRect(1)
+        print "%s, %s" % (rect.x, rect.y)
         self.cb.SetPosition(wxPoint(rect.x+2, rect.y+2))
         self.cb.SetSize(wxSize(rect.width-4, rect.height-4))
 
@@ -373,8 +377,8 @@ class CustomStatusBar(wxStatusBar):
 class TestCustomStatusBar(wxFrame):
     def __init__(self, parent):
         wxFrame.__init__(self, parent, -1, 'Test Custom StatusBar',
-                         wxPyDefaultPosition, wxSize(500, 300))
-        wxWindow(self, -1)
+                         wxDefaultPosition, wxSize(500, 300))
+        wxWindow(self, -1).SetBackgroundColour(wxNamedColour("WHITE"))
 
         self.sb = CustomStatusBar(self)
         self.SetStatusBar(self.sb)
@@ -389,41 +393,43 @@ class TestCustomStatusBar(wxFrame):
 class TestToolBar(wxFrame):
     def __init__(self, parent, log):
         wxFrame.__init__(self, parent, -1, 'Test ToolBar',
-                         wxPyDefaultPosition, wxSize(500, 300))
+                         wxDefaultPosition, wxSize(500, 300))
         self.log = log
 
-        wxWindow(self, -1)
+        wxWindow(self, -1).SetBackgroundColour(wxNamedColour("WHITE"))
 
-        tb = self.CreateToolBar()
-        #tb = wxToolBar(self, -1, wxPyDefaultPosition, wxPyDefaultSize,
+        tb = self.CreateToolBar(wxTB_HORIZONTAL|wxNO_BORDER)
+        #tb = wxToolBar(self, -1, wxDefaultPosition, wxDefaultSize,
         #               wxTB_HORIZONTAL | wxNO_BORDER | wxTB_FLAT)
         #self.SetToolBar(tb)
 
+        self.CreateStatusBar()
+
         tb.AddTool(10, wxNoRefBitmap('bitmaps/new.bmp',   wxBITMAP_TYPE_BMP),
-                        NULL, false, -1, -1, "New")
+                        wxNullBitmap, false, -1, -1, "New", "Long help for 'New'")
         EVT_TOOL(self, 10, self.OnToolClick)
         EVT_TOOL_RCLICKED(self, 10, self.OnToolRClick)
 
         tb.AddTool(20, wxNoRefBitmap('bitmaps/open.bmp',  wxBITMAP_TYPE_BMP),
-                        NULL, false, -1, -1, "Open")
+                        wxNullBitmap, false, -1, -1, "Open")
         EVT_TOOL(self, 20, self.OnToolClick)
         EVT_TOOL_RCLICKED(self, 20, self.OnToolRClick)
 
         tb.AddSeparator()
         tb.AddTool(30, wxNoRefBitmap('bitmaps/copy.bmp',  wxBITMAP_TYPE_BMP),
-                        NULL, false, -1, -1, "Copy")
+                        wxNullBitmap, false, -1, -1, "Copy")
         EVT_TOOL(self, 30, self.OnToolClick)
         EVT_TOOL_RCLICKED(self, 30, self.OnToolRClick)
 
         tb.AddTool(40, wxNoRefBitmap('bitmaps/paste.bmp', wxBITMAP_TYPE_BMP),
-                        NULL, false, -1, -1, "Paste")
+                        wxNullBitmap, false, -1, -1, "Paste")
         EVT_TOOL(self, 40, self.OnToolClick)
         EVT_TOOL_RCLICKED(self, 40, self.OnToolRClick)
 
         tb.AddSeparator()
 
         tb.AddTool(50, wxNoRefBitmap('bitmaps/tog1.bmp', wxBITMAP_TYPE_BMP),
-                        NULL, true, -1, -1, "Toggle this")
+                        wxNullBitmap, true, -1, -1, "Toggle this")
         EVT_TOOL(self, 50, self.OnToolClick)
         EVT_TOOL_RCLICKED(self, 50, self.OnToolRClick)
 
@@ -469,7 +475,7 @@ class TestTreeCtrlPanel(wxPanel):
 
 
     def OnSize(self, event):
-        w,h = self.GetClientSize()
+        w,h = self.GetClientSizeTuple()
         self.tree.SetDimensions(0, 0, w, h)
 
 
@@ -491,18 +497,194 @@ class TestTreeCtrlPanel(wxPanel):
 class TestTreeCtrl(wxFrame):
     def __init__(self, parent, log):
         wxFrame.__init__(self, parent, -1, 'Test TreeCtrl',
-                         wxPyDefaultPosition, wxSize(250, 300))
+                         wxDefaultPosition, wxSize(250, 300))
 
         p = TestTreeCtrlPanel(self, log)
 
 
+#---------------------------------------------------------------------------
+
+class TestListCtrlPanel(wxPanel):
+    def __init__(self, parent, log):
+        wxPanel.__init__(self, parent, -1)
+
+        self.log = log
+        tID = 1101
+
+        self.il = wxImageList(16, 16)
+        idx1 = self.il.Add(wxNoRefBitmap('bitmaps/smiles.bmp', wxBITMAP_TYPE_BMP))
+
+        self.list = wxListCtrl(self, tID, wxDefaultPosition, wxDefaultSize,
+                               wxLC_REPORT|wxSUNKEN_BORDER)
+        self.list.SetImageList(self.il, wxIMAGE_LIST_SMALL)
+
+        self.list.SetToolTip(wxToolTip("This is a ToolTip!"))
+        wxToolTip_Enable(true)
+
+        self.list.InsertColumn(0, "Column 0")
+        self.list.InsertColumn(1, "Column 1")
+        self.list.InsertColumn(2, "One More Column (2)")
+        for x in range(50):
+            self.list.InsertImageStringItem(x, "This is item %d" % x, idx1)
+            self.list.SetStringItem(x, 1, "Col 1, item %d" % x)
+            self.list.SetStringItem(x, 2, "item %d in column 2" % x)
+
+        self.list.SetColumnWidth(0, wxLIST_AUTOSIZE)
+        self.list.SetColumnWidth(1, wxLIST_AUTOSIZE)
+        self.list.SetColumnWidth(2, wxLIST_AUTOSIZE)
+
+
+    def OnSize(self, event):
+        w,h = self.GetClientSizeTuple()
+        self.list.SetDimensions(0, 0, w, h)
+
+
+
+
+class TestListCtrl(wxFrame):
+    def __init__(self, parent, log):
+        wxFrame.__init__(self, parent, -1, 'Test ListCtrl',
+                         wxDefaultPosition, wxSize(250, 300))
+
+        p = TestListCtrlPanel(self, log)
+
+
+#---------------------------------------------------------------------------
+
+class TestSashWindow(wxMDIParentFrame):
+    NEW_WINDOW       = 5000
+    TOGGLE_WINDOW    = 5001
+    QUIT             = 5002
+    ID_WINDOW_TOP    = 5100
+    ID_WINDOW_LEFT1  = 5101
+    ID_WINDOW_LEFT2  = 5102
+    ID_WINDOW_BOTTOM = 5103
+
+
+    def __init__(self, parent, log):
+        wxMDIParentFrame.__init__(self, parent, -1, 'Test Sash Window',
+                                  wxDefaultPosition, wxSize(250, 300))
+
+        self.log = log
+        menu = wxMenu()
+        menu.Append(self.NEW_WINDOW, "&New Window")
+        menu.Append(self.TOGGLE_WINDOW, "&Toggle window")
+        menu.Append(self.QUIT, "E&xit")
+
+        menubar = wxMenuBar()
+        menubar.Append(menu, "&File")
+
+        self.SetMenuBar(menubar)
+        self.CreateStatusBar()
+
+        EVT_MENU(self, self.NEW_WINDOW,    self.OnNewWindow)
+        EVT_MENU(self, self.TOGGLE_WINDOW, self.OnToggleWindow)
+        EVT_MENU(self, self.QUIT,          self.OnQuit)
+
+        EVT_SASH_DRAGGED_RANGE(self, self.ID_WINDOW_TOP,
+                               self.ID_WINDOW_BOTTOM, self.OnSashDrag)
+
+
+        # Create some layout windows
+        # A window like a toolbar
+        win = wxSashLayoutWindow(self, self.ID_WINDOW_TOP, wxDefaultPosition,
+                                 wxSize(200, 30), wxNO_BORDER|wxSW_3D)
+        win.SetDefaultSize(wxSize(1000, 30))
+        win.SetOrientation(wxLAYOUT_HORIZONTAL)
+        win.SetAlignment(wxLAYOUT_TOP)
+        win.SetBackgroundColour(wxColour(255, 0, 0))
+        win.SetSashVisible(wxSASH_BOTTOM, true)
+
+        self.topWindow = win
+
+
+        # A window like a statusbar
+        win = wxSashLayoutWindow(self, self.ID_WINDOW_BOTTOM,
+                                 wxDefaultPosition, wxSize(200, 30),
+                                 wxNO_BORDER|wxSW_3D)
+        win.SetDefaultSize(wxSize(1000, 30))
+        win.SetOrientation(wxLAYOUT_HORIZONTAL)
+        win.SetAlignment(wxLAYOUT_BOTTOM)
+        win.SetBackgroundColour(wxColour(0, 0, 255))
+        win.SetSashVisible(wxSASH_TOP, true)
+
+        self.bottomWindow = win
+
+
+        # A window to the left of the client window
+        win =  wxSashLayoutWindow(self, self.ID_WINDOW_LEFT1,
+                                  wxDefaultPosition, wxSize(200, 30),
+                                  wxNO_BORDER|wxSW_3D)
+        win.SetDefaultSize(wxSize(120, 1000))
+        win.SetOrientation(wxLAYOUT_VERTICAL)
+        win.SetAlignment(wxLAYOUT_LEFT)
+        win.SetBackgroundColour(wxColour(0, 255, 0))
+        win.SetSashVisible(wxSASH_RIGHT, TRUE)
+        win.SetExtraBorderSize(10)
+
+        textWindow = wxTextCtrl(win, -1, "", wxDefaultPosition, wxDefaultSize,
+                                wxTE_MULTILINE|wxSUNKEN_BORDER)
+        textWindow.SetValue("A help window")
+
+        self.leftWindow1 = win
+
+
+        # Another window to the left of the client window
+        win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT2,
+                                 wxDefaultPosition, wxSize(200, 30),
+                                 wxNO_BORDER|wxSW_3D)
+        win.SetDefaultSize(wxSize(120, 1000))
+        win.SetOrientation(wxLAYOUT_VERTICAL)
+        win.SetAlignment(wxLAYOUT_LEFT)
+        win.SetBackgroundColour(wxColour(0, 255, 255))
+        win.SetSashVisible(wxSASH_RIGHT, TRUE)
+
+        self.leftWindow2 = win
+
+
+    def OnNewWindow(self, event):
+        pass
+
+    def OnToggleWindow(self, event):
+        pass
+
+    def OnQuit(self, event):
+        self.Close(true)
+
+    def OnSashDrag(self, event):
+        if event.GetDragStatus() == wxSASH_STATUS_OUT_OF_RANGE:
+            return
+
+        eID = event.GetId()
+        if eID == self.ID_WINDOW_TOP:
+            self.topWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height))
+
+        elif eID == self.ID_WINDOW_LEFT1:
+            self.leftWindow1.SetDefaultSize(wxSize(event.GetDragRect().width, 1000))
+
+
+        elif eID == self.ID_WINDOW_LEFT2:
+            self.leftWindow2.SetDefaultSize(wxSize(event.GetDragRect().width, 1000))
+
+        elif eID == self.ID_WINDOW_BOTTOM:
+            self.bottomWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height))
+
+        wxLayoutAlgorithm().LayoutMDIFrame(self)
+
+        # Leaves bits of itself behind sometimes
+        self.GetClientWindow().Refresh()
+
+
+    def OnSize(self, event):
+        wxLayoutAlgorithm().LayoutMDIFrame(self)
+
 #---------------------------------------------------------------------------
 #---------------------------------------------------------------------------
 #---------------------------------------------------------------------------
 
 class AppFrame(wxFrame):
     def __init__(self, parent, id, title):
-        wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition,
+        wxFrame.__init__(self, parent, id, title, wxDefaultPosition,
                          wxSize(420, 200))
         if wxPlatform == '__WXMSW__':
             self.icon = wxIcon('bitmaps/mondrian.ico', wxBITMAP_TYPE_ICO)
@@ -518,7 +700,7 @@ class AppFrame(wxFrame):
         self.mainmenu.Append(menu, '&Tests')
         self.SetMenuBar(self.mainmenu)
 
-        self.log = wxTextCtrl(self, -1, '', wxPyDefaultPosition, wxPyDefaultSize,
+        self.log = wxTextCtrl(self, -1, '', wxDefaultPosition, wxDefaultSize,
                               wxTE_MULTILINE|wxTE_READONLY)
         self.log.WriteText('Test 4:\n')
         (w, self.charHeight) = self.log.GetTextExtent('X')
@@ -608,6 +790,14 @@ class AppFrame(wxFrame):
         menu.Append(mID, 'T&ree Control')
         EVT_MENU(self, mID, self.OnTestTreeCtrl)
 
+        mID = NewId()
+        menu.Append(mID, '&List Control')
+        EVT_MENU(self, mID, self.OnTestListCtrl)
+
+        mID = NewId()
+        menu.Append(mID, 'S&ash Window and Layout Algorithm')
+        EVT_MENU(self, mID, self.OnTestSashWindow)
+
         return menu
 
 
@@ -616,7 +806,7 @@ class AppFrame(wxFrame):
     def WriteText(self, str):
         self.log.WriteText(str)
         if wxPlatform == '__WXMSW__':
-            w, h = self.log.GetClientSize()
+            w, h = self.log.GetClientSizeTuple()
             numLines = h/self.charHeight
             x, y = self.log.PositionToXY(self.log.GetLastPosition())
             self.log.ShowPosition(self.log.XYToPosition(x, y-numLines+1))
@@ -754,6 +944,13 @@ class AppFrame(wxFrame):
         win = TestTreeCtrl(self, self)
         win.Show(true)
 
+    def OnTestListCtrl(self, event):
+        win = TestListCtrl(self, self)
+        win.Show(true)
+
+    def OnTestSashWindow(self, event):
+        win = TestSashWindow(self, self)
+        win.Show(true)
 
 #---------------------------------------------------------------------------
 
@@ -803,7 +1000,61 @@ if __name__ == '__main__':
 #----------------------------------------------------------------------------
 #
 # $Log$
+# Revision 1.15  1999/03/05 07:23:42  RD
+# Minor wxPython changes for wxWin 2.0
+#
+# Revision 1.14  1999/02/27 04:20:50  RD
+#
+# minor tweaks for testing
+#
+# Revision 1.13  1999/02/20 09:04:44  RD
+# Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a
+# window handle.  If you can get the window handle into the python code,
+# it should just work...  More news on this later.
+#
+# Added wxImageList, wxToolTip.
+#
+# Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the
+# wxRegConfig class.
+#
+# As usual, some bug fixes, tweaks, etc.
+#
+# Revision 1.12  1999/01/30 07:31:33  RD
+#
+# Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc.
+#
+# Various cleanup, tweaks, minor additions, etc. to maintain
+# compatibility with the current wxWindows.
+#
+# Revision 1.11  1999/01/29 16:17:59  HH
+# In test4's toolbar sample, changed NULL to wxNullBitmap to prevent SIGSEVS
+# with wxGTK. The sample works now.
+#
+# Revision 1.10  1998/12/16 22:12:47  RD
+#
+# Tweaks needed to be able to build wxPython with wxGTK.
+#
+# Revision 1.9  1998/12/15 20:44:35  RD
+# Changed the import semantics from "from wxPython import *" to "from
+# wxPython.wx import *"  This is for people who are worried about
+# namespace pollution, they can use "from wxPython import wx" and then
+# prefix all the wxPython identifiers with "wx."
+#
+# Added wxTaskbarIcon for wxMSW.
+#
+# Made the events work for wxGrid.
+#
+# Added wxConfig.
+#
+# Added wxMiniFrame for wxGTK, (untested.)
+#
+# Changed many of the args and return values that were pointers to gdi
+# objects to references to reflect changes in the wxWindows API.
+#
+# Other assorted fixes and additions.
+#
 # Revision 1.8  1998/11/25 08:47:11  RD
+#
 # Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon
 # Added events for wxGrid
 # Other various fixes and additions