sifflet-lib-1.2: Library of modules shared by sifflet and its tests and its exporters.




data VPUI Source

VPUI: Sifflet (formerly VisiProg) User Interface The initialEnv is apt to contain builtin functions; it's preserved here so that when writing to a file, we can skip the functions that were in the initial env.




vpuiWindows :: Map WinId VPUIWindow

all the windows of the program

vpuiToolkits :: [(String, VPToolkit)]

ordered association list, collections of tools

vpuiFilePath :: Maybe FilePath

the file opened or to save

vpuiStyle :: Style

for windows, canvases, editors

vpuiInitialEnv :: Env

initial value of global environment

vpuiGlobalEnv :: Env

the global environment

vpuiFileEnv :: Env

global env as of last file open or save, used to detect unsaved changes

vpuiFileChanged :: VPUI -> BoolSource

Tell whether the global environmkent has changed since the last file open or save

vpuiUserEnvAList :: VPUI -> [(String, Value)]Source

Extract from the environment the part defined by the user But you probably want to use Sifflet.UI.Window.UserFunctions instead of this.

Operations on a VPUI involving its window

vpuiInsertWindow :: VPUI -> WinId -> VPUIWindow -> VPUISource

Insert a window in the window map

vpuiTryGetWindow :: VPUI -> WinId -> Maybe VPUIWindowSource

Try to get the VPUIWindow with the given window ID, return Just result or Nothing

vpuiGetWindow :: VPUI -> WinId -> VPUIWindowSource

Get the VPUIWindow with the given window ID; it is an error if this fails.

vpuiUpdateWindow :: VPUI -> WinId -> (VPUIWindow -> VPUIWindow) -> VPUISource

Apply an update function to a VPUIWindow with given window ID; it is an error if this fails.

vpuiReplaceWindow :: VPUI -> WinId -> VPUIWindow -> VPUISource

Replace a VPUIWindow with given window ID; it is an error if this fails.

vpuiUpdateWindowIO :: WinId -> (VPUIWindow -> IO VPUIWindow) -> VPUI -> IO VPUISource

Apply an update IO action to a VPUIWindow with given window ID; it is an error if this fails.

vpuiRemoveVPUIWindow :: WinId -> VPUI -> VPUISource

Remove a window from the windows map; it has already been destroyed in the GUI

Operations on a window involving its canvas

vpuiWindowLookupCanvas :: VPUIWindow -> Maybe VCanvasSource

Try to find canvas; fail gracefully

vpuiWindowGetCanvas :: VPUIWindow -> VCanvasSource

Find canvas or fail dramatically

Operation on a VPUI involving the canvas of its window

vpuiModCanvas :: VPUI -> WinId -> (VCanvas -> VCanvas) -> VPUISource

Update the canvas of the specified window, without IO

vpuiModCanvasIO :: VPUI -> WinId -> (VCanvas -> IO VCanvas) -> IO VPUISource

Update the canvas of the specified window, with IO

Other operations on a window

data VPToolkit Source

Toolkit functions are organized in groups (rows) for presentation in a toolbox



data Toolbox Source

A Toolbox is a framed VBox with a set of Toolbars attached



data Tool Source



data ToolContext Source

ToolContext: The way a tool should be applied depends on where it is being used

type ToolOp = VPUI -> WinId -> ToolContext -> [Modifier] -> Double -> Double -> IO VPUISource

ToolOp a is intended for a = VPUIWindow or VCanvas type ToolOp a = VPUI -> a -> ToolContext -> [Modifier] -> Double -> Double -> IO a

toToolOpVW :: CanvasToolOp -> ToolOpSource

A helper for making toolOps from actions on VCanvas

data Workspace Source




wsBox :: VBox

container of the rest

wsCanvas :: VCanvas

the canvas

wsButtonBar :: HBox
wsStatusbar :: Statusbar

data VCanvas Source

A canvas that can display multiple boxes representing expressions or function definitions or calls

data Dragging Source

A Dragging keeps track of the object (node) being dragged and the current mouse position.