module Graphics.UI.Gtk.ImageView.Enums (
ImageTransp (..),
HotspotType (..),
) where
import Control.Monad (liftM)
import System.Glib.FFI
import System.Glib.Flags
data ImageTransp = ImageTranspColor
| ImageTranspBackground
| ImageTranspGrid
deriving (Eq,Bounded,Show,Read)
instance Enum ImageTransp where
fromEnum ImageTranspColor = 0
fromEnum ImageTranspBackground = 1
fromEnum ImageTranspGrid = 2
toEnum 0 = ImageTranspColor
toEnum 1 = ImageTranspBackground
toEnum 2 = ImageTranspGrid
toEnum unmatched = error ("ImageTransp.toEnum: Cannot match " ++ show unmatched)
succ ImageTranspColor = ImageTranspBackground
succ ImageTranspBackground = ImageTranspGrid
succ _ = undefined
pred ImageTranspBackground = ImageTranspColor
pred ImageTranspGrid = ImageTranspBackground
pred _ = undefined
enumFromTo x y | fromEnum x == fromEnum y = [ y ]
| otherwise = x : enumFromTo (succ x) y
enumFrom x = enumFromTo x ImageTranspGrid
enumFromThen _ _ = error "Enum ImageTransp: enumFromThen not implemented"
enumFromThenTo _ _ _ = error "Enum ImageTransp: enumFromThenTo not implemented"
data HotspotType = HotspotInside
| HotspotResizeNorthWest
| HotspotResizeNorthEast
| HotspotResizeSouthWest
| HotspotResizeSouthEast
| HotspotResizeNorth
| HotspotResizeEast
| HotspotResizeSouth
| HotspotResizeWest
| HotspotOutside
| HotspotLast
deriving (Eq,Bounded,Show,Read)
instance Enum HotspotType where
fromEnum HotspotInside = 0
fromEnum HotspotResizeNorthWest = 1
fromEnum HotspotResizeNorthEast = 2
fromEnum HotspotResizeSouthWest = 3
fromEnum HotspotResizeSouthEast = 4
fromEnum HotspotResizeNorth = 5
fromEnum HotspotResizeEast = 6
fromEnum HotspotResizeSouth = 7
fromEnum HotspotResizeWest = 8
fromEnum HotspotOutside = 9
fromEnum HotspotLast = 10
toEnum 0 = HotspotInside
toEnum 1 = HotspotResizeNorthWest
toEnum 2 = HotspotResizeNorthEast
toEnum 3 = HotspotResizeSouthWest
toEnum 4 = HotspotResizeSouthEast
toEnum 5 = HotspotResizeNorth
toEnum 6 = HotspotResizeEast
toEnum 7 = HotspotResizeSouth
toEnum 8 = HotspotResizeWest
toEnum 9 = HotspotOutside
toEnum 10 = HotspotLast
toEnum unmatched = error ("HotspotType.toEnum: Cannot match " ++ show unmatched)
succ HotspotInside = HotspotResizeNorthWest
succ HotspotResizeNorthWest = HotspotResizeNorthEast
succ HotspotResizeNorthEast = HotspotResizeSouthWest
succ HotspotResizeSouthWest = HotspotResizeSouthEast
succ HotspotResizeSouthEast = HotspotResizeNorth
succ HotspotResizeNorth = HotspotResizeEast
succ HotspotResizeEast = HotspotResizeSouth
succ HotspotResizeSouth = HotspotResizeWest
succ HotspotResizeWest = HotspotOutside
succ HotspotOutside = HotspotLast
succ _ = undefined
pred HotspotResizeNorthWest = HotspotInside
pred HotspotResizeNorthEast = HotspotResizeNorthWest
pred HotspotResizeSouthWest = HotspotResizeNorthEast
pred HotspotResizeSouthEast = HotspotResizeSouthWest
pred HotspotResizeNorth = HotspotResizeSouthEast
pred HotspotResizeEast = HotspotResizeNorth
pred HotspotResizeSouth = HotspotResizeEast
pred HotspotResizeWest = HotspotResizeSouth
pred HotspotOutside = HotspotResizeWest
pred HotspotLast = HotspotOutside
pred _ = undefined
enumFromTo x y | fromEnum x == fromEnum y = [ y ]
| otherwise = x : enumFromTo (succ x) y
enumFrom x = enumFromTo x HotspotLast
enumFromThen _ _ = error "Enum HotspotType: enumFromThen not implemented"
enumFromThenTo _ _ _ = error "Enum HotspotType: enumFromThenTo not implemented"