implementation module Gtk.Types import StdEnv import StdDebug instance toInt GType where toInt type = id << 2 where id = case type of GTypeBool -> 5 GTypeChar -> 3 GTypeInt -> 6 GTypeReal -> 15 GTypeString -> 16 instance toInt GdkModifier where toInt modifier = 1 << shift where shift = case modifier of ShiftMask -> 0 LockMask -> 1 ControlMask -> 2 Mod1Mask -> 3 Mod2Mask -> 4 Mod3Mask -> 5 Mod4Mask -> 6 Mod5Mask -> 7 Button1Mask -> 8 Button2Mask -> 9 Button3Mask -> 10 Button4Mask -> 11 Button5Mask -> 12 SuperMask -> 26 HyperMask -> 27 MetaMask -> 28 instance toInt [GdkModifier] where toInt [m:ms] = toInt m bitor toInt ms toInt [] = 0 instance toInt GtkAlign where toInt align = case align of AlignFill -> 0 AlignStart -> 1 AlignEnd -> 2 AlignCenter -> 3 AlignBaseline -> 4 instance toInt GtkButtonsType where toInt type = case type of NoButtons -> 0 OkButton -> 1 CloseButton -> 2 CancelButton -> 3 YesNoButtons -> 4 OkCancelButtons -> 5 instance toInt GtkFileChooserAction where toInt action = case action of OpenAction -> 0 SaveAction -> 1 SelectFolderAction -> 2 CreateFolderAction -> 3 instance toInt GtkIconSize where toInt size = case size of MenuIconSize -> 1 SmallToolbarIconSize -> 2 LargeToolbarIconSize -> 3 ButtonIconSize -> 4 DragAndDropIconSize -> 5 DialogIconSize -> 6 instance toInt GtkJustification where toInt justification = case justification of JustifyLeft -> 0 JustifyRight -> 1 JustifyCenter -> 2 JustifyFill -> 3 margin :: !Int -> GtkMargins margin n = { left = n , top = n , right = n , bottom = n } instance toInt GtkMessageType where toInt type = case type of InfoMessage -> 0 WarningMessage -> 1 QuestionMessage -> 2 ErrorMessage -> 3 OtherMessage -> 4 instance fromInt GtkResponse where fromInt response = case response of -1 -> ResponseNone -2 -> ResponseReject -3 -> ResponseAccept -4 -> ResponseDeleteEvent -5 -> ResponseOk -6 -> ResponseCancel -7 -> ResponseClose -8 -> ResponseYes -9 -> ResponseNo -10 -> ResponseApply -11 -> ResponseHelp r -> trace_n ("fromInt GtkResponse: illegal value "+++toString r) ResponseNone instance toInt GtkResponse where toInt response = case response of ResponseNone -> -1 ResponseReject -> -2 ResponseAccept -> -3 ResponseDeleteEvent -> -4 ResponseOk -> -5 ResponseCancel -> -6 ResponseClose -> -7 ResponseYes -> -8 ResponseNo -> -9 ResponseApply -> -10 ResponseHelp -> -11 instance toInt GtkScrollbarPolicy where toInt policy = case policy of PersistentScrollbar -> 0 AutoScrollbar -> 1 NoScrollbar -> 2 instance toInt GtkStylePriority where toInt prio = case prio of StylePriorityFallback -> 1 StylePriorityTheme -> 200 StylePrioritySettings -> 400 StylePriorityApplication -> 600 StylePriorityUser -> 800 instance toInt GtkTreeViewColumnSizing where toInt sizing = case sizing of OnlyGrow -> 0 AutoSize -> 1 FixedSize -> 2 instance toInt GtkWrapMode where toInt mode = case mode of WrapNone -> 0 WrapChar -> 1 WrapWord -> 2 WrapWordOrChar -> 3