SILENT KILLERPanel

Current Path: > > opt > alt > python35 > lib64 > python3.5 > idlelib > > __pycache__


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //opt/alt/python35/lib64/python3.5/idlelib//__pycache__

NameTypeSizeLast ModifiedActions
AutoComplete.cpython-35.opt-1.pyc File 7687 bytes May 31 2024 13:51:47.
AutoComplete.cpython-35.opt-2.pyc File 5986 bytes May 31 2024 13:51:29.
AutoComplete.cpython-35.pyc File 7687 bytes May 31 2024 13:51:52.
AutoCompleteWindow.cpython-35.opt-1.pyc File 11462 bytes May 31 2024 13:51:47.
AutoCompleteWindow.cpython-35.opt-2.pyc File 10708 bytes May 31 2024 13:51:29.
AutoCompleteWindow.cpython-35.pyc File 11518 bytes May 31 2024 13:51:52.
AutoExpand.cpython-35.opt-1.pyc File 3168 bytes May 31 2024 13:51:47.
AutoExpand.cpython-35.opt-2.pyc File 2378 bytes May 31 2024 13:51:29.
AutoExpand.cpython-35.pyc File 3168 bytes May 31 2024 13:51:52.
Bindings.cpython-35.opt-1.pyc File 3225 bytes May 31 2024 13:51:47.
Bindings.cpython-35.opt-2.pyc File 2744 bytes May 31 2024 13:51:29.
Bindings.cpython-35.pyc File 3225 bytes May 31 2024 13:51:52.
CallTipWindow.cpython-35.opt-1.pyc File 5361 bytes May 31 2024 13:51:47.
CallTipWindow.cpython-35.opt-2.pyc File 5061 bytes May 31 2024 13:51:29.
CallTipWindow.cpython-35.pyc File 5361 bytes May 31 2024 13:51:52.
CallTips.cpython-35.opt-1.pyc File 5921 bytes May 31 2024 13:51:47.
CallTips.cpython-35.opt-2.pyc File 4279 bytes May 31 2024 13:51:29.
CallTips.cpython-35.pyc File 5921 bytes May 31 2024 13:51:52.
ClassBrowser.cpython-35.opt-1.pyc File 8554 bytes May 31 2024 13:51:47.
ClassBrowser.cpython-35.opt-2.pyc File 8062 bytes May 31 2024 13:51:29.
ClassBrowser.cpython-35.pyc File 8554 bytes May 31 2024 13:51:52.
CodeContext.cpython-35.opt-1.pyc File 6126 bytes May 31 2024 13:51:47.
CodeContext.cpython-35.opt-2.pyc File 4990 bytes May 31 2024 13:51:29.
CodeContext.cpython-35.pyc File 6167 bytes May 31 2024 13:51:52.
ColorDelegator.cpython-35.opt-1.pyc File 8567 bytes May 31 2024 13:51:47.
ColorDelegator.cpython-35.opt-2.pyc File 8404 bytes May 31 2024 13:51:29.
ColorDelegator.cpython-35.pyc File 8567 bytes May 31 2024 13:51:52.
Debugger.cpython-35.opt-1.pyc File 15576 bytes May 31 2024 13:51:47.
Debugger.cpython-35.opt-2.pyc File 15417 bytes May 31 2024 13:51:29.
Debugger.cpython-35.pyc File 15576 bytes May 31 2024 13:51:52.
Delegator.cpython-35.opt-1.pyc File 1344 bytes May 31 2024 13:51:47.
Delegator.cpython-35.opt-2.pyc File 1236 bytes May 31 2024 13:51:29.
Delegator.cpython-35.pyc File 1344 bytes May 31 2024 13:51:52.
EditorWindow.cpython-35.opt-1.pyc File 52024 bytes May 31 2024 13:51:47.
EditorWindow.cpython-35.opt-2.pyc File 50741 bytes May 31 2024 13:51:29.
EditorWindow.cpython-35.pyc File 52120 bytes May 31 2024 13:51:52.
FileList.cpython-35.opt-1.pyc File 3580 bytes May 31 2024 13:51:47.
FileList.cpython-35.opt-2.pyc File 3572 bytes May 31 2024 13:51:29.
FileList.cpython-35.pyc File 3610 bytes May 31 2024 13:51:52.
FormatParagraph.cpython-35.opt-1.pyc File 6355 bytes May 31 2024 13:51:47.
FormatParagraph.cpython-35.opt-2.pyc File 4465 bytes May 31 2024 13:51:29.
FormatParagraph.cpython-35.pyc File 6355 bytes May 31 2024 13:51:52.
GrepDialog.cpython-35.opt-1.pyc File 5641 bytes May 31 2024 13:51:47.
GrepDialog.cpython-35.opt-2.pyc File 5633 bytes May 31 2024 13:51:29.
GrepDialog.cpython-35.pyc File 5641 bytes May 31 2024 13:51:52.
HyperParser.cpython-35.opt-1.pyc File 7400 bytes May 31 2024 13:51:47.
HyperParser.cpython-35.opt-2.pyc File 6083 bytes May 31 2024 13:51:29.
HyperParser.cpython-35.pyc File 7400 bytes May 31 2024 13:51:52.
IOBinding.cpython-35.opt-1.pyc File 15172 bytes May 31 2024 13:51:47.
IOBinding.cpython-35.opt-2.pyc File 14744 bytes May 31 2024 13:51:29.
IOBinding.cpython-35.pyc File 15172 bytes May 31 2024 13:51:52.
IdleHistory.cpython-35.opt-1.pyc File 3679 bytes May 31 2024 13:51:47.
IdleHistory.cpython-35.opt-2.pyc File 2442 bytes May 31 2024 13:51:29.
IdleHistory.cpython-35.pyc File 3679 bytes May 31 2024 13:51:52.
MultiCall.cpython-35.opt-1.pyc File 16475 bytes May 31 2024 13:51:47.
MultiCall.cpython-35.opt-2.pyc File 14100 bytes May 31 2024 13:51:29.
MultiCall.cpython-35.pyc File 16540 bytes May 31 2024 13:51:52.
MultiStatusBar.cpython-35.opt-1.pyc File 1935 bytes May 31 2024 13:51:47.
MultiStatusBar.cpython-35.opt-2.pyc File 1927 bytes May 31 2024 13:51:29.
MultiStatusBar.cpython-35.pyc File 1935 bytes May 31 2024 13:51:52.
ObjectBrowser.cpython-35.opt-1.pyc File 5512 bytes May 31 2024 13:51:47.
ObjectBrowser.cpython-35.opt-2.pyc File 5504 bytes May 31 2024 13:51:29.
ObjectBrowser.cpython-35.pyc File 5512 bytes May 31 2024 13:51:52.
OutputWindow.cpython-35.opt-1.pyc File 4523 bytes May 31 2024 13:51:47.
OutputWindow.cpython-35.opt-2.pyc File 4340 bytes May 31 2024 13:51:29.
OutputWindow.cpython-35.pyc File 4523 bytes May 31 2024 13:51:52.
ParenMatch.cpython-35.opt-1.pyc File 6450 bytes May 31 2024 13:51:47.
ParenMatch.cpython-35.opt-2.pyc File 5015 bytes May 31 2024 13:51:29.
ParenMatch.cpython-35.pyc File 6450 bytes May 31 2024 13:51:52.
PathBrowser.cpython-35.opt-1.pyc File 4106 bytes May 31 2024 13:51:47.
PathBrowser.cpython-35.opt-2.pyc File 3957 bytes May 31 2024 13:51:29.
PathBrowser.cpython-35.pyc File 4106 bytes May 31 2024 13:51:52.
Percolator.cpython-35.opt-1.pyc File 3911 bytes May 31 2024 13:51:47.
Percolator.cpython-35.opt-2.pyc File 3903 bytes May 31 2024 13:51:29.
Percolator.cpython-35.pyc File 4084 bytes May 31 2024 13:51:52.
PyParse.cpython-35.opt-1.pyc File 10967 bytes May 31 2024 13:51:47.
PyParse.cpython-35.opt-2.pyc File 10085 bytes May 31 2024 13:51:30.
PyParse.cpython-35.pyc File 11409 bytes May 31 2024 13:51:52.
PyShell.cpython-35.opt-1.pyc File 48124 bytes May 31 2024 13:51:47.
PyShell.cpython-35.opt-2.pyc File 45535 bytes May 31 2024 13:51:30.
PyShell.cpython-35.pyc File 48263 bytes May 31 2024 13:51:52.
RemoteDebugger.cpython-35.opt-1.pyc File 14510 bytes May 31 2024 13:51:47.
RemoteDebugger.cpython-35.opt-2.pyc File 12109 bytes May 31 2024 13:51:30.
RemoteDebugger.cpython-35.pyc File 14652 bytes May 31 2024 13:51:52.
RemoteObjectBrowser.cpython-35.opt-1.pyc File 2009 bytes May 31 2024 13:51:47.
RemoteObjectBrowser.cpython-35.opt-2.pyc File 2001 bytes May 31 2024 13:51:30.
RemoteObjectBrowser.cpython-35.pyc File 2009 bytes May 31 2024 13:51:52.
ReplaceDialog.cpython-35.opt-1.pyc File 7645 bytes May 31 2024 13:51:47.
ReplaceDialog.cpython-35.opt-2.pyc File 6961 bytes May 31 2024 13:51:30.
ReplaceDialog.cpython-35.pyc File 7645 bytes May 31 2024 13:51:52.
RstripExtension.cpython-35.opt-1.pyc File 1353 bytes May 31 2024 13:51:47.
RstripExtension.cpython-35.opt-2.pyc File 1265 bytes May 31 2024 13:51:30.
RstripExtension.cpython-35.pyc File 1353 bytes May 31 2024 13:51:52.
ScriptBinding.cpython-35.opt-1.pyc File 7066 bytes May 31 2024 13:51:47.
ScriptBinding.cpython-35.opt-2.pyc File 5675 bytes May 31 2024 13:51:30.
ScriptBinding.cpython-35.pyc File 7066 bytes May 31 2024 13:51:52.
ScrolledList.cpython-35.opt-1.pyc File 5759 bytes May 31 2024 13:51:47.
ScrolledList.cpython-35.opt-2.pyc File 5751 bytes May 31 2024 13:51:30.
ScrolledList.cpython-35.pyc File 5759 bytes May 31 2024 13:51:52.
SearchDialog.cpython-35.opt-1.pyc File 3782 bytes May 31 2024 13:51:47.
SearchDialog.cpython-35.opt-2.pyc File 3522 bytes May 31 2024 13:51:30.
SearchDialog.cpython-35.pyc File 3782 bytes May 31 2024 13:51:52.
SearchDialogBase.cpython-35.opt-1.pyc File 7695 bytes May 31 2024 13:51:47.
SearchDialogBase.cpython-35.opt-2.pyc File 4987 bytes May 31 2024 13:51:30.
SearchDialogBase.cpython-35.pyc File 7695 bytes May 31 2024 13:51:52.
SearchEngine.cpython-35.opt-1.pyc File 7413 bytes May 31 2024 13:51:47.
SearchEngine.cpython-35.opt-2.pyc File 5751 bytes May 31 2024 13:51:30.
SearchEngine.cpython-35.pyc File 7413 bytes May 31 2024 13:51:52.
StackViewer.cpython-35.opt-1.pyc File 5592 bytes May 31 2024 13:51:47.
StackViewer.cpython-35.opt-2.pyc File 5584 bytes May 31 2024 13:51:30.
StackViewer.cpython-35.pyc File 5592 bytes May 31 2024 13:51:52.
ToolTip.cpython-35.opt-1.pyc File 4043 bytes May 31 2024 13:51:47.
ToolTip.cpython-35.opt-2.pyc File 4035 bytes May 31 2024 13:51:30.
ToolTip.cpython-35.pyc File 4043 bytes May 31 2024 13:51:52.
TreeWidget.cpython-35.opt-1.pyc File 15618 bytes May 31 2024 13:51:47.
TreeWidget.cpython-35.opt-2.pyc File 14833 bytes May 31 2024 13:51:30.
TreeWidget.cpython-35.pyc File 15618 bytes May 31 2024 13:51:52.
UndoDelegator.cpython-35.opt-1.pyc File 11891 bytes May 31 2024 13:51:47.
UndoDelegator.cpython-35.opt-2.pyc File 11883 bytes May 31 2024 13:51:30.
UndoDelegator.cpython-35.pyc File 11891 bytes May 31 2024 13:51:52.
WidgetRedirector.cpython-35.opt-1.pyc File 7120 bytes May 31 2024 13:51:47.
WidgetRedirector.cpython-35.opt-2.pyc File 3671 bytes May 31 2024 13:51:30.
WidgetRedirector.cpython-35.pyc File 7120 bytes May 31 2024 13:51:52.
WindowList.cpython-35.opt-1.pyc File 3231 bytes May 31 2024 13:51:47.
WindowList.cpython-35.opt-2.pyc File 3223 bytes May 31 2024 13:51:30.
WindowList.cpython-35.pyc File 3231 bytes May 31 2024 13:51:52.
ZoomHeight.cpython-35.opt-1.pyc File 1402 bytes May 31 2024 13:51:47.
ZoomHeight.cpython-35.opt-2.pyc File 1394 bytes May 31 2024 13:51:30.
ZoomHeight.cpython-35.pyc File 1402 bytes May 31 2024 13:51:52.
__init__.cpython-35.opt-1.pyc File 452 bytes May 31 2024 13:51:47.
__init__.cpython-35.opt-2.pyc File 141 bytes May 31 2024 13:51:30.
__init__.cpython-35.pyc File 452 bytes May 31 2024 13:51:52.
__main__.cpython-35.opt-1.pyc File 279 bytes May 31 2024 13:51:47.
__main__.cpython-35.opt-2.pyc File 198 bytes May 31 2024 13:51:30.
__main__.cpython-35.pyc File 279 bytes May 31 2024 13:51:52.
aboutDialog.cpython-35.opt-1.pyc File 6077 bytes May 31 2024 13:51:47.
aboutDialog.cpython-35.opt-2.pyc File 5906 bytes May 31 2024 13:51:30.
aboutDialog.cpython-35.pyc File 6077 bytes May 31 2024 13:51:52.
configDialog.cpython-35.opt-1.pyc File 49329 bytes May 31 2024 13:51:47.
configDialog.cpython-35.opt-2.pyc File 46576 bytes May 31 2024 13:51:30.
configDialog.cpython-35.pyc File 49329 bytes May 31 2024 13:51:52.
configHandler.cpython-35.opt-1.pyc File 26882 bytes May 31 2024 13:51:47.
configHandler.cpython-35.opt-2.pyc File 18679 bytes May 31 2024 13:51:30.
configHandler.cpython-35.pyc File 26882 bytes May 31 2024 13:51:52.
configHelpSourceEdit.cpython-35.opt-1.pyc File 5905 bytes May 31 2024 13:51:47.
configHelpSourceEdit.cpython-35.opt-2.pyc File 5398 bytes May 31 2024 13:51:30.
configHelpSourceEdit.cpython-35.pyc File 5905 bytes May 31 2024 13:51:52.
configSectionNameDialog.cpython-35.opt-1.pyc File 3932 bytes May 31 2024 13:51:47.
configSectionNameDialog.cpython-35.opt-2.pyc File 3294 bytes May 31 2024 13:51:30.
configSectionNameDialog.cpython-35.pyc File 3932 bytes May 31 2024 13:51:52.
dynOptionMenuWidget.cpython-35.opt-1.pyc File 2428 bytes May 31 2024 13:51:47.
dynOptionMenuWidget.cpython-35.opt-2.pyc File 2036 bytes May 31 2024 13:51:30.
dynOptionMenuWidget.cpython-35.pyc File 2428 bytes May 31 2024 13:51:52.
help.cpython-35.opt-1.pyc File 10980 bytes May 31 2024 13:51:47.
help.cpython-35.opt-2.pyc File 8229 bytes May 31 2024 13:51:30.
help.cpython-35.pyc File 10980 bytes May 31 2024 13:51:52.
idle.cpython-35.opt-1.pyc File 372 bytes May 31 2024 13:51:47.
idle.cpython-35.opt-2.pyc File 364 bytes May 31 2024 13:51:30.
idle.cpython-35.pyc File 372 bytes May 31 2024 13:51:52.
idlever.cpython-35.opt-1.pyc File 551 bytes May 31 2024 13:51:47.
idlever.cpython-35.opt-2.pyc File 320 bytes May 31 2024 13:51:30.
idlever.cpython-35.pyc File 551 bytes May 31 2024 13:51:52.
keybindingDialog.cpython-35.opt-1.pyc File 10963 bytes May 31 2024 13:51:47.
keybindingDialog.cpython-35.opt-2.pyc File 10003 bytes May 31 2024 13:51:30.
keybindingDialog.cpython-35.pyc File 10963 bytes May 31 2024 13:51:52.
macosxSupport.cpython-35.opt-1.pyc File 7170 bytes May 31 2024 13:51:47.
macosxSupport.cpython-35.opt-2.pyc File 5255 bytes May 31 2024 13:51:30.
macosxSupport.cpython-35.pyc File 7285 bytes May 31 2024 13:51:52.
rpc.cpython-35.opt-1.pyc File 20833 bytes May 31 2024 13:51:47.
rpc.cpython-35.opt-2.pyc File 17434 bytes May 31 2024 13:51:30.
rpc.cpython-35.pyc File 20936 bytes May 31 2024 13:51:52.
run.cpython-35.opt-1.pyc File 12742 bytes May 31 2024 13:51:47.
run.cpython-35.opt-2.pyc File 10814 bytes May 31 2024 13:51:30.
run.cpython-35.pyc File 12792 bytes May 31 2024 13:51:52.
tabbedpages.cpython-35.opt-1.pyc File 17076 bytes May 31 2024 13:51:47.
tabbedpages.cpython-35.opt-2.pyc File 12070 bytes May 31 2024 13:51:30.
tabbedpages.cpython-35.pyc File 17076 bytes May 31 2024 13:51:52.
textView.cpython-35.opt-1.pyc File 3463 bytes May 31 2024 13:51:47.
textView.cpython-35.opt-2.pyc File 3016 bytes May 31 2024 13:51:30.
textView.cpython-35.pyc File 3463 bytes May 31 2024 13:51:52.

Reading File: //opt/alt/python35/lib64/python3.5/idlelib//__pycache__/tabbedpages.cpython-35.opt-1.pyc



��Yf�G�@s�dZddlTGdd�de�ZGdd�de�ZGdd�de�ZGd	d
�d
e�Zdd�Ze	d
kr�ddl
mZee�dS)aAn implementation of tabbed pages using only standard Tkinter.

Originally developed for use in IDLE. Based on tabpage.py.

Classes exported:
TabbedPageSet -- A Tkinter implementation of a tabbed-page widget.
TabSet -- A widget containing tabs (buttons) in one or more rows.

�)�*c@seZdZdS)�InvalidNameErrorN)�__name__�
__module__�__qualname__�rr�8/opt/alt/python35/lib64/python3.5/idlelib/tabbedpages.pyrsrc@seZdZdS)�AlreadyExistsErrorN)rrrrrrrr	
sr	c@s�eZdZdZdddddd�Zdd	�Zd
d�Zdd
�Zdd�Zdd�Z	dd�Z
Gdd�de�ZdS)�TabSetzjA widget containing tabs (buttons) in one or more rows.

    Only one tab may be selected at a time.

    N��FcKs�tj|||�||_||_||_||_||_i|_i|_|rjt	|�|_
n	g|_
d|_g|_t|dddddt
d|jd��|_|jjdtd	td
d�|j�dS)aConstructor arguments:

        select_command -- A callable which will be called when a tab is
        selected. It is called with the name of the selected tab as an
        argument.

        tabs -- A list of strings, the names of the tabs. Should be specified in
        the desired tab order. The first tab will be the default and first
        active tab. If tabs is None or empty, the TabSet will be initialized
        empty.

        n_rows -- Number of rows of tabs to be shown. If n_rows <= 0 or is
        None, then the number of rows will be decided by TabSet. See
        _arrange_tabs() for details.

        max_tabs_per_row -- Used for deciding how many rows of tabs are needed,
        when the number of rows is not constant. See _arrange_tabs() for
        details.

        N�height��borderwidthr�relief�
background�side�fill�expandF)�Frame�__init__�select_command�n_rows�max_tabs_per_row�expand_tabs�page_set�_tabs�_tab2row�list�
_tab_names�
_selected_tab�	_tab_rows�FLAT�cgetZ
padding_frame�pack�TOP�X�
_arrange_tabs)�selfrrZtabsrrr�kwrrrrs$										zTabSet.__init__cCsS|std|��||jkr5td|��|jj|�|j�dS)z.Add a new tab with the name given in tab_name.zInvalid Tab name: '%s'zTab named '%s' already existsN)rrr	�appendr')r(�tab_namerrr�add_tabDszTabSet.add_tabcCs=||jkrtd|��|jj|�|j�dS)zRemove the tab named <tab_name>zNo such Tab: '%sN)r�KeyError�remover')r(r+rrr�
remove_tabNszTabSet.remove_tabcCs�||jkrdS|dk	r>||jkr>td|��|jdk	ra|j|jj�d|_|dk	r�||_|j|}|j�|j|}|j�|jdtdt	dd�dS)z1Show the tab named <tab_name> as the selected oneNzNo such Tab: '%srrrr)
r rr-�
set_normal�set_selectedr�pack_forgetr$r%r&)r(r+�tab�tab_rowrrr�set_selected_tabVs		



zTabSet.set_selected_tabcCs�|s
dSt|�}|jdtdtdd�|jj|�xx|D]p}tj||j||�}|r�|jdt	dtdd�n|jdt	�||j
|<||j|<qIWd|_dS)NrrrrT)
rr$r%r&r!r*r
�	TabButtonr�LEFTrr�is_last_in_row)r(�	tab_namesrr4r+r3rrr�_add_tab_rowls

zTabSet._add_tab_rowcCs6x&|jr(|jj�}|j�qWi|_dS)N)r!�pop�destroyr)r(r4rrr�_reset_tab_rows�szTabSet._reset_tab_rowscCsBx$|jr&|jj�dj�qW|j�|js>dS|jdk	rh|jdkrh|j}nt|j�d|jd}|jp�|dk}d}xht	|�D]Z}t|j�|d||d}|j|||�}||7}|j
||�q�W|j}|jd�||jkr>|j|�dS)aW
        Arrange the tabs in rows, in the order in which they were added.

        If n_rows >= 1, this will be the number of rows used. Otherwise the
        number of rows will be calculated according to the number of tabs and
        max_tabs_per_row. In this case, the number of rows may change when
        adding/removing tabs.

        rNr)
r�popitemr<r=rr�lenrr�ranger:r r5)r(rr�iZ	row_indexZn_tabsr9�selectedrrrr'�s&
	#
	
zTabSet._arrange_tabsc@sgeZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
dd�Z
dS)zTabSet.TabButtonzA simple tab-like widget.rcCs�tj||d|jdt�||_||_||_d|_t|d|d|j	dddd	d
t
dt
dd
dddd
�	|_|jjdt
dtdd�|j�|j�dS)z�Constructor arguments:

            name -- The tab's name, which will appear in its button.

            select_command -- The command to be called upon selection of the
            tab. It is called with the tab's name as an argument.

            rrF�text�command�padxr�padyrZ	takefocusZindicatoronZhighlightthicknessrZselectcolor�rrrTN)rr�bw�RAISED�namer�tab_setr8ZRadiobutton�
_select_eventZFALSEZbuttonr$r7r&�_init_masksr0)r(rJrr4rKrrrr�s					
zTabSet.TabButton.__init__cGs|j|j�dS)asEvent handler for tab selection.

            With TabbedPageSet, this calls TabbedPageSet.change_page, so that
            selecting a tab changes the page.

            Note that this does -not- call set_selected -- it will be called by
            TabSet.set_selected_tab, which should be called when whatever the
            tabs are related to changes.

            N)rrJ)r(�argsrrrrL�szTabSet.TabButton._select_eventcCs|jdd�dS)zAssume selected lookrBTN)�_place_masks)r(rrrr1�szTabSet.TabButton.set_selectedcCs|jdd�dS)zAssume normal lookrBFN)rO)r(rrrr0�szTabSet.TabButton.set_normalc
Cs|jj}|jjd�}t|dddtd|�|_t|dddtd|�|_t|jd|jdt	�|j_
|jj
jddd|jdd|jd	|jd
�t|dddtd|�|_t|jd|jdt	�|j_
dS)Nrrrr�x�y�widthrr
�)rKr�pages_framer#rr"�mask�msklrHrIZml�place�mskr�mr)r(rrrrrrM�szTabSet.TabButton._init_masksFcCs�|j}|r||j7}|jjd|ddddddddd	dd
dddd|�	|jjd|ddd|jddddd	dd
|jddd|�	|jj}|r�|js�|j�|j�|j�|j�kr�||j8}|j	jd|ddddddddd	dd
|jddd|�	|j	j
jd|jd|jd
d
|jd||jd
�|jj�dS)NZin_ZrelxgrPrZrelyg�?rQZrelwidthrRZ	relheightr
r)rHrUrWrVrKrr8Zwinfo_rootxZwinfo_widthrXrY�lower)r(rBr
rrrrrO�s4	




#zTabSet.TabButton._place_masksN)rrr�__doc__rHrrLr1r0rMrOrrrrr6�sr6)
rrrr[rr,r/r5r:r=r'rr6rrrrr
s	,
(r
c@s�eZdZdZGdd�de�ZGdd�de�ZGdd�de�ZGdd	�d	e�Zd
eddd
dd�Z	dd�Z
dd�Zdd�Zd
S)�
TabbedPageSetajA Tkinter tabbed-pane widget.

    Constains set of 'pages' (or 'panes') with tabs above for selecting which
    page is displayed. Only one page will be displayed at a time.

    Pages may be accessed through the 'pages' attribute, which is a dictionary
    of pages, using the name given as the key. A page is an instance of a
    subclass of Tk's Frame widget.

    The page widgets will be created (and destroyed when required) by the
    TabbedPageSet. Do not call the page's pack/place/grid/destroy methods.

    Pages may be added or removed at any time using the add_page() and
    remove_page() methods.

    c@s@eZdZdZdZdd�Zdd�Zdd�Zd	S)
zTabbedPageSet.Pagez{Abstract base class for TabbedPageSet's pages.

        Subclasses must override the _show() and _hide() methods.

        FcCst|dddt�|_dS)Nrrr)rrI�frame)r(rrrrr9szTabbedPageSet.Page.__init__cCs
t�dS)N)�NotImplementedError)r(rrr�_show<szTabbedPageSet.Page._showcCs
t�dS)N)r^)r(rrr�_hide?szTabbedPageSet.Page._hideN)rrrr[�	uses_gridrr_r`rrrr�Page1s
rbc@s4eZdZdZdZdd�Zdd�ZdS)zTabbedPageSet.PageRemovezAPage class using the grid placement manager's "remove" mechanism.TcCs#|jjdddddt�dS)N�rowr�column�sticky)r]�grid�NSEW)r(rrrr_FszTabbedPageSet.PageRemove._showcCs|jj�dS)N)r]Zgrid_remove)r(rrrr`IszTabbedPageSet.PageRemove._hideN)rrrr[rar_r`rrrr�
PageRemoveBsrhcsFeZdZdZdZ�fdd�Zdd�Zdd�Z�S)	zTabbedPageSet.PageLiftz?Page class using the grid placement manager's "lift" mechanism.TcsIttj|�j|�|jjdddddt�|jj�dS)Nrcrrdre)�superr\�PageLiftrr]rfrgrZ)r(r)�	__class__rrrPszTabbedPageSet.PageLift.__init__cCs|jj�dS)N)r]Zlift)r(rrrr_UszTabbedPageSet.PageLift._showcCs|jj�dS)N)r]rZ)r(rrrr`XszTabbedPageSet.PageLift._hide)rrrr[rarr_r`rr)rkrrjLs
rjc@s.eZdZdZdd�Zdd�ZdS)zTabbedPageSet.PagePackForgetzAPage class using the pack placement manager's "forget" mechanism.cCs|jjdtdd�dS)NrrT)r]r$�BOTH)r(rrrr_]sz"TabbedPageSet.PagePackForget._showcCs|jj�dS)N)r]r2)r(rrrr``sz"TabbedPageSet.PagePackForget._hideN)rrrr[r_r`rrrr�PagePackForget[srmNrrFc		KsJtj|||�||_i|_g|_d|_d|_|jddd�|jddd�t|�|_	|j	j
dddddt�|jjr�|j	jddd�|j	jddd�t
||jd|d	|d
|�|_|rx|D]}|j|�qW|jj
dddddt�|j|j�dS)a�Constructor arguments:

        page_names -- A list of strings, each will be the dictionary key to a
        page's widget, and the name displayed on the page's tab. Should be
        specified in the desired page order. The first page will be the default
        and first active page. If page_names is None or empty, the
        TabbedPageSet will be initialized empty.

        n_rows, max_tabs_per_row -- Parameters for the TabSet which will
        manage the tabs. See TabSet's docs for details.

        page_class -- Pages can be shown/hidden using three mechanisms:

        * PageLift - All pages will be rendered one on top of the other. When
          a page is selected, it will be brought to the top, thus hiding all
          other pages. Using this method, the TabbedPageSet will not be resized
          when pages are switched. (It may still be resized when pages are
          added/removed.)

        * PageRemove - When a page is selected, the currently showing page is
          hidden, and the new page shown in its place. Using this method, the
          TabbedPageSet may resize when pages are changed.

        * PagePackForget - This mechanism uses the pack placement manager.
          When a page is shown it is packed, and when it is hidden it is
          unpacked (i.e. pack_forget). This mechanism may also cause the
          TabbedPageSet to resize when the page is changed.

        NrZweightrrcrdrerrr)rr�
page_class�pages�_pages_order�
_current_page�
_default_pageZcolumnconfigureZrowconfigurerTrfrgrar
�change_page�_tab_set�add_page)	r(�parent�
page_namesrnrrrr)rJrrrrcs* 					
zTabbedPageSet.__init__cCs�|std|��||jkr5td|��|j|j�|j|<|jj|�|jj|�t	|j�dkr�||_
|j|�dS)z0Add a new page with the name given in page_name.zInvalid TabPage name: '%s'z!TabPage named '%s' already existsrN)rror	rnrTrpr*rtr,r?rrrs)r(�	page_namerrrru�s
	zTabbedPageSet.add_pagecCs�||jkrtd|��|jj|�t|j�dkrf||jkro|jd|_n	d|_||jkr�|j|j�|jj	|�|jj
|�}|jj�dS)z2Destroy the page whose name is given in page_name.zNo such TabPage: '%srN)
ror-rpr.r?rrrqrsrtr/r;r]r<)r(rxZpagerrr�remove_page�s	zTabbedPageSet.remove_pagecCs�|j|krdS|dk	r>||jkr>td|��|jdk	ra|j|jj�d|_|dk	r�||_|j|j�|jj|�dS)z/Show the page whose name is given in page_name.NzNo such TabPage: '%s')rqror-r`r_rtr5)r(rxrrrrs�s		zTabbedPageSet.change_page)
rrrr[�objectrbrhrjrmrruryrsrrrrr\ s
;r\c	s�t�}ttttjd|j����\}}}}|jd||df�|jd�t|dddgdd	d
d���j	dt
d
tdt�t
�jdjdddd�j	�t
�jdjdddd�j	�t
�jdjdd�j	�t|��t|ddd��fdd��}t|ddd��fdd��}t
|dd�}|j	dddd�|j	dddd�|j	dd��j	dd�|j�dS)Nz[x+]z+%d+%d�zTest tabbed pagesrwZFoobarZBazrrrFrrrrCZFoorF�ZBarzAdd PagerDcs�j�j��S)N)ru�getr)�entryPgName�tabPagerr�<lambda>�sz_tabbed_pages.<locals>.<lambda>zRemove Pagecs�j�j��S)N)ryr}r)r~rrrr��szname of page to add/remove:rEr)ZTkr�map�int�re�splitZgeometry�titler\r$r%ZTRUErlZLabelror]ZEntryZButtonZmainloop)	rv�rootrRr
rPrQZ	buttonAddZbuttonRemoveZlabelPgNamer)r~rr�
_tabbed_pages�s*	3
	&& r��__main__)�runN)r[Ztkinter�	Exceptionrr	rr
r\r�rZidlelib.idle_test.htestr�rrrr�<module>	s
��

SILENT KILLER Tool