the 2.6.2 release.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36806
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
13 files changed:
#----------------------------------------------------------------------
#----------------------------------------------------------------------
+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
class TestPanel(wx.Panel):
def __init__(self, parent, log):
self.log = log
fgs = wx.FlexGridSizer(cols=2, hgap=5, vgap=10)
row.Add(fgs, 0, wx.ALL, 30)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
fgs.Add(lbl)
fgs.Add(self.cmd)
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
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.
of the mouse buttons and the modifier keys.
exe, spawn = self.GetPyExecutable()
spawn(os.P_NOWAIT, exe, exe, "MDISashDemo.py")
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
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
else:
return sys.executable, os.spawnl
'MultiSplitterWindow',
'Throbber',
'GetMouseState',
'MultiSplitterWindow',
'Throbber',
'GetMouseState',
]),
# managed windows == things with a (optional) caption you can close
]),
# managed windows == things with a (optional) caption you can close
'HtmlWindow',
'HyperLinkCtrl',
'IntCtrl',
'HtmlWindow',
'HyperLinkCtrl',
'IntCtrl',
- 'MediaCtrl',
- 'MultiSplitterWindow',
'MVCTree',
'MaskedEditControls',
'MaskedNumCtrl',
'MVCTree',
'MaskedEditControls',
'MaskedNumCtrl',
+ 'MediaCtrl',
+ 'MultiSplitterWindow',
'PyCrust',
'PyPlot',
'PyShell',
'PyCrust',
'PyPlot',
'PyShell',
'DrawXXXList',
'FileHistory',
'FontEnumerator',
'DrawXXXList',
'FileHistory',
'FontEnumerator',
'MouseGestures',
'OGL',
'PrintFramework',
'MouseGestures',
'OGL',
'PrintFramework',
- # need libs not coming with the demo
- ('Samples using an external library', [
- 'GLCanvas',
- ]),
-
('Check out the samples dir too', [
]),
('Check out the samples dir too', [
]),
+
+# 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):
#----------------------------------------------------------------------------
class MimeTypesDemoPanel(wx.Panel):
mtypes = wx.TheMimeTypesManager.EnumAllFileTypes()
except wx.PyAssertionError:
mtypes = []
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 = []
- 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()
# Do a lookup of *.wav for a starting position
self.OnLookup()
# Select the entered value in the list
if fileType:
# 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)
# 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())))
bmp = images.getNoIconBitmap()
self.icon.SetBitmap(bmp)
self.iconsource.SetValue(file)
bmp = images.getNoIconBitmap()
self.icon.SetBitmap(bmp)
self.iconsource.SetValue(file)
- self.iconoffset.SetValue(str(idx))
+ self.iconoffset.SetValue(convert(idx))
- self.mimetype.SetValue(str(ft.GetMimeType()))
+ self.mimetype.SetValue(convert(ft.GetMimeType()))
- self.mimetypes.SetValue(str(ft.GetMimeTypes()))
+ self.mimetypes.SetValue(convert(ft.GetMimeTypes()))
#------- Associated extensions
#------- Associated extensions
- self.extensions.SetValue(str(ft.GetExtensions()))
+ self.extensions.SetValue(convert(ft.GetExtensions()))
#------- Description of file type
#------- 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]
#------- 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:]
#------- OPEN command
cmd = ft.GetOpenCommand(filename, mime)
#------- OPEN command
cmd = ft.GetOpenCommand(filename, mime)
- self.opencommand.SetValue(str(cmd))
+ self.opencommand.SetValue(convert(cmd))
#------- PRINT command
cmd = ft.GetPrintCommand(filename, mime)
#------- PRINT command
cmd = ft.GetPrintCommand(filename, mime)
- self.printcommand.SetValue(str(cmd))
+ self.printcommand.SetValue(convert(cmd))
#------- All commands
all = ft.GetAllCommands(filename, mime)
#------- All commands
all = ft.GetAllCommands(filename, mime)
In addition to the wxPython modules, several tools scripts (such as
XRCed and PyShell) and batch file launchers have been installed to
In addition to the wxPython modules, several tools scripts (such as
XRCed and PyShell) and batch file launchers have been installed to
-Python's Scripts directory. (For example, c:\Python23\Scripts.) IF
+Python's Scripts directory. (For example, c:\Python23\Scripts.) If
you have multiple versions of wxPython installed these tool scripts
will use whichever is the default install. If you would like to
control which version is used then follow the directions at the wiki
page for using wxversion.
This installer does *not* include the wxPython documentation, the
you have multiple versions of wxPython installed these tool scripts
will use whichever is the default install. If you would like to
control which version is used then follow the directions at the wiki
page for using wxversion.
This installer does *not* include the wxPython documentation, the
-wxPython demo and other sample applications are provided as part of
-wxPython. Those are available in a separate installer named
+wxPython demo and other sample applications that are provided as part
+of wxPython. Those are available in a separate installer named
wxPython2.6-win32-docs-demos-*.exe which should also be located from
wherever you downloaded this package from. The Docs and Demos
installer will also create Start Menu shortcuts for the tool scripts
wxPython2.6-win32-docs-demos-*.exe which should also be located from
wherever you downloaded this package from. The Docs and Demos
installer will also create Start Menu shortcuts for the tool scripts
destdir=$UPLOAD_DAILY_ROOT/$DAILY
echo "Copying to the starship at $destdir..."
ssh $UPLOAD_HOST "mkdir -p $destdir"
destdir=$UPLOAD_DAILY_ROOT/$DAILY
echo "Copying to the starship at $destdir..."
ssh $UPLOAD_HOST "mkdir -p $destdir"
- scp $STAGING_DIR/* $UPLOAD_HOST:/$destdir
+ scp -p $STAGING_DIR/* $UPLOAD_HOST:/$destdir
ssh $UPLOAD_HOST "cd $destdir && ls -al"
ssh $UPLOAD_HOST "cd $destdir && ls -al"
echo "Copying to the starship..."
destdir=$UPLOAD_PREVIEW_ROOT/$VERSION
ssh $UPLOAD_HOST "mkdir -p $destdir"
echo "Copying to the starship..."
destdir=$UPLOAD_PREVIEW_ROOT/$VERSION
ssh $UPLOAD_HOST "mkdir -p $destdir"
- scp $STAGING_DIR/* $UPLOAD_HOST:/$destdir
+ scp -p $STAGING_DIR/* $UPLOAD_HOST:/$destdir
# Send email to wxPython-dev
DATE=`date`
# Send email to wxPython-dev
DATE=`date`
or errors or etc. from the buffer before doing a copy/paste.
The free edit mode is designated by the use of a red,
non-flashing caret.</li>
or errors or etc. from the buffer before doing a copy/paste.
The free edit mode is designated by the use of a red,
non-flashing caret.</li>
-<li>Ctrl-H will fold/unfold (hide/show) the selected lines.</li>
+<li>Ctrl-Shift-F will fold/unfold (hide/show) the selected lines.</li>
<li>General code cleanup and fixes.</li>
<li>Use wx.StandardPaths to determine the location of the config
files.</li>
<li>General code cleanup and fixes.</li>
<li>Use wx.StandardPaths to determine the location of the config
files.</li>
The free edit mode is designated by the use of a red,
non-flashing caret.
The free edit mode is designated by the use of a red,
non-flashing caret.
- * Ctrl-H will fold/unfold (hide/show) the selected lines.
+ * Ctrl-Shift-F will fold/unfold (hide/show) the selected lines.
* General code cleanup and fixes.
* General code cleanup and fixes.
useful, for example, if you would like to remove some output or
errors or etc. from the buffer before doing a copy/paste. The free
edit mode is designated by the use of a red, non-flashing caret.</li>
useful, for example, if you would like to remove some output or
errors or etc. from the buffer before doing a copy/paste. The free
edit mode is designated by the use of a red, non-flashing caret.</li>
-<li>Ctrl-H will fold/unfold (hide/show) the selected lines.</li>
+<li>Ctrl-Shift-F will fold/unfold (hide/show) the selected lines.</li>
</ul>
<p>On top of these changes I (Robin Dunn) added the following:</p>
<ul class="simple">
</ul>
<p>On top of these changes I (Robin Dunn) added the following:</p>
<ul class="simple">
self.ObjectUnderMouse = None
# called just to make sure everything is initialized
self.ObjectUnderMouse = None
# called just to make sure everything is initialized
errors or etc. from the buffer before doing a copy/paste. The free
edit mode is designated by the use of a red, non-flashing caret.
errors or etc. from the buffer before doing a copy/paste. The free
edit mode is designated by the use of a red, non-flashing caret.
-* Ctrl-H will fold/unfold (hide/show) the selected lines.
+* Ctrl-Shift-F will fold/unfold (hide/show) the selected lines.
'Call Tip Options')
if wx.Platform == "__WXMAC__":
'Call Tip Options')
if wx.Platform == "__WXMAC__":
- m.Append(ID_USEAA, '&Use AntiAliasing\tCtrl+Shift+A',
+ m.Append(ID_USEAA, '&Use AntiAliasing',
'Use anti-aliased fonts', wx.ITEM_CHECK)
m.AppendSeparator()
'Use anti-aliased fonts', wx.ITEM_CHECK)
m.AppendSeparator()
- m.Append(ID_SAVEHISTORY, '&Save History\tAlt+Ctrl+A', 'Automatically save history on close', wx.ITEM_CHECK)
+ m.Append(ID_SAVEHISTORY, '&Save History',
+ 'Automatically save history on close', wx.ITEM_CHECK)
self.startupMenu = wx.Menu()
self.startupMenu = wx.Menu()
- self.startupMenu.Append(ID_EXECSTARTUPSCRIPT, 'E&xecute Startup Script\tAlt+Ctrl+X', 'Execute Startup Script', wx.ITEM_CHECK)
- self.startupMenu.Append(ID_EDITSTARTUPSCRIPT, '&Edit Startup Script\tAlt+Ctrl+E', 'Edit Startup Script')
+ self.startupMenu.Append(ID_EXECSTARTUPSCRIPT,
+ 'E&xecute Startup Script',
+ 'Execute Startup Script', wx.ITEM_CHECK)
+ self.startupMenu.Append(ID_EDITSTARTUPSCRIPT,
+ '&Edit Startup Script',
+ 'Edit Startup Script')
m.AppendMenu(ID_STARTUP, '&Startup', self.startupMenu, 'Startup Options')
self.settingsMenu = wx.Menu()
m.AppendMenu(ID_STARTUP, '&Startup', self.startupMenu, 'Startup Options')
self.settingsMenu = wx.Menu()
- self.settingsMenu.Append(ID_AUTO_SAVESETTINGS, '&Auto Save Settings\tAlt+Ctrl+A', 'Automatically save settings on close', wx.ITEM_CHECK)
- self.settingsMenu.Append(ID_SAVESETTINGS, '&Save Settings\tAlt+Ctrl+S', 'Save settings now')
- self.settingsMenu.Append(ID_DELSETTINGSFILE, '&Revert to default\tAlt+Ctrl+R', 'Revert to the default settings')
+ self.settingsMenu.Append(ID_AUTO_SAVESETTINGS,
+ '&Auto Save Settings',
+ 'Automatically save settings on close', wx.ITEM_CHECK)
+ self.settingsMenu.Append(ID_SAVESETTINGS,
+ '&Save Settings',
+ 'Save settings now')
+ self.settingsMenu.Append(ID_DELSETTINGSFILE,
+ '&Revert to default',
+ 'Revert to the default settings')
m.AppendMenu(ID_SETTINGS, '&Settings', self.settingsMenu, 'Settings Options')
m = self.helpMenu = wx.Menu()
m.Append(ID_HELP, '&Help\tF1', 'Help!')
m.AppendSeparator()
m.AppendMenu(ID_SETTINGS, '&Settings', self.settingsMenu, 'Settings Options')
m = self.helpMenu = wx.Menu()
m.Append(ID_HELP, '&Help\tF1', 'Help!')
m.AppendSeparator()
- m.Append(ID_ABOUT, '&About...\tAlt+A', 'About this program')
+ m.Append(ID_ABOUT, '&About...', 'About this program')
b = self.menuBar = wx.MenuBar()
b.Append(self.fileMenu, '&File')
b = self.menuBar = wx.MenuBar()
b.Append(self.fileMenu, '&File')
if self.AutoCompActive():
event.Skip()
return
if self.AutoCompActive():
event.Skip()
return
# Prevent modification of previously submitted
# commands/responses.
controlDown = event.ControlDown()
# Prevent modification of previously submitted
# commands/responses.
controlDown = event.ControlDown()
endpos = self.GetTextLength()
selecting = self.GetSelectionStart() != self.GetSelectionEnd()
endpos = self.GetTextLength()
selecting = self.GetSelectionStart() != self.GetSelectionEnd()
- if controlDown and key in (ord('H'), ord('h')):
+ if controlDown and shiftDown and key in (ord('F'), ord('f')):
li = self.GetCurrentLine()
m = self.MarkerGet(li)
if m & 1<<0:
li = self.GetCurrentLine()
m = self.MarkerGet(li)
if m & 1<<0:
if self.CallTipActive():
self.CallTipCancel()
self.processLine()
if self.CallTipActive():
self.CallTipCancel()
self.processLine()
- #Complete Text (from already typed words)
+
+ # Complete Text (from already typed words)
elif shiftDown and key == wx.WXK_RETURN:
self.OnShowCompHistory()
elif shiftDown and key == wx.WXK_RETURN:
self.OnShowCompHistory()
- # Ctrl+Return (Cntrl+Enter) is used to insert a line break.
+
+ # Ctrl+Return (Ctrl+Enter) is used to insert a line break.
elif controlDown and key == wx.WXK_RETURN:
if self.CallTipActive():
self.CallTipCancel()
elif controlDown and key == wx.WXK_RETURN:
if self.CallTipActive():
self.CallTipCancel()
self.processLine()
else:
self.insertLineBreak()
self.processLine()
else:
self.insertLineBreak()
# Let Ctrl-Alt-* get handled normally.
elif controlDown and altDown:
event.Skip()
# Let Ctrl-Alt-* get handled normally.
elif controlDown and altDown:
event.Skip()
# Clear the current, unexecuted command.
elif key == wx.WXK_ESCAPE:
if self.CallTipActive():
event.Skip()
else:
self.clearCommand()
# Clear the current, unexecuted command.
elif key == wx.WXK_ESCAPE:
if self.CallTipActive():
event.Skip()
else:
self.clearCommand()
- elif controlDown and key in (ord(']'),):
+ elif controlDown and key in (ord(']'), wx.WXK_NUMPAD_ADD):
dispatcher.send(signal='FontIncrease')
dispatcher.send(signal='FontIncrease')
- elif controlDown and key in (ord('['),):
+ elif controlDown and key in (ord('['), wx.WXK_NUMPAD_SUBTRACT):
dispatcher.send(signal='FontDecrease')
dispatcher.send(signal='FontDecrease')
- elif controlDown and key in (ord('='),):
+ elif controlDown and key in (ord('='), wx.WXK_NUMPAD_DIVIDE):
dispatcher.send(signal='FontDefault')
dispatcher.send(signal='FontDefault')
# Cut to the clipboard.
elif (controlDown and key in (ord('X'), ord('x'))) \
# Cut to the clipboard.
elif (controlDown and key in (ord('X'), ord('x'))) \
- or (shiftDown and key == wx.WXK_DELETE):
+ or (shiftDown and key == wx.WXK_DELETE):
# Copy to the clipboard.
elif controlDown and not shiftDown \
# Copy to the clipboard.
elif controlDown and not shiftDown \
- and key in (ord('C'), ord('c'), wx.WXK_INSERT):
+ and key in (ord('C'), ord('c'), wx.WXK_INSERT):
# Copy to the clipboard, including prompts.
elif controlDown and shiftDown \
# Copy to the clipboard, including prompts.
elif controlDown and shiftDown \
- and key in (ord('C'), ord('c'), wx.WXK_INSERT):
+ and key in (ord('C'), ord('c'), wx.WXK_INSERT):
# Copy to the clipboard, including prefixed prompts.
elif altDown and not controlDown \
# Copy to the clipboard, including prefixed prompts.
elif altDown and not controlDown \
- and key in (ord('C'), ord('c'), wx.WXK_INSERT):
+ and key in (ord('C'), ord('c'), wx.WXK_INSERT):
self.CopyWithPromptsPrefixed()
self.CopyWithPromptsPrefixed()
# Home needs to be aware of the prompt.
elif key == wx.WXK_HOME:
home = self.promptPosEnd
# Home needs to be aware of the prompt.
elif key == wx.WXK_HOME:
home = self.promptPosEnd
self.EnsureCaretVisible()
else:
event.Skip()
self.EnsureCaretVisible()
else:
event.Skip()
#
# The following handlers modify text, so we need to see if
# there is a selection that includes text prior to the prompt.
#
# The following handlers modify text, so we need to see if
# there is a selection that includes text prior to the prompt.
# Don't modify a selection with text prior to the prompt.
elif selecting and key not in NAVKEYS and not self.CanEdit():
pass
# Don't modify a selection with text prior to the prompt.
elif selecting and key not in NAVKEYS and not self.CanEdit():
pass
# Paste from the clipboard.
elif (controlDown and not shiftDown and key in (ord('V'), ord('v'))) \
or (shiftDown and not controlDown and key == wx.WXK_INSERT):
self.Paste()
# Paste from the clipboard.
elif (controlDown and not shiftDown and key in (ord('V'), ord('v'))) \
or (shiftDown and not controlDown and key == wx.WXK_INSERT):
self.Paste()
+
+ # manually invoke AutoComplete and Calltips
elif controlDown and key == wx.WXK_SPACE:
elif controlDown and key == wx.WXK_SPACE:
- """AutoComplete and Calltips manually."""
- self.OnCallTipAutoCompleteManually (shiftDown)
+ self.OnCallTipAutoCompleteManually(shiftDown)
+
# Paste from the clipboard, run commands.
elif controlDown and shiftDown and key in (ord('V'), ord('v')):
self.PasteAndRun()
# Paste from the clipboard, run commands.
elif controlDown and shiftDown and key in (ord('V'), ord('v')):
self.PasteAndRun()
# Replace with the previous command from the history buffer.
elif (controlDown and key == wx.WXK_UP) \
or (altDown and key in (ord('P'), ord('p'))):
self.OnHistoryReplace(step=+1)
# Replace with the previous command from the history buffer.
elif (controlDown and key == wx.WXK_UP) \
or (altDown and key in (ord('P'), ord('p'))):
self.OnHistoryReplace(step=+1)
# Replace with the next command from the history buffer.
elif (controlDown and key == wx.WXK_DOWN) \
or (altDown and key in (ord('N'), ord('n'))):
self.OnHistoryReplace(step=-1)
# Replace with the next command from the history buffer.
elif (controlDown and key == wx.WXK_DOWN) \
or (altDown and key in (ord('N'), ord('n'))):
self.OnHistoryReplace(step=-1)
# Insert the previous command from the history buffer.
elif (shiftDown and key == wx.WXK_UP) and self.CanEdit():
self.OnHistoryInsert(step=+1)
# Insert the previous command from the history buffer.
elif (shiftDown and key == wx.WXK_UP) and self.CanEdit():
self.OnHistoryInsert(step=+1)
# Insert the next command from the history buffer.
elif (shiftDown and key == wx.WXK_DOWN) and self.CanEdit():
self.OnHistoryInsert(step=-1)
# Insert the next command from the history buffer.
elif (shiftDown and key == wx.WXK_DOWN) and self.CanEdit():
self.OnHistoryInsert(step=-1)
# Search up the history for the text in front of the cursor.
elif key == wx.WXK_F8:
self.OnHistorySearch()
# Search up the history for the text in front of the cursor.
elif key == wx.WXK_F8:
self.OnHistorySearch()
# Don't backspace over the latest non-continuation prompt.
elif key == wx.WXK_BACK:
if selecting and self.CanEdit():
event.Skip()
elif currpos > self.promptPosEnd:
event.Skip()
# Don't backspace over the latest non-continuation prompt.
elif key == wx.WXK_BACK:
if selecting and self.CanEdit():
event.Skip()
elif currpos > self.promptPosEnd:
event.Skip()
# Only allow these keys after the latest prompt.
elif key in (wx.WXK_TAB, wx.WXK_DELETE):
if self.CanEdit():
event.Skip()
# Only allow these keys after the latest prompt.
elif key in (wx.WXK_TAB, wx.WXK_DELETE):
if self.CanEdit():
event.Skip()
# Don't toggle between insert mode and overwrite mode.
elif key == wx.WXK_INSERT:
pass
# Don't toggle between insert mode and overwrite mode.
elif key == wx.WXK_INSERT:
pass
# Don't allow line deletion.
elif controlDown and key in (ord('L'), ord('l')):
pass
# Don't allow line deletion.
elif controlDown and key in (ord('L'), ord('l')):
pass
# Don't allow line transposition.
elif controlDown and key in (ord('T'), ord('t')):
pass
# Don't allow line transposition.
elif controlDown and key in (ord('T'), ord('t')):
pass
# Basic navigation keys should work anywhere.
elif key in NAVKEYS:
event.Skip()
# Basic navigation keys should work anywhere.
elif key in NAVKEYS:
event.Skip()
# Protect the readonly portion of the shell.
elif not self.CanEdit():
pass
# Protect the readonly portion of the shell.
elif not self.CanEdit():
pass
def OnShowCompHistory(self):
"""Show possible autocompletion Words from already typed words."""
def OnShowCompHistory(self):
"""Show possible autocompletion Words from already typed words."""