Merge #3 from the 2.6 branch, containing last set of changes before
the 2.6.2 release. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -3,6 +3,18 @@ import wx
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
class StaticText(wx.StaticText):
|
||||
"""
|
||||
A StaticText that only updates the label if it has changed, to
|
||||
help reduce potential flicker since these controls would be
|
||||
updated very frequently otherwise.
|
||||
"""
|
||||
def SetLabel(self, label):
|
||||
if label <> self.GetLabel():
|
||||
wx.StaticText.SetLabel(self, label)
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
class TestPanel(wx.Panel):
|
||||
def __init__(self, parent, log):
|
||||
self.log = log
|
||||
@@ -23,57 +35,57 @@ class TestPanel(wx.Panel):
|
||||
fgs = wx.FlexGridSizer(cols=2, hgap=5, vgap=10)
|
||||
row.Add(fgs, 0, wx.ALL, 30)
|
||||
|
||||
lbl = wx.StaticText(self, -1, "X pos:")
|
||||
self.x = wx.StaticText(self, -1, "00000")
|
||||
lbl = StaticText(self, -1, "X pos:")
|
||||
self.x = StaticText(self, -1, "00000")
|
||||
fgs.Add(lbl)
|
||||
fgs.Add(self.x)
|
||||
|
||||
lbl = wx.StaticText(self, -1, "Y pos:")
|
||||
self.y = wx.StaticText(self, -1, "00000")
|
||||
lbl = StaticText(self, -1, "Y pos:")
|
||||
self.y = StaticText(self, -1, "00000")
|
||||
fgs.Add(lbl)
|
||||
fgs.Add(self.y)
|
||||
|
||||
|
||||
lbl = wx.StaticText(self, -1, "Left down:")
|
||||
self.lft = wx.StaticText(self, -1, "False")
|
||||
lbl = StaticText(self, -1, "Left down:")
|
||||
self.lft = StaticText(self, -1, "False")
|
||||
fgs.Add(lbl)
|
||||
fgs.Add(self.lft)
|
||||
|
||||
lbl = wx.StaticText(self, -1, "Middle Down:")
|
||||
self.mid = wx.StaticText(self, -1, "False")
|
||||
lbl = StaticText(self, -1, "Middle Down:")
|
||||
self.mid = StaticText(self, -1, "False")
|
||||
fgs.Add(lbl)
|
||||
fgs.Add(self.mid)
|
||||
|
||||
lbl = wx.StaticText(self, -1, "Right down:")
|
||||
self.rgt = wx.StaticText(self, -1, "False")
|
||||
lbl = StaticText(self, -1, "Right down:")
|
||||
self.rgt = StaticText(self, -1, "False")
|
||||
fgs.Add(lbl)
|
||||
fgs.Add(self.rgt)
|
||||
|
||||
fgs = wx.FlexGridSizer(cols=2, hgap=5, vgap=10)
|
||||
row.Add(fgs, 0, wx.ALL, 30)
|
||||
|
||||
lbl = wx.StaticText(self, -1, "Control down:")
|
||||
self.ctrl = wx.StaticText(self, -1, "False")
|
||||
lbl = StaticText(self, -1, "Control down:")
|
||||
self.ctrl = StaticText(self, -1, "False")
|
||||
fgs.Add(lbl)
|
||||
fgs.Add(self.ctrl)
|
||||
|
||||
lbl = wx.StaticText(self, -1, "Shift down:")
|
||||
self.shft = wx.StaticText(self, -1, "False")
|
||||
lbl = StaticText(self, -1, "Shift down:")
|
||||
self.shft = StaticText(self, -1, "False")
|
||||
fgs.Add(lbl)
|
||||
fgs.Add(self.shft)
|
||||
|
||||
lbl = wx.StaticText(self, -1, "Alt down:")
|
||||
self.alt = wx.StaticText(self, -1, "False")
|
||||
lbl = StaticText(self, -1, "Alt down:")
|
||||
self.alt = StaticText(self, -1, "False")
|
||||
fgs.Add(lbl)
|
||||
fgs.Add(self.alt)
|
||||
|
||||
lbl = wx.StaticText(self, -1, "Meta down:")
|
||||
self.meta = wx.StaticText(self, -1, "False")
|
||||
lbl = StaticText(self, -1, "Meta down:")
|
||||
self.meta = StaticText(self, -1, "False")
|
||||
fgs.Add(lbl)
|
||||
fgs.Add(self.meta)
|
||||
|
||||
lbl = wx.StaticText(self, -1, "Cmd down:")
|
||||
self.cmd = wx.StaticText(self, -1, "False")
|
||||
lbl = StaticText(self, -1, "Cmd down:")
|
||||
self.cmd = StaticText(self, -1, "False")
|
||||
fgs.Add(lbl)
|
||||
fgs.Add(self.cmd)
|
||||
|
||||
@@ -114,7 +126,7 @@ overview = """<html><body>
|
||||
The mouse and modifier state can be polled with the wx.GetMouseState
|
||||
function. It returns an instance of a wx.MouseState object that
|
||||
contains the current position of the mouse pointer in screen
|
||||
coordinants, as well as boolean values indicating the up/down status
|
||||
coordinates, as well as boolean values indicating the up/down status
|
||||
of the mouse buttons and the modifier keys.
|
||||
|
||||
|
||||
|
@@ -35,12 +35,19 @@ class TestPanel(wx.Panel):
|
||||
exe, spawn = self.GetPyExecutable()
|
||||
spawn(os.P_NOWAIT, exe, exe, "MDISashDemo.py")
|
||||
|
||||
|
||||
# TODO: This hack can be removed once we fix the way the Python
|
||||
# app bundles are generated so that they are not bundling and
|
||||
# pointing to an otherwise unused and non-GUI-friendly version of
|
||||
# Python on OS X.
|
||||
def GetPyExecutable(self):
|
||||
if 'wxMac' in wx.PlatformInfo:
|
||||
# sys.executable will be wrong if running the demo from
|
||||
# an app bundle. Just find pythonw on the path instead.
|
||||
return 'pythonw' + sys.version[:3], os.spawnlp
|
||||
# an app bundle. But the bundle is always using a system
|
||||
# framework so just hardcode the path to it.
|
||||
if sys.version[:3] == "2.4":
|
||||
return '/usr/local/bin/pythonw', os.spawnl
|
||||
else:
|
||||
return '/usr/bin/pythonw', os.spawnl
|
||||
else:
|
||||
return sys.executable, os.spawnl
|
||||
|
||||
|
@@ -53,6 +53,7 @@ _treeList = [
|
||||
'MultiSplitterWindow',
|
||||
'Throbber',
|
||||
'GetMouseState',
|
||||
'FloatCanvas',
|
||||
]),
|
||||
|
||||
# managed windows == things with a (optional) caption you can close
|
||||
@@ -161,12 +162,11 @@ _treeList = [
|
||||
'HtmlWindow',
|
||||
'HyperLinkCtrl',
|
||||
'IntCtrl',
|
||||
'MediaCtrl',
|
||||
'MultiSplitterWindow',
|
||||
'MVCTree',
|
||||
'MaskedEditControls',
|
||||
'MaskedNumCtrl',
|
||||
'MimeTypesManager',
|
||||
'MediaCtrl',
|
||||
'MultiSplitterWindow',
|
||||
'PyCrust',
|
||||
'PyPlot',
|
||||
'PyShell',
|
||||
@@ -233,7 +233,9 @@ _treeList = [
|
||||
'DrawXXXList',
|
||||
'FileHistory',
|
||||
'FontEnumerator',
|
||||
'GLCanvas',
|
||||
'Joystick',
|
||||
'MimeTypesManager',
|
||||
'MouseGestures',
|
||||
'OGL',
|
||||
'PrintFramework',
|
||||
@@ -243,11 +245,6 @@ _treeList = [
|
||||
'Unicode',
|
||||
]),
|
||||
|
||||
# need libs not coming with the demo
|
||||
('Samples using an external library', [
|
||||
'GLCanvas',
|
||||
]),
|
||||
|
||||
|
||||
('Check out the samples dir too', [
|
||||
]),
|
||||
|
@@ -17,6 +17,13 @@ import pprint
|
||||
import wx
|
||||
import images
|
||||
|
||||
|
||||
# helper function to make sure we don't convert unicode objects to strings
|
||||
# or vice versa when converting lists and None values to text.
|
||||
convert = str
|
||||
if 'unicode' in wx.PlatformInfo:
|
||||
convert = unicode
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
class MimeTypesDemoPanel(wx.Panel):
|
||||
@@ -199,8 +206,16 @@ class MimeTypesDemoPanel(wx.Panel):
|
||||
mtypes = wx.TheMimeTypesManager.EnumAllFileTypes()
|
||||
except wx.PyAssertionError:
|
||||
mtypes = []
|
||||
|
||||
# TODO: On wxMac, EnumAllFileTypes produces tons of dupes, which
|
||||
# causes quirky behavior because the list control doesn't expect
|
||||
# dupes, and simply wastes space. So remove the dupes for now,
|
||||
# then remove this hack when we fix EnumAllFileTypes on Mac.
|
||||
mimes = []
|
||||
for mt in mtypes:
|
||||
self.mimelist.Append(mt)
|
||||
if mt not in mimes:
|
||||
self.mimelist.Append(mt)
|
||||
mimes.append(mt)
|
||||
|
||||
# Do a lookup of *.wav for a starting position
|
||||
self.OnLookup()
|
||||
@@ -234,10 +249,10 @@ class MimeTypesDemoPanel(wx.Panel):
|
||||
|
||||
# Select the entered value in the list
|
||||
if fileType:
|
||||
if self.mimelist.FindString(str(fileType.GetMimeType())) != -1:
|
||||
if self.mimelist.FindString(convert(fileType.GetMimeType())) != -1:
|
||||
# Using CallAfter to ensure that GUI is ready before trying to
|
||||
# select it (otherwise, it's selected but not visible)
|
||||
wx.CallAfter(self.mimelist.SetSelection, self.mimelist.FindString(str(fileType.GetMimeType())))
|
||||
wx.CallAfter(self.mimelist.SetSelection, self.mimelist.FindString(convert(fileType.GetMimeType())))
|
||||
|
||||
|
||||
if fileType is None:
|
||||
@@ -264,23 +279,23 @@ class MimeTypesDemoPanel(wx.Panel):
|
||||
bmp = images.getNoIconBitmap()
|
||||
self.icon.SetBitmap(bmp)
|
||||
self.iconsource.SetValue(file)
|
||||
self.iconoffset.SetValue(str(idx))
|
||||
self.iconoffset.SetValue(convert(idx))
|
||||
|
||||
#------- MIME type
|
||||
self.mimetype.SetValue(str(ft.GetMimeType()))
|
||||
self.mimetype.SetValue(convert(ft.GetMimeType()))
|
||||
#------- MIME types
|
||||
self.mimetypes.SetValue(str(ft.GetMimeTypes()))
|
||||
self.mimetypes.SetValue(convert(ft.GetMimeTypes()))
|
||||
#------- Associated extensions
|
||||
self.extensions.SetValue(str(ft.GetExtensions()))
|
||||
self.extensions.SetValue(convert(ft.GetExtensions()))
|
||||
#------- Description of file type
|
||||
self.description.SetValue(str(ft.GetDescription()))
|
||||
self.description.SetValue(convert(ft.GetDescription()))
|
||||
|
||||
#------- Prep a fake command line command
|
||||
extList = ft.GetExtensions()
|
||||
|
||||
if extList:
|
||||
ext = extList[0]
|
||||
if ext[0] == ".": ext = ext[1:]
|
||||
if len(ext) > 0 and ext[0] == ".": ext = ext[1:]
|
||||
else:
|
||||
ext = ""
|
||||
|
||||
@@ -289,11 +304,11 @@ class MimeTypesDemoPanel(wx.Panel):
|
||||
|
||||
#------- OPEN command
|
||||
cmd = ft.GetOpenCommand(filename, mime)
|
||||
self.opencommand.SetValue(str(cmd))
|
||||
self.opencommand.SetValue(convert(cmd))
|
||||
|
||||
#------- PRINT command
|
||||
cmd = ft.GetPrintCommand(filename, mime)
|
||||
self.printcommand.SetValue(str(cmd))
|
||||
self.printcommand.SetValue(convert(cmd))
|
||||
|
||||
#------- All commands
|
||||
all = ft.GetAllCommands(filename, mime)
|
||||
|
Reference in New Issue
Block a user