
   f׽Y                       S r SSKrSSKrSSKr " S S\5      r " S S5      rS rS r\	S	:X  a  SS
K
Jr  \" SSSS9  gg)z Zoom a window to maximum height.    Nc                       \ rS rSrSrg)WmInfoGatheringError    N)__name__
__module____qualname____firstlineno____static_attributes__r       )/usr/lib/python3.13/idlelib/zoomheight.pyr   r      s    r   r   c                   4    \ rS rSr0 rS rSS jrS rS rSr	g)	
ZoomHeight   c                 F    Xl         U R                   R                  U l        g Neditwintop)selfr   s     r   __init__ZoomHeight.__init__   s    <<##r   Nc                     U R                  5       nUc  U R                  R                  5         gU(       a  SOSnU R                  R	                  SSU S3S9  g)NRestoreZoomoptionsz* Heightz Height)menuindexlabelbreak)zoom_heightr   bellr   update_menu_label)r   eventzoomedmenu_statuss       r   zoom_height_eventZoomHeight.zoom_height_event   s]    !!#>HHMMO 	 (.)6KLL**	4?=1H + J r   c                     U R                   n[        U5      u  p#pEUR                  5       S:w  a  g  U R                  5       u  pgX6:w  a  [        XXdU45        gUR                  S5        g! [         a     g f = f)NnormalT F)r   get_window_geometrywm_stateget_max_height_and_y_coordr   set_window_geometrywm_geometry)r   r   widthheightxy	maxheightmaxys           r   r!   ZoomHeight.zoom_height!   s    hh1#6q<<>X% 	"==?OI Y4%@A OOB $ 		s   A) )
A65A6c                    U R                   nUR                  5       UR                  5       4nX R                  ;  a  UR	                  5       n UR	                  S5        UR                  5         [        U5      u  pEpg[        R                  S:X  a  SnUR                  5       nUR	                  S5        UR                  5         [        U5      n	U	S S U4-   n
[        X5        UR                  5         UR                  5       nXXU-
  -  nXW4U R                  U'   [        X5        UR	                  U5        U R                  U   $ ! [
        R                   a    [        S5      ef = f)Nr%   z_Failed getting geometry of maximized windows, because the "zoomed" window state is unavailable.win32r   r*      )r   winfo_screenwidthwinfo_screenheight_max_height_and_y_coordsr-   tkinterTclErrorr   updater,   sysplatformwinfo_rootyr/   )r   r   screen_dimensions
orig_statemaxwidthr5   maxxr6   maxrooty	orig_geom
max_y_geommax_y_geom_rootys               r   r.   %ZoomHeight.get_max_height_and_y_coord<   sX   hh 224 3357$A$AAJAX& JJL.A#.F+H||w& (H LL"JJL+C0I"2A$0J0JJL"0 $444I?HD))*;</LL$,,->??I ## A +@A AAs   E  E$r   r   )
r   r   r	   r
   r=   r   r'   r!   r.   r   r   r   r   r   r      s      "$
6/@r   r   c                     U R                  5       n[        R                  " SU5      n[        [	        [
        UR                  5       5      5      $ )Nz(\d+)x(\d+)\+(-?\d+)\+(-?\d+))r0   rematchtuplemapintgroups)r   geomms      r   r,   r,   n   s7    ??D
148AS!((*%&&r   c                 @    U R                  SR                  " U6 5        g )Nz{:d}x{:d}+{:d}+{:d})r0   format)r   geometrys     r   r/   r/   t   s    OO)00(;<r   __main__)mainz!idlelib.idle_test.test_zoomheight   F)	verbosityexit)__doc__rN   rA   r>   	Exceptionr   r   r,   r/   r   unittestrZ   r   r   r   <module>ra      sU    " 	 
 	9 	_@ _@D'= z	,F r   