Some minor tweaks
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
c3d434725b
commit
f581a26df9
@ -109,6 +109,7 @@ in wx.cpp.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
What's new in 2.1b1
|
What's new in 2.1b1
|
||||||
--------------------
|
--------------------
|
||||||
Fixed wxComboBox.SetSelection so that it actually sets the selected
|
Fixed wxComboBox.SetSelection so that it actually sets the selected
|
||||||
|
@ -15,7 +15,7 @@ class TestComboBox(wxPanel):
|
|||||||
wxPoint(8, 10))
|
wxPoint(8, 10))
|
||||||
|
|
||||||
wxStaticText(self, -1, "Select one:", wxPoint(15, 50), wxSize(75, 18))
|
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)
|
sampleList, wxCB_DROPDOWN)
|
||||||
EVT_COMBOBOX(self, 500, self.EvtComboBox)
|
EVT_COMBOBOX(self, 500, self.EvtComboBox)
|
||||||
|
|
||||||
|
@ -36,11 +36,11 @@
|
|||||||
|
|
||||||
|
|
||||||
%{
|
%{
|
||||||
//#ifdef SEPARATE
|
#if defined(SEPARATE) && defined(__WXMSW__)
|
||||||
// static wxString wxPyEmptyStr("");
|
static wxString wxPyEmptyStr("");
|
||||||
// static wxPoint wxPyDefaultPosition(-1, -1);
|
static wxPoint wxPyDefaultPosition(-1, -1);
|
||||||
// static wxSize wxPyDefaultSize(-1, -1);
|
static wxSize wxPyDefaultSize(-1, -1);
|
||||||
//#endif
|
#endif
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%pragma(python) code = "import wx"
|
%pragma(python) code = "import wx"
|
||||||
@ -64,11 +64,13 @@ public:
|
|||||||
void SetColour(const char *colour);
|
void SetColour(const char *colour);
|
||||||
void SwapBuffers();
|
void SwapBuffers();
|
||||||
|
|
||||||
|
#ifdef __WXGTK__
|
||||||
void SetupPixelFormat();
|
void SetupPixelFormat();
|
||||||
void SetupPalette(const wxPalette& palette);
|
void SetupPalette(const wxPalette& palette);
|
||||||
wxPalette CreateDefaultPalette();
|
wxPalette CreateDefaultPalette();
|
||||||
|
|
||||||
wxPalette* GetPalette();
|
wxPalette* GetPalette();
|
||||||
|
#endif
|
||||||
|
|
||||||
wxWindow* GetWindow();
|
wxWindow* GetWindow();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -115,7 +115,7 @@ extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source);
|
|||||||
|
|
||||||
static char* wxStringErrorMsg = "string type is required for parameter";
|
static char* wxStringErrorMsg = "string type is required for parameter";
|
||||||
|
|
||||||
#ifdef SEPARATE
|
#if defined(SEPARATE) && defined(__WXMSW__)
|
||||||
static wxString wxPyEmptyStr("");
|
static wxString wxPyEmptyStr("");
|
||||||
static wxPoint wxPyDefaultPosition(-1, -1);
|
static wxPoint wxPyDefaultPosition(-1, -1);
|
||||||
static wxSize wxPyDefaultSize(-1, -1);
|
static wxSize wxPyDefaultSize(-1, -1);
|
||||||
|
@ -33,50 +33,8 @@
|
|||||||
* and things like that.
|
* and things like that.
|
||||||
*
|
*
|
||||||
* $Log$
|
* $Log$
|
||||||
* Revision 1.13 1999/07/31 07:56:03 RD
|
* Revision 1.14 1999/08/05 05:06:38 RD
|
||||||
* wxPython 2.1b1:
|
* Some minor tweaks
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
*
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
|
|
||||||
|
@ -1371,7 +1371,7 @@ class wxAcceleratorTable(wxAcceleratorTablePtr):
|
|||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
# This helper function will take a wxPython object and convert it to
|
# This helper function will take a wxPython object and convert it to
|
||||||
# another wxPython object type. This will not be able to create objects
|
# 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.
|
# actually part of wxPython and directly corespond to C++ objects.
|
||||||
#
|
#
|
||||||
# This is useful in situations where some method returns a generic
|
# This is useful in situations where some method returns a generic
|
||||||
@ -1458,8 +1458,8 @@ class wxApp(wxPyApp):
|
|||||||
if filename:
|
if filename:
|
||||||
sys.stdout = sys.stderr = open(filename, 'a')
|
sys.stdout = sys.stderr = open(filename, 'a')
|
||||||
else:
|
else:
|
||||||
#raise self.error, 'wxPyStdOutWindow not yet implemented.'
|
raise self.error, 'wxPyStdOutWindow not yet implemented.'
|
||||||
self.stdioWin = sys.stdout = sys.stderr = wxPyStdOutWindow()
|
#self.stdioWin = sys.stdout = sys.stderr = wxPyStdOutWindow()
|
||||||
|
|
||||||
def RestoreStdio(self):
|
def RestoreStdio(self):
|
||||||
sys.stdout, sys.stderr = self.saveStdio
|
sys.stdout, sys.stderr = self.saveStdio
|
||||||
|
26
utils/wxPython/tests/leave.py
Normal file
26
utils/wxPython/tests/leave.py
Normal file
@ -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()
|
||||||
|
|
@ -53,13 +53,13 @@ class TestSimpleControlsDlg(wxDialog):
|
|||||||
y_pos = y_pos + delta
|
y_pos = y_pos + delta
|
||||||
|
|
||||||
wxStaticText(self, -1, "wxComboBox", wxPoint(5, y_pos), wxSize(75, 18))
|
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)
|
sampleList, wxCB_DROPDOWN)
|
||||||
EVT_COMBOBOX(self, 50, self.EvtComboBox)
|
EVT_COMBOBOX(self, 50, self.EvtComboBox)
|
||||||
y_pos = y_pos + delta
|
y_pos = y_pos + delta
|
||||||
|
|
||||||
wxStaticText(self, -1, "wxListBox", wxPoint(5, y_pos), wxSize(75, 18))
|
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)
|
sampleList, wxLB_SINGLE)
|
||||||
EVT_LISTBOX(self, 60, self.EvtListBox)
|
EVT_LISTBOX(self, 60, self.EvtListBox)
|
||||||
EVT_LISTBOX_DCLICK(self, 60, self.EvtListBoxDClick)
|
EVT_LISTBOX_DCLICK(self, 60, self.EvtListBoxDClick)
|
||||||
@ -998,7 +998,11 @@ if __name__ == '__main__':
|
|||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# $Log$
|
# $Log$
|
||||||
|
# Revision 1.17 1999/08/05 05:06:50 RD
|
||||||
|
# Some minor tweaks
|
||||||
|
#
|
||||||
# Revision 1.16 1999/04/30 03:29:54 RD
|
# Revision 1.16 1999/04/30 03:29:54 RD
|
||||||
|
#
|
||||||
# wxPython 2.0b9, first phase (win32)
|
# wxPython 2.0b9, first phase (win32)
|
||||||
# Added gobs of stuff, see wxPython/README.txt for details
|
# Added gobs of stuff, see wxPython/README.txt for details
|
||||||
#
|
#
|
||||||
|
116
utils/wxPython/tests/testTree.py
Normal file
116
utils/wxPython/tests/testTree.py
Normal file
@ -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()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user