packages feed

hxournal-0.6.5.0: lib/Application/HXournal/Type/Clipboard.hs

{-# LANGUAGE TemplateHaskell #-}

-----------------------------------------------------------------------------
-- |
-- Module      : Application.HXournal.Type.Clipboard 
-- Copyright   : (c) 2011, 2012 Ian-Woo Kim
--
-- License     : BSD3
-- Maintainer  : Ian-Woo Kim <ianwookim@gmail.com>
-- Stability   : experimental
-- Portability : GHC
--
-----------------------------------------------------------------------------

module Application.HXournal.Type.Clipboard where

import Control.Category
import Data.Label 
import Prelude hiding ((.), id)

import Data.Xournal.BBox

newtype Clipboard = Clipboard { unClipboard :: [StrokeBBox] }

emptyClipboard :: Clipboard
emptyClipboard = Clipboard []

isEmpty :: Clipboard -> Bool 
isEmpty = null . unClipboard 

getClipContents :: Clipboard -> [StrokeBBox] 
getClipContents = unClipboard

replaceClipContents :: [StrokeBBox] -> Clipboard -> Clipboard
replaceClipContents strs _ = Clipboard strs 

data SelectType = SelectRegionWork 
                | SelectRectangleWork 
                | SelectVerticalSpaceWork
                | SelectHandToolWork 
                deriving (Show,Eq) 

data SelectInfo = SelectInfo { _selectType :: SelectType
                             }
             deriving (Show) 

$(mkLabels [''SelectInfo])