# 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
        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())
        height = top.winfo_screenheight()
        if sys.platform == 'win32':
            y = 0
            height = height - 72
        else:
            y = 24
            height = height - 96
        newgeom = "%dx%d+%d+%d" % (width, height, x, y)
        if geom == newgeom:
            newgeom = ""
        top.wm_geometry(newgeom)

@@ -689,32 +689,35 @@
 oups())%0A        
+new
 height = top.win
@@ -778,24 +778,27 @@
             
+new
 y = 0%0A      
@@ -795,32 +795,35 @@
 = 0%0A            
+new
 height = height 
@@ -807,32 +807,35 @@
     newheight = 
+new
 height - 72%0A    
@@ -856,16 +856,19 @@
         
+new
 y = 24%0A 
@@ -878,16 +878,19 @@
         
+new
 height =
@@ -890,16 +890,19 @@
 eight = 
+new
 height -
@@ -917,64 +917,43 @@
     
-newgeom = %22%25dx%25d+%25d+%25d%22 %25 (width, height, x, y)%0A
+if height %3E= newheight:%0A   
         
 if g
@@ -952,26 +952,34 @@
     
-if 
+ new
 geom =
-= newgeom
+ %22%22%0A        else
 :%0A  
@@ -991,33 +991,74 @@
      newgeom = %22
-%22
+%25dx%25d+%25d+%25d%22 %25 (width, newheight, x, newy)
 %0A        top.wm_

Use only the height to decide whether to zoom in or out.