packages feed

sifflet-0.1.5: sifflet.hs

module Main (main) where

import Data.IORef

-- external libraries
import Graphics.UI.Gtk 
    hiding (Frame, Function, Style, buttonPressed, fill, lineWidth,
            disconnect, function)

-- sifflet modules
import CBMgr
import Examples
import Expr
import GtkUtil
import TreeLayout
import WindowManagement
import Workspace
import UITypes


-- ---------------------------------------------------------------------
-- Environment

initialEnv :: Env
initialEnv = exampleEnv

main :: IO ()
main = do
  {
    -- scim-bridge causes many errors, so don't use it
    suppressScimBridge

  -- Initialize GTK
  ; initGUI

    -- create the user interface
  ; vpui <- vpuiNew wstyle initialEnv
  ; let vpui' = vpui {vpuiToolkits = defaultVPUIToolkits}
        workId = "Sifflet Workspace"
  ; uiref <- newIORef vpui'
    -- Create wome windows
  ; let cbmgr = mkCBMgr uiref
  ; vpui'' <- showWorkWin vpui' workId cbmgr
  ; writeIORef uiref vpui''

  ; showFunctionPadWindow cbmgr vpui'' >>= writeIORef uiref
    -- run GTK
  ; mainGUI
  ; return ()
}