; M>c@sdZdkZdkZdkZdkZdkTdkZdkZdklZdefdYZ dei fdYZ dei fd YZ dS( s# tkinter html viewer dialog module N(s*(s smgDialogs smgHtmlViewc BstZdZeedeedddeddd ZedZedZedZed Zd Z d Z d Z d Z eeddZ RS(s display a html file (or a plain text file if plainText=1), or html data from a string (which may be a repr of a function name). optionally show an 'index' button, which jumps straight to indexFile (which can also be a disk file or a string as above) if specified. only a small subset of html tags are rendered. ony links to files, specified without any urltype, or internal html and image data returned by functions are supported. iis#e8e8e8s#000000c Cs| |_| |_||_||_d|_| o|i d}n||_ | |_||_ ||_ d|_ | ohdd<dd<dd<d t<d d | ihdd <dd <dd <d d<d d<qnhdd<dd<dd<d d<d ds buttonIndexsIndexss buttonPrevs< PrevsPreviss buttonNextsNext >sNextss buttonGoTos Go To NumbersGoToss buttonQuitsQuitsCancelssbuttonss buttonsDefis buttonsWidths buttonsPadis resizeables transientswaitN(sfgsselfs colorViewerFgsbgs colorViewerBgsindexs plainTextshexNums hexBrowsersMakeBrowseSources htmlSources sourceIsStrs internalLinksinternalImageExtsNonesbtnssappends smgDialogs__init__sparentstitle(sselfsparentstitles htmlSources sourceIsStrs internalLinksindexs plainTextsmodals hexBrowsers imageModulesbgsfgsbtns((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys__init__4s*          6 B cCs7|iidddfjo|i|indS(Nsstatesnormalsactive(sselfs buttonIndexscgetsshowHtmlsindex(sselfsevent((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pysIndex~scCsD|iidddfjo!|i|i|idndS(Nsstatesnormalsactivei(sselfs buttonPrevscgetsshowHtmlsMakeBrowseSourceshexNum(sselfsevent((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pysPrevscCsD|iidddfjo!|i|i|idndS(Nsstatesnormalsactivei(sselfs buttonNextscgetsshowHtmlsMakeBrowseSourceshexNum(sselfsevent((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pysNextsc Csj|iidddfjoGtiddd|d|idd d d }|i|i|ndS( NsstatesnormalsactivesGo To Hexagram NumbersEnter hexagram number.sparents initialvaluesminvalueismaxvaluei@(sselfs buttonGoToscgetstkSimpleDialogs askintegershexNumsshowHtmlsMakeBrowseSource(sselfseventshexNum((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pysGoTos  cCs||_d|SdS(Nspyching_int_data.in%sdata()(shexNumsself(sselfshexNum((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pysMakeBrowseSources cCsVt}yt|d}Wn2tj o&tidddd| dnX|SdS(NsrstitlesFile Load ErrorsmessagesUnable to load data file s .(sNones displayFilesopensfileNamesIOErrors tkMessageBoxs showerror(sselfsfileNames displayFile((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys openDataFiles cCs|iddddf}tidjoddf}nt|ddd d d td d d|dd ddddd|id|i  |_ t |dt d ddd d|i i }|i id|i|idd dddttf|i idd dd dttttf|id d |id dd|id dd|id|id|id |i|i SdS(!Ns borderwidthisTimesi sntsTimes New RomansheightiswidthiJswraps insertofftimeisfontshighlightthicknessspadxspadyisfgsbgsorienti scommandsyscrollcommandsrowscolumnisstickysweightssourcesiLinks plainText(sselfs configuresbaseFontsossnamesTextsmastersWORDs colorViewerFgs colorViewerBgs textDisplays ScrollbarsVERTICALsyviews scrollbarYssetsgridsNsSsEsWs grid_locationscolumnconfigures rowconfiguresshowHtmls htmlSources internalLinks plainText(sselfsmastersbaseFonts scrollbarY((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pysBodys$ '"+ c Bs|d}|ddjoyEdei|ddddU|iiedd e|Wqke e fj o'|i i d d d G|GHdSqkXn|d dfjoy^|d jo |iiedd|n.e djo |iiedd|nWqkej o'|i i d d dG|GHdSqkXn!|i i d ddG|GHdS|i idd d|ie|iddddddS(Niis()simport s.iisphotosdatasinserts [image error] sno such image data:s.gifs.xbmsfilesbitmapsimage display error:s [unknown image type] scan't display image type:sindexsimagespadxi spady(ssources imageTypesstringssplitsselfsimagessappendsImagesevals NameErrorsAttributeErrors textDisplaysinserts imageChecksTclErrors image_createslen(sselfssourcesaltsaligns imageType((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys showImages0 &     $   c Bsg|_d} |io|ddj}|ony/dei|ddddUd|dUWqee e fj o#|i i d d d G|GHqXq|} n"e }|i|}|i} |ip|o$|id |_|i id d |i i|id d |i|i ide|i idd|ip| oMe|i |}ei|}e|}|GH|i| |i n|i i d| |i i!de"|i id |i|id |in!|i i d d dG|GHdS|i#o>||i#jo|i$i!de"qf|i$i!den|i%ox|i&djo|i'i!de"n|i'i!de|i&djo|i(i!de"q|i(i!dendS(Ns[html data error]is()simport s.iis htmlData = sinserts [hypertext data error] s#html data module or function error:scursorswatchsstates1.0sendf1.0sno html data available:i@()sselfsimagesshtmlDatas sourceIsStrssources sourceIsDatasstringssplits ImportErrors NameErrorsAttributeErrors textDisplaysinsertsNones displayFiles openDataFilesreadscgets oldCursorsconfigsupdate_idletaskssNORMALsdeletes plainTexts HtmlWriters htmlWriters formattersAbstractFormatters htmlFormatters HtmlParsers htmlParsersfeedscloses configuresDISABLEDsindexs buttonIndexs hexBrowsershexNums buttonPrevs buttonNext( sselfssourcesiLinks plainTexts htmlWriters displayFiles htmlParsers htmlFormatters sourceIsDatashtmlData((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pysshowHtmls`           (s__name__s __module__s__doc__sNones__init__sIndexsPrevsNextsGoTosMakeBrowseSources openDataFilesBodys showImagesshowHtml(((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys smgHtmlView+s *J      s HtmlWritercBstZdZdZdZdZdZdZdZdZ d Z d Z d Z d Z d ZdZRS(NcCsktii||dd||_||_ddf\}}d}hd||ddf<d||d df<d ||d df<d ||d df<d||d df<d||ddf<d||df<d||df<d||f<|_ x4|i i D]#}|ii |d|i |qWt |_t |_t |_t |_d|_dS(Nsmaxcoli'sTimesi sCouriersh1sboldsh2ish3ish4ish5sh6isitalicspresfonts(s formatters DumbWriters__init__sselfs textWidgets htmlViewersfontssizesfixedsfontmapskeyssfs tag_configsNonesanchors anchor_marks font_marksindent(sselfs textWidgets htmlViewersfsfixedsfontssize((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys__init__(s   !    cCs|ii|||dS(N(sselfs htmlViewers showImagessourcesaltsalign(sselfssourcesaltsalign((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys handleImageAscCs'dfdY}||i|SdS(NsFunctorcBstZdZdZRS(NcCs||_||_dS(N(s htmlViewersselfsviewersarg(sselfs htmlViewersarg((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys__init__Fs cGs|ii|iSdS(N(sselfsviewersshowHtmlsarg(sselfsargs((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys__call__Is(s__name__s __module__s__init__s__call__(((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pysFunctorEs (sFunctorsselfs htmlViewershref(sselfshrefsFunctor((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pyscreateCallbackDscCs|iid|dS(Nsinsert(sselfs textWidgetsinsertsdata(sselfsdata((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pyswriteNscCs|iid|dS(Nsinsert(sselfs textWidgetsinsertsdata(sselfsdata((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys__writeQscCs6|o+|||f|_|iid|_ndS(Nsinsert(shrefsnamestypesselfsanchors textWidgetsindexs anchor_mark(sselfshrefsnamestype((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys anchor_bgnTscCs|io|id}d|}|ii||id|ii|d|i||ii|d|i |ii|d|i |ii |ddd d t |_ndS( Nishref_sinserts sss foregroundsblues underlinei( sselfsanchorsurlstags textWidgetstag_adds anchor_markstag_bindscreateCallbacks anchor_enters anchor_leaves tag_configsNone(sselfsurlstag((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys anchor_endZs   cGs|iidddS(Nscursorshand2(sselfs textWidgetsconfig(sselfsargs((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys anchor_enterescGs|iid|iidS(Nscursor(sselfs textWidgetsconfigs htmlViewers oldCursor(sselfsargs((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys anchor_leavehscCs|io)|ii|i|idt|_n|o|iid|_|ii|do|d|_q|do d|_q|do d|_q|do d|_qt|_ndS( Nsinsertiispreisboldisitalic( sselfsfonts textWidgetstag_adds font_marksNonesindexsfontmapshas_key(sselfsfont((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pysnew_fontks        cCsd||_dS(Ns (slevelsselfsindent(sselfsmarginslevel((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys new_margin~scCs%|i|i|ddG|GHdS(Ns ssend_label_data called:(sselfs_HtmlWriter__writesindentsdata(sselfsdata((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pyssend_label_datascCsY|idjo|idn|djo|id|nd|_d|_dS(Nis (sselfscols_HtmlWriter__writes blanklinesatbreak(sselfs blankline((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pyssend_paragraphs   cGsQtt|idd}|id||idd|_d|_dS(Nswidthf0.90000000000000002s_s i(sintsselfs textWidgetswidths_HtmlWriter__writescolsatbreak(sselfsargsswidth((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys send_hor_rules   (s__name__s __module__s__init__s handleImagescreateCallbackswrites_HtmlWriter__writes anchor_bgns anchor_ends anchor_enters anchor_leavesnew_fonts new_marginssend_label_datassend_paragraphs send_hor_rule(((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys HtmlWriter's           s HtmlParsercBs,tZdZdZdZdZRS(NcCs6tii|||||iii|||dS(N( shtmllibs HTMLParsers anchor_bgnsselfshrefsnamestypes formatterswriter(sselfshrefsnamestype((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys anchor_bgnscCs+|io t|_n|iiidS(N(sselfsanchorsNones formatterswriters anchor_end(sself((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys anchor_ends cCs|iid|idS(Ni(sselfs formatters end_paragraphsddpop(sselfsattrs((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pysdo_dtscCs|iii|||dS(N(sselfs formatterswriters handleImagessourcesaltsalign(sselfssourcesaltsismapsalignswidthsheight((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys handle_images(s__name__s __module__s anchor_bgns anchor_endsdo_dts handle_image(((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys HtmlParsers   (s__doc__sossstringshtmllibs formattersTkinters tkMessageBoxstkSimpleDialogs smgDialogs smgHtmlViews DumbWriters HtmlWriters HTMLParsers HtmlParser( s smgHtmlViewsstrings smgDialogshtmllibs tkMessageBoxs HtmlParserstkSimpleDialogs HtmlWriters formattersos((s4/mnt/gmirror/ports/games/pyching/work/smgHtmlView.pys?s$   p