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

137 lines
2.8 KiB
Plaintext
Raw Normal View History

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
2023-01-08 16:16:14 +00:00
import Math.Linear
( 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 ()
2021-05-10 15:46:31 +00:00
data NewFile = NewFile !TabLocation
instance HandleAction NewFile
2021-05-10 15:46:31 +00:00
data OpenFile = OpenFile !TabLocation
instance HandleAction OpenFile
2021-05-10 15:46:31 +00:00
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
2021-05-10 15:46:31 +00:00
data MouseMove = MouseMove !( Point2D Double )
instance HandleAction MouseMove
data ActionOrigin
= ViewportOrigin
2021-05-10 15:46:31 +00:00
| RulerOrigin !Ruler
data MouseClickType
= SingleClick
| DoubleClick
data MouseClick =
MouseClick
{ clickOrigin :: !ActionOrigin
, clickType :: !MouseClickType
, clickButton :: !Word32
, clickCoords :: !( Point2D Double )
}
instance HandleAction MouseClick
2021-05-10 15:46:31 +00:00
data MouseRelease = MouseRelease !Word32 !( Point2D Double )
instance HandleAction MouseRelease
2021-05-10 15:46:31 +00:00
data Scroll = Scroll !( Maybe ( Point2D Double ) ) !( Vector2D Double )
instance HandleAction Scroll
2021-05-10 15:46:31 +00:00
data KeyboardPress = KeyboardPress !Word32
instance HandleAction KeyboardPress
2021-05-10 15:46:31 +00:00
data KeyboardRelease = KeyboardRelease !Word32
instance HandleAction KeyboardRelease