{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE OverlappingInstances #-}
module Graphs.GraphConfigure(
GraphAllConfig,
HasGraphConfigs,
HasNodeTypeConfigs,
HasNodeModifies,
HasArcTypeConfigs,
HasConfig(($$),configUsed),
HasConfigValue(($$$),configUsed'),
HasModifyValue(..),
LocalMenu(..),
GlobalMenu(..),
combineGlobalMenus,
MenuPrim(..),
mapMenuPrim,
mapMenuPrim',
mapMMenuPrim,
mapMMenuPrim',
GraphTitle(..),
ValueTitle(..),
ValueTitleSource(..),
Shape(..),
Color(..),
EdgePattern(..),
EdgeDir(..),
Head(..),
NodeArcsHidden(..),
Border(..),
BorderSource(..),
FontStyle(..),
FontStyleSource(..),
ModifyHasDef(..),
GraphGesture(..),
NodeGesture(..),
NodeDragAndDrop(..),
DoubleClickAction(..),
OptimiseLayout(..),
SurveyView(..),
AllowDragging(..),
AllowClose(..),
defaultAllowClose,
FileMenuAct(..),FileMenuOption(..),
Orientation(..),
ActionWrapper(..),
($$$?),
) where
import Util.Computation(HasConfig(($$),configUsed),done)
import Util.ExtendedPrelude
import Util.Dynamics(Dyn,Typeable)
import Util.Messages
import Util.Sources
import Util.Delayer
import HTk.Toolkit.MenuType
import Graphs.GraphDisp
class HasConfigValue option configuration where
($$$) :: Typeable value
=> option value -> configuration value -> configuration value
configUsed' :: Typeable value
=> option value -> configuration value -> Bool
infixr 0 $$$
instance (Typeable value,HasConfigValue option configuration)
=> HasConfig (option value) (configuration value) where
$$ :: option value -> configuration value -> configuration value
($$) = option value -> configuration value -> configuration value
forall (option :: * -> *) (configuration :: * -> *) value.
(HasConfigValue option configuration, Typeable value) =>
option value -> configuration value -> configuration value
($$$)
configUsed :: option value -> configuration value -> Bool
configUsed = option value -> configuration value -> Bool
forall (option :: * -> *) (configuration :: * -> *) value.
(HasConfigValue option configuration, Typeable value) =>
option value -> configuration value -> Bool
configUsed'
($$$?) :: (HasConfigValue option configuration,Typeable value)
=> Maybe (option value) -> configuration value -> configuration value
$$$? :: Maybe (option value) -> configuration value -> configuration value
($$$?) Maybe (option value)
Nothing configuration value
configuration = configuration value
configuration
($$$?) (Just option value
option) configuration value
configuration = option value -> configuration value -> configuration value
forall (option :: * -> *) (configuration :: * -> *) value.
(HasConfigValue option configuration, Typeable value) =>
option value -> configuration value -> configuration value
($$$) option value
option configuration value
configuration
infixr 0 $$$?
class HasModifyValue option graph object where
modify :: Typeable value => option -> graph -> object value -> IO ()
instance HasModifyValue option graph object
=> HasModifyValue (Maybe option) graph object
where
modify :: Maybe option -> graph -> object value -> IO ()
modify Maybe option
Nothing graph
_ object value
_ = IO ()
forall (m :: * -> *). Monad m => m ()
done
modify (Just option
option) graph
graph object value
node = option -> graph -> object value -> IO ()
forall option graph (object :: * -> *) value.
(HasModifyValue option graph object, Typeable value) =>
option -> graph -> object value -> IO ()
modify option
option graph
graph object value
node
instance GraphConfig GlobalMenu
newtype = (MenuPrim (Maybe String) (IO ()))
instance NodeTypeConfig LocalMenu
instance ArcTypeConfig LocalMenu
newtype value =
(MenuPrim (Maybe String) (value -> IO()))
instance HasCoMapIO LocalMenu where
coMapIO :: (a -> IO b) -> LocalMenu b -> LocalMenu a
coMapIO a -> IO b
a2bAct (LocalMenu MenuPrim (Maybe String) (b -> IO ())
menuPrim) =
MenuPrim (Maybe String) (a -> IO ()) -> LocalMenu a
forall value.
MenuPrim (Maybe String) (value -> IO ()) -> LocalMenu value
LocalMenu
(((b -> IO ()) -> a -> IO ())
-> MenuPrim (Maybe String) (b -> IO ())
-> MenuPrim (Maybe String) (a -> IO ())
forall a b c. (a -> b) -> MenuPrim c a -> MenuPrim c b
mapMenuPrim
(\ b -> IO ()
b2Act ->
(\ a
aValue ->
do
b
bValue <- a -> IO b
a2bAct a
aValue
b -> IO ()
b2Act b
bValue
)
)
MenuPrim (Maybe String) (b -> IO ())
menuPrim
)
combineGlobalMenus :: [GlobalMenu] -> GlobalMenu
[GlobalMenu]
globalMenus =
MenuPrim (Maybe String) (IO ()) -> GlobalMenu
GlobalMenu
(Maybe String
-> [MenuPrim (Maybe String) (IO ())]
-> MenuPrim (Maybe String) (IO ())
forall subMenuValue value.
subMenuValue
-> [MenuPrim subMenuValue value] -> MenuPrim subMenuValue value
Menu Maybe String
forall a. Maybe a
Nothing ((GlobalMenu -> MenuPrim (Maybe String) (IO ()))
-> [GlobalMenu] -> [MenuPrim (Maybe String) (IO ())]
forall a b. (a -> b) -> [a] -> [b]
map (\ (GlobalMenu MenuPrim (Maybe String) (IO ())
menu) -> MenuPrim (Maybe String) (IO ())
menu) [GlobalMenu]
globalMenus))
data GraphTitle = GraphTitle String
instance GraphConfig GraphTitle
instance GraphConfig (SimpleSource GraphTitle)
data ValueTitle value = ValueTitle (value -> IO String)
data ValueTitleSource value
= ValueTitleSource (value -> IO (SimpleSource String))
instance NodeTypeConfig ValueTitle
instance NodeTypeConfig ValueTitleSource
instance ArcTypeConfig ValueTitle
instance HasCoMapIO ValueTitle where
coMapIO :: (a -> IO b) -> ValueTitle b -> ValueTitle a
coMapIO a -> IO b
a2bAct (ValueTitle b -> IO String
b2StringAct) =
(a -> IO String) -> ValueTitle a
forall value. (value -> IO String) -> ValueTitle value
ValueTitle (
\ a
aValue ->
do
b
bValue <- a -> IO b
a2bAct a
aValue
b -> IO String
b2StringAct b
bValue
)
data GraphGesture = GraphGesture (IO ())
instance GraphConfig GraphGesture
data NodeGesture value = NodeGesture (value -> IO ())
instance NodeTypeConfig NodeGesture
instance HasCoMapIO NodeGesture where
coMapIO :: (a -> IO b) -> NodeGesture b -> NodeGesture a
coMapIO a -> IO b
a2bAct (NodeGesture b -> IO ()
b2StringAct) =
(a -> IO ()) -> NodeGesture a
forall value. (value -> IO ()) -> NodeGesture value
NodeGesture (
\ a
aValue ->
do
b
bValue <- a -> IO b
a2bAct a
aValue
b -> IO ()
b2StringAct b
bValue
)
data NodeDragAndDrop value = NodeDragAndDrop (Dyn -> value -> IO ())
instance NodeTypeConfig NodeDragAndDrop
newtype DoubleClickAction value = DoubleClickAction (value -> IO ())
instance NodeTypeConfig DoubleClickAction
instance ArcTypeConfig DoubleClickAction
data Shape value = Box | Circle | Ellipse | Rhombus | Triangle |
Icon FilePath deriving (ReadPrec [Shape value]
ReadPrec (Shape value)
Int -> ReadS (Shape value)
ReadS [Shape value]
(Int -> ReadS (Shape value))
-> ReadS [Shape value]
-> ReadPrec (Shape value)
-> ReadPrec [Shape value]
-> Read (Shape value)
forall value. ReadPrec [Shape value]
forall value. ReadPrec (Shape value)
forall value. Int -> ReadS (Shape value)
forall value. ReadS [Shape value]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Shape value]
$creadListPrec :: forall value. ReadPrec [Shape value]
readPrec :: ReadPrec (Shape value)
$creadPrec :: forall value. ReadPrec (Shape value)
readList :: ReadS [Shape value]
$creadList :: forall value. ReadS [Shape value]
readsPrec :: Int -> ReadS (Shape value)
$creadsPrec :: forall value. Int -> ReadS (Shape value)
Read,Int -> Shape value -> ShowS
[Shape value] -> ShowS
Shape value -> String
(Int -> Shape value -> ShowS)
-> (Shape value -> String)
-> ([Shape value] -> ShowS)
-> Show (Shape value)
forall value. Int -> Shape value -> ShowS
forall value. [Shape value] -> ShowS
forall value. Shape value -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Shape value] -> ShowS
$cshowList :: forall value. [Shape value] -> ShowS
show :: Shape value -> String
$cshow :: forall value. Shape value -> String
showsPrec :: Int -> Shape value -> ShowS
$cshowsPrec :: forall value. Int -> Shape value -> ShowS
Show)
instance NodeTypeConfig Shape
newtype Color value = Color String deriving (ReadPrec [Color value]
ReadPrec (Color value)
Int -> ReadS (Color value)
ReadS [Color value]
(Int -> ReadS (Color value))
-> ReadS [Color value]
-> ReadPrec (Color value)
-> ReadPrec [Color value]
-> Read (Color value)
forall value. ReadPrec [Color value]
forall value. ReadPrec (Color value)
forall value. Int -> ReadS (Color value)
forall value. ReadS [Color value]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Color value]
$creadListPrec :: forall value. ReadPrec [Color value]
readPrec :: ReadPrec (Color value)
$creadPrec :: forall value. ReadPrec (Color value)
readList :: ReadS [Color value]
$creadList :: forall value. ReadS [Color value]
readsPrec :: Int -> ReadS (Color value)
$creadsPrec :: forall value. Int -> ReadS (Color value)
Read,Int -> Color value -> ShowS
[Color value] -> ShowS
Color value -> String
(Int -> Color value -> ShowS)
-> (Color value -> String)
-> ([Color value] -> ShowS)
-> Show (Color value)
forall value. Int -> Color value -> ShowS
forall value. [Color value] -> ShowS
forall value. Color value -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Color value] -> ShowS
$cshowList :: forall value. [Color value] -> ShowS
show :: Color value -> String
$cshow :: forall value. Color value -> String
showsPrec :: Int -> Color value -> ShowS
$cshowsPrec :: forall value. Int -> Color value -> ShowS
Show)
instance NodeTypeConfig Color
instance ArcTypeConfig Color
data EdgePattern value = Solid | Dotted | Dashed | Thick | Double
deriving (ReadPrec [EdgePattern value]
ReadPrec (EdgePattern value)
Int -> ReadS (EdgePattern value)
ReadS [EdgePattern value]
(Int -> ReadS (EdgePattern value))
-> ReadS [EdgePattern value]
-> ReadPrec (EdgePattern value)
-> ReadPrec [EdgePattern value]
-> Read (EdgePattern value)
forall value. ReadPrec [EdgePattern value]
forall value. ReadPrec (EdgePattern value)
forall value. Int -> ReadS (EdgePattern value)
forall value. ReadS [EdgePattern value]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EdgePattern value]
$creadListPrec :: forall value. ReadPrec [EdgePattern value]
readPrec :: ReadPrec (EdgePattern value)
$creadPrec :: forall value. ReadPrec (EdgePattern value)
readList :: ReadS [EdgePattern value]
$creadList :: forall value. ReadS [EdgePattern value]
readsPrec :: Int -> ReadS (EdgePattern value)
$creadsPrec :: forall value. Int -> ReadS (EdgePattern value)
Read,Int -> EdgePattern value -> ShowS
[EdgePattern value] -> ShowS
EdgePattern value -> String
(Int -> EdgePattern value -> ShowS)
-> (EdgePattern value -> String)
-> ([EdgePattern value] -> ShowS)
-> Show (EdgePattern value)
forall value. Int -> EdgePattern value -> ShowS
forall value. [EdgePattern value] -> ShowS
forall value. EdgePattern value -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EdgePattern value] -> ShowS
$cshowList :: forall value. [EdgePattern value] -> ShowS
show :: EdgePattern value -> String
$cshow :: forall value. EdgePattern value -> String
showsPrec :: Int -> EdgePattern value -> ShowS
$cshowsPrec :: forall value. Int -> EdgePattern value -> ShowS
Show)
instance ArcTypeConfig EdgePattern
data EdgeDir value = Dir String deriving (ReadPrec [EdgeDir value]
ReadPrec (EdgeDir value)
Int -> ReadS (EdgeDir value)
ReadS [EdgeDir value]
(Int -> ReadS (EdgeDir value))
-> ReadS [EdgeDir value]
-> ReadPrec (EdgeDir value)
-> ReadPrec [EdgeDir value]
-> Read (EdgeDir value)
forall value. ReadPrec [EdgeDir value]
forall value. ReadPrec (EdgeDir value)
forall value. Int -> ReadS (EdgeDir value)
forall value. ReadS [EdgeDir value]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EdgeDir value]
$creadListPrec :: forall value. ReadPrec [EdgeDir value]
readPrec :: ReadPrec (EdgeDir value)
$creadPrec :: forall value. ReadPrec (EdgeDir value)
readList :: ReadS [EdgeDir value]
$creadList :: forall value. ReadS [EdgeDir value]
readsPrec :: Int -> ReadS (EdgeDir value)
$creadsPrec :: forall value. Int -> ReadS (EdgeDir value)
Read, Int -> EdgeDir value -> ShowS
[EdgeDir value] -> ShowS
EdgeDir value -> String
(Int -> EdgeDir value -> ShowS)
-> (EdgeDir value -> String)
-> ([EdgeDir value] -> ShowS)
-> Show (EdgeDir value)
forall value. Int -> EdgeDir value -> ShowS
forall value. [EdgeDir value] -> ShowS
forall value. EdgeDir value -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EdgeDir value] -> ShowS
$cshowList :: forall value. [EdgeDir value] -> ShowS
show :: EdgeDir value -> String
$cshow :: forall value. EdgeDir value -> String
showsPrec :: Int -> EdgeDir value -> ShowS
$cshowsPrec :: forall value. Int -> EdgeDir value -> ShowS
Show)
instance ArcTypeConfig EdgeDir
data Head value = Head String deriving (ReadPrec [Head value]
ReadPrec (Head value)
Int -> ReadS (Head value)
ReadS [Head value]
(Int -> ReadS (Head value))
-> ReadS [Head value]
-> ReadPrec (Head value)
-> ReadPrec [Head value]
-> Read (Head value)
forall value. ReadPrec [Head value]
forall value. ReadPrec (Head value)
forall value. Int -> ReadS (Head value)
forall value. ReadS [Head value]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Head value]
$creadListPrec :: forall value. ReadPrec [Head value]
readPrec :: ReadPrec (Head value)
$creadPrec :: forall value. ReadPrec (Head value)
readList :: ReadS [Head value]
$creadList :: forall value. ReadS [Head value]
readsPrec :: Int -> ReadS (Head value)
$creadsPrec :: forall value. Int -> ReadS (Head value)
Read, Int -> Head value -> ShowS
[Head value] -> ShowS
Head value -> String
(Int -> Head value -> ShowS)
-> (Head value -> String)
-> ([Head value] -> ShowS)
-> Show (Head value)
forall value. Int -> Head value -> ShowS
forall value. [Head value] -> ShowS
forall value. Head value -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Head value] -> ShowS
$cshowList :: forall value. [Head value] -> ShowS
show :: Head value -> String
$cshow :: forall value. Head value -> String
showsPrec :: Int -> Head value -> ShowS
$cshowsPrec :: forall value. Int -> Head value -> ShowS
Show)
instance ArcTypeConfig Head
class ModifyHasDef modification where
def :: modification
isDef :: modification -> Bool
newtype NodeArcsHidden = NodeArcsHidden Bool
instance ModifyHasDef NodeArcsHidden where
def :: NodeArcsHidden
def = Bool -> NodeArcsHidden
NodeArcsHidden Bool
False
isDef :: NodeArcsHidden -> Bool
isDef (NodeArcsHidden Bool
b) = Bool -> Bool
not Bool
b
data Border = NoBorder | SingleBorder | DoubleBorder
data BorderSource value = BorderSource (value -> IO (SimpleSource Border))
instance NodeTypeConfig BorderSource
data FontStyle = NormalFontStyle | BoldFontStyle | ItalicFontStyle
| BoldItalicFontStyle deriving (FontStyle -> FontStyle -> Bool
(FontStyle -> FontStyle -> Bool)
-> (FontStyle -> FontStyle -> Bool) -> Eq FontStyle
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FontStyle -> FontStyle -> Bool
$c/= :: FontStyle -> FontStyle -> Bool
== :: FontStyle -> FontStyle -> Bool
$c== :: FontStyle -> FontStyle -> Bool
Eq)
data FontStyleSource value
= FontStyleSource (value -> IO (SimpleSource FontStyle))
instance NodeTypeConfig FontStyleSource
newtype OptimiseLayout = OptimiseLayout Bool
instance GraphConfig OptimiseLayout
newtype SurveyView = SurveyView Bool
instance GraphConfig SurveyView
newtype AllowDragging = AllowDragging Bool
newtype AllowClose = AllowClose (IO Bool)
defaultAllowClose :: AllowClose
defaultAllowClose :: AllowClose
defaultAllowClose = IO Bool -> AllowClose
AllowClose (String -> IO Bool
confirmMess String
"Really close window?")
data =
| | |
| | | deriving (Eq FileMenuOption
Eq FileMenuOption
-> (FileMenuOption -> FileMenuOption -> Ordering)
-> (FileMenuOption -> FileMenuOption -> Bool)
-> (FileMenuOption -> FileMenuOption -> Bool)
-> (FileMenuOption -> FileMenuOption -> Bool)
-> (FileMenuOption -> FileMenuOption -> Bool)
-> (FileMenuOption -> FileMenuOption -> FileMenuOption)
-> (FileMenuOption -> FileMenuOption -> FileMenuOption)
-> Ord FileMenuOption
FileMenuOption -> FileMenuOption -> Bool
FileMenuOption -> FileMenuOption -> Ordering
FileMenuOption -> FileMenuOption -> FileMenuOption
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: FileMenuOption -> FileMenuOption -> FileMenuOption
$cmin :: FileMenuOption -> FileMenuOption -> FileMenuOption
max :: FileMenuOption -> FileMenuOption -> FileMenuOption
$cmax :: FileMenuOption -> FileMenuOption -> FileMenuOption
>= :: FileMenuOption -> FileMenuOption -> Bool
$c>= :: FileMenuOption -> FileMenuOption -> Bool
> :: FileMenuOption -> FileMenuOption -> Bool
$c> :: FileMenuOption -> FileMenuOption -> Bool
<= :: FileMenuOption -> FileMenuOption -> Bool
$c<= :: FileMenuOption -> FileMenuOption -> Bool
< :: FileMenuOption -> FileMenuOption -> Bool
$c< :: FileMenuOption -> FileMenuOption -> Bool
compare :: FileMenuOption -> FileMenuOption -> Ordering
$ccompare :: FileMenuOption -> FileMenuOption -> Ordering
$cp1Ord :: Eq FileMenuOption
Ord,FileMenuOption -> FileMenuOption -> Bool
(FileMenuOption -> FileMenuOption -> Bool)
-> (FileMenuOption -> FileMenuOption -> Bool) -> Eq FileMenuOption
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FileMenuOption -> FileMenuOption -> Bool
$c/= :: FileMenuOption -> FileMenuOption -> Bool
== :: FileMenuOption -> FileMenuOption -> Bool
$c== :: FileMenuOption -> FileMenuOption -> Bool
Eq)
data = FileMenuOption (Maybe (IO ()))
instance GraphConfig FileMenuAct
instance GraphConfig AllowDragging
instance GraphConfig Delayer
instance GraphConfig AllowClose
data Orientation = TopDown | BottomUp | LeftRight | RightLeft
instance GraphConfig Orientation
newtype ActionWrapper = ActionWrapper (IO () -> IO ())
instance GraphConfig ActionWrapper
class (
GraphParms graphParms,
HasConfig GlobalMenu graphParms,HasConfig GraphTitle graphParms,
HasConfig GraphGesture graphParms,HasConfig OptimiseLayout graphParms,
HasConfig SurveyView graphParms,HasConfig AllowDragging graphParms,
HasConfig AllowClose graphParms,HasConfig Orientation graphParms,
HasConfig FileMenuAct graphParms,HasConfig ActionWrapper graphParms,
HasConfig (SimpleSource GraphTitle) graphParms,
HasConfig Delayer graphParms
)
=> HasGraphConfigs graphParms
instance (
GraphParms graphParms,
HasConfig GlobalMenu graphParms,HasConfig GraphTitle graphParms,
HasConfig GraphGesture graphParms,HasConfig OptimiseLayout graphParms,
HasConfig SurveyView graphParms,HasConfig AllowDragging graphParms,
HasConfig AllowClose graphParms,HasConfig Orientation graphParms,
HasConfig FileMenuAct graphParms,HasConfig ActionWrapper graphParms,
HasConfig (SimpleSource GraphTitle) graphParms,
HasConfig Delayer graphParms
)
=> HasGraphConfigs graphParms
class (
NodeTypeParms nodeTypeParms,
HasConfigValue LocalMenu nodeTypeParms,
HasConfigValue ValueTitle nodeTypeParms,
HasConfigValue ValueTitleSource nodeTypeParms,
HasConfigValue FontStyleSource nodeTypeParms,
HasConfigValue BorderSource nodeTypeParms,
HasConfigValue NodeGesture nodeTypeParms,
HasConfigValue NodeDragAndDrop nodeTypeParms,
HasConfigValue DoubleClickAction nodeTypeParms,
HasConfigValue Shape nodeTypeParms,
HasConfigValue Color nodeTypeParms
)
=> HasNodeTypeConfigs nodeTypeParms
instance (
NodeTypeParms nodeTypeParms,
HasConfigValue LocalMenu nodeTypeParms,
HasConfigValue ValueTitle nodeTypeParms,
HasConfigValue ValueTitleSource nodeTypeParms,
HasConfigValue FontStyleSource nodeTypeParms,
HasConfigValue BorderSource nodeTypeParms,
HasConfigValue NodeGesture nodeTypeParms,
HasConfigValue NodeDragAndDrop nodeTypeParms,
HasConfigValue DoubleClickAction nodeTypeParms,
HasConfigValue Shape nodeTypeParms,
HasConfigValue Color nodeTypeParms
)
=> HasNodeTypeConfigs nodeTypeParms
class (
HasModifyValue NodeArcsHidden graph node
) => HasNodeModifies graph node
instance (
HasModifyValue NodeArcsHidden graph node
) => HasNodeModifies graph node
class (
ArcTypeParms arcTypeParms,
HasConfigValue DoubleClickAction arcTypeParms,
HasConfigValue LocalMenu arcTypeParms,
HasConfigValue ValueTitle arcTypeParms,
HasConfigValue Color arcTypeParms,
HasConfigValue EdgePattern arcTypeParms,
HasConfigValue EdgeDir arcTypeParms,
HasConfigValue Head arcTypeParms
)
=> HasArcTypeConfigs arcTypeParms
instance (
ArcTypeParms arcTypeParms,
HasConfigValue DoubleClickAction arcTypeParms,
HasConfigValue LocalMenu arcTypeParms,
HasConfigValue ValueTitle arcTypeParms,
HasConfigValue Color arcTypeParms,
HasConfigValue EdgePattern arcTypeParms,
HasConfigValue EdgeDir arcTypeParms,
HasConfigValue Head arcTypeParms)
=> HasArcTypeConfigs arcTypeParms
class
(GraphAll graph graphParms node nodeType nodeTypeParms
arc arcType arcTypeParms,
HasGraphConfigs graphParms,
HasNodeTypeConfigs nodeTypeParms,
HasNodeModifies graph node,
HasArcTypeConfigs arcTypeParms
)
=> GraphAllConfig graph graphParms node nodeType nodeTypeParms
arc arcType arcTypeParms
instance
(GraphAll graph graphParms node nodeType nodeTypeParms
arc arcType arcTypeParms,
HasGraphConfigs graphParms,
HasNodeTypeConfigs nodeTypeParms,
HasNodeModifies graph node,
HasArcTypeConfigs arcTypeParms
)
=> GraphAllConfig graph graphParms node nodeType nodeTypeParms
arc arcType arcTypeParms