a ze-@sddlTddlmZmZGdddZGdddeZddZGd d d eZGd d d eZd dZ GdddeZ ddZ GdddeZ ddZ edkrddZedS))*) messagebox_get_default_rootc@sLeZdZdgddddfddZdddZd d Zd d Zd dZddZdS) SimpleDialogNc Cs|rt||d|_n t||_|r:|j||j|t|jt|j|dd|_|jjdtdt |j|_ |j ||_ ||_ ||_ |jd|jtt|D]L}||} t|j | ||fddd } ||kr| jtd d | jttdd q|jd |j||dS)N)class_i)textZaspect)expandfillcSs ||SN)doneselfnumrH/opt/bitninja-python-dojo/embedded/lib/python3.9/tkinter/simpledialog.py8z'SimpleDialog.__init__..rcommand)ZreliefZ borderwidth)sider r WM_DELETE_WINDOW)ToplevelroottitleZiconname _setup_dialogZMessagemessagepackZBOTHFrameframercanceldefaultbind return_eventrangelenButtonZconfigZRIDGELEFTprotocolwm_delete_window_set_transient) rmasterrbuttonsr$r#rrrsbrrr__init__ s2       zSimpleDialog.__init__?333333?c Cs|j}|||||rJ|}|}|}|}n| }| }d}}| } | } ||| |} ||| |} | | | kr| | } n | dkrd} | | | kr| | } n | dkrd} | d| | f|dS)Nr+%d+%d)rwithdraw transientupdate_idletasksZwinfo_ismappedZ winfo_widthZ winfo_height winfo_rootx winfo_rootyZwinfo_screenwidthZwinfo_screenheightZwinfo_reqwidthZwinfo_reqheightgeometry deiconify) rr.ZrelxZrelyZwidgetZm_widthZm_heightZm_xZm_yZw_widthZw_heightxyrrrr-?s4  zSimpleDialog._set_transientcCs.|j|j|j|j|jSr )rwait_visibilitygrab_setmainloopdestroyrrrrrgo\s     zSimpleDialog.gocCs&|jdur|jn ||jdSr )r$rbellrreventrrrr&cs  zSimpleDialog.return_eventcCs&|jdur|jn ||jdSr )r#rrErrCrrrr,is  zSimpleDialog.wm_delete_windowcCs||_|jdSr )rrquitrrrrroszSimpleDialog.done)r3r4) __name__ __module__ __qualname__r2r-rDr&r,rrrrrrs  rc@sReZdZdddZddZddZdd Zdd d Zdd d ZddZ ddZ dS)DialogNcCs|}|std}t||||dur>|r>|||rL||t|||_d|_ t |}| ||_ |j ddd||j s||_ |d|j|dur|d|d|df||j ||||dS)Nzcreate dialog window)padxpadyrr52)rrr2r6Zwinfo_viewabler7rrparentresultr!body initial_focusr buttonboxr+r#r;r9r:r< focus_setr?r@Z wait_window)rrQrr.rSrrrr2{s8       zDialog.__init__cCsd|_t|dSr )rTrrBrCrrrrBszDialog.destroycCsdSr r)rr.rrrrSsz Dialog.bodycCsvt|}t|dd|jtd}|jtdddt|dd|jd}|jtddd|d|j|d |j|dS) NZOK )rwidthrr$rM)rrNrOCancel)rrXrr z)r!r)okZACTIVEr r*r#r%)rZboxwrrrrUszDialog.buttonboxcCsJ|s|jdS||z|W|n |0dSr )validaterTrVr6r8applyr#rFrrrrZs  z Dialog.okcCs |jdur|j|dSr )rQrVrBrFrrrr#s  z Dialog.cancelcCsdS)Nr rrCrrrr\szDialog.validatecCsdSr rrCrrrr]sz Dialog.apply)N)N)N) rIrJrKr2rBrSrUrZr#r\r]rrrrrLts 7    rLcCs:|jdkr |jdd|ddn|jdkr6|dddS) NZaquaz!::tk::unsupported::MacWindowStylestyleZ moveableModalrZx11z-typeZdialog)Z_windowingsystemZtkcallZ wm_attributes)r[rrrrs    rc@s.eZdZd ddZddZddZdd ZdS) _QueryDialogNcCs*||_||_||_||_t|||dSr )promptminvaluemaxvalue initialvaluerLr2)rrrardrbrcrQrrrr2s z_QueryDialog.__init__cCsd|_t|dSr )entryrLrBrCrrrrBsz_QueryDialog.destroycCsrt||jtd}|jddtdt|dd|_|jjddttd|jdurl|j d|j|j dt |jS)N)rZjustifyrrM)rowrNZstickyre)namer ) ZLabelrar*ZgridWZEntryreErdinsertZ select_rangeZEND)rr.r[rrrrS s z_QueryDialog.bodycCsz |}Wn*ty6tjd|jd|dYdS0|jdurf||jkrftjdd|j|ddS|jdur||jkrtjdd|j|ddS||_d S) Nz Illegal valuez Please try again)rQrz Too smallz2The allowed minimum value is %s. Please try again.z Too largez2The allowed maximum value is %s. Please try again.r ) getresult ValueErrorr showwarning errormessagerbrcrR)rrRrrrr\.s:  z_QueryDialog.validate)NNNN)rIrJrKr2rBrSr\rrrrr` s r`c@seZdZdZddZdS) _QueryIntegerzNot an integer.cCs||jSr )ZgetintregetrCrrrrkSsz_QueryInteger.getresultNrIrJrKrnrkrrrrroPsrocKst||fi|}|jSr )rorRrrakwdrrr askintegerWs ruc@seZdZdZddZdS) _QueryFloatzNot a floating point value.cCs||jSr )Z getdoublererprCrrrrkisz_QueryFloat.getresultNrqrrrrrvfsrvcKst||fi|}|jSr )rvrRrrrrraskfloatms rwc@s$eZdZddZddZddZdS) _QueryStringcOs<d|vr|d|_|d=nd|_tj|g|Ri|dS)Nshow)_QueryString__showr`r2)rargsrsrrrr2}s  z_QueryString.__init__cCs(t||}|jdur$|j|jd|S)N)ry)r`rSrzZ configure)rr.rerrrrSs  z_QueryString.bodycCs |jSr )rerprCrrrrksz_QueryString.getresultN)rIrJrKr2rSrkrrrrrx|srxcKst||fi|}|jSr )rxrRrrrrr askstrings r|__main__cCsLt}|fdd}t|d|d}|t|d|jd}||dS)NcSs\t|dgddddd}t|ttddd d ttdd d d dttdddS)NzThis is a test dialog. Would this have been an actual dialog, the buttons below would have been glowing in soft pink light. Do you believe this?)ZYesZNorYrz Test Dialog)rr/r$r#rZSpamz Egg count)rdzEgg weight (in tons)r d)rbrcz Egg label)rprintrDrurwr|)rrtrrrdoits  ztest..doitZTestrZQuit)ZTkr)r rHrA)rrtqrrrtests rN)tkinterrrrrrLrr`rorurvrwrxr|rIrrrrrsV C