!C,      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe?  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFHGIJKMLN\O]XPQRSTUVWYZ[^_`abcdefghijklmnopqwrstuvxyz{|}~{|}~xyzqwrstuvnophijklmN\O]XPQRSTUVWYZ[^_`abcdefgKMLIJFHGCDE?@AB9:;<=>678./012345+,-()*&'$%"# !  NoneVu =>?@ABCDEFG =?BACDEFG>@None 1;<=>?CV,Runi-uDrawGraphTiresomely we need to make the "real" node type untyped. This is so that the interactor which handles drag-and-drop can get the type out without knowing what it is.uni-uDrawGraphWe run a separate thread for redrawing. The idea is that when more than one redraw request arrives while daVinci is already redrawing, we only send one. This means it is not too bad when we make a lot of changes, redrawing each one.uni-uDrawGraphsetUpNodeType is used for doing Haskell-side initialisations either after (a) a new node has been created, or (b) we have changed the type.uni-uDrawGraphThis is called internally, by the function set up by newNodePrim. The function returns False to indicate that this function failed as the node has been deleted. (This behaviour may now be useless anyway but I can't be bothered to change it.)uni-uDrawGraph/This function similarly changes the font style.uni-uDrawGraph+This function similarly changes the border. NOPQRSTUVWX WUVTSRQPONX       !"#$$%&&'()*+,-./0123456789:;<=>?2@1ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01M23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-uni-uDrawGraph-2.2.1.4-Iaa9TGgvyodGeqoL2knowvUDrawGraph.TypesUDrawGraph.BasicUDrawGraph.GraphMenuMod AlternateShiftControlMetaNoneBtypeBt DirectionUpDownDVLeftDVRightOrientTopDownBottomUp LeftRight RightLeftWindowId ContextIdFilenameTypeIconIdMenuAccMenuMne MenuLabelMenuIdEdgeIdNodeId VisualRuleNRER IconEntryBlankIconEntry MenuEntry MenuEntryMne SubmenuEntrySubmenuEntryMneBlankMenuEntryMenuEntryDisabledSubmenuEntryDisabled TypeChangeNodeTypeEdgeType AttrChangeNodeEdge MixedUpdateNUEU EdgeUpdate DeleteEdgeNewEdge NewEdgeBehind NodeUpdate DeleteNodeNewNode AttributeAMENR DaVinciAnswerOkCommunicationErrorNodeSelectionsLabelsNodeDoubleClickEdgeSelectionLabelEdgeSelectionLabelsEdgeDoubleClick MenuSelection IconSelectionContext TclAnswer BrowserAnswer DisconnectClosedQuitPopupSelectionNodePopupSelectionEdge CreateNodeCreateNodeAndEdge CreateEdgeDropNode ContextWindow OpenWindow CloseWindow VersionedDragAndDropCmd DraggingOn DragAndDropOn DraggingOffNewNodeAtCoordNewEdgeAndNodeAtCoord VisualCmdNewRulesAddRules SpecialCmd SelectNodes SelectEdge FocusNodeFocusNodeAnimatedShowUrlVersionTclCmdDVEvalEvalFile WindowCmdTitle ShowMessage ShowStatusPositionSizeRaiseIconify DeiconifyActivate Deactivate FileBrowserSetCmdLayoutAccuracyKeepNodesAtLevelsFontSizeGapWidth GapHeight MultiEdgeGapSelfEdgeRadiusScrollingOnSelectionAnimationSpeedNoCache RulesFirst AppMenuCmd CreateMenus CreateIcons ActivateMenus ActivateIconsControlFileEvents LayoutMenuCmd ImproveAllImproveVisible CompactAll OrientationAbstractionMenuCmd HideSubgraph ShowSubgraphRestoreAllSubgraphs HideEdges ShowEdgesRestoreAllEdgesNavigationMenuCmd SelectParentsSelectSiblings SelectChildsSelectChildren NavigatorFind ViewMenuCmd OpenNewViewOpenSurveyView FullScaleFitScaleToWindowScale GraphInfo DaVinciInfo FileMenuCmd ClearGraph OpenGraphOpenGraphPlaced OpenStatus SaveGraph SaveStatusPrintCloseExitMenuCmdFileView Navigation AbstractionLayoutMultiCmd NewContext OpenContext SetContextSetContextWindowGraphCmdNew NewPlacedUpdate ChangeAttrUpdateAndChangeAttr UpdateMixedUpdateAndChangeAttrMixed ChangeType DaVinciCmdGraphMultiMenuAppMenuDVSetWindowTclSpecial DVNothingVisual DragAndDrop$fShowViewMenuCmd $fShowSetCmd $fShowNodeId$fShowAbstractionMenuCmd $fShowEdgeId$fShowSpecialCmd $fShowMenuId$fShowMenuLabel $fShowMenuMne $fShowMenuAcc $fShowIconId $fShowType$fShowTypeChange$fShowFilename$fShowIconEntry $fShowTclCmd$fShowFileMenuCmd$fShowContextId$fShowWindowId$fReadDaVinciAnswer$fShowDaVinciAnswer$fShowMultiCmd $fShowOrient$fShowLayoutMenuCmd$fShowDirection$fShowNavigationMenuCmd $fShowMenuCmd $fShowBtype$fShowWindowCmd $fShowMenuMod$fShowMenuEntry$fShowAttribute$fShowVisualRule$fShowVisualCmd$fShowAttrChange$fShowEdgeUpdate$fShowNodeUpdate$fShowMixedUpdate$fShowDragAndDropCmd $fShowEdge $fShowNode$fShowGraphCmd$fShowAppMenuCmd$fShowDaVinciCmd$fEqViewMenuCmd $fEqSetCmd $fEqNodeId $fOrdNodeId$fEqAbstractionMenuCmd $fEqEdgeId $fOrdEdgeId$fEqSpecialCmd $fEqMenuId $fOrdMenuId $fEqMenuLabel $fEqMenuMne $fEqMenuAcc $fEqIconId $fOrdIconId$fEqType $fOrdType$fEqTypeChange $fEqFilename $fEqIconEntry $fEqTclCmd$fEqFileMenuCmd $fEqContextId$fOrdContextId $fEqWindowId $fOrdWindowId$fEqDaVinciAnswer$fOrdDaVinciAnswer $fEqMultiCmd $fEqOrient$fEqLayoutMenuCmd $fEqDirection$fEqNavigationMenuCmd $fEqMenuCmd $fEqBtype $fEqWindowCmd $fEqMenuMod $fEqMenuEntry $fEqAttribute$fEqVisualRule $fEqVisualCmd$fEqAttrChange$fEqEdgeUpdate$fEqNodeUpdate$fEqMixedUpdate$fEqDragAndDropCmd$fEqNode$fEqEdge $fEqGraphCmd$fEqAppMenuCmd$fEqDaVinciCmddaVinciVersion newContext exitDaVinci doInContextdoInContextGeneral withHandlernewType newNodeId newEdgeId newMenuId $fOrdContext $fEqContext$fDestructibleContext$fDestroyableContext$fObjectDaVinci$fDestroyableDaVinciDaVinciArcTypeParmsDaVinciArcType DaVinciArcDaVinciNodeTypeParmsDaVinciNodeType DaVinciNodeDaVinciGraphParms DaVinciGraphpendingChangesLock daVinciSortgetDaVinciGraphContext$fNodeClassDaVinciNode$fOrd1DaVinciNode$fEq1DaVinciNode$fNodeTypeClassDaVinciNodeType$fEq1DaVinciNodeType$fArcClassDaVinciArc$fOrd1DaVinciArc$fEq1DaVinciArc$fArcTypeClassDaVinciArcType$fOrd1DaVinciArcType$fEq1DaVinciArcType!$fDeleteArcDaVinciGraphDaVinciArc0$fSetArcTypeDaVinciGraphDaVinciArcDaVinciArcTypeB$fNewArcDaVinciGraphDaVinciNodeDaVinciNodeDaVinciArcDaVinciArcType*$fHasModifyValue(,)DaVinciGraphDaVinciNode0$fHasModifyValueAttributeDaVinciGraphDaVinciNode5$fHasModifyValueNodeArcsHiddenDaVinciGraphDaVinciNode%$fSetNodeFocusDaVinciGraphDaVinciNode#$fDeleteNodeDaVinciGraphDaVinciNode/$fNewNodeDaVinciGraphDaVinciNodeDaVinciNodeType$fGraphClassDaVinciGraph$fHasDelayerDaVinciGraph$fDestructibleDaVinciGraph$fDestroyableDaVinciGraph$fOrdDaVinciGraph$fEqDaVinciGraph'$fHasConfiggraphConfigDaVinciGraphParms($fHasConfigGraphGestureDaVinciGraphParms&$fHasConfigGlobalMenuDaVinciGraphParms)$fHasConfigAllowDraggingDaVinciGraphParms)$fHasConfigActionWrapperDaVinciGraphParms'$fHasConfigOrientationDaVinciGraphParms$fHasConfig(,)DaVinciGraphParms'$fHasConfigFileMenuActDaVinciGraphParms&$fHasConfigAllowCloseDaVinciGraphParms&$fHasConfigSurveyViewDaVinciGraphParms*$fHasConfigOptimiseLayoutDaVinciGraphParms($fHasConfigSimpleSourceDaVinciGraphParms#$fHasConfigDelayerDaVinciGraphParms&$fHasConfigGraphTitleDaVinciGraphParms$fGraphParmsDaVinciGraphParms'$fNewGraphDaVinciGraphDaVinciGraphParms#$fHasConfigValueLocalMenuAttributes-$fHasConfigValueValueTitleDaVinciArcTypeParms4$fHasConfigValueDoubleClickActionDaVinciArcTypeParms0$fHasConfigValuearcTypeConfigDaVinciArcTypeParms,$fHasConfigValueLocalMenuDaVinciArcTypeParms!$fArcTypeParmsDaVinciArcTypeParms9$fNewArcTypeDaVinciGraphDaVinciArcTypeDaVinciArcTypeParms3$fHasConfigValueNodeDragAndDropDaVinciNodeTypeParms/$fHasConfigValueNodeGestureDaVinciNodeTypeParms5$fHasConfigValueDoubleClickActionDaVinciNodeTypeParms-$fHasConfigValueLocalMenuDaVinciNodeTypeParms0$fHasConfigValueBorderSourceDaVinciNodeTypeParms3$fHasConfigValueFontStyleSourceDaVinciNodeTypeParms4$fHasConfigValueValueTitleSourceDaVinciNodeTypeParms.$fHasConfigValueValueTitleDaVinciNodeTypeParms/$fHasConfigValuegraphConfigDaVinciNodeTypeParms#$fNodeTypeParmsDaVinciNodeTypeParms<$fNewNodeTypeDaVinciGraphDaVinciNodeTypeDaVinciNodeTypeParms$fGraphAllConfigDaVinciGraphDaVinciGraphParmsDaVinciNodeDaVinciNodeTypeDaVinciNodeTypeParmsDaVinciArcDaVinciArcTypeDaVinciArcTypeParms$fHasConfigValueAttAttributes.$fHasConfigValueEdgePatternDaVinciArcTypeParms'$fHasConfigValueHeadDaVinciArcTypeParms*$fHasConfigValueEdgeDirDaVinciArcTypeParms($fHasConfigValueColorDaVinciArcTypeParms)$fHasConfigValueColorDaVinciNodeTypeParms)$fHasConfigValueShapeDaVinciNodeTypeParms redrawThread setUpNodeType setNodeTitle setFontStyle setBorder