????

Your IP : 3.145.50.71


Current Path : /usr/lib64/python3.9/site-packages/__pycache__/
Upload File :
Current File : //usr/lib64/python3.9/site-packages/__pycache__/snack.cpython-39.opt-1.pyc

a

�
b�y�@sdZddlmZmZmZddlZddlZddlZddlmZm	Z	m
Z
mZmZm
Z
mZdZdZdZdZd	Zd
diZGdd
�d
�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�de�ZGd d!�d!e�Zej ej!ej"ej#ej$ej%ej&ej'ej(ej)ej*ej+ej,ej-ej.ej/ej0ej1ej2e3d"�d#�Z4e5e4�6��D]Z7e7e4e4e7<�q�d$d%�ej8ej9D�D]\Z:Z;e:e4e;<e;e4e:<�q�Gd&d'�d'�Z<Gd(d)�d)�Z=ej>ej?ej@ejAejBejCejDejEejFejGejHejIejJejKejLejMejNejOejPejQejRejSejTd*�ZUGd+d,�d,�ZVdLd.d/�ZWGd0d1�d1e�ZXGd2d3�d3e=�ZYGd4d5�d5e=�ZZGd6d7�d7e=�Z[Gd8d9�d9e[�Z\Gd:d;�d;e�Z]dMd>d?�Z^d@dAgd=dddfdBdC�Z_dDd=dEd@dAgdfdFdG�Z`GdHdI�dIe=�ZadJdK�ZbdS)Na�
This module provides the NEWT Windowing toolkit API for Python
This is a lightweight text-mode windowing library, based on slang.

Classes:

 - Widget  
 - Button  
 - CompactButton
 - Checkbox
 - SingleRadioButton
 - Listbox
 - Textbox
 - TextboxReflowed
 - Label
 - Scale
 - Entry
 - Form
 - Grid
 - SnackScreen
 - RadioGroup
 - RadioBar
 - ButtonBar
 - GridFormHelp
 - GridForm
 - CheckboxTree
 - Clistbox

Functions:

 - ListboxChoiceWindow
 - ButtonChoiceWindow
 - EntryWindow
�)�absolute_import�print_function�unicode_literalsN)�
FLAG_DISABLED�	FLAGS_SET�FLAGS_RESET�FLAGS_TOGGLE�FD_READ�FD_WRITE�	FD_EXCEPT)���r)rr)rr)�r
)r
r�appendrc@s"eZdZdZddd�Zdd�ZdS)�Widgetz�Base class for NEWT toolkit - Do not use directly

    methods:

     - Widget(self)
     - setCallback(self, obj, data = None) : 
          The callback for when object activated.
          data is passed to obj.
    NcCs$|r|j�||�n|j�|�dS�N)�w�setCallback)�self�obj�data�r�+/usr/lib64/python3.9/site-packages/snack.pyrDszWidget.setCallbackcCst�dSr)�NotImplementedError�rrrr�__init__JszWidget.__init__)N)�__name__�
__module__�__qualname__�__doc__rrrrrrr:s	
rc@seZdZdZdd�ZdS)�ButtonzqBasic button class, takes button text as parameter

    method:

     - Button(self, text): returns a button
    cCst�|�|_dSr)�_snack�buttonr�r�textrrrrTszButton.__init__N�rrrrrrrrrrMsrc@seZdZdZdd�ZdS)�
CompactButtonz�Compact Button class (less frilly button decoration).

    methods:

     - CompactButton(self,text) : create button, with text.
    cCst�|�|_dSr)r Z
compactbuttonrr"rrrr^szCompactButton.__init__Nr$rrrrr%Wsr%c@s:eZdZdZdd�Zdd�Zdd�Zdd	�Zddd�Zd
S)�Checkboxa�A checkbox.

    methods:
    
      - Checkbox(self, text, isOn = 0) : text, and boolean as to default value
      - setValue(self)                 : set value
      - value(self, value)             : return checkbox value
      - selected(self)                 : returns boolean
      - setFlags(self, flag, sense)    : set flags

      flags:  FLAG_DISABLED, FLAGS_SET, FLAGS_RESET
    cCs|jjSr�rZ
checkboxValuerrrr�valuenszCheckbox.valuecCs|jjdkS�Nrr'rrrr�selectedqszCheckbox.selectedcCs|j�||�Sr)rZcheckboxSetFlags�r�flagZsenserrr�setFlagstszCheckbox.setFlagscCs|j�|�Sr)rZcheckboxSetValue)rr(rrr�setValuexszCheckbox.setValuercCst�||�|_dSr)r Zcheckboxr)rr#�isOnrrrr{szCheckbox.__init__N)r)	rrrrr(r*r-r.rrrrrr&asr&c@s"eZdZdZdd�Zddd�ZdS)	�SingleRadioButtonz�Single Radio Button.

    methods:
    
     -  SingleRadioButton(text, group, isOn = 0)  : create button
     -  selected(self)                            : returns bool, whether or not is selected.
    cCs|jj|jjkSr)r�keyZ
radioValuerrrrr*�szSingleRadioButton.selectedrcCs,|rt�||j|�|_nt�|d|�|_dSr)r Zradiobuttonr)rr#�groupr/rrrr�szSingleRadioButton.__init__N)r)rrrrr*rrrrrr0~sr0c@sZeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zddd�ZdS)�Listboxa�Listbox class.

    methods:

     - Listbox(self, height, scroll = 0, returnExit = 0, width = 0, showCursor = 0, multiple = 0, border = 0)
     - insert(self, text, item, before) : insert element; before = key to item to insert before, or None.
     - delete(self, item)               : delete item from list.
     - replace(self, text,item)         : Replace a given item's text
     - current(self)                    : returns currently selected item
     - getSelection(self)               : returns a list of selected items
     - setCurrent(self,i tem)           : select current.
     - clear(self)                      : clear listbox
    cCs$|j�|�}||j|<||j|<dSr)rZlistboxAddItem�key2item�item2key�rr#�itemr1rrrr�s
zListbox.appendcCs@|s|j�|d�}n|j�||j|�}||j|<||j|<dSr))r�listboxInsertItemr5r4)rr#r7�beforer1rrr�insert�s

zListbox.insertcCs,|j�|j|�|j|j|=|j|=dSr)r�listboxDeleteItemr5r4�rr7rrr�delete�szListbox.deletecCsL|j�||j|�}|j�|j|�|j|j|=||j|<||j|<dSr)rr8r5r;r4r6rrr�replace�s

zListbox.replacecCs|j|j��Sr)r4rZlistboxGetCurrentrrrr�current�szListbox.currentcCs,g}|j��}|D]}|�|j|�q|Sr)rZlistboxGetSelectionrr4�rZ	selection�listr1rrr�getSelection�s

zListbox.getSelectioncCs|j�|j|�dSr)rZlistboxSetCurrentr5r<rrr�
setCurrent�szListbox.setCurrentcCsi|_i|_|j��dSr)r4r5rZlistboxClearrrrr�clear�sz
Listbox.clearrcCs6t�||||||�|_i|_i|_|r2|j�|�dSr)r �listboxrr4r5ZlistboxSetWidth)r�height�scroll�
returnExit�widthZ
showCursorZmultipleZborderrrrr�s
zListbox.__init__N)rrrrrr)
rrrrrr:r=r>r?rBrCrDrrrrrr3�sr3c@s*eZdZdZdd�Zdd�Zd
dd�Zd	S)�TextboxaTextbox, container for text.

    methods:

     - Textbox(self, width, height, scroll = 0, wrap = 0): scroll, wrap are flags
                                   include scroll bars, or text wrap.
     - setText(text) : set text.
     - setHeight(height): set height.
    cCs|j�|�dSr)rZtextboxTextr"rrr�setText�szTextbox.setTextcCs|j�|�dSr)rZ
textboxHeight)rrFrrr�	setHeight�szTextbox.setHeightrcCst�|||||�|_dSr)r Ztextboxr)rrIrFr#rG�wraprrrr�szTextbox.__init__N)rr)rrrrrKrLrrrrrrJ�s
rJc@seZdZddd�ZdS)�TextboxReflowed��
rcCsNt||||�\}}}|dkr8||kr8t�||||d�nt�||||d�dS)Nrr
r)�reflowrJr)rrIr#�flexDown�flexUp�	maxHeightZnewtextrFrrrr�szTextboxReflowed.__init__N)rOrPr)rrrrrrrrrN�srNc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�Labelz�A Label (simple text).

    methods:

     - Label(self,text)   : create label
     - setText(self,text) : change text.
     - setColors(self, colorset) : change individual colors
    cCs|j�|�dSr)rZ	labelTextr"rrrrK�sz
Label.setTextcCst�|�|_dSr)r �labelrr"rrrr�szLabel.__init__cCs|j�|�dSr)rZlabelSetColors)r�colorsetrrr�	setColors�szLabel.setColorsN)rrrrrKrrXrrrrrU�srUc@s eZdZdZdd�Zdd�ZdS)�Scalez�A Scale (progress bar).

    methods:

     - Scale(self,width, total) : create scale; width: size on screen, fullamount: integer.
     - set(self,amount)         : set amount to integer.
    cCs|j�|�dSr)rZscaleSet)r�amountrrr�setsz	Scale.setcCst�||�|_dSr)r Zscaler)rrI�totalrrrrszScale.__init__N)rrrrr[rrrrrrYsrYc@s4eZdZdZdd�Zddd�Zdd�Zddd�Zd
S)�EntryaEntry widget.

    methods:

     - Entry(self, width, text = "", hidden = 0, password = 0, scroll = 1, returnExit = 0)
          constructor. hidden doesn't show text, password stars it out,
          scroll includes scroll bars;
          if returnExit is set, return from Form when exiting this element, else
           proceed to next entry widget.
     - value(self): return value.
     - set(text, cursorAtEnd = 1) : set the text
     - setFlags (flag, sense) : flags can be FLAG_DISABLED, FLAGS_SET, FLAGS_RESET, FLAGS_TOGGLE
    cCs|jjSr)rZ
entryValuerrrrr(szEntry.valuer
cCs|j�||�Sr)rZ
entrySetValue)rr#ZcursorAtEndrrrr[sz	Entry.setcCs|j�||�Sr)rZ
entrySetFlagsr+rrrr-"szEntry.setFlags�rcCst�||||||�|_dSr)r �entryr)rrIr#Zhidden�passwordrGrHrrrr%szEntry.__init__N)r
)r^rrr
r)rrrrr(r[r-rrrrrr]s

�r]� )ZF1ZF2ZF3ZF4ZF5ZF6ZF7ZF8ZF9ZF10ZF11ZF12ZESCZENTERZSUSPENDZ	BACKSPACEZDELETEZINSERTZRESIZEracCsg|]}t|�|f�qSr)�ord)�.0�crrr�
<listcomp>7�rec@sReZdZdZdd�Zdd�Zdd�Zdd	�Zddd�Zd
d�Z	dd�Z
dd�Zd
S)�Forma� Base Form class, from which Grid, etc. inherit

    methods:

     - Form(self, helpArg = None) : constructor. 
     - addHotKey(self, keyname) : keynames of form "F1" through "F12", "ESC"
     - add(self, widget) : Add a widget
     - run(self): run a  form, expecting input
     - draw(self): draw form.
     - setTimer(self, timer) : add a timer
     - watchFile(self, file, flags) : watch a named file
     - setCurrent (self, co): Set a given widget as the current focus
    cCs|j�t|�dSr)rZ	addhotkey�hotkeys�rZkeynamerrr�	addHotKeyIszForm.addHotKeycCspd|jvr$|j��D]}|�|�qd|jvrF|jD]}|�|�q4n&d|jvrl||j|jj<|j�|j�SdS)Nrh�gridmembersr)	�__dict__rh�keysrjrk�add�transrr1)r�widgetr1rrrrrnLs



zForm.addcCsb|j��\}}|tjkr"|j|S|tjkr0dS|tjkrD|j|S|tjkrVt	|St
d��dS)NZTIMERzEOF or IO error)r�runr ZFORM_EXIT_WIDGETroZFORM_EXIT_TIMERZFORM_EXIT_FDREADY�filemapZFORM_EXIT_HOTKEYrh�RuntimeError)r�what�whichrrrrqYs





zForm.runcCs|j��dSr)r�drawrrrrrves
z	Form.drawNcCs"i|_i|_t�|�|_||_dSr)rorrr �formr�helpArg)rrxrrrrisz
Form.__init__cCs|j�|j�dSr)rZ
setcurrent�r�corrrrCpszForm.setCurrentcCs|j�|�dSr)rZsettimer)rZtimerrrr�setTimerssz
Form.setTimercCs$||j|��<|j�|��|�dSr)rr�filenorZwatchfd)r�file�flagsrrr�	watchFilevszForm.watchFile)N)rrrrrjrnrqrvrrCr{rrrrrrg;s


rgc@s*eZdZdZdd�Zddd�Zdd	�Zd
S)�GridayGrid class.

    methods:

     - place(self,x,y): Return what is placed at (x,y)
     - setField(self, what, col, row, padding = (0, 0, 0, 0),
                anchorLeft = 0, anchorTop = 0, anchorRight = 0,
                anchorBottom = 0, growx = 0, growy = 0):
                used to add widget 'what' to grid.
     - Grid(self, *args): eg. g = Grid(2,3) for 2x3 grid
    cCs|j�||�Sr)�g�place�r�x�yrrrr��sz
Grid.place�rrrrrc
Cs�|j�|�d}|rtj}n
|r&tj}|r6|tjB}n|rD|tjB}d}|	rRtj}|
r`|tjB}d|j	vr�|j
�|||j
|||�S|j
�|||j||�SdS)Nrr�)
rkrr ZANCHOR_LEFTZANCHOR_RIGHTZ
ANCHOR_TOPZ
ANCHOR_BOTTOMZ
GRID_GROWXZ
GRID_GROWYrlr�Zsetfieldr)
rrt�col�row�padding�
anchorLeft�	anchorTop�anchorRight�anchorBottom�growx�growyZanchorFlagsZ	gridFlagsrrr�setField�s(


�z
Grid.setFieldcGstj|�|_g|_dSr)r �gridr�rk)r�argsrrrr�sz
Grid.__init__N)r�rrrrrr)rrrrr�r�rrrrrr�zs�
r�)ZROOTZBORDERZWINDOWZSHADOWZTITLEZBUTTONZ	ACTBUTTONZCHECKBOXZACTCHECKBOXZENTRYZLABELZLISTBOXZ
ACTLISTBOXZTEXTBOXZ
ACTTEXTBOXZHELPLINEZROOTTEXTZ
EMPTYSCALEZ	FULLSCALEZDISENTRYZ
COMPACTBUTTONZ
ACTSELLISTBOXZ
SELLISTBOXc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	d$dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zd%dd�Zd&dd�Zd d!�Zd"d#�ZdS)'�SnackScreena
A Screen;

    methods:

    - Screen(self) : constructor
    - finish(self)
    - resume(self)
    - suspend(self)
    - doHelpCallback(self,arg) call callback with arg
    - helpCallback(self,cb): Set help callback
    - suspendcallback(self,cb, data=None) : set callback. data=data to pass to cb.
    - openWindow(self,left, top, width, height, title): Open a window.
    - pushHelpLine(self,text): put help line on screen. Returns current help line if text=None
    - setColor(self, colorset, fg, bg): Set foreground and background colors;
            colorset = key from snack.colorsets,
            fg & bg = english color names defined by S-Lang
                (ref: S-Lang Library C Programmer's Guide section:
                8.4.4.  Setting Character Attributes)
    cCs&t��t��\|_|_|�d�dSr)r �init�sizerIrF�pushHelpLinerrrrr�szSnackScreen.__init__cCst��Sr)r �finishrrrrr��szSnackScreen.finishcCst��dSr)r �resumerrrrr��szSnackScreen.resumecCst��dSr)r �suspendrrrrr��szSnackScreen.suspendcCs|�||�dSr)�helpCb)r�argrrr�doHelpCallback�szSnackScreen.doHelpCallbackcCs||_t�|j�Sr)r�r Zhelpcallbackr�)r�cbrrr�helpCallback�szSnackScreen.helpCallbackNcCs|rt�||�St�|�Sr)r Zsuspendcallback)rr�rrrr�suspendCallback�szSnackScreen.suspendCallbackcCst�|||||�Sr)r Z
openwindow)r�left�toprIrF�titlerrr�
openWindow�szSnackScreen.openWindowcCs|st�d�St�|�SdS)Nz	*default*)r Zpushhelpliner"rrrr��s
zSnackScreen.pushHelpLinecCst��Sr)r Zpophelplinerrrr�popHelpLine�szSnackScreen.popHelpLinecCst�|||�Sr)r Zdrawroottext)rr�r�r#rrr�drawRootText�szSnackScreen.drawRootTextcCst�|||�Sr)r Zcenteredwindow)rrIrFr�rrr�centeredWindow�szSnackScreen.centeredWindowcCs(|r|rt�|j|||�St�|j|�Sr)r Zgridwrappedwindowr�)rr�r�r�r�rrr�gridWrappedWindowszSnackScreen.gridWrappedWindowTcCs|rt��St��Sr)r Z	popwindowZpopwindownorefresh)r�refreshrrr�	popWindowszSnackScreen.popWindowcCst��Sr)r r�rrrrr�szSnackScreen.refreshcCs,|tvrt�t|||�St�|||�SdSr)�	colorsetsr Zsetcolor)rrWZfg�bgrrr�setColorszSnackScreen.setColor)N)NN)T)rrrrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr��s"


r�rOcCst�||||�S)zR returns a tuple of the wrapped text, the actual width, and the actual height
    )r rQ)r#rIrRrSrrrrQsrQc@s*eZdZdZdd�Zd	dd�Zdd�ZdS)
�
RadioGroupz� Combo widget: Group of Radio buttons

    methods:

     - RadioGroup(self): constructor.
     - add(self,title, value, default = None): add a button. Returns button.
     - getSelection(self) : returns value of selected button | None    
    cCsd|_g|_dSr)�prev�
buttonlistrrrrr%szRadioGroup.__init__NcCs:|js|dkrd}t||j|�}||_|j�||f�|S�Nr
)r�r0r�r)rr�r(�default�brrrrn)szRadioGroup.addcCs$|jD]\}}|��r|SqdSr)r�r*)rr�r(rrrrB3szRadioGroup.getSelection)N)rrrrrrnrBrrrrr�s

r�c@s eZdZdZdd�Zdd�ZdS)�RadioBarz� Bar of Radio buttons, based on Grid.

    methods:

    - RadioBar(self, screen, buttonlist) : constructor.
    - getSelection(self): return value of selected button 
    cCszg|_d|_t�|_t�|dt|��|D]J\}}}|j�|||�}|j�||f�|j	|d|jdd�|jd|_q*dS)Nrr
�r�)
rAr7r�r2r�r�lenrnrr�)r�screenr�r�r(r�r�rrrrBszRadioBar.__init__cCs
|j��Sr)r2rBrrrrrBMszRadioBar.getSelectionN)rrrrrrBrrrrr�9sr�c@s"eZdZdZddd�Zdd�ZdS)	�	ButtonBara Bar of buttons, based on grid.

    methods:

     - ButtonBar(screen, buttonlist,buttonlist, compact = 0):
     - buttonPressed(self, result):  Takes the widget returned by Form.run and looks to see
                     if it was one of the widgets in the ButtonBar.
    rc	Cs�g|_i|_d|_t�|t|�d�|D]�}t|tjdkr>t	nt
�rR|}|��}n*t|�dkrh|\}}n|\}}}||j|<|r�t|�}nt
|�}|j�||f�|�||jdd�|jd|_q(dS)Nrr
�3�)r
rr
r)rArhr7r�rr��
isinstance�sys�version�str�
basestring�lowerr%rrr�)	rr�r�ZcompactZblistr�r(Zhotkeyr�rrrr\s$




zButtonBar.__init__cCs8||jvr|j|S|jD]\}}||kr|SqdSr)rhrA)r�resultr!r(rrr�
buttonPressedss


zButtonBar.buttonPressedN)r)rrrrrr�rrrrr�Ss
r�c@sheZdZdZdd�Zddd�Zdd	d
�Zdd�Zd
d�Zddd�Z	ddd�Z
dd�Zdd�Zdd�Z
dS)�GridFormHelpa= Subclass of Grid, for the help form text.

    methods:

     - GridFormHelp(self, screen, title, help, *args) :
     - add (self, widget, col, row, padding = (0, 0, 0, 0),
            anchorLeft = 0, anchorTop = 0, anchorRight = 0,
            anchorBottom = 0, growx = 0, growy = 0):
     - runOnce(self, x = None, y = None):  pop up the help window
     - addHotKey(self, keyname):
     - setTimer(self, keyname):
     - create(self, x = None, y = None):
     - run(self, x = None, y = None):
     - draw(self):
     - runPopup(self):
     - setCurrent (self, co):
    cGsJ||_||_t|�|_g|_d|_t|�}|g|dd�<tjt	|��dSr))
r�r�rgrw�	childList�form_createdrAr�r�tuple)rr�r��helpr�rrrr�s
zGridFormHelp.__init__r�rcCs,|�|||||||||	|
�
|j�|�dSr)r�r�r)rrpr�r�r�r�r�r�r�r�r�rrrrn�s
�zGridFormHelp.addNcCs|�||�}|j��|Sr)rqr�r�)rr�r�r�rrr�runOnce�s
zGridFormHelp.runOncecCs|j�|�dSr)rwrjrirrrrj�szGridFormHelp.addHotKeycCs|j�|�dSr)rwr{rirrrr{�szGridFormHelp.setTimercCsH|jsD|�dd�|jD]}|j�|�q|j�||j||�d|_dSr�)r�r�r�rwrnr�r�r�)rr�r��childrrr�create�s
zGridFormHelp.createcCs|�||�|j��Sr)r�rwrqr�rrrrq�szGridFormHelp.runcCs|��|j��Sr)r�rwrvrrrrrv�szGridFormHelp.drawcCs0|��|j�||j�|j��}|j��|Sr)r�r�r�r�rwrqr�)rr�rrr�runPopup�s


zGridFormHelp.runPopupcCs|j�|�dSr)rwrCryrrrrC�szGridFormHelp.setCurrent)r�rrrrrr)NN)NN)NN)rrrrrrnr�rjr{r�rqrvr�rCrrrrr�}s
�



r�c@seZdZdZdd�ZdS)�GridFormzh GridForm class (extends GridFormHelp):

    methods:

     - GridForm(self, screen, title, *args):
    cGs|||df|}tj|�dSr)r�r)rr�r�r�Zmyargsrrrr�szGridForm.__init__Nr$rrrrr��sr�c@s`eZdZdZddd�Zddd�Zdd	�Zdd
d�Zdd
�Zdd�Z	dd�Z
ddd�Zdd�ZdS)�CheckboxTreea� CheckboxTree combo widget,

    methods:

     - CheckboxTree(self, height, scroll = 0, width = None, hide_checkbox = 0, unselectable = 0)
                    constructor.
     - append(self, text, item = None, selected = 0):
     - addItem(self, text, path, item = None, selected = 0):
     - getCurrent(self):
     - getSelection(self):
     - setEntry(self, item, text):
     - setCurrent(self, item):
     - setEntryValue(self, item, selected = 1):
     - getEntryValue(self, item):
    NrcCs|�|tdf||�dS)Nr)�addItem�	snackArgs)rr#r7r*rrrr�szCheckboxTree.appendcCs4|dur|}|j�|||�}||j|<||j|<dSr)rZcheckboxtreeAddItemr4r5)rr#�pathr7r*r1rrrr��s

zCheckboxTree.addItemcCs|j��}|j|Sr)rZcheckboxtreeGetCurrentr4)rZcurrrrr�
getCurrent�s
zCheckboxTree.getCurrentcCs2t�||||�|_i|_i|_|r.|j�|�dSr)r Zcheckboxtreerr4r5ZcheckboxtreeSetWidth)rrFrGrIZ
hide_checkboxZunselectablerrrr�s
zCheckboxTree.__init__cCs,g}|j��}|D]}|�|j|�q|Sr)rZcheckboxtreeGetSelectionrr4r@rrrrB�s

zCheckboxTree.getSelectioncCs|j�|j||�dSr)rZcheckboxtreeSetEntryr5)rr7r#rrr�setEntry�szCheckboxTree.setEntrycCs|j�|j|�dSr)rZcheckboxtreeSetCurrentr5r<rrrrCszCheckboxTree.setCurrentr
cCs|j�|j||�dSr)rZcheckboxtreeSetEntryValuer5)rr7r*rrr�
setEntryValueszCheckboxTree.setEntryValuecCs|j�|j|�Sr)rZcheckboxtreeGetEntryValuer5r<rrr�
getEntryValueszCheckboxTree.getEntryValue)Nr)Nr)rNrr)r
)
rrrrrr�r�rrBr�rCr�r�rrrrr��s



r���Ok�Cancel�(c
Cs�|dkrt|�}t||�}
t||�}t||dd�}d}
|D]P}t|�tkrT|\}}n|}|
}||
krj|}n||krv|}|�||�|
d}
q:|dkr�|�|�t|||	dd�}|�	|dd�|j	|dddd�|j	|
dd	dd
�|�
�}|
�|�|��fS)z�
    - ListboxChoiceWindow(screen, title, text, items, 
            buttons = ('Ok', 'Cancel'), 
            width = 40, scroll = 0, height = -1, default = None,
            help = None):
    rr
)rGrHrN�)rr
rr
�r�r��r�)
r�r�rNr3�typer�rrCr�rnr�r�r?)r�r�r#�items�buttonsrIrGrFr�r��bb�t�l�countr7r1r��rcrrr�ListboxChoiceWindow	s0





r�r�r�cCsdt||�}t|||jdd�}	t|||dd�}
|
j|	dddd�|
j|dddd�|�|
�||��S)	z�
     - ButtonChoiceWindow(screen, title, text, 
               buttons = [ 'Ok', 'Cancel' ], 
               width = 40, x = None, y = None, help = None):
    �)rTr
r�r�rrrr
r�r�)r�rNrFr�rnr�r�)r�r�r#r�rIr�r�r�r�r�r�rrr�ButtonChoiceWindow4s
r�r
�c	CsPt||�}	t||�}
d}|D]}|d}qtd|�}
d}g}|D]�}t|�tkr||\}}t|tjdkrjtnt	�r�t
||�}nt
|�}|
jt|�d|ddd�|
j|d|dd�|d}|�
|�q@t|||dd�}|j|
ddd	d
�|j|
ddd	d
�|j|	dddd�|��}g}d}|D] }|�
||���|d}�q|	�|�t|�fS)z�
    EntryWindow(screen, title, text, prompts, allowCancel = 1, width = 40,
        entryWidth = 20, buttons = [ 'Ok', 'Cancel' ], help = None):
    rr
r�r�)rrr
r)r�r�r�r�r�r�r�)r�rNr�r�r�r�r�r�r�r�r]r�rUrr�rnr�r(r�)r�r�r#ZpromptsZallowCancelrIZ
entryWidthr�r�r�r�r��nZsgZ	entryList�er�r�ZentryValuesrrr�EntryWindowDs:



r�c@sbeZdZdZddd�Zddd�Zdd	d
�Zddd�Zd
d�Zddd�Z	dd�Z
dd�Zdd�ZdS)�CListboxapClistbox convenience class.

    methods:

     - Clistbox(self, height, cols, cols_widths, scroll = 0)       : constructor
     - colFormText(self, col_text, align = None, adjust_width = 0) : column text.
     - append(self, col_text, item, col_text_align = None)         :
     - insert(self, col_text, item, before, col_text_align = None)
     - delete(self, item)
     - replace(self, col_text, item, col_text_align = None)
     - current(self) : returns current item
     - setCurrent(self, item): sets an item as current
     - clear(self): clear the listbox
     
     Alignments may be LEFT, RIGHT, CENTER, None
    rr
NcCs�||_|dd�|_||_||_|	dkrjt�|dd�d}|j|	|
|d�}
t|
�|_|j	|jdddd�nt�|dd�d}t
||||�|_|j	|jd|dd�dS)Nr
r�)�adjust_widthrr�)r�)�cols�
col_widths�col_pad�col_text_alignr�r�colFormTextrUrVr�r3rE)rrFr�r�rGrHrIr�r�Z
col_labelsZcol_label_alignr�Zbox_yZlstrrrrr�s �
zCListbox.__init__cCs"d}d}t|�}||jk�r||k�r||}t�|�}|j||krh|rV||j|<n|d|j|�}|j|t�|�}	|	dkr�|dkr�t}
n||}
|
tkr�|d|	}|
tkr�d|	d|d|	dd}|
tkr�d|	|}||dk�rd|j}nd}|||}|d}q|S)Nrr^rar�r
)	r�r�r Zwstrlenr��LEFT�CENTER�RIGHTr�)r�col_textZalignr��ir�Zc_lenZcstrZcstrlenZdelta�aZpstrrrrr��s:
�
zCListbox.colFormTextcCs,|dkr|j}|�||�}|j�||�dSr)r�r�rEr�rr�r7r�r#rrrr�szCListbox.appendcCs.|dkr|j}|�||�}|j�|||�dSr)r�r�rEr:)rr�r7r9r�r#rrrr:�szCListbox.insertcCs|j�|�dSr)rEr=r<rrrr=�szCListbox.deletecCs,|dkr|j}|�||�}|j�||�dSr)r�r�rEr>r�rrrr>�szCListbox.replacecCs
|j��Sr)rEr?rrrrr?�szCListbox.currentcCs|j�|�dSr)rErCr<rrrrC�szCListbox.setCurrentcCs|j��dSr)rErDrrrrrD�szCListbox.clear)rrrr
NNNr)Nr)N)N)N)
rrrrrr�rr:r=r>r?rCrDrrrrr�rs�

)


r�cCsd|S)N�r)r�rrr�customColorset�sr�)rOrO)r�r�rrNN)crZ
__future__rrrr �stringr�rrrrr	r
rr�ZDOWNr�ZUPr�r�rrr%r&r0r3rJrNrUrYr]ZKEY_F1ZKEY_F2ZKEY_F3ZKEY_F4ZKEY_F5ZKEY_F6ZKEY_F7ZKEY_F8ZKEY_F9ZKEY_F10ZKEY_F11ZKEY_F12ZKEY_ESCZ	KEY_ENTERZKEY_SUSPENDZ
KEY_BACKSPACEZ
KEY_DELETEZ
KEY_INSERTZ
KEY_RESIZErbrhrArmr��
ascii_letters�digits�ordrgr�Z
COLORSET_ROOTZCOLORSET_BORDERZCOLORSET_WINDOWZCOLORSET_SHADOWZCOLORSET_TITLEZCOLORSET_BUTTONZCOLORSET_ACTBUTTONZCOLORSET_CHECKBOXZCOLORSET_ACTCHECKBOXZCOLORSET_ENTRYZCOLORSET_LABELZCOLORSET_LISTBOXZCOLORSET_ACTLISTBOXZCOLORSET_TEXTBOXZCOLORSET_ACTTEXTBOXZCOLORSET_HELPLINEZCOLORSET_ROOTTEXTZCOLORSET_EMPTYSCALEZCOLORSET_FULLSCALEZCOLORSET_DISENTRYZCOLORSET_COMPACTBUTTONZCOLORSET_ACTSELLISTBOXZCOLORSET_SELLISTBOXr�r�rQr�r�r�r�r�r�r�r�r�r�r�rrrr�<module>s�$$

A	�
?.�U
*I9�
,�

�
.s