diff options
Diffstat (limited to 'Lib/idlelib/ZoomHeight.py')
-rw-r--r-- | Lib/idlelib/ZoomHeight.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Lib/idlelib/ZoomHeight.py b/Lib/idlelib/ZoomHeight.py new file mode 100644 index 0000000..ecc306a --- /dev/null +++ b/Lib/idlelib/ZoomHeight.py @@ -0,0 +1,46 @@ +# Sample extension: zoom a window to maximum height + +import re +import sys + +class ZoomHeight: + + menudefs = [ + ('windows', [ + ('_Zoom Height', '<<zoom-height>>'), + ]) + ] + + windows_keydefs = { + '<<zoom-height>>': ['<Alt-F2>'], + } + unix_keydefs = { + '<<zoom-height>>': ['<Control-x><Control-z>'], + } + + def __init__(self, editwin): + self.editwin = editwin + + def zoom_height_event(self, event): + top = self.editwin.top + zoom_height(top) + +def zoom_height(top): + geom = top.wm_geometry() + m = re.match(r"(\d+)x(\d+)\+(-?\d+)\+(-?\d+)", geom) + if not m: + top.bell() + return + width, height, x, y = map(int, m.groups()) + newheight = top.winfo_screenheight() + if sys.platform == 'win32': + newy = 0 + newheight = newheight - 72 + else: + newy = 24 + newheight = newheight - 96 + if height >= newheight: + newgeom = "" + else: + newgeom = "%dx%d+%d+%d" % (width, newheight, x, newy) + top.wm_geometry(newgeom) |