sifflet-2.3.0: Simple, visual, functional language for learning about recursion.

Safe HaskellNone




vpuiNew :: Style -> Env -> Bool -> IO VPUI Source

Create a new VPUI. This used to set up the basic "q to quit" and "on exposed" callbacks, but now does not even do that. The init function argument may perform additional initialization; if there is none, simply use return.

workspaceNewDefault :: Style -> (VBox -> IO ()) -> IO Workspace Source

Create a new "main" workspace window, with a given style. The second argument should set up a menu bar and place it on the vbox, or do nothing if no menu is wanted.

defineFunction :: WinId -> CanvFrame -> VPUI -> IO VPUI Source

Context menu command to apply the function definition of an EditFrame.

Execute the definition currently represented in the frame, i.e., bind the function name in the global environment to the function definition found in the frame.

removeWindow :: VPUI -> Bool -> WinId -> IO VPUI Source

This function is called either when a window *has been* destroyed, with destroy = False, or when you *want to* destroy a window, with destroy = True.

removeWindow actually *closes* the window if destroy = True, as well as removing it from the vpui's windows map.

forallWindowsIO :: (VPUIWindow -> IO VPUIWindow) -> VPUI -> IO VPUI Source

Perform action on all windows (actually (WinId, VPUIWindow) pairs. Returns updated VPUI (in case any windows are changed).