B =c~\b4@s|dZddlZddlZddlTddlmZmZddlZdZGdddZGdd d Z ddl Z e j Gd d d Z d d Z dS)zMain Pynche (Pythonically Natural Color and Hue Editor) widget. This window provides the basic decorations, primarily including the menubar. It is used to bring up other windows. N)*) messagebox filedialogic@seZdZdgfddZdddZdddZddd Zdd d Zd d ZddZ ddZ d ddZ d!ddZ d"ddZ ddZddZdS)# PyncheWidgetNcCsp||_||_d|_d|_d|_d|_i|_| }|_|r`t|dd|_ }| | nPd}yddl m }|}|_ Wntk rYnX|stdd}|_ | t|}|_t|dd} |_| jd|jdd|s| jd |jd dd t|j|j |} t|dd} x(| D] } | j| | j| dqWt|d dd } | jd|jdd| jd|jdd|jd| dd|jd| dd|jd| ddt|d|d}|_|d|r|jp|j| d||!d|s|"d|j|"d|jn^t#|dt$d}|j%ddddddt&|d |j'd!}|j(t)dd"t&|d#|j*d!}|j(t)dd"dS)$NPynche)class_r) _default_root)Z className)tearoffzLoad palette...)labelcommand underlineZQuitzAlt-Q)r r Z acceleratorr help)namer zAbout Pynche...zHelp...ZFile)r menur ZViewZHelp)rrWM_DELETE_WINDOWz Pynche %szz)Z borderwidthreliefZEW)rowcolumnZ columnspanZstickyZipadyZOkay)textr )sideexpandZCancel)+_PyncheWidget__sbZ_PyncheWidget__versionZ_PyncheWidget__textwinZ_PyncheWidget__listwinZ_PyncheWidget__detailswin_PyncheWidget__helpwinZ_PyncheWidget__dialogstate_PyncheWidget__modalToplevel_PyncheWidget__tkrootZgrab_setwithdrawZTkinterr ImportErrorZTkZMenuZ_PyncheWidget__menubarZ_PyncheWidget__filemenuZ add_command_PyncheWidget__load_PyncheWidget__quitmake_view_popupsmenutextpopupr _PyncheWidget__popup_about_PyncheWidget__popup_usageZ add_cascade_PyncheWidget__rootprotocol_PyncheWidget__belltitleiconnamebindZFrameZRAISEDZgridZButton_PyncheWidget__okaypackZLEFT_PyncheWidget__cancel)selfversion switchboardmaster extrapathZmodalZtkrootrZmenubarZfilemenuZviewsZviewmenuvZhelpmenurootZbframeZokayZcancelr9>/opt/alt/python37/lib64/python3.7/Tools/pynche/PyncheWidget.py__init__s         zPyncheWidget.__init__cCs|jdS)N)rquit)r2eventr9r9r:Z__quitzszPyncheWidget.__quitcCs|jdS)N)rZbell)r2r=r9r9r:Z__bell}szPyncheWidget.__bellcCs |j|j|dS)N)rZwithdraw_viewsrZ grab_releaser#)r2r=r9r9r:Z__okays  zPyncheWidget.__okaycCs|j|dS)N)rZcanceledr/)r2r=r9r9r:Z__cancels zPyncheWidget.__cancelcCs|jjt|jdS)N)rZtkZcreatetimerhandlerKEEPALIVE_TIMER_PyncheWidget__keepalive)r2r9r9r:Z __keepaliveszPyncheWidget.__keepalivecCs|js||jdS)N)rr?rZmainloop)r2r9r9r:startszPyncheWidget.startcCs|jS)N)r))r2r9r9r:windowszPyncheWidget.windowcCs$ddlm}td|d|dS)Nr) __version__z About Pynche z}Pynche %s The PYthonically Natural Color and Hue Editor For information contact: Barry A. Warsaw email: bwarsaw@python.org)MainrBrZshowinfo)r2r=rBr9r9r:Z __popup_abouts  zPyncheWidget.__popup_aboutcCs$|jst|j|j|_|jdS)N)rHelpwinr)r# deiconify)r2r=r9r9r:Z __popup_usageszPyncheWidget.__popup_usagecCsxtj|j\}}tjddg||d}|s8dSyt |}Wn&t k rlt dd|wYnX|dkrt dd|qPqW|j |dS)N)z Text filesz*.txt)z All filesr)Z filetypesZ initialdirZ initialfilez Read errorz#Could not open file for reading: %szUnrecognized color file typez(Unrecognized color file type in file: %s)ospathsplitrcolordbfilenamerZaskopenfilenameColorDBZ get_colordbIOErrorrZ showerrorZ set_colordb)r2r=ZidirZifilefilerIr9r9r:Z__loads*  zPyncheWidget.__loadcCs|jdS)N)r)r )r2r9r9r:r szPyncheWidget.withdrawcCs|jdS)N)r)rE)r2r9r9r:rEszPyncheWidget.deiconify)N)N)N)N)N)N)N)__name__ __module__ __qualname__r;r#r+r/r1r?r@rAr'r(r"r rEr9r9r9r:rsg      rc@s&eZdZddZdddZddZdS) rDc Csrddlm}t|dd|_}|d|j|d|d|d||d||d |j|d |jt j t j dd }yNd}z6t |}|}|d }|dkr|d|}Wd|r|XWn&tk rt jd |}YnXt|tddd|_} |j| d|t|} | jttd| jttd| j | dfd| j | dfddS)Nr) docstringr)rrzPynche Help WindowzzzzZREADME z8Couldn't open Pynche's README, using docstring instead. P)rwidthZheightg)fillr)rVrset)ZyscrollcommandZyview)r )!rCrQr_Helpwin__rootr*_Helpwin__withdrawr,r-r.rFrGjoinsysopenreadrfindrstripcloserLstderrwriteZTextZSUNKENZ_Helpwin__textZ focus_setinsertZ Scrollbarr0YZRIGHTZBOTHZYESZ configure) r2r5ZquitfuncrQr8Z readmefilefpcontentsirZ scrollbarr9r9r:r;s@          zHelpwin.__init__NcCs|jdS)N)rXr )r2r=r9r9r:Z __withdrawszHelpwin.__withdrawcCs|jdS)N)rXrE)r2r9r9r:rEszHelpwin.deiconify)N)rNrOrPr;rYrEr9r9r9r:rDs( rDc@s>eZdZddZddZddZddd Zd d Zd d ZdS) PopupViewercCs\||_||_||_||_|j|_|jd}|dkr:d}n|jddd|_||_d|_ dS)N%rr) _PopupViewer__m_PopupViewer__name_PopupViewer__sb_PopupViewer__root ADDTOVIEW_PopupViewer__menutextfindreplace_PopupViewer__underline_PopupViewer__window)r2modulerr4r8r r9r9r:r;s zPopupViewer.__init__cCs|jS)N)rq)r2r9r9r:r% szPopupViewer.menutextcCs|jS)N)rt)r2r9r9r:r szPopupViewer.underlineNcCs@|js2t|j|j}||j|j|_|j|j|jdS)N)rugetattrrlrmrnroZadd_viewrE)r2r=rr9r9r:r&s zPopupViewer.popupcCs |j|jkS)N)rq)r2otherr9r9r:__eq__szPopupViewer.__eq__cCs |j|jkS)N)rq)r2rxr9r9r:__lt__szPopupViewer.__lt__)N) rNrOrPr;r%r r&ryrzr9r9r9r:rhs  rhc Csg}tjtg|}x|D]}|dkr,d}xt|D]}|dddkr8|dd}y t|}Wn*tk rtd|} t| |}YnXt|dr8|j r8t ||||} | | q8WqW| |S)Nrk.iz Viewer.pyzpynche.rp) rFrGdirname__file__listdir __import__r!rwhasattrrprhappendsort) r4r8r6ZviewersdirsdirrMrrvZpkgr7r9r9r:r$"s$    r$)__doc__r[rFZtkinterrrrKr>rrD functoolstotal_orderingrhr$r9r9r9r:s91&