Files
Phoenix/docs/sphinx/rest_substitutions/snippets/python/converted/wx.ModalDialogHook.1.py
Metallicow 1257f42189 ⁉️ Trim trailing whitespace docs/sphinx/rest_substitutions/*.py
⁉️ Not sure if the generated .rst stuff is intended to have
whitespace like this in it or not, so seperating this from the other
commits, so easy to revert if necessary.
2018-01-16 09:02:20 -06:00

49 lines
1.6 KiB
Python

class MyModalDialogHook(wx.ModalDialogHook):
def __init__(self, parent):
wx.ModalDialogHook.__init__(self, parent)
def Enter(self, dialog):
# Just for demonstration purposes, intercept all uses of
# wx.FileDialog. Notice that self doesn't provide any real
# sandboxing, of course, the program can still read and write
# files by not using wx.FileDialog to ask the user for their
# names.
if isinstance(dialog, wx.FileDialog):
wx.LogError("Access to file system disallowed.")
# Skip showing the file dialog entirely.
return wx.ID_CANCEL
self.lastEnter = wx.DateTime.Now()
# Allow the dialog to be shown as usual.
return wx.ID_NONE
def Exit(self, dialog):
# Again, just for demonstration purposes, show how long did
# the user take to dismiss the dialog. Notice that we
# shouldn't use wx.LogMessage() here as self would result in
# another modal dialog call and hence infinite recursion. In
# general, the hooks should be as unintrusive as possible.
wx.LogDebug("%s dialog took %s to be dismissed",
dialog.GetClassInfo().GetClassName(),
(wx.DateTime.Now() - self.lastEnter).Format())
if __name__ == '__main__':
app = wx.App(0)
self.myHook = MyModalDialogHook(None)
self.myHook.Register()
app.MainLoop()