
    "ek                         d Z ddlZddlZddlZ G d de      Z G d d      Zd Zd Ze	d	k(  rdd
l
mZ  eddd       yy)z Zoom a window to maximum height.    Nc                       e Zd Zy)WmInfoGatheringErrorN)__name__
__module____qualname__     $lib/python3.12/idlelib/zoomheight.pyr   r      s    r	   r   c                   *    e Zd Zi Zd ZddZd Zd Zy)
ZoomHeightc                 H    || _         | j                   j                  | _        y N)editwintop)selfr   s     r
   __init__zZoomHeight.__init__   s    <<##r	   Nc                     | j                         }|| j                  j                          y|rdnd}| j                  j	                  dd| d       y)NRestoreZoomoptionsz* Heightz Height)menuindexlabelbreak)zoom_heightr   bellr   update_menu_label)r   eventzoomedmenu_statuss       r
   zoom_height_eventzZoomHeight.zoom_height_event   s]    !!#>HHMMO 	 (.)6KLL**	4?=1H + J r	   c                     | j                   }t        |      \  }}}}|j                         dk7  ry 	 | j                         \  }}||k7  rt        |||||f       y|j                  d       y# t        $ r Y y w xY w)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   zZoomHeight.zoom_height!   s    hh1#6vq!<<>X% 	"==?OIt YeY4%@A OOB $ 		s   A- -	A98A9c                    | j                   }|j                         |j                         f}|| j                  vr|j	                         }	 |j	                  d       |j                          t        |      \  }}}}t        j                  dk(  rd}|j                         }|j	                  d       |j                          t        |      }	|	d d |fz   }
t        ||
       |j                          |j                         }|||z
  z  }||f| j                  |<   t        ||	       |j	                  |       | j                  |   S # t
        j                  $ r t        d      w xY w)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maxwidthr.   maxxr/   maxrooty	orig_geom
max_y_geommax_y_geom_rootys               r
   r'   z%ZoomHeight.get_max_height_and_y_coord<   sf   hh 224 3357D$A$AAJAX& JJL.A#.F+Hit||w& (H LL"JJL+C0I"2A$0JZ0JJL"0 $444I?H$D))*;<Y/LL$,,->??I ## A +@A AAs   E E'r   )r   r   r   r5   r   r!   r   r'   r   r	   r
   r   r      s      "$
6/@r	   r   c                     | j                         }t        j                  d|      }t        t	        t
        |j                                     S )Nz(\d+)x(\d+)\+(-?\d+)\+(-?\d+))r)   rematchtuplemapintgroups)r   geomms      r
   r%   r%   n   s7    ??D
148AS!((*%&&r	   c                 @    | j                   dj                  |        y )Nz{:d}x{:d}+{:d}+{:d})r)   format)r   geometrys     r
   r(   r(   t   s    OO0)00(;<r	   __main__)mainz!idlelib.idle_test.test_zoomheight   F)	verbosityexit)__doc__rE   r9   r6   	Exceptionr   r   r%   r(   r   unittestrQ   r   r	   r
   <module>rX      sU    " 	 
 	9 	_@ _@D'= z	,F r	   