ŗō
\Kc           @   s×  d  Z  d d k Td e f d     YZ d e f d     YZ d e f d     YZ d	 e f d
     YZ e d j o^e	   Z
 e e
 d d d g Z e i d e d e  e e i d d d d d d i   e e i d d d d d d i   e e i d d d d i   e e
  Z e e
 d d d d   Z e e
 d d d d   Z e e
 d d Z e i d d d d  e i d d d d  e i d d  e i d d  e i   e
 i   n d S(    sI   
a couple of classes for implementing partial tabbed-page like behaviour
i˙˙˙˙(   t   *t   InvalidTabPagec           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s%   /usr/lib/python2.5/idlelib/tabpage.pyR      s    t   AlreadyExistsc           B   s   e  Z RS(    (   R   R   (    (    (    s%   /usr/lib/python2.5/idlelib/tabpage.pyR      s    t   PageTabc           B   s   e  Z d  Z d   Z RS(   s)   
    a 'page tab' like framed button
    c         C   so   t  i |  | d d d t t |  d d d d d t d t d	 d
 d d
 d |  i d  |  _ |  i i   d  S(   Nt   borderwidthi   t   relieft   padxi   t   padyt	   takefocust   indicatoront   highlightthicknessi    t   selectcolort   bg(   t   Framet   __init__t   RIDGEt   Radiobuttont   FALSEt   cgett   buttont   pack(   t   selft   parent(    (    s%   /usr/lib/python2.5/idlelib/tabpage.pyR      s
    (   R   R   t   __doc__R   (    (    (    s%   /usr/lib/python2.5/idlelib/tabpage.pyR   
   s   t
   TabPageSetc           B   sA   e  Z d  Z g  d  Z d d  Z d   Z d   Z d   Z RS(   sH   
    a set of 'pages' with TabButtons for controlling their display
    c         K   sē   t  i |  | |  |  i d d  |  i d d d |  i d d d t  |   |  _ |  i i d d d d d t  t |   |  _	 d |  _
 h  |  _ x | D] } |  i |  q Wd S(	   s  
        pageNames - a list of strings, each string will be the dictionary key
        to a page's data, and the name displayed on the page's tab. Should be
        specified in desired page order. The first page will be the default
        and first active page.
        i    t   weighti   t   rowt   columnt   stickyt    N(   R   R   t   grid_locationt   columnconfiguret   rowconfiguret   tabBart   gridt   EWt	   StringVart
   activePaget   defaultPaget   pagest   AddPage(   R   R   t	   pageNamest   kwt   name(    (    s%   /usr/lib/python2.5/idlelib/tabpage.pyR      s    		 c         C   sŗ   | o7 | |  i  i   j o |  i i |  q> t d  n x2 |  i  i   D]! } |  i  | d i d t  qN W|  i  |  i   d i d t  |  i  |  i   d i	   d  S(   Ns   Invalid TabPage Namet   tabR   t   page(
   R)   t   keysR'   t   setR   t   configR   t   GetActivePaget   RAISEDt   lift(   R   t   pageNameR/   (    (    s%   /usr/lib/python2.5/idlelib/tabpage.pyt
   ChangePage,   s     !c         C   s   |  i  i   S(   N(   R'   t   get(   R   (    (    s%   /usr/lib/python2.5/idlelib/tabpage.pyR3   9   s    c      	   C   s  | |  i  i   j o t d  n h  t |  i  d <t |  d d d t d <|  i  | <|  i  | d i i d | d |  i	 d	 |  i
 d
 |  |  i  | d i d t  |  i  | d i d d d d d t  t |  i   d j o* | |  _ |  i
 i |  i  |  i	   n d  S(   Ns   TabPage Name Already ExistsR.   R   i   R   R/   t   textt   commandt   variablet   valuet   sideR   i   R   i    R   (   R)   R0   R   R   R#   R   R4   R   R2   R7   R'   R   t   LEFTR$   t   NSEWt   lenR(   R1   (   R   R6   (    (    s%   /usr/lib/python2.5/idlelib/tabpage.pyR*   <   s    $'	c         C   s
  | |  i  i   j o t d  n |  i  | d i   |  i  | d i   |  i  | d i   |  i  | d i   |  i  | =|  i  p d |  _ d  Sn | |  i j o& |  i i   d i	 i
 d  |  _ n | |  i   j o |  i i |  i  n |  i   d  S(   Ns   Invalid TabPage NameR.   R/   R   i    R9   (   R)   R0   R   t   pack_forgett   grid_forgett   destroyR(   R#   t   winfo_childrenR   R   R3   R'   R1   R7   (   R   R6   (    (    s%   /usr/lib/python2.5/idlelib/tabpage.pyt
   RemovePageK   s    

	&N(	   R   R   R   R   t   NoneR7   R3   R*   RE   (    (    (    s%   /usr/lib/python2.5/idlelib/tabpage.pyR      s   		t   __main__R+   t   Foobart   Bazt   expandt   fillR/   R9   t   FooR	   i   t   Bars   Add PageR:   c           C   s   t  i t i    S(    (   t   tabPageR*   t   entryPgNameR8   (    (    (    s%   /usr/lib/python2.5/idlelib/tabpage.pyt   <lambda>h   s    s   Remove Pagec           C   s   t  i t i    S(    (   RN   RE   RO   R8   (    (    (    s%   /usr/lib/python2.5/idlelib/tabpage.pyRP   j   s    s   name of page to add/remove:R   i   N(   R   t   Tkintert	   ExceptionR   R   R   R   R   R   t   Tkt   rootRN   R   t   TRUEt   BOTHt   LabelR)   t   EntryRO   t   Buttont	   buttonAddt   buttonRemovet   labelPgNameR7   t   mainloop(    (    (    s%   /usr/lib/python2.5/idlelib/tabpage.pys   <module>   s0   
I	''!
