metabrush/src/app/MetaBrush/Action.hs-boot

133 lines
2.7 KiB
Plaintext
Raw Normal View History

2021-04-21 15:08:33 +00:00
{-# LANGUAGE MonoLocalBinds #-}
module MetaBrush.Action where
-- base
import Data.Word
( Word32 )
-- gi-gtk
import qualified GI.Gtk as GTK
2021-04-21 15:08:33 +00:00
-- hashable
import Data.Hashable
( Hashable )
-- text
import Data.Text
( Text )
-- 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 )
--------------------------------------------------------------------------------
2021-04-21 15:08:33 +00:00
data ActionName
= AppAction { actionSimpleName :: !Text }
| WinAction { actionSimpleName :: !Text }
instance Eq ActionName
instance Ord ActionName
instance Show ActionName
instance Hashable ActionName
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
2021-04-21 15:08:33 +00:00
{ docToClose :: !Unique }
instance HandleAction Close
2021-04-21 15:08:33 +00:00
data SwitchFromTo =
SwitchFromTo
{ mbPrevActiveDocUnique :: !( Maybe Unique )
, newActiveDocUnique :: !Unique
}
instance HandleAction SwitchFromTo
data Quit = Quit
instance HandleAction Quit
2021-04-21 15:08:33 +00:00
quitEverything :: GTK.IsWindow window => GTK.Application -> 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
2021-04-21 15:08:33 +00:00
data Scroll = Scroll ( Maybe ( Point2D Double ) ) ( Vector2D Double )
instance HandleAction Scroll
data KeyboardPress = KeyboardPress Word32
instance HandleAction KeyboardPress
data KeyboardRelease = KeyboardRelease Word32
instance HandleAction KeyboardRelease