; iDc@sdkTdkZdklZdklZlZlZlZdkTdk l Z dk l Z l Z lZdkZdkZdkZeidZdefdYZd fd YZd eefd YZd eefdYZdS((s*N(sGraph(ssqrtspissinscos(s orthogonal(sPoint2DsVertexLabelings EdgeLabelingsGraphDisplay.pysZoomVarcBs tZdZdZdZRS(sY *Internal* helper class to have TK update variable correspoding to pop-up state cCs*||_ti|ti||dS(N(s graphDisplaysselfs StringVars__init__ssets initialValue(sselfs graphDisplays initialValue((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pys__init__6s  cCs6y|ii|Wn tnXti||SdS(N(sselfs graphDisplaysZoomsvaluesNones StringVarsset(sselfsvalue((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysset;s (s__name__s __module__s__doc__s__init__sset(((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysZoomVar2s  s GraphDisplaycBstZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZeedZdZedZedZdZdZdZdZdZdZdZdZ eedZ!eedZ"d Z#d!Z$ed"Z%ed#Z&ed$Z'd%Z(d&Z)d'Z*d(d)Z+d(d*Z,d+ed,Z-d-Z.ed.Z/d/Z0d0Z1d1Z2d2Z3d3Z4d4d5Z5d6Z6ed7Z7d8Z8ed9Z9d:Z:d;Z;d+d<Z<d=Z=d>Z>d?Z?d@Z@dAZAdBZBdCZCdDZDRS(Es  Provide functionality to display a graph. Not for direct consumption. Use - GraphDisplayToplevel - GraphDisplayFrame GraphDisplay also provides UI-Interface independent edit operations and basic animation methods cCsd|_t|_t|_t|_t|_t|_h|_ h|_ h|_ d|_ |i idd|_|i|id|it|_t|_h|_|idS(Nif100.0stkswindowingsystems Gato - Graph(sselfshasGraphsVertexLabelings drawVertexs EdgeLabelings drawEdgess drawLabelsvertexAnnotationsedgeAnnotationsvertexsedgeslabels zoomFactorstkscallswindowingsystems CreateWidgetssSetTitlesupdatesNones graphInformers clickhandlershighlightedPathsReadConfiguration(sself((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pys__init__Ns$                cCsd|_d|_d|_ti|_d|_d|_d|_ d|_ d|_ d |_ d|_ d |_|i|_d d d f|_d|_dS(Nis Helveticai iis#000099sblacks#EEEEEEswhitesgreeniii(sselfs gVertexRadiuss gFontFamilys gFontSizestkFontsBOLDs gFontStyles gEdgeWidthsgVertexFrameWidthscVertexDefaults cVertexBlinks cEdgeDefaults cLabelDefaultscLabelDefaultInverteds cLabelBlinks zVertexRadiuss zArrowShapes zFontSize(sself((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysReadConfigurationfs             cCs#ti||i||ifSdS(N(stkFontsFontsselfs gFontFamilyssizes gFontStyle(sselfssize((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysfont|scCstdtdfSdS(s5 *Internal* Return the center of the canvas in pixel iN(s gPaperWidths gPaperHeight(sself((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysGetCanvasCentersc Csehdd<dd<dd<dd<d d <d d<}|ii|_|ii|_y^|i|ijp |i|ijp |i d jo$|id |_ |id |_ nWn'|id |_ |id |_ nX|||ijo d |_ n d |_ |||i} |||_|i|id|_d|idd|idd|idf|_tdt|i|id|_x|iiD]}}|i|} |ii| d} t| | }|ii| d||i|}|ii|d|i!|iqWxh|ii"D]W}|i$|}|ii|d} t| | }|ii|d|d|iqAW|ii(dd d | | |idtt)}|idtt+} |ii-d|d| dd d || f|iid|i |iid|i |ii|_|ii|_dS(s. *Internal* Perform a zoom to specified level s 50 %f50.0s 75 %f75.0s100 %f100.0s125 %f125.0s150 %f150.0siiiiiiswidthsfonts arrowshapesallsheights scrollregionsmovetoN(.s zoomFactorsselfscanvassxviewsnewXviewsyviewsnewYviewsoldXviewsoldYviewszoomInsXviewsYviewspercentsfactors gVertexRadiuss zVertexRadiuss zArrowShapesmaxsints gFontSizes zFontSizesGsVerticessvs drawVertexsdvsitemcgetsoldVertexFrameWidthsfloatsnewVertexFrameWidths itemconfigs drawLabelsdlsfontsEdgesses drawEdgessdes oldEdgeWidths newEdgeWidthsscales gPaperWidthsnewWidths gPaperHeights newHeightsconfig(sselfspercentsnewVertexFrameWidthses zoomFactorsvsdlsdesnewWidthsfactorsdvs oldEdgeWidthsoldVertexFrameWidths newHeights newEdgeWidth((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysZoomsV<6   3&  & cCs0|d|i}|d|i}||fSdS(s4 *Internal* Convert canvas coordinates to embedding f100.0N(sxsselfs zoomFactorsy(sselfsxsy((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysCanvasToEmbeddingscCs0||id}||id}||fSdS(s4 *Internal* Convert Embedding coordinates to Canvas f100.0N(sxsselfs zoomFactorsy(sselfsxsy((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysEmbeddingToCanvassc Cs^t|dt|_|iidtdtt|d|_t |i|iddddd|_ |i i d d |i i d d |i d jo.|i i dd|i di ddn|i i dddddd|iiddd|i d jot|idtdd }nt|idtdd }t|dddt|_|ii d d|iidtdd dt|i dddd dddddd |iid dd |i d joWt|idtdd!}|i dddd!dd"dd |iid!ddn|i d jo"t|dtdd d#d$}nt|dtdd!}t|d td td#d%d&ddttf|_t|d'd}|idtdtt|d(t|i_ |ii i!|id)<|ii"|ii d*<|ii id+|dd dt#dt|ii i$}t|d |d |}|i'd|idtt|d(t(|i_)|ii)i!|id,<|ii*|ii)d*<|ii)idtdt|iidtdt#|idtdt#dd dt+y|i,d-Wn|i-i,d-nXd.S(/s7 *Internal* Create UI-Elements (except Frame/Toplevel) sreliefssidesfills100 %s 50 %s 75 %s125 %s150 %sheightiswidthisaquasfontsGeneva 9smenusrowiscolumnsstickysnwsesweightsbdstextsNo information availablesanchori2sexpandspadxispadyiiis backgrounds#666666swhites scrollregions borderwidthsorientsyscrollcommandscommandsin_sxscrollcommands500x483N(.sFramesselfsFLATs infoframespacksBOTTOMsXsZoomVars zoomValues OptionMenuszoomMenusconfigswindowingsystemsgridscolumnconfiguresRIDGEs borderFramesSUNKENsLabelsWsinfosLEFTsdummysCanvass gPaperWidths gPaperHeightscanvass vbarFramesYsRIGHTs ScrollbarsVERTICALsvbarssetsyviewsTOPswinfo_reqwidthssbwidthscorners propagates HORIZONTALshbarsxviewsBOTHsgeometrysmaster(sselfssbwidthscornersdummys vbarFrames borderFrame((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pys CreateWidgetssf(""( "cCsc||_|idjo|in|id|_|id||i|idS(s5 Display graph G name graphName. Currently we assume that for the embedding (x,y) of every vertex < x < 1000 and 0 < y < 1000 holds. NOTE: We need both a proper embedding and a labelling XXX: Fix (Randomize embedding, identity labeling if none given isGato - N( sGsselfshasGraphsDeleteDrawItemssCreateDrawItemssSetTitles graphNamesupdates DefaultInfo(sselfsGs graphName((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pys ShowGraph#s    cCs ||_dS(s A graph informer is an object which supplies information about the graph, its vertices and its edges. It needs methods - DefaultInfo() - VertexInfo(v) - EdgeInfo(tail,head) If none is registered, information will be produced by GraphDisplay. Infos are displayed in info field at the bottom of the graph window.N(sInformersselfs graphInformer(sselfsInformer((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysRegisterGraphInformer6s cCsxS|iiD]B}x9|ii|D]%}|i|||i||fs N(sxsNonesysselfsGs GetEmbeddingsvstsEmbeddingToCanvass zVertexRadiussdsgVertexFrameWidths zoomFactorswscanvass create_ovalscVertexDefaultsdvstag_binds DefaultInfos VertexInfosvertex(sselfsvsxsysdsdvstsw((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysCreateDrawVertexs" %   cCs|i|}|ii|i|iddddd|i|i d|i i |d|i dd}|ii|d |i||i|<|Sd S( s *Internal* Create a draw label for v on the canvas. Position is determined by the embedding specified. Text is specified by the labeling: Call only after CreateDrawVertex() sanchorscentersjustifysfontstextsfillstagslabelss N(sselfsVertexPositionsvsposscanvass create_textsxsysfonts zFontSizesGs GetLabelings cLabelDefaultsdlstag_binds VertexInfoslabel(sselfsvsdlspos((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysCreateDrawLabels   c Csd|i}|i}|id|id}g}x`t dddD]L}|i |t |td||i |t|td|qGW|ii|d|id |d td d d dSdS(s@ *Internal* Create an undirected loop draw edge. v is a Point2D iif100.0iii(isfillswidthssmooths splinestepsistagsedgesN(sselfs zVertexRadiuss loopRadiussvsxsxMiddlesys zoomFactorsyMiddlesCoordssrangesdegreesappendscosspissinscanvass create_lines cEdgeDefaultswsTRUE( sselfsvsws orientationsdegrees loopRadiussCoordssyMiddlesxMiddle((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysCreateUndirectedLoopDrawEdges  #'  c Csd|i}|i}|id|id}g}xqt dddD]]}|djoJ|i |t |td||i |t|td|qGqGW|ii|dd d |id |id |d tddddSdS(s> *Internal* Create an directed loop draw edge. v is a Point2D iif100.0i_iiisarrowslasts arrowshapesfillswidthssmooths splinestepsistagsedgesN(sselfs zVertexRadiuss loopRadiussvsxsxMiddlesys zoomFactorsyMiddlesCoordssrangesdegreesappendscosspissinscanvass create_lines zArrowShapes cEdgeDefaultswsTRUE( sselfsvsws orientationsdegrees loopRadiussCoordssyMiddlesxMiddle((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysCreateDirectedLoopDrawEdges$   #+   c Cs>|ii|i|i|i|id|id|ddSdS(s> *Internal* Create an undirected draw edge. t, h are Point2Ds sfillswidthstagsedgesN( sselfscanvass create_linestsxsyshs cEdgeDefaultsw(sselfstshsw((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysCreateUndirectedDrawEdges ! c Cst|i|id|i|id}|djo d}n||i|d}|i||i|i} |i||i|i}|djoG|i i |i|i| |d|iddd|id|d d Snt|i|i|i|if\} }d |i|d }|id |i|i|| } |id |i|i||}|i i |i|i| || |d|iddd|id|dtd d SdS(s< *Internal* Create an directed draw edge. t, h are Point2Ds if0.001isfillsarrowslasts arrowshapeswidthstagsedgesf1.5if0.5ssmoothN(ssqrtshsxstsyslsselfs zVertexRadiusscstmpXstmpYscurvedscanvass create_lines cEdgeDefaults zArrowShapesws orthogonalsmXsmYsTRUE( sselfstshscurvedswscslstmpYsmYsmXstmpX((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysCreateDirectedDrawEdges2,     ,##!  c Cs|i|}|i|}|ii o|i|i d}n!|ii |||i d}|ii djo||jo|i ||}q||ii|joyG|ii|i||fdd}|ii|i||f|ii o|i|i d}n!|ii |||i d}|i||d|}|ii|d|||i||f<||f|i|<|ii|d|i|ii|d|iy|ii|dWntj o tnXWntj o|i}nX|i||d|}q|i||d|}n9||jo|i ||}n|i!|||}||f|i|<|ii|d|i|ii|d|i|Sd S( s *Internal* Create a draw edge for (tail,head) on the canvas. Position is determined by the position of the vertices (or the embedding if the draw vertices do not exist yet).f100.0isfillis s sverticesiN("sselfsVertexPositionstailstsheadshsGs QEdgeWidths gEdgeWidths zoomFactorsws EdgeWidths QDirectedsCreateDirectedLoopDrawEdgesdes OutNeighborsscanvass itemconfigs drawEdgessoldColorsdeleteswOldsCreateDirectedDrawEdgesedgestag_binds DefaultInfosEdgeInfoslowersTclErrorsNonesKeyErrors cEdgeDefaultsCreateUndirectedLoopDrawEdgesCreateUndirectedDrawEdge( sselfstailsheadswOldshsdesoldColorstsw((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysCreateDrawEdgesL      cCsx|i|}|ii|i|id|i|idddddd|i |i d|dd d |}|Sd S( s *Internal* Create a vertex annotation for v on the canvas. Position is determined by the position of the corresponding draw vertex on the canvas. isanchorswsjustifysleftsfontstextstags vertexAnnosfillN(sselfsVertexPositionsvsposscanvass create_textsxs zVertexRadiussysfonts zFontSizes annotationscolorsda(sselfsvs annotationscolorspossda((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysCreateVertexAnnotation3s cCsR|i|}|i|}|ii||i|i d|i |i ddS(Ni( sselfsVertexPositionsvspossvertexAnnotationsdascanvassmovesxs zVertexRadiussy(sselfsvsdaspos((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysUpdateVertexAnnotationPositionCs c Cs|i|}|i|}t|i|i|i|if\}} |i }|id|i|i||} |id|i|i|| } |i i| | ddddd|i|id|ddd |} | Sd S( s *Internal* Create an edge annotation for (tail,head) on the canvas. Position is determined by the embedding specified. f0.5sanchorscentersjustifysfontstextstagsedgeAnnosfillN(sselfsVertexPositionstailstsheadshs orthogonalsxsysmXsmYs zVertexRadiusscscanvass create_textsfonts zFontSizes annotationscolorsda( sselfstailsheads annotationscolorshscsmXstsysxsdasmY((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysCreateEdgeAnnotationHs, ## cCs|i|}ti|dd|dd|dd}|d}|djo$|ii |i |d|i n!|ii |i |d|i |ii |i|d||idS(s0 Change color of v to color. No error checking! if65536.0iif0.20000000000000001sfillN(sselfs winfo_rgbscolors rgb_colorscolorsyss rgb_to_hlss hls_colors lightnessscanvass itemconfigs drawLabelsvscLabelDefaultInverteds cLabelDefaults drawVertexsupdate(sselfsvscolors rgb_colors lightnesss hls_color((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysSetVertexColoras   $ cCs(|i|}|ii|ddSdS(s Return the color of v sfilliN(sselfs drawVertexsvsdvscanvass itemconfig(sselfsvsdv((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysGetVertexColorqs cCs|tjo |tjo|iidd|n|tj o |i}n|tj o2x/|D]#}|ii|i|d|qbWn|i dS(s Change the color of all vertices to 'color' at once You can also pass an induced subgraph or a list of vertices sverticessfillN( sgraphsNonesverticessselfscanvass itemconfigscolorsvs drawVertexsupdate(sselfscolorsgraphsverticessv((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysSetAllVerticesColorws   %cCs|tjo|tjo|iidd|qx|iiD]G}|i |d|d|j o|i |d|d|qDqDWnfxb|iD]T}|tjp|i |d|d|j o|i |d|d|qqW|i dS(se Change the color of all edges to 'color' at once You can also pass an induced subgraph sedgessfilliiN( sgraphsNones leaveColorssselfscanvass itemconfigscolorsGsEdgesses GetEdgeColors SetEdgeColorsupdate(sselfscolorsgraphs leaveColorsse((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysSetAllEdgesColors  "' /#cCs|iidjo|i||f}nAy|i||f}Wn&tj o|i||f}nX|ii |d||i dS(sb Change color of (tail,head) to color. No error checking! Handles undirected graphs. isfillN( sselfsGs QDirecteds drawEdgesstailsheadsdesKeyErrorscanvass itemconfigscolorsupdate(sselfstailsheadscolorsde((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pys SetEdgeColorscCsI|ii||\}}|i||f}|i i |ddSdS(sY Return color of (tail,head). No error checking! Handles undirected graphs. sfilliN( sselfsGsEdgestailsheadsusvs drawEdgessdescanvass itemconfig(sselfstailsheadsdesusv((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pys GetEdgeColorscCs|tjo |i}n|i|}|ii|dd}xwt dt D]f}|ii t|ii|d||i|ii t|ii|d||iqPWdS(s Blink vertex v with color. Number of times, speed, default color is specified in GatoGlobals.py. No error checking! sfilliiN(scolorsNonesselfs cVertexBlinks drawVertexsvsdvscanvass itemconfigsoldColorsxranges gBlinkRepeatsisafters gBlinkRatesupdate(sselfsvscolorsoldColorsisdv((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pys BlinkVertexs    cCs|tjo |i}n|iidjo|i||f}nAy|i||f}Wn&t j o|i||f}nX|i i |dd}xwtdtD]f}|i it|i i |d||i|i it|i i |d||iqWdS(s Blink edge (tail,head) with color. Number of times, speed, default color is specified in GatoGlobals.py. No error checking! Handles undirected graphs. isfilliN(scolorsNonesselfs cVertexBlinksGs QDirecteds drawEdgesstailsheadsdesKeyErrorscanvass itemconfigsoldColorsxranges gBlinkRepeatsisafters gBlinkRatesupdate(sselfstailsheadscolorsdesoldColorsi((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pys BlinkEdges$   c Cs|tjo |i}ntgt|}tgt|}xtt|D]}yL||}t|}|i |||<|i i||dd||

No information available

N(sselfshasGraphsGsAbout(sself((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysAboutscCs#||_|iid|idS(sC A clickhandler is a function being called when the user clicks on a vertex or an edge (actually releases mouse button 1 over a vertex or an edge). The clickhandler takes a string 'vertex' or 'edge' as the first and the vertex/edge clicked on as the second argument sN(shandlersselfs clickhandlerscanvassbindsMouseUp(sselfshandler((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysRegisterClickhandlers cCst|_|iiddS(s Unregister the handler sN(sNonesselfs clickhandlerscanvassunbind(sself((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysUnregisterClickhandlers cCsx|itjod|i|}|tjo|id|qt|i|}|tjo|id|qtndS(sz Callback method for . Finds the vertex/edge clicked and calls the registered clickhandler svertexsedgeN(sselfs clickhandlersNones FindVertexseventsvsFindEdgese(sselfseventsesv((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysMouseUps  (Es__name__s __module__s__doc__s__init__sReadConfigurationsfontsGetCanvasCentersZoomsCanvasToEmbeddingsEmbeddingToCanvass CreateWidgetss ShowGraphsRegisterGraphInformersCreateDrawItemssDeleteDrawItemssDeleteDrawEdgessDeleteDrawVerticessDeleteDrawLabelssDeleteVertexAnnotationssDeleteEdgeAnnotationssNonesCreateDrawVertexsCreateDrawLabelsCreateUndirectedLoopDrawEdgesCreateDirectedLoopDrawEdgesCreateUndirectedDrawEdgesCreateDirectedDrawEdgesCreateDrawEdgesCreateVertexAnnotationsUpdateVertexAnnotationPositionsCreateEdgeAnnotationsSetVertexColorsGetVertexColorsSetAllVerticesColorsSetAllEdgesColors SetEdgeColors GetEdgeColors BlinkVertexs BlinkEdgesBlinksGetVertexFrameWidthsSetVertexFrameWidthsGetVertexAnnotationsSetVertexAnnotationsSetEdgeAnnotationsUpdateVertexLabels UpdateInfos DefaultInfos VertexInfosEdgeInfos FindVertexsFindGridVertexsFindEdges HighlightPathsHidePaths AddVertexsAddVertexCanvass MoveVertexs DeleteVertexsAddEdges DeleteEdges RaiseEdgesSwapEdgeOrientationsVertexPositions PrintToPSFilesAboutsRegisterClickhandlersUnregisterClickhandlersMouseUp(((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pys GraphDisplayCs      A   N              ! 9          !             8        sGraphDisplayFramecBs#tZdZedZdZRS(s# Provides graph display in a frame cCsAti|||i|idddtti|dS(Nsexpandisfill(sFrames__init__sselfsmasterspacksBOTHs GraphDisplay(sselfsmaster((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pys__init__s cCstid|dS(Nschange window title to %s(slogsinfostitle(sselfstitle((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysSetTitles(s__name__s __module__s__doc__sNones__init__sSetTitle(((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysGraphDisplayFrames  sGraphDisplayToplevelcBs>tZdZedZdZdZdZdZRS(s. Provides graph display in a top-level window cCs4ti||ti||id|idS(NsWM_DELETE_WINDOW(sToplevels__init__sselfsmasters GraphDisplaysprotocolsWMDelete(sselfsmaster((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pys__init__s cCs|idS(s& Withdraw window from screen. N(sselfswithdraw(sself((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysWithdrawscCs|idS(s Window-Manager Quits only yield withdraws unless you quit the AlgoWin. Override if you want group leader to handle quit N(sselfsWithdraw(sself((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysWMDeletescCs|idS(N(sselfs deiconify(sself((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysShowscCs|i|dS(N(sselfstitle(sselfstitle((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysSetTitles( s__name__s __module__s__doc__sNones__init__sWithdrawsWMDeletesShowsSetTitle(((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pysGraphDisplayToplevels     (sTkinterstkFontsGraphsmathssqrtspissinscoss GatoGlobalssGatoUtils orthogonalsDataStructuressPoint2DsVertexLabelings EdgeLabelingsosscolorsyssloggings getLoggerslogs StringVarsZoomVars GraphDisplaysFramesGraphDisplayFramesToplevelsGraphDisplayToplevel(scossGraphDisplayToplevelsloggingslogstkFonts orthogonalsGraphsZoomVarsVertexLabelingssqrts EdgeLabelingsGraphDisplayFramescolorsyss GraphDisplayspisosssinsPoint2D((s9/mnt/gmirror/ports/math/py-gato/work/Gato/GraphDisplay.pys?%s$