50 lines · 1.3 KB · Python
RawDownload
# Sample extension: zoom a window to maximum height import reimport sysimport macosxSupport class ZoomHeight:     menudefs = [        ('windows', [            ('_Zoom Height', '<<zoom-height>>'),         ])    ]     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     elif macosxSupport.runningAsOSXApp():        # The '88' below is a magic number that avoids placing the bottom        # of the window below the panel on my machine. I don't know how        # to calculate the correct value for this with tkinter.        newy = 22        newheight = newheight - newy - 88     else:        #newy = 24        newy = 0        #newheight = newheight - 96        newheight = newheight - 88    if height >= newheight:        newgeom = ""    else:        newgeom = "%dx%d+%d+%d" % (width, newheight, x, newy)    top.wm_geometry(newgeom)