]> git.saurik.com Git - wxWidgets.git/commitdiff
Some minor tweaks
authorRobin Dunn <robin@alldunn.com>
Thu, 5 Aug 1999 05:06:50 +0000 (05:06 +0000)
committerRobin Dunn <robin@alldunn.com>
Thu, 5 Aug 1999 05:06:50 +0000 (05:06 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

utils/wxPython/README.txt
utils/wxPython/demo/wxComboBox.py
utils/wxPython/src/glcanvas.i
utils/wxPython/src/msw/glcanvas.cpp
utils/wxPython/src/msw/wx.cpp
utils/wxPython/src/msw/wx.py
utils/wxPython/tests/leave.py [new file with mode: 0644]
utils/wxPython/tests/test4.py
utils/wxPython/tests/testTree.py [new file with mode: 0644]

index 93d998727368fc6019215085b0f4dcae86227c11..02eb7b28d6fa4e1bade8b2e9a6fbc014ae9eb872 100644 (file)
@@ -109,6 +109,7 @@ in wx.cpp.
 
 
 
+
 What's new in 2.1b1
 --------------------
 Fixed wxComboBox.SetSelection so that it actually sets the selected
index 3934bc18b36fea81a15be3ac83aaa686753d639c..b4b3112f0576a406bdbe442ebdcc7e1dabafe62c 100644 (file)
@@ -15,7 +15,7 @@ class TestComboBox(wxPanel):
                                wxPoint(8, 10))
 
         wxStaticText(self, -1, "Select one:", wxPoint(15, 50), wxSize(75, 18))
-        wxComboBox(self, 500, "default value", wxPoint(80, 50), wxSize(95, 20),
+        wxComboBox(self, 500, "default value", wxPoint(80, 50), wxSize(95, -1),
                    sampleList, wxCB_DROPDOWN)
         EVT_COMBOBOX(self, 500, self.EvtComboBox)
 
index 5eb2d2649798424aca44e5026ef175e2a04434c7..6f9f6446d54c4dd2bb99ecb40a07721c6f194f14 100644 (file)
 
 
 %{
-//#ifdef SEPARATE
-//    static wxString wxPyEmptyStr("");
-//    static wxPoint  wxPyDefaultPosition(-1, -1);
-//    static wxSize   wxPyDefaultSize(-1, -1);
-//#endif
+#if defined(SEPARATE) && defined(__WXMSW__)
+    static wxString wxPyEmptyStr("");
+    static wxPoint  wxPyDefaultPosition(-1, -1);
+    static wxSize   wxPyDefaultSize(-1, -1);
+#endif
 %}
 
 %pragma(python) code = "import wx"
@@ -64,11 +64,13 @@ public:
     void SetColour(const char *colour);
     void SwapBuffers();
 
+#ifdef __WXGTK__
     void SetupPixelFormat();
     void SetupPalette(const wxPalette& palette);
     wxPalette CreateDefaultPalette();
-
     wxPalette* GetPalette();
+#endif
+
     wxWindow* GetWindow();
 };
 
index a11b302c4e6a7d9ba5c0a8019d08688bf9730ccf..e1d0ec65c5fb97f44ecabbab6814d9110535defd 100644 (file)
@@ -115,7 +115,7 @@ extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source);
 
 static char* wxStringErrorMsg = "string type is required for parameter";
 
-#ifdef SEPARATE
+#if defined(SEPARATE) && defined(__WXMSW__)
     static wxString wxPyEmptyStr("");
     static wxPoint  wxPyDefaultPosition(-1, -1);
     static wxSize   wxPyDefaultSize(-1, -1);
index 3b1c0f80ac794735587fcec9b558ee8eb484c4b3..c58088b5c8b48cb39bd312c3969ac32a40014ecb 100644 (file)
  * and things like that.
  *
  * $Log$
- * Revision 1.13  1999/07/31 07:56:03  RD
- * wxPython 2.1b1:
- *
- *     Added the missing wxWindow.GetUpdateRegion() method.
- *
- *     Made a new change in SWIG (update your patches everybody) that
- *     provides a fix for global shadow objects that get an exception in
- *     their __del__ when their extension module has already been deleted.
- *     It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about
- *     line 496 if you want to do it by hand.
- *
- *     It is now possible to run through MainLoop more than once in any one
- *     process.  The cleanup that used to happen as MainLoop completed (and
- *     prevented it from running again) has been delayed until the wxc module
- *     is being unloaded by Python.
- *
- *     wxWindow.PopupMenu() now takes a wxPoint instead of  x,y.  Added
- *     wxWindow.PopupMenuXY to be consistent with some other methods.
- *
- *     Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace.
- *
- *     You can now provide your own app.MainLoop method.  See
- *     wxPython/demo/demoMainLoop.py for an example and some explaination.
- *
- *     Got the in-place-edit for the wxTreeCtrl fixed and added some demo
- *     code to show how to use it.
- *
- *     Put the wxIcon constructor back in for GTK as it now has one that
- *     matches MSW's.
- *
- *     Added wxGrid.GetCells
- *
- *     Added wxSystemSettings static methods as functions with names like
- *     wxSystemSettings_GetSystemColour.
- *
- *     Removed wxPyMenu since using menu callbacks have been depreciated in
- *     wxWindows.  Use wxMenu and events instead.
- *
- *     Added alternate wxBitmap constructor (for MSW only) as
- *           wxBitmapFromData(data, type, width, height, depth = 1)
- *
- *     Added a helper function named wxPyTypeCast that can convert shadow
- *     objects of one type into shadow objects of another type.  (Like doing
- *     a down-cast.)  See the implementation in wx.py for some docs.
+ * Revision 1.14  1999/08/05 05:06:38  RD
+ * Some minor tweaks
  *
  ************************************************************************/
 
index 1ced3863e214656598e5660c3b96c189c45689c8..923aefd2799a242c2c5adec8b569e87473dfdadd 100644 (file)
@@ -1371,7 +1371,7 @@ class wxAcceleratorTable(wxAcceleratorTablePtr):
 #----------------------------------------------------------------------
 # This helper function will take a wxPython object and convert it to
 # another wxPython object type.  This will not be able to create objects
-# user that are derived from wxPython classes, only those that are
+# that are derived from wxPython classes by the user, only those that are
 # actually part of wxPython and directly corespond to C++ objects.
 #
 # This is useful in situations where some method returns a generic
@@ -1458,8 +1458,8 @@ class wxApp(wxPyApp):
         if filename:
             sys.stdout = sys.stderr = open(filename, 'a')
         else:
-            #raise self.error, 'wxPyStdOutWindow not yet implemented.'
-            self.stdioWin = sys.stdout = sys.stderr = wxPyStdOutWindow()
+            raise self.error, 'wxPyStdOutWindow not yet implemented.'
+            #self.stdioWin = sys.stdout = sys.stderr = wxPyStdOutWindow()
 
     def RestoreStdio(self):
         sys.stdout, sys.stderr = self.saveStdio
diff --git a/utils/wxPython/tests/leave.py b/utils/wxPython/tests/leave.py
new file mode 100644 (file)
index 0000000..bd2cca3
--- /dev/null
@@ -0,0 +1,26 @@
+from wxPython.wx import *
+
+class TestFrame(wxFrame):
+
+    def __init__(self):
+        wxFrame.__init__(self,NULL,-1,"Test Frame",wxPoint(200,200))
+        win = wxWindow(self, -1)
+        self.Show(true)
+        EVT_LEAVE_WINDOW(win, self.onLeave)
+        EVT_ENTER_WINDOW(win, self.onEnter)
+
+    def onLeave(self, event):
+        print("out")
+
+    def onEnter(self, event):
+        print('in')
+
+class MyApp(wxApp):
+
+    def OnInit(self):
+        self.mainFrame = TestFrame()
+        return true
+
+app = MyApp(0)
+app.MainLoop()
+
index 89b94ebe2eefb70f88591a2713655ba2cfb8caf4..079c4a92159ce6f3cc1f60eed4128d640ac4c80b 100644 (file)
@@ -53,13 +53,13 @@ class TestSimpleControlsDlg(wxDialog):
         y_pos = y_pos + delta
 
         wxStaticText(self, -1, "wxComboBox", wxPoint(5, y_pos), wxSize(75, 18))
-        wxComboBox(self, 50, "default value", wxPoint(80, y_pos), wxSize(95, 20),
+        wxComboBox(self, 50, "default value", wxPoint(80, y_pos), wxSize(95, -1),
                    sampleList, wxCB_DROPDOWN)
         EVT_COMBOBOX(self, 50, self.EvtComboBox)
         y_pos = y_pos + delta
 
         wxStaticText(self, -1, "wxListBox", wxPoint(5, y_pos), wxSize(75, 18))
-        lb = wxListBox(self, 60, wxPoint(80, y_pos), wxDefaultSize,
+        lb = wxListBox(self, 60, wxPoint(80, y_pos), wxSize(95, 80),
                        sampleList, wxLB_SINGLE)
         EVT_LISTBOX(self, 60, self.EvtListBox)
         EVT_LISTBOX_DCLICK(self, 60, self.EvtListBoxDClick)
@@ -998,7 +998,11 @@ if __name__ == '__main__':
 #----------------------------------------------------------------------------
 #
 # $Log$
+# Revision 1.17  1999/08/05 05:06:50  RD
+# Some minor tweaks
+#
 # Revision 1.16  1999/04/30 03:29:54  RD
+#
 # wxPython 2.0b9, first phase (win32)
 # Added gobs of stuff, see wxPython/README.txt for details
 #
diff --git a/utils/wxPython/tests/testTree.py b/utils/wxPython/tests/testTree.py
new file mode 100644 (file)
index 0000000..e445371
--- /dev/null
@@ -0,0 +1,116 @@
+#!/usr/bin/env python
+
+from wxPython import wx
+import sys, os
+from stat import *
+
+GlobalObjList = []
+
+class Obj:
+       def __init__(self, obj):
+               self.obj = obj
+               # Uncomment next line to eliminate crash.
+               # GlobalObjList.append(self)
+
+       def Name(self):
+               head, tail = os.path.split(self.obj)
+               if tail:
+                       return tail
+               else:
+                       return head
+               
+       def HasChildren(self):
+               return os.path.isdir(self.obj)
+       
+       def Children(self):
+               objList = os.listdir(self.obj)
+               objList.sort()
+               objList = map(lambda obj,parent=self.obj: os.path.join(parent,obj),
+                                         objList)
+               objectList = map(Obj, objList)
+               return objectList
+       
+       def __str__(self):
+               return self.obj
+       
+       def __repr__(self):
+               return self.obj
+
+       def __del__(self):
+               print 'del', self.obj
+               
+
+#----------------------------------------------------------------------
+
+class pyTree(wx.wxTreeCtrl):
+
+       def __init__(self, parent, id, obj):
+               wx.wxTreeCtrl.__init__(self, parent, id)
+               self.root = self.AddRoot(obj.Name(), -1, -1, wx.wxTreeItemData(''))
+               self.SetPyData(self.root, obj)
+               if obj.HasChildren():
+                       self.SetItemHasChildren(self.root, wx.TRUE)
+               wx.EVT_TREE_ITEM_EXPANDING(self, self.GetId(), self.OnItemExpanding)
+               wx.EVT_TREE_ITEM_COLLAPSED(self, self.GetId(), self.OnItemCollapsed)
+               wx.EVT_TREE_SEL_CHANGED(self, self.GetId(), self.OnSelChanged)
+               self.output = None
+
+       def SetOutput(self, output):
+               self.output = output
+
+       def OnItemExpanding(self,event):
+               item = event.GetItem()
+               obj = self.GetPyData(item)
+               children = obj.Children()
+               for child in children:
+                       new_item = self.AppendItem(item, child.Name(), -1, -1,
+                                                                          wx.wxTreeItemData(''))
+                       self.SetPyData(new_item, child)
+                       if child.HasChildren():
+                               self.SetItemHasChildren(new_item, wx.TRUE)
+
+       def OnItemCollapsed(self, event):
+               item = event.GetItem()
+               self.DeleteChildren(item)
+
+       def OnSelChanged(self, event):
+               if not self.output:
+                       return
+               obj = self.GetPyData( event.GetItem() )
+               apply(self.output, (`obj`,))
+
+
+
+#----------------------------------------------------------------------
+if __name__ == '__main__':
+
+       class MyFrame(wx.wxFrame):
+
+               def __init__(self):
+                       wx.wxFrame.__init__(self, wx.NULL, -1, 'PyTreeItemData Test',
+                                                               wx.wxDefaultPosition, wx.wxSize(600,500))
+                       split = wx.wxSplitterWindow(self, -1)
+                       
+                       if sys.platform == 'win32':
+                               tree = pyTree(split, -1, Obj('C:\\'))
+                       else:
+                               tree = pyTree(split, -1, Obj('/'))
+                               
+                       text = wx.wxTextCtrl(split, -1, '', wx.wxDefaultPosition,
+                                                                wx.wxDefaultSize, wx.wxTE_MULTILINE)
+                       split.SplitVertically(tree, text, 200)
+                       tree.SetOutput(text.SetValue)
+                       tree.SelectItem(tree.root)
+
+       class MyApp(wx.wxApp):
+                
+               def OnInit(self):
+                       frame = MyFrame()
+                       frame.Show(wx.TRUE)
+                       self.SetTopWindow(frame)
+                       return wx.TRUE
+
+       app = MyApp(0)
+       app.MainLoop()
+
+