{-# LINE 1 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
{-# LANGUAGE CPP #-}
module Graphics.UI.FLTK.LowLevel.Fl_Enumerations
    (
     
     Event(..),
     When(..),
     FdWhen(..),
     
     TreeSort(..),
     TreeConnector(..),
     TreeSelect(..),
     SearchDirection(..),
     
     SpecialKey(..),
     allSpecialKeys,
     allShortcutSpecialKeys,
     MouseButton(..),
     EventState(..),
     KeyboardKeyMask(..),
     MouseButtonsMask(..),
     allEventStates,
     kb_CommandState, kb_ControlState, kb_KpLast,
     
     Damage(..),
     
     GlutDraw(..),
     GlutMouseCodes(..),
     GlutUpDown(..),
     GlutVisibility(..),
     GlutMenuProperties(..),
     GlutEnteredLeft(..),
     GlutKeyboardCodes(..),
     GlutConstants(..),
     GlutWindowProperties(..),
     GlutCursor(..),
     glutCursorFullCrossHair,
     
     Cursor(..),
     
     Mode(..),
     Modes(..),
     single,
     allModes,
     
     Alignments(..),
     AlignType(..),
     alignCenter,
     alignTop,
     alignBottom,
     alignLeft,
     alignRight,
     alignInside,
     alignTextOverImage,
     alignClip,
     alignWrap,
     alignImageNextToText,
     alignTextNextToImage,
     alignImageBackdrop,
     alignLeftTop,
     alignRightTop,
     alignLeftBottom,
     alignRightBottom,
     alignPositionMask,
     alignImageMask,
     alignNoWrap,
     alignImageOverText,
     alignTopLeft,
     alignTopRight,
     alignBottomLeft,
     alignBottomRight,
     allAlignTypes,
     allWhen,
     
     Boxtype(..),
     frame,frameBox, circleBox, diamondBox,
     
     defineRoundUpBox,
     defineShadowBox,
     defineRoundedBox,
     defineRflatBox,
     defineRshadowBox,
     defineDiamondBox,
     defineOvalBox,
     definePlasticUpBox,
     defineGtkUpBox,
     
     Font(..),
     FontAttribute(..),
     
     cFromFont,
     cToFont,
     cFromFontAttribute,
     cToFontAttribute,
     
     helvetica,
     helveticaBold,
     helveticaItalic,
     helveticaBoldItalic,
     courier,
     courierBold,
     courierItalic,
     courierBoldItalic,
     times,
     timesBold,
     timesItalic,
     timesBoldItalic,
     symbol,
     screen,
     screenBold,
     zapfDingbats,
     freeFont,
     
     Color(..),
     
     cFromColor,
     cToColor,
     
     inactive,
     contrast,
     color_average,
     lighter,
     darker,
     rgbColorWithRgb,
     rgbColorWithGrayscale,
     grayRamp,
     colorCube,
     
     foregroundColor,
     background2Color,
     inactiveColor,
     selectionColor,
     gray0Color,
     dark3Color,
     dark2Color,
     dark1Color,
     backgroundColor,
     light1Color,
     light2Color,
     light3Color,
     blackColor,
     redColor,
     greenColor,
     yellowColor,
     blueColor,
     magentaColor,
     cyanColor,
     darkRedColor,
     darkGreenColor,
     darkYellowColor,
     darkBlueColor,
     darkMagentaColor,
     darkCyanColor,
     whiteColor,
     freeColor,
     numFreeColor,
     grayRampColor,
     numGray,
     grayColor,
     colorCubeColor,
     numRed,
     numGreen,
     numBlue,
     
     Labeltype(..),
     symbolLabel,
     defineShadowLabel,
     defineEngravedLabel,
     defineEmbossedLabel,
     
     RGB
    )
where
import qualified Foreign.C.Types as C2HSImp
import qualified System.IO.Unsafe as C2HSImp
import C2HS
data Event = NoEvent
           | Push
           | Release
           | Enter
           | Leave
           | Drag
           | Focus
           | Unfocus
           | Keydown
           | Keyup
           | Close
           | Move
           | Shortcut
           | Deactivate
           | Activate
           | Hide
           | Show
           | Paste
           | Selectionclear
           | Mousewheel
           | DndEnter
           | DndDrag
           | DndLeave
           | DndRelease
           | ScreenConfigurationChanged
           | Fullscreen
  deriving (Show,Eq)
instance Enum Event where
  succ NoEvent = Push
  succ Push = Release
  succ Release = Enter
  succ Enter = Leave
  succ Leave = Drag
  succ Drag = Focus
  succ Focus = Unfocus
  succ Unfocus = Keydown
  succ Keydown = Keyup
  succ Keyup = Close
  succ Close = Move
  succ Move = Shortcut
  succ Shortcut = Deactivate
  succ Deactivate = Activate
  succ Activate = Hide
  succ Hide = Show
  succ Show = Paste
  succ Paste = Selectionclear
  succ Selectionclear = Mousewheel
  succ Mousewheel = DndEnter
  succ DndEnter = DndDrag
  succ DndDrag = DndLeave
  succ DndLeave = DndRelease
  succ DndRelease = ScreenConfigurationChanged
  succ ScreenConfigurationChanged = Fullscreen
  succ Fullscreen = error "Event.succ: Fullscreen has no successor"
  pred Push = NoEvent
  pred Release = Push
  pred Enter = Release
  pred Leave = Enter
  pred Drag = Leave
  pred Focus = Drag
  pred Unfocus = Focus
  pred Keydown = Unfocus
  pred Keyup = Keydown
  pred Close = Keyup
  pred Move = Close
  pred Shortcut = Move
  pred Deactivate = Shortcut
  pred Activate = Deactivate
  pred Hide = Activate
  pred Show = Hide
  pred Paste = Show
  pred Selectionclear = Paste
  pred Mousewheel = Selectionclear
  pred DndEnter = Mousewheel
  pred DndDrag = DndEnter
  pred DndLeave = DndDrag
  pred DndRelease = DndLeave
  pred ScreenConfigurationChanged = DndRelease
  pred Fullscreen = ScreenConfigurationChanged
  pred NoEvent = error "Event.pred: NoEvent has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from Fullscreen
  fromEnum NoEvent = 0
  fromEnum Push = 1
  fromEnum Release = 2
  fromEnum Enter = 3
  fromEnum Leave = 4
  fromEnum Drag = 5
  fromEnum Focus = 6
  fromEnum Unfocus = 7
  fromEnum Keydown = 8
  fromEnum Keyup = 9
  fromEnum Close = 10
  fromEnum Move = 11
  fromEnum Shortcut = 12
  fromEnum Deactivate = 13
  fromEnum Activate = 14
  fromEnum Hide = 15
  fromEnum Show = 16
  fromEnum Paste = 17
  fromEnum Selectionclear = 18
  fromEnum Mousewheel = 19
  fromEnum DndEnter = 20
  fromEnum DndDrag = 21
  fromEnum DndLeave = 22
  fromEnum DndRelease = 23
  fromEnum ScreenConfigurationChanged = 24
  fromEnum Fullscreen = 25
  toEnum 0 = NoEvent
  toEnum 1 = Push
  toEnum 2 = Release
  toEnum 3 = Enter
  toEnum 4 = Leave
  toEnum 5 = Drag
  toEnum 6 = Focus
  toEnum 7 = Unfocus
  toEnum 8 = Keydown
  toEnum 9 = Keyup
  toEnum 10 = Close
  toEnum 11 = Move
  toEnum 12 = Shortcut
  toEnum 13 = Deactivate
  toEnum 14 = Activate
  toEnum 15 = Hide
  toEnum 16 = Show
  toEnum 17 = Paste
  toEnum 18 = Selectionclear
  toEnum 19 = Mousewheel
  toEnum 20 = DndEnter
  toEnum 21 = DndDrag
  toEnum 22 = DndLeave
  toEnum 23 = DndRelease
  toEnum 24 = ScreenConfigurationChanged
  toEnum 25 = Fullscreen
  toEnum unmatched = error ("Event.toEnum: Cannot match " ++ show unmatched)
{-# LINE 513 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data When = WhenNever
          | WhenChanged
          | WhenNotChanged
          | WhenRelease
          | WhenReleaseAlways
          | WhenEnterKey
          | WhenEnterKeyAlways
          | WhenEnterKeyChanged
  deriving (Show,Eq,Ord)
instance Enum When where
  succ WhenNever = WhenChanged
  succ WhenChanged = WhenNotChanged
  succ WhenNotChanged = WhenRelease
  succ WhenRelease = WhenReleaseAlways
  succ WhenReleaseAlways = WhenEnterKey
  succ WhenEnterKey = WhenEnterKeyAlways
  succ WhenEnterKeyAlways = WhenEnterKeyChanged
  succ WhenEnterKeyChanged = error "When.succ: WhenEnterKeyChanged has no successor"
  pred WhenChanged = WhenNever
  pred WhenNotChanged = WhenChanged
  pred WhenRelease = WhenNotChanged
  pred WhenReleaseAlways = WhenRelease
  pred WhenEnterKey = WhenReleaseAlways
  pred WhenEnterKeyAlways = WhenEnterKey
  pred WhenEnterKeyChanged = WhenEnterKeyAlways
  pred WhenNever = error "When.pred: WhenNever has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from WhenEnterKeyChanged
  fromEnum WhenNever = 0
  fromEnum WhenChanged = 1
  fromEnum WhenNotChanged = 2
  fromEnum WhenRelease = 4
  fromEnum WhenReleaseAlways = 6
  fromEnum WhenEnterKey = 8
  fromEnum WhenEnterKeyAlways = 10
  fromEnum WhenEnterKeyChanged = 11
  toEnum 0 = WhenNever
  toEnum 1 = WhenChanged
  toEnum 2 = WhenNotChanged
  toEnum 4 = WhenRelease
  toEnum 6 = WhenReleaseAlways
  toEnum 8 = WhenEnterKey
  toEnum 10 = WhenEnterKeyAlways
  toEnum 11 = WhenEnterKeyChanged
  toEnum unmatched = error ("When.toEnum: Cannot match " ++ show unmatched)
{-# LINE 514 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data FdWhen = CanRead
            | CanWrite
            | OnExcept
  deriving (Show,Eq,Ord)
instance Enum FdWhen where
  succ CanRead = CanWrite
  succ CanWrite = OnExcept
  succ OnExcept = error "FdWhen.succ: OnExcept has no successor"
  pred CanWrite = CanRead
  pred OnExcept = CanWrite
  pred CanRead = error "FdWhen.pred: CanRead has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from OnExcept
  fromEnum CanRead = 1
  fromEnum CanWrite = 4
  fromEnum OnExcept = 8
  toEnum 1 = CanRead
  toEnum 4 = CanWrite
  toEnum 8 = OnExcept
  toEnum unmatched = error ("FdWhen.toEnum: Cannot match " ++ show unmatched)
{-# LINE 515 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data TreeSort = TreeSortNone
              | TreeSortAscending
              | TreeSortDescending
  deriving (Show,Eq)
instance Enum TreeSort where
  succ TreeSortNone = TreeSortAscending
  succ TreeSortAscending = TreeSortDescending
  succ TreeSortDescending = error "TreeSort.succ: TreeSortDescending has no successor"
  pred TreeSortAscending = TreeSortNone
  pred TreeSortDescending = TreeSortAscending
  pred TreeSortNone = error "TreeSort.pred: TreeSortNone has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from TreeSortDescending
  fromEnum TreeSortNone = 0
  fromEnum TreeSortAscending = 1
  fromEnum TreeSortDescending = 2
  toEnum 0 = TreeSortNone
  toEnum 1 = TreeSortAscending
  toEnum 2 = TreeSortDescending
  toEnum unmatched = error ("TreeSort.toEnum: Cannot match " ++ show unmatched)
{-# LINE 516 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data TreeConnector = TreeConnectorNone
                   | TreeConnectorDotted
                   | TreeConnectorSolid
  deriving (Show,Eq)
instance Enum TreeConnector where
  succ TreeConnectorNone = TreeConnectorDotted
  succ TreeConnectorDotted = TreeConnectorSolid
  succ TreeConnectorSolid = error "TreeConnector.succ: TreeConnectorSolid has no successor"
  pred TreeConnectorDotted = TreeConnectorNone
  pred TreeConnectorSolid = TreeConnectorDotted
  pred TreeConnectorNone = error "TreeConnector.pred: TreeConnectorNone has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from TreeConnectorSolid
  fromEnum TreeConnectorNone = 0
  fromEnum TreeConnectorDotted = 1
  fromEnum TreeConnectorSolid = 2
  toEnum 0 = TreeConnectorNone
  toEnum 1 = TreeConnectorDotted
  toEnum 2 = TreeConnectorSolid
  toEnum unmatched = error ("TreeConnector.toEnum: Cannot match " ++ show unmatched)
{-# LINE 517 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data TreeSelect = TreeSelectNone
                | TreeSelectSingle
                | TreeSelectMulti
                | TreeSelectSingleDraggable
  deriving (Show,Eq)
instance Enum TreeSelect where
  succ TreeSelectNone = TreeSelectSingle
  succ TreeSelectSingle = TreeSelectMulti
  succ TreeSelectMulti = TreeSelectSingleDraggable
  succ TreeSelectSingleDraggable = error "TreeSelect.succ: TreeSelectSingleDraggable has no successor"
  pred TreeSelectSingle = TreeSelectNone
  pred TreeSelectMulti = TreeSelectSingle
  pred TreeSelectSingleDraggable = TreeSelectMulti
  pred TreeSelectNone = error "TreeSelect.pred: TreeSelectNone has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from TreeSelectSingleDraggable
  fromEnum TreeSelectNone = 0
  fromEnum TreeSelectSingle = 1
  fromEnum TreeSelectMulti = 2
  fromEnum TreeSelectSingleDraggable = 3
  toEnum 0 = TreeSelectNone
  toEnum 1 = TreeSelectSingle
  toEnum 2 = TreeSelectMulti
  toEnum 3 = TreeSelectSingleDraggable
  toEnum unmatched = error ("TreeSelect.toEnum: Cannot match " ++ show unmatched)
{-# LINE 518 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data SearchDirection = SearchDirectionUp
                     | SearchDirectionDown
  deriving (Show,Eq)
instance Enum SearchDirection where
  succ SearchDirectionUp = SearchDirectionDown
  succ SearchDirectionDown = error "SearchDirection.succ: SearchDirectionDown has no successor"
  pred SearchDirectionDown = SearchDirectionUp
  pred SearchDirectionUp = error "SearchDirection.pred: SearchDirectionUp has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from SearchDirectionDown
  fromEnum SearchDirectionUp = 65362
  fromEnum SearchDirectionDown = 65364
  toEnum 65362 = SearchDirectionUp
  toEnum 65364 = SearchDirectionDown
  toEnum unmatched = error ("SearchDirection.toEnum: Cannot match " ++ show unmatched)
{-# LINE 523 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data SpecialKey = Kb_VolumeDown
                | Kb_VolumeMute
                | Kb_VolumeUp
                | Kb_MediaPlay
                | Kb_MediaStop
                | Kb_MediaPrev
                | Kb_MediaNext
                | Kb_HomePage
                | Kb_Mail
                | Kb_Search
                | Kb_Back
                | Kb_Forward
                | Kb_Stop
                | Kb_Refresh
                | Kb_Sleep
                | Kb_Favorites
                | Button
                | Kb_Backspace
                | Kb_Tab
                | Kb_Clear
                | Kb_IsoKey
                | Kb_Enter
                | Kb_Pause
                | Kb_Escape
                | Kb_Kana
                | Kb_Eisu
                | Kb_Yen
                | Kb_JisUnderscore
                | Kb_Home
                | Kb_Left
                | Kb_Up
                | Kb_Right
                | Kb_Down
                | Kb_PageUp
                | Kb_PageDown
                | Kb_End
                | Kb_Print
                | Kb_Insert
                | Kb_Menu
                | Kb_Help
                | Kb_Kp
                | Kb_KpEnter
                | Kb_F
                | Kb_Flast
                | Kb_ShiftL
                | Kb_ShiftR
                | Kb_ControlL
                | Kb_ControlR
                | Kb_CapsLock
                | Kb_MetaL
                | Kb_MetaR
                | Kb_AltL
                | Kb_AltR
                | Kb_Delete
  deriving (Show,Eq)
instance Enum SpecialKey where
  succ Kb_VolumeDown = Kb_VolumeMute
  succ Kb_VolumeMute = Kb_VolumeUp
  succ Kb_VolumeUp = Kb_MediaPlay
  succ Kb_MediaPlay = Kb_MediaStop
  succ Kb_MediaStop = Kb_MediaPrev
  succ Kb_MediaPrev = Kb_MediaNext
  succ Kb_MediaNext = Kb_HomePage
  succ Kb_HomePage = Kb_Mail
  succ Kb_Mail = Kb_Search
  succ Kb_Search = Kb_Back
  succ Kb_Back = Kb_Forward
  succ Kb_Forward = Kb_Stop
  succ Kb_Stop = Kb_Refresh
  succ Kb_Refresh = Kb_Sleep
  succ Kb_Sleep = Kb_Favorites
  succ Kb_Favorites = Button
  succ Button = Kb_Backspace
  succ Kb_Backspace = Kb_Tab
  succ Kb_Tab = Kb_Clear
  succ Kb_Clear = Kb_IsoKey
  succ Kb_IsoKey = Kb_Enter
  succ Kb_Enter = Kb_Pause
  succ Kb_Pause = Kb_Escape
  succ Kb_Escape = Kb_Kana
  succ Kb_Kana = Kb_Eisu
  succ Kb_Eisu = Kb_Yen
  succ Kb_Yen = Kb_JisUnderscore
  succ Kb_JisUnderscore = Kb_Home
  succ Kb_Home = Kb_Left
  succ Kb_Left = Kb_Up
  succ Kb_Up = Kb_Right
  succ Kb_Right = Kb_Down
  succ Kb_Down = Kb_PageUp
  succ Kb_PageUp = Kb_PageDown
  succ Kb_PageDown = Kb_End
  succ Kb_End = Kb_Print
  succ Kb_Print = Kb_Insert
  succ Kb_Insert = Kb_Menu
  succ Kb_Menu = Kb_Help
  succ Kb_Help = Kb_Kp
  succ Kb_Kp = Kb_KpEnter
  succ Kb_KpEnter = Kb_F
  succ Kb_F = Kb_Flast
  succ Kb_Flast = Kb_ShiftL
  succ Kb_ShiftL = Kb_ShiftR
  succ Kb_ShiftR = Kb_ControlL
  succ Kb_ControlL = Kb_ControlR
  succ Kb_ControlR = Kb_CapsLock
  succ Kb_CapsLock = Kb_MetaL
  succ Kb_MetaL = Kb_MetaR
  succ Kb_MetaR = Kb_AltL
  succ Kb_AltL = Kb_AltR
  succ Kb_AltR = Kb_Delete
  succ Kb_Delete = error "SpecialKey.succ: Kb_Delete has no successor"
  pred Kb_VolumeMute = Kb_VolumeDown
  pred Kb_VolumeUp = Kb_VolumeMute
  pred Kb_MediaPlay = Kb_VolumeUp
  pred Kb_MediaStop = Kb_MediaPlay
  pred Kb_MediaPrev = Kb_MediaStop
  pred Kb_MediaNext = Kb_MediaPrev
  pred Kb_HomePage = Kb_MediaNext
  pred Kb_Mail = Kb_HomePage
  pred Kb_Search = Kb_Mail
  pred Kb_Back = Kb_Search
  pred Kb_Forward = Kb_Back
  pred Kb_Stop = Kb_Forward
  pred Kb_Refresh = Kb_Stop
  pred Kb_Sleep = Kb_Refresh
  pred Kb_Favorites = Kb_Sleep
  pred Button = Kb_Favorites
  pred Kb_Backspace = Button
  pred Kb_Tab = Kb_Backspace
  pred Kb_Clear = Kb_Tab
  pred Kb_IsoKey = Kb_Clear
  pred Kb_Enter = Kb_IsoKey
  pred Kb_Pause = Kb_Enter
  pred Kb_Escape = Kb_Pause
  pred Kb_Kana = Kb_Escape
  pred Kb_Eisu = Kb_Kana
  pred Kb_Yen = Kb_Eisu
  pred Kb_JisUnderscore = Kb_Yen
  pred Kb_Home = Kb_JisUnderscore
  pred Kb_Left = Kb_Home
  pred Kb_Up = Kb_Left
  pred Kb_Right = Kb_Up
  pred Kb_Down = Kb_Right
  pred Kb_PageUp = Kb_Down
  pred Kb_PageDown = Kb_PageUp
  pred Kb_End = Kb_PageDown
  pred Kb_Print = Kb_End
  pred Kb_Insert = Kb_Print
  pred Kb_Menu = Kb_Insert
  pred Kb_Help = Kb_Menu
  pred Kb_Kp = Kb_Help
  pred Kb_KpEnter = Kb_Kp
  pred Kb_F = Kb_KpEnter
  pred Kb_Flast = Kb_F
  pred Kb_ShiftL = Kb_Flast
  pred Kb_ShiftR = Kb_ShiftL
  pred Kb_ControlL = Kb_ShiftR
  pred Kb_ControlR = Kb_ControlL
  pred Kb_CapsLock = Kb_ControlR
  pred Kb_MetaL = Kb_CapsLock
  pred Kb_MetaR = Kb_MetaL
  pred Kb_AltL = Kb_MetaR
  pred Kb_AltR = Kb_AltL
  pred Kb_Delete = Kb_AltR
  pred Kb_VolumeDown = error "SpecialKey.pred: Kb_VolumeDown has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from Kb_Delete
  fromEnum Kb_VolumeDown = 61201
  fromEnum Kb_VolumeMute = 61202
  fromEnum Kb_VolumeUp = 61203
  fromEnum Kb_MediaPlay = 61204
  fromEnum Kb_MediaStop = 61205
  fromEnum Kb_MediaPrev = 61206
  fromEnum Kb_MediaNext = 61207
  fromEnum Kb_HomePage = 61208
  fromEnum Kb_Mail = 61209
  fromEnum Kb_Search = 61211
  fromEnum Kb_Back = 61222
  fromEnum Kb_Forward = 61223
  fromEnum Kb_Stop = 61224
  fromEnum Kb_Refresh = 61225
  fromEnum Kb_Sleep = 61231
  fromEnum Kb_Favorites = 61232
  fromEnum Button = 65256
  fromEnum Kb_Backspace = 65288
  fromEnum Kb_Tab = 65289
  fromEnum Kb_Clear = 65291
  fromEnum Kb_IsoKey = 65292
  fromEnum Kb_Enter = 65293
  fromEnum Kb_Pause = 65299
  fromEnum Kb_Escape = 65307
  fromEnum Kb_Kana = 65326
  fromEnum Kb_Eisu = 65327
  fromEnum Kb_Yen = 65328
  fromEnum Kb_JisUnderscore = 65329
  fromEnum Kb_Home = 65360
  fromEnum Kb_Left = 65361
  fromEnum Kb_Up = 65362
  fromEnum Kb_Right = 65363
  fromEnum Kb_Down = 65364
  fromEnum Kb_PageUp = 65365
  fromEnum Kb_PageDown = 65366
  fromEnum Kb_End = 65367
  fromEnum Kb_Print = 65377
  fromEnum Kb_Insert = 65379
  fromEnum Kb_Menu = 65383
  fromEnum Kb_Help = 65384
  fromEnum Kb_Kp = 65408
  fromEnum Kb_KpEnter = 65421
  fromEnum Kb_F = 65469
  fromEnum Kb_Flast = 65504
  fromEnum Kb_ShiftL = 65505
  fromEnum Kb_ShiftR = 65506
  fromEnum Kb_ControlL = 65507
  fromEnum Kb_ControlR = 65508
  fromEnum Kb_CapsLock = 65509
  fromEnum Kb_MetaL = 65511
  fromEnum Kb_MetaR = 65512
  fromEnum Kb_AltL = 65513
  fromEnum Kb_AltR = 65514
  fromEnum Kb_Delete = 65535
  toEnum 61201 = Kb_VolumeDown
  toEnum 61202 = Kb_VolumeMute
  toEnum 61203 = Kb_VolumeUp
  toEnum 61204 = Kb_MediaPlay
  toEnum 61205 = Kb_MediaStop
  toEnum 61206 = Kb_MediaPrev
  toEnum 61207 = Kb_MediaNext
  toEnum 61208 = Kb_HomePage
  toEnum 61209 = Kb_Mail
  toEnum 61211 = Kb_Search
  toEnum 61222 = Kb_Back
  toEnum 61223 = Kb_Forward
  toEnum 61224 = Kb_Stop
  toEnum 61225 = Kb_Refresh
  toEnum 61231 = Kb_Sleep
  toEnum 61232 = Kb_Favorites
  toEnum 65256 = Button
  toEnum 65288 = Kb_Backspace
  toEnum 65289 = Kb_Tab
  toEnum 65291 = Kb_Clear
  toEnum 65292 = Kb_IsoKey
  toEnum 65293 = Kb_Enter
  toEnum 65299 = Kb_Pause
  toEnum 65307 = Kb_Escape
  toEnum 65326 = Kb_Kana
  toEnum 65327 = Kb_Eisu
  toEnum 65328 = Kb_Yen
  toEnum 65329 = Kb_JisUnderscore
  toEnum 65360 = Kb_Home
  toEnum 65361 = Kb_Left
  toEnum 65362 = Kb_Up
  toEnum 65363 = Kb_Right
  toEnum 65364 = Kb_Down
  toEnum 65365 = Kb_PageUp
  toEnum 65366 = Kb_PageDown
  toEnum 65367 = Kb_End
  toEnum 65377 = Kb_Print
  toEnum 65379 = Kb_Insert
  toEnum 65383 = Kb_Menu
  toEnum 65384 = Kb_Help
  toEnum 65408 = Kb_Kp
  toEnum 65421 = Kb_KpEnter
  toEnum 65469 = Kb_F
  toEnum 65504 = Kb_Flast
  toEnum 65505 = Kb_ShiftL
  toEnum 65506 = Kb_ShiftR
  toEnum 65507 = Kb_ControlL
  toEnum 65508 = Kb_ControlR
  toEnum 65509 = Kb_CapsLock
  toEnum 65511 = Kb_MetaL
  toEnum 65512 = Kb_MetaR
  toEnum 65513 = Kb_AltL
  toEnum 65514 = Kb_AltR
  toEnum 65535 = Kb_Delete
  toEnum unmatched = error ("SpecialKey.toEnum: Cannot match " ++ show unmatched)
{-# LINE 524 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
allShortcutSpecialKeys :: [CInt]
allShortcutSpecialKeys = [
  fromIntegral $ fromEnum (Kb_Backspace),
  fromIntegral $ fromEnum (Kb_Tab),
  fromIntegral $ fromEnum (Kb_Clear),
  fromIntegral $ fromEnum (Kb_Enter),
  fromIntegral $ fromEnum (Kb_Pause),
  fromIntegral $ fromEnum (Kb_ScrollLockState),
  fromIntegral $ fromEnum (Kb_Escape),
  fromIntegral $ fromEnum (Kb_Home),
  fromIntegral $ fromEnum (Kb_Left),
  fromIntegral $ fromEnum (Kb_Up),
  fromIntegral $ fromEnum (Kb_Right),
  fromIntegral $ fromEnum (Kb_Down),
  fromIntegral $ fromEnum (Kb_PageUp),
  fromIntegral $ fromEnum (Kb_PageDown),
  fromIntegral $ fromEnum (Kb_End),
  fromIntegral $ fromEnum (Kb_Print),
  fromIntegral $ fromEnum (Kb_Insert),
  fromIntegral $ fromEnum (Kb_Menu),
  fromIntegral $ fromEnum (Kb_NumLockState),
  fromIntegral $ fromEnum (Kb_KpEnter),
  fromIntegral $ fromEnum (Kb_ShiftL),
  fromIntegral $ fromEnum (Kb_ShiftR),
  fromIntegral $ fromEnum (Kb_ControlL),
  fromIntegral $ fromEnum (Kb_ControlR),
  fromIntegral $ fromEnum (Kb_CapsLock),
  fromIntegral $ fromEnum (Kb_MetaL),
  fromIntegral $ fromEnum (Kb_MetaR),
  fromIntegral $ fromEnum (Kb_AltL),
  fromIntegral $ fromEnum (Kb_AltR),
  fromIntegral $ fromEnum (Kb_Delete)
  ]
allSpecialKeys :: [SpecialKey]
allSpecialKeys = [
    Button,
    Kb_Backspace,
    Kb_Clear,
    Kb_Tab,
    Kb_IsoKey,
    Kb_Enter,
    Kb_Pause,
    Kb_Escape,
    Kb_Kana,
    Kb_Eisu,
    Kb_Yen,
    Kb_JisUnderscore,
    Kb_Home,
    Kb_Left,
    Kb_Up,
    Kb_Right,
    Kb_Down,
    Kb_PageUp,
    Kb_PageDown,
    Kb_End,
    Kb_Print,
    Kb_Insert,
    Kb_Menu,
    Kb_Help,
    Kb_Kp,
    Kb_KpEnter,
    Kb_F,
    Kb_Flast,
    Kb_ShiftL,
    Kb_ShiftR,
    Kb_ControlL,
    Kb_ControlR,
    Kb_CapsLock,
    Kb_MetaL,
    Kb_MetaR,
    Kb_AltL,
    Kb_AltR,
    Kb_Delete,
    Kb_VolumeDown,
    Kb_VolumeMute,
    Kb_VolumeUp,
    Kb_MediaPlay,
    Kb_MediaStop,
    Kb_MediaPrev,
    Kb_MediaNext,
    Kb_HomePage,
    Kb_Mail,
    Kb_Search,
    Kb_Back,
    Kb_Forward,
    Kb_Stop,
    Kb_Refresh,
    Kb_Sleep,
    Kb_Favorites
  ]
data MouseButton = Mouse_Left
                 | Mouse_Middle
                 | Mouse_Right
  deriving (Show,Eq)
instance Enum MouseButton where
  succ Mouse_Left = Mouse_Middle
  succ Mouse_Middle = Mouse_Right
  succ Mouse_Right = error "MouseButton.succ: Mouse_Right has no successor"
  pred Mouse_Middle = Mouse_Left
  pred Mouse_Right = Mouse_Middle
  pred Mouse_Left = error "MouseButton.pred: Mouse_Left has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from Mouse_Right
  fromEnum Mouse_Left = 1
  fromEnum Mouse_Middle = 2
  fromEnum Mouse_Right = 3
  toEnum 1 = Mouse_Left
  toEnum 2 = Mouse_Middle
  toEnum 3 = Mouse_Right
  toEnum unmatched = error ("MouseButton.toEnum: Cannot match " ++ show unmatched)
{-# LINE 618 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data EventState = Kb_ShiftState
                | Kb_CapsLockState
                | Kb_CtrlState
                | Kb_AltState
                | Kb_NumLockState
                | Kb_MetaState
                | Kb_ScrollLockState
                | Mouse_Button1State
                | Mouse_Button2State
                | Mouse_Button3State
  deriving (Show,Eq,Ord)
instance Enum EventState where
  succ Kb_ShiftState = Kb_CapsLockState
  succ Kb_CapsLockState = Kb_CtrlState
  succ Kb_CtrlState = Kb_AltState
  succ Kb_AltState = Kb_NumLockState
  succ Kb_NumLockState = Kb_MetaState
  succ Kb_MetaState = Kb_ScrollLockState
  succ Kb_ScrollLockState = Mouse_Button1State
  succ Mouse_Button1State = Mouse_Button2State
  succ Mouse_Button2State = Mouse_Button3State
  succ Mouse_Button3State = error "EventState.succ: Mouse_Button3State has no successor"
  pred Kb_CapsLockState = Kb_ShiftState
  pred Kb_CtrlState = Kb_CapsLockState
  pred Kb_AltState = Kb_CtrlState
  pred Kb_NumLockState = Kb_AltState
  pred Kb_MetaState = Kb_NumLockState
  pred Kb_ScrollLockState = Kb_MetaState
  pred Mouse_Button1State = Kb_ScrollLockState
  pred Mouse_Button2State = Mouse_Button1State
  pred Mouse_Button3State = Mouse_Button2State
  pred Kb_ShiftState = error "EventState.pred: Kb_ShiftState has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from Mouse_Button3State
  fromEnum Kb_ShiftState = 65536
  fromEnum Kb_CapsLockState = 131072
  fromEnum Kb_CtrlState = 262144
  fromEnum Kb_AltState = 524288
  fromEnum Kb_NumLockState = 1048576
  fromEnum Kb_MetaState = 4194304
  fromEnum Kb_ScrollLockState = 8388608
  fromEnum Mouse_Button1State = 16777216
  fromEnum Mouse_Button2State = 33554432
  fromEnum Mouse_Button3State = 67108864
  toEnum 65536 = Kb_ShiftState
  toEnum 131072 = Kb_CapsLockState
  toEnum 262144 = Kb_CtrlState
  toEnum 524288 = Kb_AltState
  toEnum 1048576 = Kb_NumLockState
  toEnum 4194304 = Kb_MetaState
  toEnum 8388608 = Kb_ScrollLockState
  toEnum 16777216 = Mouse_Button1State
  toEnum 33554432 = Mouse_Button2State
  toEnum 67108864 = Mouse_Button3State
  toEnum unmatched = error ("EventState.toEnum: Cannot match " ++ show unmatched)
{-# LINE 619 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data KeyboardKeyMask = Kb_KeyMask
  deriving (Show,Eq,Ord)
instance Enum KeyboardKeyMask where
  succ Kb_KeyMask = error "KeyboardKeyMask.succ: Kb_KeyMask has no successor"
  pred Kb_KeyMask = error "KeyboardKeyMask.pred: Kb_KeyMask has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from Kb_KeyMask
  fromEnum Kb_KeyMask = 65535
  toEnum 65535 = Kb_KeyMask
  toEnum unmatched = error ("KeyboardKeyMask.toEnum: Cannot match " ++ show unmatched)
{-# LINE 620 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data MouseButtonsMask = Mouse_ButtonsMask
  deriving (Show,Eq,Ord)
instance Enum MouseButtonsMask where
  succ Mouse_ButtonsMask = error "MouseButtonsMask.succ: Mouse_ButtonsMask has no successor"
  pred Mouse_ButtonsMask = error "MouseButtonsMask.pred: Mouse_ButtonsMask has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from Mouse_ButtonsMask
  fromEnum Mouse_ButtonsMask = 2130706432
  toEnum 2130706432 = Mouse_ButtonsMask
  toEnum unmatched = error ("MouseButtonsMask.toEnum: Cannot match " ++ show unmatched)
{-# LINE 621 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
kb_CommandState, kb_ControlState :: EventState
kb_CommandState = Kb_CtrlState
kb_ControlState = Kb_MetaState
kb_KpLast :: SpecialKey
kb_KpLast = Kb_F
data Damage = DamageChild
            | DamageExpose
            | DamageScroll
            | DamageOverlay
            | DamageUser1
            | DamageUser2
            | DamageAll
  deriving (Show)
instance Enum Damage where
  succ DamageChild = DamageExpose
  succ DamageExpose = DamageScroll
  succ DamageScroll = DamageOverlay
  succ DamageOverlay = DamageUser1
  succ DamageUser1 = DamageUser2
  succ DamageUser2 = DamageAll
  succ DamageAll = error "Damage.succ: DamageAll has no successor"
  pred DamageExpose = DamageChild
  pred DamageScroll = DamageExpose
  pred DamageOverlay = DamageScroll
  pred DamageUser1 = DamageOverlay
  pred DamageUser2 = DamageUser1
  pred DamageAll = DamageUser2
  pred DamageChild = error "Damage.pred: DamageChild has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from DamageAll
  fromEnum DamageChild = 1
  fromEnum DamageExpose = 2
  fromEnum DamageScroll = 4
  fromEnum DamageOverlay = 8
  fromEnum DamageUser1 = 16
  fromEnum DamageUser2 = 32
  fromEnum DamageAll = 128
  toEnum 1 = DamageChild
  toEnum 2 = DamageExpose
  toEnum 4 = DamageScroll
  toEnum 8 = DamageOverlay
  toEnum 16 = DamageUser1
  toEnum 32 = DamageUser2
  toEnum 128 = DamageAll
  toEnum unmatched = error ("Damage.toEnum: Cannot match " ++ show unmatched)
{-# LINE 632 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data GlutDraw = GlutNormal
              | GlutOverlay
  deriving (Show)
instance Enum GlutDraw where
  succ GlutNormal = GlutOverlay
  succ GlutOverlay = error "GlutDraw.succ: GlutOverlay has no successor"
  pred GlutOverlay = GlutNormal
  pred GlutNormal = error "GlutDraw.pred: GlutNormal has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from GlutOverlay
  fromEnum GlutNormal = 0
  fromEnum GlutOverlay = 1
  toEnum 0 = GlutNormal
  toEnum 1 = GlutOverlay
  toEnum unmatched = error ("GlutDraw.toEnum: Cannot match " ++ show unmatched)
{-# LINE 633 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data GlutMouseCodes = GlutLeftButton
                    | GlutMiddleButton
                    | GlutRightButton
  deriving (Show)
instance Enum GlutMouseCodes where
  succ GlutLeftButton = GlutMiddleButton
  succ GlutMiddleButton = GlutRightButton
  succ GlutRightButton = error "GlutMouseCodes.succ: GlutRightButton has no successor"
  pred GlutMiddleButton = GlutLeftButton
  pred GlutRightButton = GlutMiddleButton
  pred GlutLeftButton = error "GlutMouseCodes.pred: GlutLeftButton has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from GlutRightButton
  fromEnum GlutLeftButton = 0
  fromEnum GlutMiddleButton = 1
  fromEnum GlutRightButton = 2
  toEnum 0 = GlutLeftButton
  toEnum 1 = GlutMiddleButton
  toEnum 2 = GlutRightButton
  toEnum unmatched = error ("GlutMouseCodes.toEnum: Cannot match " ++ show unmatched)
{-# LINE 634 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data GlutUpDown = GlutDown
                | GlutUp
  deriving (Show)
instance Enum GlutUpDown where
  succ GlutDown = GlutUp
  succ GlutUp = error "GlutUpDown.succ: GlutUp has no successor"
  pred GlutUp = GlutDown
  pred GlutDown = error "GlutUpDown.pred: GlutDown has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from GlutUp
  fromEnum GlutDown = 0
  fromEnum GlutUp = 1
  toEnum 0 = GlutDown
  toEnum 1 = GlutUp
  toEnum unmatched = error ("GlutUpDown.toEnum: Cannot match " ++ show unmatched)
{-# LINE 635 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data GlutVisibility = GlutNotVisible
                    | GlutVisible
  deriving (Show)
instance Enum GlutVisibility where
  succ GlutNotVisible = GlutVisible
  succ GlutVisible = error "GlutVisibility.succ: GlutVisible has no successor"
  pred GlutVisible = GlutNotVisible
  pred GlutNotVisible = error "GlutVisibility.pred: GlutNotVisible has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from GlutVisible
  fromEnum GlutNotVisible = 0
  fromEnum GlutVisible = 1
  toEnum 0 = GlutNotVisible
  toEnum 1 = GlutVisible
  toEnum unmatched = error ("GlutVisibility.toEnum: Cannot match " ++ show unmatched)
{-# LINE 636 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data GlutMenuProperties = GlutMenuNotInUse
                        | GlutMenuInUse
                        | GlutMenuNumItems
  deriving (Show)
instance Enum GlutMenuProperties where
  succ GlutMenuNotInUse = GlutMenuInUse
  succ GlutMenuInUse = GlutMenuNumItems
  succ GlutMenuNumItems = error "GlutMenuProperties.succ: GlutMenuNumItems has no successor"
  pred GlutMenuInUse = GlutMenuNotInUse
  pred GlutMenuNumItems = GlutMenuInUse
  pred GlutMenuNotInUse = error "GlutMenuProperties.pred: GlutMenuNotInUse has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from GlutMenuNumItems
  fromEnum GlutMenuNotInUse = 0
  fromEnum GlutMenuInUse = 1
  fromEnum GlutMenuNumItems = 8
  toEnum 0 = GlutMenuNotInUse
  toEnum 1 = GlutMenuInUse
  toEnum 8 = GlutMenuNumItems
  toEnum unmatched = error ("GlutMenuProperties.toEnum: Cannot match " ++ show unmatched)
{-# LINE 637 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data GlutEnteredLeft = GlutLeft
                     | GlutEntered
  deriving (Show)
instance Enum GlutEnteredLeft where
  succ GlutLeft = GlutEntered
  succ GlutEntered = error "GlutEnteredLeft.succ: GlutEntered has no successor"
  pred GlutEntered = GlutLeft
  pred GlutLeft = error "GlutEnteredLeft.pred: GlutLeft has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from GlutEntered
  fromEnum GlutLeft = 0
  fromEnum GlutEntered = 1
  toEnum 0 = GlutLeft
  toEnum 1 = GlutEntered
  toEnum unmatched = error ("GlutEnteredLeft.toEnum: Cannot match " ++ show unmatched)
{-# LINE 638 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data GlutKeyboardCodes = GlutKeyF1
                       | GlutKeyF2
                       | GlutKeyF3
                       | GlutKeyF4
                       | GlutKeyF5
                       | GlutKeyF6
                       | GlutKeyF7
                       | GlutKeyF8
                       | GlutKeyF9
                       | GlutKeyF10
                       | GlutKeyF11
                       | GlutKeyF12
                       | GlutKeyHome
                       | GlutKeyLeft
                       | GlutKeyUp
                       | GlutKeyRight
                       | GlutKeyDown
                       | GlutKeyPageUp
                       | GlutKeyPageDown
                       | GlutKeyEnd
                       | GlutKeyInsert
                       | GlutActiveShift
                       | GlutActiveCtrl
                       | GlutActiveAlt
  deriving (Show)
instance Enum GlutKeyboardCodes where
  succ GlutKeyF1 = GlutKeyF2
  succ GlutKeyF2 = GlutKeyF3
  succ GlutKeyF3 = GlutKeyF4
  succ GlutKeyF4 = GlutKeyF5
  succ GlutKeyF5 = GlutKeyF6
  succ GlutKeyF6 = GlutKeyF7
  succ GlutKeyF7 = GlutKeyF8
  succ GlutKeyF8 = GlutKeyF9
  succ GlutKeyF9 = GlutKeyF10
  succ GlutKeyF10 = GlutKeyF11
  succ GlutKeyF11 = GlutKeyF12
  succ GlutKeyF12 = GlutKeyHome
  succ GlutKeyHome = GlutKeyLeft
  succ GlutKeyLeft = GlutKeyUp
  succ GlutKeyUp = GlutKeyRight
  succ GlutKeyRight = GlutKeyDown
  succ GlutKeyDown = GlutKeyPageUp
  succ GlutKeyPageUp = GlutKeyPageDown
  succ GlutKeyPageDown = GlutKeyEnd
  succ GlutKeyEnd = GlutKeyInsert
  succ GlutKeyInsert = GlutActiveShift
  succ GlutActiveShift = GlutActiveCtrl
  succ GlutActiveCtrl = GlutActiveAlt
  succ GlutActiveAlt = error "GlutKeyboardCodes.succ: GlutActiveAlt has no successor"
  pred GlutKeyF2 = GlutKeyF1
  pred GlutKeyF3 = GlutKeyF2
  pred GlutKeyF4 = GlutKeyF3
  pred GlutKeyF5 = GlutKeyF4
  pred GlutKeyF6 = GlutKeyF5
  pred GlutKeyF7 = GlutKeyF6
  pred GlutKeyF8 = GlutKeyF7
  pred GlutKeyF9 = GlutKeyF8
  pred GlutKeyF10 = GlutKeyF9
  pred GlutKeyF11 = GlutKeyF10
  pred GlutKeyF12 = GlutKeyF11
  pred GlutKeyHome = GlutKeyF12
  pred GlutKeyLeft = GlutKeyHome
  pred GlutKeyUp = GlutKeyLeft
  pred GlutKeyRight = GlutKeyUp
  pred GlutKeyDown = GlutKeyRight
  pred GlutKeyPageUp = GlutKeyDown
  pred GlutKeyPageDown = GlutKeyPageUp
  pred GlutKeyEnd = GlutKeyPageDown
  pred GlutKeyInsert = GlutKeyEnd
  pred GlutActiveShift = GlutKeyInsert
  pred GlutActiveCtrl = GlutActiveShift
  pred GlutActiveAlt = GlutActiveCtrl
  pred GlutKeyF1 = error "GlutKeyboardCodes.pred: GlutKeyF1 has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from GlutActiveAlt
  fromEnum GlutKeyF1 = 1
  fromEnum GlutKeyF2 = 2
  fromEnum GlutKeyF3 = 3
  fromEnum GlutKeyF4 = 4
  fromEnum GlutKeyF5 = 5
  fromEnum GlutKeyF6 = 6
  fromEnum GlutKeyF7 = 7
  fromEnum GlutKeyF8 = 8
  fromEnum GlutKeyF9 = 9
  fromEnum GlutKeyF10 = 10
  fromEnum GlutKeyF11 = 11
  fromEnum GlutKeyF12 = 12
  fromEnum GlutKeyHome = 65360
  fromEnum GlutKeyLeft = 65361
  fromEnum GlutKeyUp = 65362
  fromEnum GlutKeyRight = 65363
  fromEnum GlutKeyDown = 65364
  fromEnum GlutKeyPageUp = 65365
  fromEnum GlutKeyPageDown = 65366
  fromEnum GlutKeyEnd = 65367
  fromEnum GlutKeyInsert = 65379
  fromEnum GlutActiveShift = 65536
  fromEnum GlutActiveCtrl = 262144
  fromEnum GlutActiveAlt = 524288
  toEnum 1 = GlutKeyF1
  toEnum 2 = GlutKeyF2
  toEnum 3 = GlutKeyF3
  toEnum 4 = GlutKeyF4
  toEnum 5 = GlutKeyF5
  toEnum 6 = GlutKeyF6
  toEnum 7 = GlutKeyF7
  toEnum 8 = GlutKeyF8
  toEnum 9 = GlutKeyF9
  toEnum 10 = GlutKeyF10
  toEnum 11 = GlutKeyF11
  toEnum 12 = GlutKeyF12
  toEnum 65360 = GlutKeyHome
  toEnum 65361 = GlutKeyLeft
  toEnum 65362 = GlutKeyUp
  toEnum 65363 = GlutKeyRight
  toEnum 65364 = GlutKeyDown
  toEnum 65365 = GlutKeyPageUp
  toEnum 65366 = GlutKeyPageDown
  toEnum 65367 = GlutKeyEnd
  toEnum 65379 = GlutKeyInsert
  toEnum 65536 = GlutActiveShift
  toEnum 262144 = GlutActiveCtrl
  toEnum 524288 = GlutActiveAlt
  toEnum unmatched = error ("GlutKeyboardCodes.toEnum: Cannot match " ++ show unmatched)
{-# LINE 639 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data GlutConstants = GlutReturnZero
                   | GlutDisplayModePossible
                   | GlutVersion
                   | GlutOverlayPossible
                   | GlutTransparentIndex
                   | GlutNormalDamaged
                   | GlutOverlayDamaged
  deriving (Show)
instance Enum GlutConstants where
  succ GlutReturnZero = GlutDisplayModePossible
  succ GlutDisplayModePossible = GlutVersion
  succ GlutVersion = GlutOverlayPossible
  succ GlutOverlayPossible = GlutTransparentIndex
  succ GlutTransparentIndex = GlutNormalDamaged
  succ GlutNormalDamaged = GlutOverlayDamaged
  succ GlutOverlayDamaged = error "GlutConstants.succ: GlutOverlayDamaged has no successor"
  pred GlutDisplayModePossible = GlutReturnZero
  pred GlutVersion = GlutDisplayModePossible
  pred GlutOverlayPossible = GlutVersion
  pred GlutTransparentIndex = GlutOverlayPossible
  pred GlutNormalDamaged = GlutTransparentIndex
  pred GlutOverlayDamaged = GlutNormalDamaged
  pred GlutReturnZero = error "GlutConstants.pred: GlutReturnZero has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from GlutOverlayDamaged
  fromEnum GlutReturnZero = 0
  fromEnum GlutDisplayModePossible = 9
  fromEnum GlutVersion = 16
  fromEnum GlutOverlayPossible = 800
  fromEnum GlutTransparentIndex = 803
  fromEnum GlutNormalDamaged = 804
  fromEnum GlutOverlayDamaged = 805
  toEnum 0 = GlutReturnZero
  toEnum 9 = GlutDisplayModePossible
  toEnum 16 = GlutVersion
  toEnum 800 = GlutOverlayPossible
  toEnum 803 = GlutTransparentIndex
  toEnum 804 = GlutNormalDamaged
  toEnum 805 = GlutOverlayDamaged
  toEnum unmatched = error ("GlutConstants.toEnum: Cannot match " ++ show unmatched)
{-# LINE 640 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data GlutWindowProperties = GlutWindowX
                          | GlutWindowY
                          | GlutWindowWidth
                          | GlutWindowHeight
                          | GlutWindowParent
                          | GlutScreenWidth
                          | GlutScreenHeight
                          | GlutInitWindowX
                          | GlutInitWindowY
                          | GlutInitWindowWidth
                          | GlutInitWindowHeight
                          | GlutInitDisplayMode
                          | GlutWindowBufferSize
                          | GlutWindowDoublebuffer
                          | GlutWindowStereo
                          | GlutWindowColormapSize
                          | GlutWindowRedSize
                          | GlutWindowGreenSize
                          | GlutWindowBlueSize
                          | GlutWindowAlphaSize
                          | GlutWindowDepthSize
                          | GlutWindowStencilSize
                          | GlutWindowAccumRedSize
                          | GlutWindowAccumGreenSize
                          | GlutWindowAccumBlueSize
                          | GlutWindowAccumAlphaSize
                          | GlutWindowRgba
                          | GlutWindowNumSamples
  deriving (Show)
instance Enum GlutWindowProperties where
  succ GlutWindowX = GlutWindowY
  succ GlutWindowY = GlutWindowWidth
  succ GlutWindowWidth = GlutWindowHeight
  succ GlutWindowHeight = GlutWindowParent
  succ GlutWindowParent = GlutScreenWidth
  succ GlutScreenWidth = GlutScreenHeight
  succ GlutScreenHeight = GlutInitWindowX
  succ GlutInitWindowX = GlutInitWindowY
  succ GlutInitWindowY = GlutInitWindowWidth
  succ GlutInitWindowWidth = GlutInitWindowHeight
  succ GlutInitWindowHeight = GlutInitDisplayMode
  succ GlutInitDisplayMode = GlutWindowBufferSize
  succ GlutWindowBufferSize = GlutWindowDoublebuffer
  succ GlutWindowDoublebuffer = GlutWindowStereo
  succ GlutWindowStereo = GlutWindowColormapSize
  succ GlutWindowColormapSize = GlutWindowRedSize
  succ GlutWindowRedSize = GlutWindowGreenSize
  succ GlutWindowGreenSize = GlutWindowBlueSize
  succ GlutWindowBlueSize = GlutWindowAlphaSize
  succ GlutWindowAlphaSize = GlutWindowDepthSize
  succ GlutWindowDepthSize = GlutWindowStencilSize
  succ GlutWindowStencilSize = GlutWindowAccumRedSize
  succ GlutWindowAccumRedSize = GlutWindowAccumGreenSize
  succ GlutWindowAccumGreenSize = GlutWindowAccumBlueSize
  succ GlutWindowAccumBlueSize = GlutWindowAccumAlphaSize
  succ GlutWindowAccumAlphaSize = GlutWindowRgba
  succ GlutWindowRgba = GlutWindowNumSamples
  succ GlutWindowNumSamples = error "GlutWindowProperties.succ: GlutWindowNumSamples has no successor"
  pred GlutWindowY = GlutWindowX
  pred GlutWindowWidth = GlutWindowY
  pred GlutWindowHeight = GlutWindowWidth
  pred GlutWindowParent = GlutWindowHeight
  pred GlutScreenWidth = GlutWindowParent
  pred GlutScreenHeight = GlutScreenWidth
  pred GlutInitWindowX = GlutScreenHeight
  pred GlutInitWindowY = GlutInitWindowX
  pred GlutInitWindowWidth = GlutInitWindowY
  pred GlutInitWindowHeight = GlutInitWindowWidth
  pred GlutInitDisplayMode = GlutInitWindowHeight
  pred GlutWindowBufferSize = GlutInitDisplayMode
  pred GlutWindowDoublebuffer = GlutWindowBufferSize
  pred GlutWindowStereo = GlutWindowDoublebuffer
  pred GlutWindowColormapSize = GlutWindowStereo
  pred GlutWindowRedSize = GlutWindowColormapSize
  pred GlutWindowGreenSize = GlutWindowRedSize
  pred GlutWindowBlueSize = GlutWindowGreenSize
  pred GlutWindowAlphaSize = GlutWindowBlueSize
  pred GlutWindowDepthSize = GlutWindowAlphaSize
  pred GlutWindowStencilSize = GlutWindowDepthSize
  pred GlutWindowAccumRedSize = GlutWindowStencilSize
  pred GlutWindowAccumGreenSize = GlutWindowAccumRedSize
  pred GlutWindowAccumBlueSize = GlutWindowAccumGreenSize
  pred GlutWindowAccumAlphaSize = GlutWindowAccumBlueSize
  pred GlutWindowRgba = GlutWindowAccumAlphaSize
  pred GlutWindowNumSamples = GlutWindowRgba
  pred GlutWindowX = error "GlutWindowProperties.pred: GlutWindowX has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from GlutWindowNumSamples
  fromEnum GlutWindowX = 1
  fromEnum GlutWindowY = 2
  fromEnum GlutWindowWidth = 3
  fromEnum GlutWindowHeight = 4
  fromEnum GlutWindowParent = 5
  fromEnum GlutScreenWidth = 6
  fromEnum GlutScreenHeight = 7
  fromEnum GlutInitWindowX = 10
  fromEnum GlutInitWindowY = 11
  fromEnum GlutInitWindowWidth = 12
  fromEnum GlutInitWindowHeight = 13
  fromEnum GlutInitDisplayMode = 14
  fromEnum GlutWindowBufferSize = 15
  fromEnum GlutWindowDoublebuffer = 3122
  fromEnum GlutWindowStereo = 3123
  fromEnum GlutWindowColormapSize = 3409
  fromEnum GlutWindowRedSize = 3410
  fromEnum GlutWindowGreenSize = 3411
  fromEnum GlutWindowBlueSize = 3412
  fromEnum GlutWindowAlphaSize = 3413
  fromEnum GlutWindowDepthSize = 3414
  fromEnum GlutWindowStencilSize = 3415
  fromEnum GlutWindowAccumRedSize = 3416
  fromEnum GlutWindowAccumGreenSize = 3417
  fromEnum GlutWindowAccumBlueSize = 3418
  fromEnum GlutWindowAccumAlphaSize = 3419
  fromEnum GlutWindowRgba = 6408
  fromEnum GlutWindowNumSamples = 32937
  toEnum 1 = GlutWindowX
  toEnum 2 = GlutWindowY
  toEnum 3 = GlutWindowWidth
  toEnum 4 = GlutWindowHeight
  toEnum 5 = GlutWindowParent
  toEnum 6 = GlutScreenWidth
  toEnum 7 = GlutScreenHeight
  toEnum 10 = GlutInitWindowX
  toEnum 11 = GlutInitWindowY
  toEnum 12 = GlutInitWindowWidth
  toEnum 13 = GlutInitWindowHeight
  toEnum 14 = GlutInitDisplayMode
  toEnum 15 = GlutWindowBufferSize
  toEnum 3122 = GlutWindowDoublebuffer
  toEnum 3123 = GlutWindowStereo
  toEnum 3409 = GlutWindowColormapSize
  toEnum 3410 = GlutWindowRedSize
  toEnum 3411 = GlutWindowGreenSize
  toEnum 3412 = GlutWindowBlueSize
  toEnum 3413 = GlutWindowAlphaSize
  toEnum 3414 = GlutWindowDepthSize
  toEnum 3415 = GlutWindowStencilSize
  toEnum 3416 = GlutWindowAccumRedSize
  toEnum 3417 = GlutWindowAccumGreenSize
  toEnum 3418 = GlutWindowAccumBlueSize
  toEnum 3419 = GlutWindowAccumAlphaSize
  toEnum 6408 = GlutWindowRgba
  toEnum 32937 = GlutWindowNumSamples
  toEnum unmatched = error ("GlutWindowProperties.toEnum: Cannot match " ++ show unmatched)
{-# LINE 641 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data GlutCursor = GlutCursorInherit
                | GlutCursorRightArrow
                | GlutCursorBottomLeftCorner
                | GlutCursorBottomRightCorner
                | GlutCursorBottomSide
                | GlutCursorCycle
                | GlutCursorInfo
                | GlutCursorLeftSide
                | GlutCursorDestroy
                | GlutCursorHelp
                | GlutCursorRightSide
                | GlutCursorSpray
                | GlutCursorCrosshair
                | GlutCursorLeftArrow
                | GlutCursorTopLeftCorner
                | GlutCursorTopRightCorner
                | GlutCursorTopSide
                | GlutCursorWait
                | GlutCursorText
                | GlutCursorUpDown
                | GlutCursorLeftRight
                | GlutCursorNone
  deriving (Show)
instance Enum GlutCursor where
  succ GlutCursorInherit = GlutCursorRightArrow
  succ GlutCursorRightArrow = GlutCursorBottomLeftCorner
  succ GlutCursorBottomLeftCorner = GlutCursorBottomRightCorner
  succ GlutCursorBottomRightCorner = GlutCursorBottomSide
  succ GlutCursorBottomSide = GlutCursorCycle
  succ GlutCursorCycle = GlutCursorInfo
  succ GlutCursorInfo = GlutCursorLeftSide
  succ GlutCursorLeftSide = GlutCursorDestroy
  succ GlutCursorDestroy = GlutCursorHelp
  succ GlutCursorHelp = GlutCursorRightSide
  succ GlutCursorRightSide = GlutCursorSpray
  succ GlutCursorSpray = GlutCursorCrosshair
  succ GlutCursorCrosshair = GlutCursorLeftArrow
  succ GlutCursorLeftArrow = GlutCursorTopLeftCorner
  succ GlutCursorTopLeftCorner = GlutCursorTopRightCorner
  succ GlutCursorTopRightCorner = GlutCursorTopSide
  succ GlutCursorTopSide = GlutCursorWait
  succ GlutCursorWait = GlutCursorText
  succ GlutCursorText = GlutCursorUpDown
  succ GlutCursorUpDown = GlutCursorLeftRight
  succ GlutCursorLeftRight = GlutCursorNone
  succ GlutCursorNone = error "GlutCursor.succ: GlutCursorNone has no successor"
  pred GlutCursorRightArrow = GlutCursorInherit
  pred GlutCursorBottomLeftCorner = GlutCursorRightArrow
  pred GlutCursorBottomRightCorner = GlutCursorBottomLeftCorner
  pred GlutCursorBottomSide = GlutCursorBottomRightCorner
  pred GlutCursorCycle = GlutCursorBottomSide
  pred GlutCursorInfo = GlutCursorCycle
  pred GlutCursorLeftSide = GlutCursorInfo
  pred GlutCursorDestroy = GlutCursorLeftSide
  pred GlutCursorHelp = GlutCursorDestroy
  pred GlutCursorRightSide = GlutCursorHelp
  pred GlutCursorSpray = GlutCursorRightSide
  pred GlutCursorCrosshair = GlutCursorSpray
  pred GlutCursorLeftArrow = GlutCursorCrosshair
  pred GlutCursorTopLeftCorner = GlutCursorLeftArrow
  pred GlutCursorTopRightCorner = GlutCursorTopLeftCorner
  pred GlutCursorTopSide = GlutCursorTopRightCorner
  pred GlutCursorWait = GlutCursorTopSide
  pred GlutCursorText = GlutCursorWait
  pred GlutCursorUpDown = GlutCursorText
  pred GlutCursorLeftRight = GlutCursorUpDown
  pred GlutCursorNone = GlutCursorLeftRight
  pred GlutCursorInherit = error "GlutCursor.pred: GlutCursorInherit has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from GlutCursorNone
  fromEnum GlutCursorInherit = 0
  fromEnum GlutCursorRightArrow = 2
  fromEnum GlutCursorBottomLeftCorner = 7
  fromEnum GlutCursorBottomRightCorner = 8
  fromEnum GlutCursorBottomSide = 9
  fromEnum GlutCursorCycle = 26
  fromEnum GlutCursorInfo = 31
  fromEnum GlutCursorLeftSide = 36
  fromEnum GlutCursorDestroy = 45
  fromEnum GlutCursorHelp = 47
  fromEnum GlutCursorRightSide = 49
  fromEnum GlutCursorSpray = 63
  fromEnum GlutCursorCrosshair = 66
  fromEnum GlutCursorLeftArrow = 67
  fromEnum GlutCursorTopLeftCorner = 68
  fromEnum GlutCursorTopRightCorner = 69
  fromEnum GlutCursorTopSide = 70
  fromEnum GlutCursorWait = 76
  fromEnum GlutCursorText = 77
  fromEnum GlutCursorUpDown = 78
  fromEnum GlutCursorLeftRight = 79
  fromEnum GlutCursorNone = 255
  toEnum 0 = GlutCursorInherit
  toEnum 2 = GlutCursorRightArrow
  toEnum 7 = GlutCursorBottomLeftCorner
  toEnum 8 = GlutCursorBottomRightCorner
  toEnum 9 = GlutCursorBottomSide
  toEnum 26 = GlutCursorCycle
  toEnum 31 = GlutCursorInfo
  toEnum 36 = GlutCursorLeftSide
  toEnum 45 = GlutCursorDestroy
  toEnum 47 = GlutCursorHelp
  toEnum 49 = GlutCursorRightSide
  toEnum 63 = GlutCursorSpray
  toEnum 66 = GlutCursorCrosshair
  toEnum 67 = GlutCursorLeftArrow
  toEnum 68 = GlutCursorTopLeftCorner
  toEnum 69 = GlutCursorTopRightCorner
  toEnum 70 = GlutCursorTopSide
  toEnum 76 = GlutCursorWait
  toEnum 77 = GlutCursorText
  toEnum 78 = GlutCursorUpDown
  toEnum 79 = GlutCursorLeftRight
  toEnum 255 = GlutCursorNone
  toEnum unmatched = error ("GlutCursor.toEnum: Cannot match " ++ show unmatched)
{-# LINE 642 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
glutCursorFullCrossHair :: GlutCursor
glutCursorFullCrossHair = GlutCursorCrosshair
data Cursor = CursorDefault
            | CursorSW
            | CursorSE
            | CursorS
            | CursorMove
            | CursorHand
            | CursorArrow
            | CursorW
            | CursorHelp
            | CursorE
            | CursorCross
            | CursorNW
            | CursorNE
            | CursorN
            | CursorWait
            | CursorInsert
            | CursorNS
            | CursorWE
            | CursorNWSE
            | CursorNesw
            | CursorNone
  deriving (Show)
instance Enum Cursor where
  succ CursorDefault = CursorSW
  succ CursorSW = CursorSE
  succ CursorSE = CursorS
  succ CursorS = CursorMove
  succ CursorMove = CursorHand
  succ CursorHand = CursorArrow
  succ CursorArrow = CursorW
  succ CursorW = CursorHelp
  succ CursorHelp = CursorE
  succ CursorE = CursorCross
  succ CursorCross = CursorNW
  succ CursorNW = CursorNE
  succ CursorNE = CursorN
  succ CursorN = CursorWait
  succ CursorWait = CursorInsert
  succ CursorInsert = CursorNS
  succ CursorNS = CursorWE
  succ CursorWE = CursorNWSE
  succ CursorNWSE = CursorNesw
  succ CursorNesw = CursorNone
  succ CursorNone = error "Cursor.succ: CursorNone has no successor"
  pred CursorSW = CursorDefault
  pred CursorSE = CursorSW
  pred CursorS = CursorSE
  pred CursorMove = CursorS
  pred CursorHand = CursorMove
  pred CursorArrow = CursorHand
  pred CursorW = CursorArrow
  pred CursorHelp = CursorW
  pred CursorE = CursorHelp
  pred CursorCross = CursorE
  pred CursorNW = CursorCross
  pred CursorNE = CursorNW
  pred CursorN = CursorNE
  pred CursorWait = CursorN
  pred CursorInsert = CursorWait
  pred CursorNS = CursorInsert
  pred CursorWE = CursorNS
  pred CursorNWSE = CursorWE
  pred CursorNesw = CursorNWSE
  pred CursorNone = CursorNesw
  pred CursorDefault = error "Cursor.pred: CursorDefault has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from CursorNone
  fromEnum CursorDefault = 0
  fromEnum CursorSW = 7
  fromEnum CursorSE = 8
  fromEnum CursorS = 9
  fromEnum CursorMove = 27
  fromEnum CursorHand = 31
  fromEnum CursorArrow = 35
  fromEnum CursorW = 36
  fromEnum CursorHelp = 47
  fromEnum CursorE = 49
  fromEnum CursorCross = 66
  fromEnum CursorNW = 68
  fromEnum CursorNE = 69
  fromEnum CursorN = 70
  fromEnum CursorWait = 76
  fromEnum CursorInsert = 77
  fromEnum CursorNS = 78
  fromEnum CursorWE = 79
  fromEnum CursorNWSE = 80
  fromEnum CursorNesw = 81
  fromEnum CursorNone = 255
  toEnum 0 = CursorDefault
  toEnum 7 = CursorSW
  toEnum 8 = CursorSE
  toEnum 9 = CursorS
  toEnum 27 = CursorMove
  toEnum 31 = CursorHand
  toEnum 35 = CursorArrow
  toEnum 36 = CursorW
  toEnum 47 = CursorHelp
  toEnum 49 = CursorE
  toEnum 66 = CursorCross
  toEnum 68 = CursorNW
  toEnum 69 = CursorNE
  toEnum 70 = CursorN
  toEnum 76 = CursorWait
  toEnum 77 = CursorInsert
  toEnum 78 = CursorNS
  toEnum 79 = CursorWE
  toEnum 80 = CursorNWSE
  toEnum 81 = CursorNesw
  toEnum 255 = CursorNone
  toEnum unmatched = error ("Cursor.toEnum: Cannot match " ++ show unmatched)
{-# LINE 645 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data Mode = ModeRGB
          | ModeIndex
          | ModeDouble
          | ModeAccum
          | ModeAlpha
          | ModeDepth
          | ModeStencil
          | ModeRGB8
          | ModeMultisample
          | ModeStereo
          | ModeFakeSingle
  deriving (Show,Eq,Ord)
instance Enum Mode where
  succ ModeRGB = ModeIndex
  succ ModeIndex = ModeDouble
  succ ModeDouble = ModeAccum
  succ ModeAccum = ModeAlpha
  succ ModeAlpha = ModeDepth
  succ ModeDepth = ModeStencil
  succ ModeStencil = ModeRGB8
  succ ModeRGB8 = ModeMultisample
  succ ModeMultisample = ModeStereo
  succ ModeStereo = ModeFakeSingle
  succ ModeFakeSingle = error "Mode.succ: ModeFakeSingle has no successor"
  pred ModeIndex = ModeRGB
  pred ModeDouble = ModeIndex
  pred ModeAccum = ModeDouble
  pred ModeAlpha = ModeAccum
  pred ModeDepth = ModeAlpha
  pred ModeStencil = ModeDepth
  pred ModeRGB8 = ModeStencil
  pred ModeMultisample = ModeRGB8
  pred ModeStereo = ModeMultisample
  pred ModeFakeSingle = ModeStereo
  pred ModeRGB = error "Mode.pred: ModeRGB has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from ModeFakeSingle
  fromEnum ModeRGB = 0
  fromEnum ModeIndex = 1
  fromEnum ModeDouble = 2
  fromEnum ModeAccum = 4
  fromEnum ModeAlpha = 8
  fromEnum ModeDepth = 16
  fromEnum ModeStencil = 32
  fromEnum ModeRGB8 = 64
  fromEnum ModeMultisample = 128
  fromEnum ModeStereo = 256
  fromEnum ModeFakeSingle = 512
  toEnum 0 = ModeRGB
  toEnum 1 = ModeIndex
  toEnum 2 = ModeDouble
  toEnum 4 = ModeAccum
  toEnum 8 = ModeAlpha
  toEnum 16 = ModeDepth
  toEnum 32 = ModeStencil
  toEnum 64 = ModeRGB8
  toEnum 128 = ModeMultisample
  toEnum 256 = ModeStereo
  toEnum 512 = ModeFakeSingle
  toEnum unmatched = error ("Mode.toEnum: Cannot match " ++ show unmatched)
{-# LINE 646 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
data AlignType = AlignTypeCenter
               | AlignTypeTop
               | AlignTypeBottom
               | AlignTypeLeft
               | AlignTypeLeftTop
               | AlignTypeRight
               | AlignTypeRightTop
               | AlignTypeLeftBottom
               | AlignTypeRightBottom
               | AlignTypeInside
               | AlignTypeTextOverImage
               | AlignTypeClip
               | AlignTypeWrap
               | AlignTypeImageNextToText
               | AlignTypeTextNextToImage
               | AlignTypeImageBackdrop
  deriving (Show,Eq,Ord)
instance Enum AlignType where
  succ AlignTypeCenter = AlignTypeTop
  succ AlignTypeTop = AlignTypeBottom
  succ AlignTypeBottom = AlignTypeLeft
  succ AlignTypeLeft = AlignTypeLeftTop
  succ AlignTypeLeftTop = AlignTypeRight
  succ AlignTypeRight = AlignTypeRightTop
  succ AlignTypeRightTop = AlignTypeLeftBottom
  succ AlignTypeLeftBottom = AlignTypeRightBottom
  succ AlignTypeRightBottom = AlignTypeInside
  succ AlignTypeInside = AlignTypeTextOverImage
  succ AlignTypeTextOverImage = AlignTypeClip
  succ AlignTypeClip = AlignTypeWrap
  succ AlignTypeWrap = AlignTypeImageNextToText
  succ AlignTypeImageNextToText = AlignTypeTextNextToImage
  succ AlignTypeTextNextToImage = AlignTypeImageBackdrop
  succ AlignTypeImageBackdrop = error "AlignType.succ: AlignTypeImageBackdrop has no successor"
  pred AlignTypeTop = AlignTypeCenter
  pred AlignTypeBottom = AlignTypeTop
  pred AlignTypeLeft = AlignTypeBottom
  pred AlignTypeLeftTop = AlignTypeLeft
  pred AlignTypeRight = AlignTypeLeftTop
  pred AlignTypeRightTop = AlignTypeRight
  pred AlignTypeLeftBottom = AlignTypeRightTop
  pred AlignTypeRightBottom = AlignTypeLeftBottom
  pred AlignTypeInside = AlignTypeRightBottom
  pred AlignTypeTextOverImage = AlignTypeInside
  pred AlignTypeClip = AlignTypeTextOverImage
  pred AlignTypeWrap = AlignTypeClip
  pred AlignTypeImageNextToText = AlignTypeWrap
  pred AlignTypeTextNextToImage = AlignTypeImageNextToText
  pred AlignTypeImageBackdrop = AlignTypeTextNextToImage
  pred AlignTypeCenter = error "AlignType.pred: AlignTypeCenter has no predecessor"
  enumFromTo from to = go from
    where
      end = fromEnum to
      go v = case compare (fromEnum v) end of
                 LT -> v : go (succ v)
                 EQ -> [v]
                 GT -> []
  enumFrom from = enumFromTo from AlignTypeImageBackdrop
  fromEnum AlignTypeCenter = 0
  fromEnum AlignTypeTop = 1
  fromEnum AlignTypeBottom = 2
  fromEnum AlignTypeLeft = 4
  fromEnum AlignTypeLeftTop = 7
  fromEnum AlignTypeRight = 8
  fromEnum AlignTypeRightTop = 11
  fromEnum AlignTypeLeftBottom = 13
  fromEnum AlignTypeRightBottom = 14
  fromEnum AlignTypeInside = 16
  fromEnum AlignTypeTextOverImage = 32
  fromEnum AlignTypeClip = 64
  fromEnum AlignTypeWrap = 128
  fromEnum AlignTypeImageNextToText = 256
  fromEnum AlignTypeTextNextToImage = 288
  fromEnum AlignTypeImageBackdrop = 512
  toEnum 0 = AlignTypeCenter
  toEnum 1 = AlignTypeTop
  toEnum 2 = AlignTypeBottom
  toEnum 4 = AlignTypeLeft
  toEnum 7 = AlignTypeLeftTop
  toEnum 8 = AlignTypeRight
  toEnum 11 = AlignTypeRightTop
  toEnum 13 = AlignTypeLeftBottom
  toEnum 14 = AlignTypeRightBottom
  toEnum 16 = AlignTypeInside
  toEnum 32 = AlignTypeTextOverImage
  toEnum 64 = AlignTypeClip
  toEnum 128 = AlignTypeWrap
  toEnum 256 = AlignTypeImageNextToText
  toEnum 288 = AlignTypeTextNextToImage
  toEnum 512 = AlignTypeImageBackdrop
  toEnum unmatched = error ("AlignType.toEnum: Cannot match " ++ show unmatched)
{-# LINE 647 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
newtype Alignments = Alignments [AlignType] deriving Show
alignCenter :: Alignments
alignCenter = Alignments [AlignTypeCenter]
alignTop :: Alignments
alignTop = Alignments [AlignTypeTop]
alignBottom :: Alignments
alignBottom = Alignments [AlignTypeBottom]
alignLeft :: Alignments
alignLeft = Alignments [AlignTypeLeft]
alignRight :: Alignments
alignRight = Alignments [AlignTypeRight]
alignInside :: Alignments
alignInside = Alignments [AlignTypeInside]
alignTextOverImage :: Alignments
alignTextOverImage = Alignments [AlignTypeTextOverImage]
alignClip :: Alignments
alignClip = Alignments [AlignTypeClip]
alignWrap :: Alignments
alignWrap = Alignments [AlignTypeWrap]
alignImageNextToText :: Alignments
alignImageNextToText = Alignments [AlignTypeImageNextToText]
alignTextNextToImage :: Alignments
alignTextNextToImage = Alignments [AlignTypeTextNextToImage]
alignImageBackdrop :: Alignments
alignImageBackdrop = Alignments [AlignTypeImageBackdrop]
alignLeftTop :: Alignments
alignLeftTop = Alignments [AlignTypeLeftTop]
alignRightTop :: Alignments
alignRightTop = Alignments [AlignTypeRightTop]
alignLeftBottom :: Alignments
alignLeftBottom = Alignments [AlignTypeLeftBottom]
alignRightBottom :: Alignments
alignRightBottom = Alignments [AlignTypeRightBottom]
alignPositionMask :: Alignments
alignPositionMask = Alignments [AlignTypeLeft, AlignTypeRight, AlignTypeTop, AlignTypeBottom]
alignImageMask :: Alignments
alignImageMask = Alignments [AlignTypeImageBackdrop, AlignTypeImageNextToText, AlignTypeTextOverImage]
alignNoWrap :: Alignments
alignNoWrap = alignCenter
alignImageOverText :: Alignments
alignImageOverText = alignCenter
alignTopLeft :: Alignments
alignTopLeft = Alignments [AlignTypeTop, AlignTypeLeft]
alignTopRight :: Alignments
alignTopRight = Alignments [AlignTypeTop, AlignTypeRight]
alignBottomLeft :: Alignments
alignBottomLeft = Alignments [AlignTypeBottom, AlignTypeLeft]
alignBottomRight :: Alignments
alignBottomRight = Alignments [AlignTypeBottom, AlignTypeRight]
allAlignTypes :: [AlignType]
allAlignTypes = [
      AlignTypeCenter,
      AlignTypeTop,
      AlignTypeBottom,
      AlignTypeLeft,
      AlignTypeRight,
      AlignTypeInside,
      AlignTypeTextOverImage,
      AlignTypeClip,
      AlignTypeWrap,
      AlignTypeImageNextToText,
      AlignTypeTextNextToImage,
      AlignTypeImageBackdrop,
      AlignTypeLeftTop,
      AlignTypeRightTop,
      AlignTypeLeftBottom,
      AlignTypeRightBottom
      ]
allWhen :: [When]
allWhen = [
    WhenNever,
    WhenChanged,
    WhenNotChanged,
    WhenRelease,
    WhenReleaseAlways,
    WhenEnterKey,
    WhenEnterKeyAlways,
    WhenEnterKeyChanged
  ]
allEventStates :: [EventState]
allEventStates = [
    Kb_ShiftState,
    Kb_CapsLockState,
    Kb_CtrlState,
    Kb_AltState,
    Kb_NumLockState,
    Kb_MetaState,
    Kb_ScrollLockState,
    Mouse_Button1State,
    Mouse_Button2State,
    Mouse_Button3State
  ]
data Boxtype = NoBox
             | FlatBox
             | UpBox
             | DownBox
             | UpFrame
             | DownFrame
             | ThinUpBox
             | ThinDownBox
             | ThinUpFrame
             | ThinDownFrame
             | EngravedBox
             | EmbossedBox
             | EngravedFrame
             | EmbossedFrame
             | BorderBox
             | ShadowBox
             | BorderFrame
             | ShadowFrame
             | RoundedBox
             | RshadowBox
             | RoundedFrame
             | RFlatBox
             | RoundUpBox
             | RoundDownBox
             | DiamondUpBox
             | DiamondDownBox
             | OvalBox
             | OshadowBox
             | OvalFrame
             | FloatBox
             | PlasticUpBox
             | PlasticDownBox
             | PlasticUpFrame
             | PlasticDownFrame
             | PlasticThinUpBox
             | PlasticThinDownBox
             | PlasticRoundUpBox
             | PlasticRoundDownBox
             | GtkUpBox
             | GtkDownBox
             | GtkUpFrame
             | GtkDownFrame
             | GtkThinUpBox
             | GtkThinDownBox
             | GtkThinUpFrame
             | GtkThinDownFrame
             | GtkRoundUpBox
             | GtkRoundDownBox
             | GleamUpBox
             | GleamDownBox
             | GleamUpFrame
             | GleamDownFrame
             | GleamThinUpBox
             | GleamThinDownBox
             | GleamRoundUpBox
             | GleamRoundDownBox
             | FreeBoxtype
             deriving (Show)
instance Enum Boxtype where
  fromEnum NoBox = 0
  fromEnum FlatBox = 1
  fromEnum UpBox = 2
  fromEnum DownBox = 3
  fromEnum UpFrame = 4
  fromEnum DownFrame = 5
  fromEnum ThinUpBox = 6
  fromEnum ThinDownBox = 7
  fromEnum ThinUpFrame = 8
  fromEnum ThinDownFrame = 9
  fromEnum EngravedBox = 10
  fromEnum EmbossedBox = 11
  fromEnum EngravedFrame = 12
  fromEnum EmbossedFrame = 13
  fromEnum BorderBox = 14
  fromEnum ShadowBox = defineShadowBox_
  fromEnum BorderFrame = 16
  fromEnum ShadowFrame = defineShadowBox_ + 2
  fromEnum RoundedBox = defineRoundedBox_
  fromEnum RshadowBox = defineRshadowBox_
  fromEnum RoundedFrame = defineRoundedBox_ + 2
  fromEnum RFlatBox = defineRflatBox_
  fromEnum RoundUpBox = defineRoundUpBox_
  fromEnum RoundDownBox = defineRoundUpBox_ + 1
  fromEnum DiamondUpBox = defineDiamondBox_
  fromEnum DiamondDownBox = defineDiamondBox_ + 1
  fromEnum OvalBox = defineOvalBox_
  fromEnum OshadowBox = defineOvalBox_ + 1
  fromEnum OvalFrame = defineOvalBox_ + 2
  fromEnum FloatBox = defineOvalBox_ + 3
  fromEnum PlasticUpBox = definePlasticUpBox_
  fromEnum PlasticDownBox = definePlasticUpBox_ + 1
  fromEnum PlasticUpFrame = definePlasticUpBox_ + 2
  fromEnum PlasticDownFrame = definePlasticUpBox_ + 3
  fromEnum PlasticThinUpBox = definePlasticUpBox_ + 4
  fromEnum PlasticThinDownBox = definePlasticUpBox_ + 5
  fromEnum PlasticRoundUpBox = definePlasticUpBox_ + 6
  fromEnum PlasticRoundDownBox = definePlasticUpBox_ + 7
  fromEnum GtkUpBox = defineGtkUpBox_
  fromEnum GtkDownBox = defineGtkUpBox_ + 1
  fromEnum GtkUpFrame = defineGtkUpBox_ + 2
  fromEnum GtkDownFrame = defineGtkUpBox_ + 3
  fromEnum GtkThinUpBox = defineGtkUpBox_ + 4
  fromEnum GtkThinDownBox = defineGtkUpBox_ + 5
  fromEnum GtkThinUpFrame = defineGtkUpBox_ + 6
  fromEnum GtkThinDownFrame = defineGtkUpBox_ + 7
  fromEnum GtkRoundUpBox = defineGtkUpBox_ + 8
  fromEnum GtkRoundDownBox = defineGtkUpBox_ + 9
  fromEnum GleamUpBox = defineGleamUpBox_
  fromEnum GleamDownBox = defineGleamUpBox_ + 1
  fromEnum GleamUpFrame = defineGleamUpBox_ + 2
  fromEnum GleamDownFrame = defineGleamUpBox_ + 3
  fromEnum GleamThinUpBox = defineGleamUpBox_ + 4
  fromEnum GleamThinDownBox = defineGleamUpBox_ + 5
  fromEnum GleamRoundUpBox = defineGleamUpBox_ + 6
  fromEnum GleamRoundDownBox = defineGleamUpBox_ + 7
  fromEnum FreeBoxtype = 48
  toEnum 0 = NoBox
  toEnum 1 = FlatBox
  toEnum 2 = UpBox
  toEnum 3 = DownBox
  toEnum 4 = UpFrame
  toEnum 5 = DownFrame
  toEnum 6 = ThinUpBox
  toEnum 7 = ThinDownBox
  toEnum 8 = ThinUpFrame
  toEnum 9 = ThinDownFrame
  toEnum 10 = EngravedBox
  toEnum 11 = EmbossedBox
  toEnum 12 = EngravedFrame
  toEnum 13 = EmbossedFrame
  toEnum 14 = BorderBox
  toEnum 16 = BorderFrame
  toEnum 48 = FreeBoxtype
  toEnum x | x == defineShadowBox_ = ShadowBox
           | x == defineShadowBox_ + 2 = ShadowFrame
           | x == defineRoundedBox_  = RoundedBox
           | x == defineRshadowBox_ = RshadowBox
           | x == defineRoundedBox_ + 2 = RoundedFrame
           | x == defineRflatBox_ = RFlatBox
           | x == defineRoundUpBox_ = RoundUpBox
           | x == defineRoundUpBox_ + 1 = RoundDownBox
           | x == defineDiamondBox_ = DiamondUpBox
           | x == defineDiamondBox_ + 1 = DiamondDownBox
           | x == defineOvalBox_ = OvalBox
           | x == defineOvalBox_ + 1 = OshadowBox
           | x == defineOvalBox_ + 2 = OvalFrame
           | x == defineOvalBox_ + 3 = FloatBox
           | x == definePlasticUpBox_ = PlasticUpBox
           | x == definePlasticUpBox_ + 1 = PlasticDownBox
           | x == definePlasticUpBox_ + 2 = PlasticUpFrame
           | x == definePlasticUpBox_ + 3 = PlasticDownFrame
           | x == definePlasticUpBox_ + 4 = PlasticThinUpBox
           | x == definePlasticUpBox_ + 5 = PlasticThinDownBox
           | x == definePlasticUpBox_ + 6 = PlasticRoundUpBox
           | x == definePlasticUpBox_ + 7 = PlasticRoundDownBox
           | x == defineGtkUpBox_  = GtkUpBox
           | x == defineGtkUpBox_ + 1 = GtkDownBox
           | x == defineGtkUpBox_ + 2 = GtkUpFrame
           | x == defineGtkUpBox_ + 3 = GtkDownFrame
           | x == defineGtkUpBox_ + 4 = GtkThinUpBox
           | x == defineGtkUpBox_ + 5 = GtkThinDownBox
           | x == defineGtkUpBox_ + 6 = GtkThinUpFrame
           | x == defineGtkUpBox_ + 7 = GtkThinDownFrame
           | x == defineGtkUpBox_ + 8 = GtkRoundUpBox
           | x == defineGtkUpBox_ + 9 = GtkRoundDownBox
           | x == defineGleamUpBox_  = GleamUpBox
           | x == defineGleamUpBox_ + 1 = GleamDownBox
           | x == defineGleamUpBox_ + 2 = GleamUpFrame
           | x == defineGleamUpBox_ + 3 = GleamDownFrame
           | x == defineGleamUpBox_ + 4 = GleamThinUpBox
           | x == defineGleamUpBox_ + 5 = GleamThinDownBox
           | x == defineGleamUpBox_ + 6 = GleamRoundUpBox
           | x == defineGleamUpBox_ + 7 = GleamRoundDownBox
           | otherwise = error ("Boxtype.toEnum: Cannot match " ++
	                                         show otherwise)
frame,frameBox, circleBox, diamondBox :: Boxtype
frame = EngravedFrame
frameBox = EngravedBox
circleBox = RoundDownBox
diamondBox = DiamondDownBox
newtype Font = Font Int deriving Show
data FontAttribute = Bold | Italic | BoldItalic deriving (Show, Enum)
cFromFont :: Font -> CInt
cFromFont (Font f) = fromIntegral f
cToFont :: CInt -> Font
cToFont f = Font (fromIntegral f)
cFromFontAttribute :: FontAttribute -> CInt
cFromFontAttribute Bold = cFromFont helveticaBold
cFromFontAttribute Italic = cFromFont helveticaItalic
cFromFontAttribute BoldItalic = cFromFont helveticaBoldItalic
cToFontAttribute :: CInt -> Maybe FontAttribute
cToFontAttribute attributeCode =
      case (attributeCode `has` helveticaBold, attributeCode `has` helveticaItalic) of
        (True,True) -> Just BoldItalic
        (True,False) -> Just Bold
        (False,True) -> Just Italic
        (False,False) -> Nothing
      where
        has :: CInt -> Font -> Bool
        has code (Font f) = code .&. (fromIntegral f) /= 0
helvetica :: Font
helvetica = Font 0
helveticaBold :: Font
helveticaBold = Font 1
helveticaItalic :: Font
helveticaItalic = Font 2
helveticaBoldItalic :: Font
helveticaBoldItalic = Font 3
courier :: Font
courier = Font 4
courierBold :: Font
courierBold = Font 5
courierItalic :: Font
courierItalic = Font 6
courierBoldItalic :: Font
courierBoldItalic = Font 7
times :: Font
times = Font 8
timesBold :: Font
timesBold = Font 9
timesItalic :: Font
timesItalic = Font 10
timesBoldItalic :: Font
timesBoldItalic = Font 11
symbol :: Font
symbol = Font 12
screen :: Font
screen = Font 13
screenBold :: Font
screenBold = Font 14
zapfDingbats :: Font
zapfDingbats = Font 15
freeFont :: Font
freeFont = Font 16
newtype Color = Color CUInt deriving Show
foregroundColor :: Color
foregroundColor = Color 0
background2Color :: Color
background2Color = Color 7
inactiveColor :: Color
inactiveColor = Color 8
selectionColor :: Color
selectionColor = Color 15
gray0Color :: Color
gray0Color = Color 32
dark3Color :: Color
dark3Color = Color 39
dark2Color :: Color
dark2Color = Color 45
dark1Color :: Color
dark1Color = Color 47
backgroundColor :: Color
backgroundColor = Color 49
light1Color :: Color
light1Color = Color 50
light2Color :: Color
light2Color = Color 52
light3Color :: Color
light3Color = Color 54
blackColor :: Color
blackColor = Color 56
redColor :: Color
redColor = Color 88
greenColor :: Color
greenColor = Color 63
yellowColor :: Color
yellowColor = Color 95
blueColor :: Color
blueColor = Color 216
magentaColor :: Color
magentaColor = Color 248
cyanColor :: Color
cyanColor = Color 223
darkRedColor :: Color
darkRedColor = Color 72
darkGreenColor :: Color
darkGreenColor = Color 60
darkYellowColor :: Color
darkYellowColor = Color 76
darkBlueColor :: Color
darkBlueColor = Color 136
darkMagentaColor :: Color
darkMagentaColor = Color 152
darkCyanColor :: Color
darkCyanColor = Color 140
whiteColor :: Color
whiteColor = Color 255
freeColor :: Color
freeColor = Color 16
numFreeColor :: Color
numFreeColor =Color 16
grayRampColor :: Color
grayRampColor = Color 32
numGray:: Color
numGray= Color 24
grayColor :: Color
grayColor = backgroundColor
colorCubeColor :: Color
colorCubeColor = Color 56
numRed :: Color
numRed = Color 5
numGreen :: Color
numGreen = Color 8
numBlue :: Color
numBlue = Color 5
single :: Mode
single = ModeRGB
newtype Modes = Modes [Mode] deriving (Show,Eq,Ord)
allModes :: [Mode]
allModes =
  [
    ModeRGB,
    ModeIndex,
    ModeDouble,
    ModeAccum,
    ModeAlpha,
    ModeDepth,
    ModeStencil,
    ModeRGB8,
    ModeMultisample,
    ModeStereo,
    ModeFakeSingle
  ]
data Labeltype = NormalLabel
               | NoLabel
               | ShadowLabel
               | EngravedLabel
               | EmbossedLabel
               | FreeLabelType deriving Show
instance Enum Labeltype where
    fromEnum NormalLabel = 0
    fromEnum NoLabel = 1
    fromEnum ShadowLabel = defineShadowLabel_
    fromEnum EngravedLabel = defineEngravedLabel_
    fromEnum EmbossedLabel = defineEmbossedLabel_
    fromEnum FreeLabelType = 8
    toEnum 0 = NormalLabel
    toEnum 1 = NoLabel
    toEnum x | x == defineShadowLabel_ = ShadowLabel
             | x == defineEngravedLabel_ = EngravedLabel
             | x == defineEmbossedLabel_ = EmbossedLabel
    toEnum 8 = FreeLabelType
symbolLabel :: Labeltype
symbolLabel = NormalLabel
defineRoundUpBox_ :: (Num a) => a
defineRoundUpBox_ =
    fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_ROUND_UP_BOXC)
{-# LINE 1106 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
defineRoundUpBox :: Boxtype
defineRoundUpBox =
    toEnum defineRoundUpBox_
defineShadowBox_ :: (Num a) => a
defineShadowBox_ =
    fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_SHADOW_BOXC)
{-# LINE 1114 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
defineShadowBox :: Boxtype
defineShadowBox =
    toEnum defineShadowBox_
defineRoundedBox_ :: (Num a) => a
defineRoundedBox_ =
    fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_ROUNDED_BOXC)
{-# LINE 1122 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
defineRoundedBox :: Boxtype
defineRoundedBox = toEnum defineRoundedBox_
defineRflatBox_ :: (Num a) => a
defineRflatBox_ =
    fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_RFLAT_BOXC)
{-# LINE 1128 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
defineRflatBox :: Boxtype
defineRflatBox = toEnum defineRflatBox_
defineRshadowBox_ :: (Num a) => a
defineRshadowBox_ =
    fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_RSHADOW_BOXC)
{-# LINE 1134 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
defineRshadowBox :: Boxtype
defineRshadowBox = toEnum defineRshadowBox_
defineDiamondBox_ :: (Num a) => a
defineDiamondBox_ =
    fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_DIAMOND_BOXC)
{-# LINE 1140 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
defineDiamondBox :: Boxtype
defineDiamondBox = toEnum defineDiamondBox_
defineOvalBox_ :: (Num a) => a
defineOvalBox_ =
    fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_OVAL_BOXC)
{-# LINE 1146 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
defineOvalBox :: Boxtype
defineOvalBox = toEnum defineOvalBox_
definePlasticUpBox_ :: (Num a) => a
definePlasticUpBox_ =
    fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_PLASTIC_UP_BOXC)
{-# LINE 1152 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
definePlasticUpBox :: Boxtype
definePlasticUpBox = toEnum definePlasticUpBox_
defineGtkUpBox_ :: (Num a) => a
defineGtkUpBox_ =
    fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_GTK_UP_BOXC)
{-# LINE 1158 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
defineGtkUpBox :: Boxtype
defineGtkUpBox = toEnum defineGtkUpBox_
defineGleamUpBox_ :: (Num a ) => a
defineGleamUpBox_ =
  fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_GLEAM_UP_BOXC)
{-# LINE 1164 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
defineShadowLabel_ :: (Num a) => a
defineShadowLabel_ =
   fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_SHADOW_LABELC)
{-# LINE 1168 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
defineShadowLabel :: Labeltype
defineShadowLabel = toEnum defineShadowLabel_
defineEngravedLabel_ :: (Num a) => a
defineEngravedLabel_ =
   fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_ENGRAVED_LABELC)
{-# LINE 1174 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
defineEngravedLabel :: Labeltype
defineEngravedLabel = toEnum defineEngravedLabel_
defineEmbossedLabel_ :: (Num a) => a
defineEmbossedLabel_ =
   fromIntegral $ (C2HSImp.unsafePerformIO fl_define_FL_EMBOSSED_LABELC)
{-# LINE 1181 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
defineEmbossedLabel :: Labeltype
defineEmbossedLabel = toEnum defineEmbossedLabel_
cFromColor :: Color -> CUInt
cFromColor (Color c) = fromIntegral c
cToColor :: CUInt-> Color
cToColor c = Color (fromIntegral c)
type RGB = (CUChar, CUChar, CUChar)
inactive :: (Color) -> (Color)
inactive a1 =
  C2HSImp.unsafePerformIO $
  let {a1' = cFromColor a1} in 
  inactive'_ a1' >>= \res ->
  let {res' = cToColor res} in
  return (res')
{-# LINE 1194 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
contrast :: (Color) -> (Color) -> (Color)
contrast a1 a2 =
  C2HSImp.unsafePerformIO $
  let {a1' = cFromColor a1} in 
  let {a2' = cFromColor a2} in 
  contrast'_ a1' a2' >>= \res ->
  let {res' = cToColor res} in
  return (res')
{-# LINE 1197 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
color_average :: (Color) -> (Color) -> (Double) -> (Color)
color_average a1 a2 a3 =
  C2HSImp.unsafePerformIO $
  let {a1' = cFromColor a1} in 
  let {a2' = cFromColor a2} in 
  let {a3' = realToFrac a3} in 
  color_average'_ a1' a2' a3' >>= \res ->
  let {res' = cToColor res} in
  return (res')
{-# LINE 1202 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
lighter :: (Color) -> (Color)
lighter a1 =
  C2HSImp.unsafePerformIO $
  let {a1' = cFromColor a1} in 
  lighter'_ a1' >>= \res ->
  let {res' = cToColor res} in
  return (res')
{-# LINE 1204 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
darker :: (Color) -> (Color)
darker a1 =
  C2HSImp.unsafePerformIO $
  let {a1' = cFromColor a1} in 
  darker'_ a1' >>= \res ->
  let {res' = cToColor res} in
  return (res')
{-# LINE 1206 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
rgbColorWithRgb' :: (CUChar) -> (CUChar) -> (CUChar) -> IO ((CUInt))
rgbColorWithRgb' a1 a2 a3 =
  let {a1' = id a1} in 
  let {a2' = id a2} in 
  let {a3' = id a3} in 
  rgbColorWithRgb''_ a1' a2' a3' >>= \res ->
  let {res' = fromIntegral res} in
  return (res')
{-# LINE 1211 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
rgbColorWithRgb :: RGB -> IO Color
rgbColorWithRgb (r,g,b) = rgbColorWithRgb' r g b >>= return . Color
rgbColorWithGrayscale :: (Char) -> (Color)
rgbColorWithGrayscale a1 =
  C2HSImp.unsafePerformIO $
  let {a1' = castCharToCUChar a1} in 
  rgbColorWithGrayscale'_ a1' >>= \res ->
  let {res' = cToColor res} in
  return (res')
{-# LINE 1217 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
grayRamp :: (Int) -> (Color)
grayRamp a1 =
  C2HSImp.unsafePerformIO $
  let {a1' = fromIntegral a1} in 
  grayRamp'_ a1' >>= \res ->
  let {res' = cToColor res} in
  return (res')
{-# LINE 1218 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
colorCube :: (Int) -> (Int) -> (Int) -> (Color)
colorCube a1 a2 a3 =
  C2HSImp.unsafePerformIO $
  let {a1' = fromIntegral a1} in 
  let {a2' = fromIntegral a2} in 
  let {a3' = fromIntegral a3} in 
  colorCube'_ a1' a2' a3' >>= \res ->
  let {res' = cToColor res} in
  return (res')
{-# LINE 1220 "src/Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs" #-}
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_ROUND_UP_BOXC"
  fl_define_FL_ROUND_UP_BOXC :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_SHADOW_BOXC"
  fl_define_FL_SHADOW_BOXC :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_ROUNDED_BOXC"
  fl_define_FL_ROUNDED_BOXC :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_RFLAT_BOXC"
  fl_define_FL_RFLAT_BOXC :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_RSHADOW_BOXC"
  fl_define_FL_RSHADOW_BOXC :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_DIAMOND_BOXC"
  fl_define_FL_DIAMOND_BOXC :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_OVAL_BOXC"
  fl_define_FL_OVAL_BOXC :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_PLASTIC_UP_BOXC"
  fl_define_FL_PLASTIC_UP_BOXC :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_GTK_UP_BOXC"
  fl_define_FL_GTK_UP_BOXC :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_GLEAM_UP_BOXC"
  fl_define_FL_GLEAM_UP_BOXC :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_SHADOW_LABELC"
  fl_define_FL_SHADOW_LABELC :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_ENGRAVED_LABELC"
  fl_define_FL_ENGRAVED_LABELC :: (IO C2HSImp.CInt)
foreign import ccall unsafe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_define_FL_EMBOSSED_LABELC"
  fl_define_FL_EMBOSSED_LABELC :: (IO C2HSImp.CInt)
foreign import ccall safe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_inactiveC"
  inactive'_ :: (C2HSImp.CUInt -> (IO C2HSImp.CUInt))
foreign import ccall safe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_contrastC"
  contrast'_ :: (C2HSImp.CUInt -> (C2HSImp.CUInt -> (IO C2HSImp.CUInt)))
foreign import ccall safe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_color_averageC"
  color_average'_ :: (C2HSImp.CUInt -> (C2HSImp.CUInt -> (C2HSImp.CFloat -> (IO C2HSImp.CUInt))))
foreign import ccall safe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_lighterC"
  lighter'_ :: (C2HSImp.CUInt -> (IO C2HSImp.CUInt))
foreign import ccall safe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_darkerC"
  darker'_ :: (C2HSImp.CUInt -> (IO C2HSImp.CUInt))
foreign import ccall safe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_rgb_color_with_rgbC"
  rgbColorWithRgb''_ :: (C2HSImp.CUChar -> (C2HSImp.CUChar -> (C2HSImp.CUChar -> (IO C2HSImp.CUInt))))
foreign import ccall safe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_rgb_color_with_grayscaleC"
  rgbColorWithGrayscale'_ :: (C2HSImp.CUChar -> (IO C2HSImp.CUInt))
foreign import ccall safe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_gray_rampC"
  grayRamp'_ :: (C2HSImp.CInt -> (IO C2HSImp.CUInt))
foreign import ccall safe "Graphics/UI/FLTK/LowLevel/Fl_Enumerations.chs.h fl_color_cubeC"
  colorCube'_ :: (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (IO C2HSImp.CUInt))))