{-# LANGUAGE DeriveDataTypeable #-}

{-# LINE 2 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
-- GIMP Toolkit (GTK) Binding for Haskell: binding to poppler -*-haskell-*-
--
-- Author : Andy Stewart
-- Created: 18-Jun-2010
--
-- Copyright (c) 2010 Andy Stewart
--
-- This library is free software: you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public License
-- as published by the Free Software Foundation, either version 3 of
-- the License, or (at your option) any later version.
--
-- This library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with this program. If not, see
-- <http:
--
-- POPPLER, the C library which this Haskell library depends on, is
-- available under LGPL Version 2. The documentation included with
-- this library is based on the original POPPLER documentation.
--
-- | Maintainer : gtk2hs-devel@lists.sourceforge.net
-- Stability : alpha
-- Portability : portable (depends on GHC)
module Graphics.UI.Gtk.Poppler.Enums (
-- * Enums
    Error(..),
    Orientation(..),
    SelectionStyle(..),
    PageTransitionType(..),
    PageTransitionAlignment(..),
    PageTransitionDirection(..),
    Backend(..),
    PageLayout(..),
    PageMode(..),
    FontType(..),
    ViewerPreferences(..),
    Permissions(..),
    ActionType(..),
    DestType(..),
    FormButtonType(..),
    FormChoiceType(..),
    FormFieldType(..),
    FormTextType(..),
    ) where

import Control.Monad
import Data.Typeable
import System.Glib.FFI
import System.Glib.Flags
import System.Glib.GError
import System.Glib.GObject
import System.Glib.UTFString


{-# LINE 61 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}

data Error = ErrorInvalid
           | ErrorEncrypted
           | ErrorOpenFile
           | ErrorBadCatalog
           | ErrorDamaged
           deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 63 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data Orientation = OrientationPortrait
                 | OrientationLandscape
                 | OrientationUpsidedown
                 | OrientationSeascape
                 deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 64 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data SelectionStyle = SelectionGlyph
                    | SelectionWord
                    | SelectionLine
                    deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 65 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data PageTransitionType = PageTransitionReplace
                        | PageTransitionSplit
                        | PageTransitionBlinds
                        | PageTransitionBox
                        | PageTransitionWipe
                        | PageTransitionDissolve
                        | PageTransitionGlitter
                        | PageTransitionFly
                        | PageTransitionPush
                        | PageTransitionCover
                        | PageTransitionUncover
                        | PageTransitionFade
                        deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 66 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data PageTransitionAlignment = PageTransitionHorizontal
                             | PageTransitionVertical
                             deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 67 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data PageTransitionDirection = PageTransitionInward
                             | PageTransitionOutward
                             deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 68 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data Backend = BackendUnknown
             | BackendSplash
             | BackendCairo
             deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 69 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}

data PageLayout = PageLayoutUnset
                | PageLayoutSinglePage
                | PageLayoutOneColumn
                | PageLayoutTwoColumnLeft
                | PageLayoutTwoColumnRight
                | PageLayoutTwoPageLeft
                | PageLayoutTwoPageRight
                deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 71 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data PageMode = PageModeUnset
              | PageModeNone
              | PageModeUseOutlines
              | PageModeUseThumbs
              | PageModeFullScreen
              | PageModeUseOc
              | PageModeUseAttachments
              deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 72 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data FontType = FontTypeUnknown
              | FontTypeType1
              | FontTypeType1c
              | FontTypeType1cot
              | FontTypeType3
              | FontTypeTruetype
              | FontTypeTruetypeot
              | FontTypeCidType0
              | FontTypeCidType0c
              | FontTypeCidType0cot
              | FontTypeCidType2
              | FontTypeCidType2ot
              deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 73 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data ViewerPreferences = ViewerPreferencesUnset
                       | ViewerPreferencesHideToolbar
                       | ViewerPreferencesHideMenubar
                       | ViewerPreferencesHideWindowui
                       | ViewerPreferencesFitWindow
                       | ViewerPreferencesCenterWindow
                       | ViewerPreferencesDisplayDocTitle
                       | ViewerPreferencesDirectionRtl
                       deriving (Eq,Ord,Bounded,Show,Typeable)
instance Enum ViewerPreferences where
  fromEnum ViewerPreferencesUnset = 0
  fromEnum ViewerPreferencesHideToolbar = 1
  fromEnum ViewerPreferencesHideMenubar = 2
  fromEnum ViewerPreferencesHideWindowui = 4
  fromEnum ViewerPreferencesFitWindow = 8
  fromEnum ViewerPreferencesCenterWindow = 16
  fromEnum ViewerPreferencesDisplayDocTitle = 32
  fromEnum ViewerPreferencesDirectionRtl = 64

  toEnum 0 = ViewerPreferencesUnset
  toEnum 1 = ViewerPreferencesHideToolbar
  toEnum 2 = ViewerPreferencesHideMenubar
  toEnum 4 = ViewerPreferencesHideWindowui
  toEnum 8 = ViewerPreferencesFitWindow
  toEnum 16 = ViewerPreferencesCenterWindow
  toEnum 32 = ViewerPreferencesDisplayDocTitle
  toEnum 64 = ViewerPreferencesDirectionRtl
  toEnum unmatched = error ("ViewerPreferences.toEnum: Cannot match " ++ show unmatched)

  succ ViewerPreferencesUnset = ViewerPreferencesHideToolbar
  succ ViewerPreferencesHideToolbar = ViewerPreferencesHideMenubar
  succ ViewerPreferencesHideMenubar = ViewerPreferencesHideWindowui
  succ ViewerPreferencesHideWindowui = ViewerPreferencesFitWindow
  succ ViewerPreferencesFitWindow = ViewerPreferencesCenterWindow
  succ ViewerPreferencesCenterWindow = ViewerPreferencesDisplayDocTitle
  succ ViewerPreferencesDisplayDocTitle = ViewerPreferencesDirectionRtl
  succ _ = undefined

  pred ViewerPreferencesHideToolbar = ViewerPreferencesUnset
  pred ViewerPreferencesHideMenubar = ViewerPreferencesHideToolbar
  pred ViewerPreferencesHideWindowui = ViewerPreferencesHideMenubar
  pred ViewerPreferencesFitWindow = ViewerPreferencesHideWindowui
  pred ViewerPreferencesCenterWindow = ViewerPreferencesFitWindow
  pred ViewerPreferencesDisplayDocTitle = ViewerPreferencesCenterWindow
  pred ViewerPreferencesDirectionRtl = ViewerPreferencesDisplayDocTitle
  pred _ = undefined

  enumFromTo x y | fromEnum x == fromEnum y = [ y ]
                 | otherwise = x : enumFromTo (succ x) y
  enumFrom x = enumFromTo x ViewerPreferencesDirectionRtl
  enumFromThen _ _ =     error "Enum ViewerPreferences: enumFromThen not implemented"
  enumFromThenTo _ _ _ =     error "Enum ViewerPreferences: enumFromThenTo not implemented"

{-# LINE 74 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data Permissions = PermissionsOkToPrint
                 | PermissionsOkToModify
                 | PermissionsOkToCopy
                 | PermissionsOkToAddNotes
                 | PermissionsOkToFillForm
                 | PermissionsFull
                 deriving (Eq,Ord,Bounded,Show,Typeable)
instance Enum Permissions where
  fromEnum PermissionsOkToPrint = 1
  fromEnum PermissionsOkToModify = 2
  fromEnum PermissionsOkToCopy = 4
  fromEnum PermissionsOkToAddNotes = 8
  fromEnum PermissionsOkToFillForm = 16
  fromEnum PermissionsFull = 31

  toEnum 1 = PermissionsOkToPrint
  toEnum 2 = PermissionsOkToModify
  toEnum 4 = PermissionsOkToCopy
  toEnum 8 = PermissionsOkToAddNotes
  toEnum 16 = PermissionsOkToFillForm
  toEnum 31 = PermissionsFull
  toEnum unmatched = error ("Permissions.toEnum: Cannot match " ++ show unmatched)

  succ PermissionsOkToPrint = PermissionsOkToModify
  succ PermissionsOkToModify = PermissionsOkToCopy
  succ PermissionsOkToCopy = PermissionsOkToAddNotes
  succ PermissionsOkToAddNotes = PermissionsOkToFillForm
  succ PermissionsOkToFillForm = PermissionsFull
  succ _ = undefined

  pred PermissionsOkToModify = PermissionsOkToPrint
  pred PermissionsOkToCopy = PermissionsOkToModify
  pred PermissionsOkToAddNotes = PermissionsOkToCopy
  pred PermissionsOkToFillForm = PermissionsOkToAddNotes
  pred PermissionsFull = PermissionsOkToFillForm
  pred _ = undefined

  enumFromTo x y | fromEnum x == fromEnum y = [ y ]
                 | otherwise = x : enumFromTo (succ x) y
  enumFrom x = enumFromTo x PermissionsFull
  enumFromThen _ _ =     error "Enum Permissions: enumFromThen not implemented"
  enumFromThenTo _ _ _ =     error "Enum Permissions: enumFromThenTo not implemented"

{-# LINE 75 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data ActionType = ActionUnknown
                | ActionNone
                | ActionGotoDest
                | ActionGotoRemote
                | ActionLaunch
                | ActionUri
                | ActionNamed
                | ActionMovie
                deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 76 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data DestType = DestUnknown
              | DestXyz
              | DestFit
              | DestFith
              | DestFitv
              | DestFitr
              | DestFitb
              | DestFitbh
              | DestFitbv
              | DestNamed
              deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 77 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data FormButtonType = FormButtonPush
                    | FormButtonCheck
                    | FormButtonRadio
                    deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 78 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data FormChoiceType = FormChoiceCombo
                    | FormChoiceList
                    deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 79 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data FormFieldType = FormFieldUnknown
                   | FormFieldButton
                   | FormFieldText
                   | FormFieldChoice
                   | FormFieldSignature
                   deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 80 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}
data FormTextType = FormTextNormal
                  | FormTextMultiline
                  | FormTextFileSelect
                  deriving (Enum,Eq,Ord,Bounded,Show,Typeable)

{-# LINE 81 "./Graphics/UI/Gtk/Poppler/Enums.chs" #-}