metabrush/src/app/MetaBrush/Action.hs-boot
2020-09-10 18:59:14 +02:00

110 lines
2.2 KiB
Haskell

module MetaBrush.Action where
-- base
import Data.Word
( Word32 )
-- gi-gtk
import qualified GI.Gtk as GTK
-- MetaBrush
import Math.Vector2D
( Point2D, Vector2D )
import {-# SOURCE #-} MetaBrush.Context
( UIElements, Variables )
import {-# SOURCE #-} MetaBrush.UI.FileBar
( TabLocation(..) )
import MetaBrush.UI.Viewport
( Ruler(..) )
import MetaBrush.Unique
( Unique )
--------------------------------------------------------------------------------
class HandleAction action where
handleAction :: UIElements -> Variables -> action -> IO ()
instance HandleAction ()
data NewFile = NewFile TabLocation
instance HandleAction NewFile
data OpenFile = OpenFile TabLocation
instance HandleAction OpenFile
data OpenFolder = OpenFolder TabLocation
instance HandleAction OpenFolder
data Save = Save
instance HandleAction Save
data SaveAs = SaveAs
instance HandleAction SaveAs
data Close
= CloseActive
| CloseThis
{ docToClose :: Unique }
instance HandleAction Close
data SwitchTo = SwitchTo Unique
instance HandleAction SwitchTo
data Quit = Quit
instance HandleAction Quit
quitEverything :: GTK.Window -> IO ()
data Undo = Undo
instance HandleAction Undo
data Redo = Redo
instance HandleAction Redo
data Cut = Cut
instance HandleAction Cut
data Copy = Copy
instance HandleAction Copy
data Paste = Paste
instance HandleAction Paste
data Duplicate = Duplicate
instance HandleAction Duplicate
data Delete = Delete
instance HandleAction Delete
data ToggleGuides = ToggleGuides
instance HandleAction ToggleGuides
data Confirm = Confirm
instance HandleAction Confirm
data About = About
instance HandleAction About
data MouseMove = MouseMove ( Point2D Double )
instance HandleAction MouseMove
data ActionOrigin
= ViewportOrigin
| RulerOrigin Ruler
data MouseClickType
= SingleClick
| DoubleClick
data MouseClick = MouseClick ActionOrigin MouseClickType Word32 ( Point2D Double )
instance HandleAction MouseClick
data MouseRelease = MouseRelease Word32 ( Point2D Double )
instance HandleAction MouseRelease
data Scroll = Scroll ( Point2D Double ) ( Vector2D Double )
instance HandleAction Scroll
data KeyboardPress = KeyboardPress Word32
instance HandleAction KeyboardPress
data KeyboardRelease = KeyboardRelease Word32
instance HandleAction KeyboardRelease