packages feed

qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Generated/Widgets/QAbstractSlider.hs

{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
---------- GENERATED FILE, EDITS WILL BE LOST ----------

module Graphics.UI.Qtah.Generated.Widgets.QAbstractSlider (
  castQAbstractSliderToQWidget,
  castQWidgetToQAbstractSlider,
  castQAbstractSliderToQObject,
  castQObjectToQAbstractSlider,
  QAbstractSliderValue (..),
  QAbstractSliderConstPtr (..),
  invertedAppearance,
  invertedControls,
  maximum,
  minimum,
  orientation,
  pageStep,
  singleStep,
  isSliderDown,
  sliderPosition,
  hasTracking,
  value,
  QAbstractSliderPtr (..),
  setInvertedAppearance,
  setInvertedControls,
  setMaximum,
  setMinimum,
  setOrientation,
  setPageStep,
  setSingleStep,
  setSliderDown,
  setSliderPosition,
  setTracking,
  triggerAction,
  setValue,
  emitActionTriggered,
  emitRangeChanged,
  emitSliderMoved,
  emitSliderPressed,
  emitSliderReleased,
  emitValueChanged,
  QAbstractSliderConst (..),
  castQAbstractSliderToConst,
  QAbstractSlider (..),
  castQAbstractSliderToNonconst,
  new,
  newWithParent,
  QAbstractSliderSuper (..),
  QAbstractSliderSuperConst (..),
  QAbstractSliderAction (..),
  ) where

import Data.Bits ((.&.), (.|.))
import qualified Data.Bits as HoppyDB
import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
import Prelude (($), (.), (/=), (=<<), (==), (>>=))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QAbstractSlider_new" new' ::  HoppyP.IO (HoppyF.Ptr QAbstractSlider)
foreign import ccall "genpop__QAbstractSlider_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QAbstractSlider)
foreign import ccall "genpop__QAbstractSlider_invertedAppearance" invertedAppearance' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QAbstractSlider_setInvertedAppearance" setInvertedAppearance' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_invertedControls" invertedControls' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QAbstractSlider_setInvertedControls" setInvertedControls' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_maximum" maximum' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractSlider_setMaximum" setMaximum' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_minimum" minimum' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractSlider_setMinimum" setMinimum' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_orientation" orientation' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractSlider_setOrientation" setOrientation' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_pageStep" pageStep' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractSlider_setPageStep" setPageStep' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_singleStep" singleStep' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractSlider_setSingleStep" setSingleStep' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_isSliderDown" isSliderDown' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QAbstractSlider_setSliderDown" setSliderDown' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_sliderPosition" sliderPosition' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractSlider_setSliderPosition" setSliderPosition' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_hasTracking" hasTracking' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QAbstractSlider_setTracking" setTracking' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_triggerAction" triggerAction' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_value" value' ::  HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractSlider_setValue" setValue' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_emitActionTriggered" emitActionTriggered' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_emitRangeChanged" emitRangeChanged' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_emitSliderMoved" emitSliderMoved' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_emitSliderPressed" emitSliderPressed' ::  HoppyF.Ptr QAbstractSlider -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_emitSliderReleased" emitSliderReleased' ::  HoppyF.Ptr QAbstractSlider -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractSlider_emitValueChanged" emitValueChanged' ::  HoppyF.Ptr QAbstractSlider -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "gencast__QAbstractSlider__QWidget" castQAbstractSliderToQWidget :: HoppyF.Ptr QAbstractSliderConst -> HoppyF.Ptr M506.QWidgetConst
foreign import ccall "gencast__QWidget__QAbstractSlider" castQWidgetToQAbstractSlider :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QAbstractSliderConst
foreign import ccall "gencast__QAbstractSlider__QObject" castQAbstractSliderToQObject :: HoppyF.Ptr QAbstractSliderConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QAbstractSlider" castQObjectToQAbstractSlider :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAbstractSliderConst
foreign import ccall "gendel__QAbstractSlider" delete'QAbstractSlider :: HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO ()
foreign import ccall "&gendel__QAbstractSlider" deletePtr'QAbstractSlider :: HoppyF.FunPtr (HoppyF.Ptr QAbstractSliderConst -> HoppyP.IO ())

class QAbstractSliderValue a where
  withQAbstractSliderPtr :: a -> (QAbstractSliderConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QAbstractSliderConstPtr a => QAbstractSliderValue a where
  withQAbstractSliderPtr = HoppyP.flip ($) . toQAbstractSliderConst

class (M506.QWidgetConstPtr this) => QAbstractSliderConstPtr this where
  toQAbstractSliderConst :: this -> QAbstractSliderConst

invertedAppearance :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
invertedAppearance arg'1 =
  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (invertedAppearance' arg'1')

invertedControls :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
invertedControls arg'1 =
  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (invertedControls' arg'1')

maximum :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
maximum arg'1 =
  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (maximum' arg'1')

minimum :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
minimum arg'1 =
  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (minimum' arg'1')

orientation :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtOrientation)
orientation arg'1 =
  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (orientation' arg'1')

pageStep :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
pageStep arg'1 =
  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (pageStep' arg'1')

singleStep :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
singleStep arg'1 =
  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (singleStep' arg'1')

isSliderDown :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
isSliderDown arg'1 =
  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (isSliderDown' arg'1')

sliderPosition :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
sliderPosition arg'1 =
  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (sliderPosition' arg'1')

hasTracking :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
hasTracking arg'1 =
  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (hasTracking' arg'1')

value :: (QAbstractSliderValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
value arg'1 =
  withQAbstractSliderPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (value' arg'1')

class (QAbstractSliderConstPtr this, M506.QWidgetPtr this) => QAbstractSliderPtr this where
  toQAbstractSlider :: this -> QAbstractSlider

setInvertedAppearance :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
setInvertedAppearance arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'2 >>= \arg'2' ->
  (setInvertedAppearance' arg'1' arg'2')

setInvertedControls :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
setInvertedControls arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'2 >>= \arg'2' ->
  (setInvertedControls' arg'1' arg'2')

setMaximum :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
setMaximum arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (setMaximum' arg'1' arg'2')

setMinimum :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
setMinimum arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (setMinimum' arg'1' arg'2')

setOrientation :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (M190.QtOrientation) -> (HoppyP.IO ())
setOrientation arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setOrientation' arg'1' arg'2')

setPageStep :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
setPageStep arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (setPageStep' arg'1' arg'2')

setSingleStep :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
setSingleStep arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (setSingleStep' arg'1' arg'2')

setSliderDown :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
setSliderDown arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'2 >>= \arg'2' ->
  (setSliderDown' arg'1' arg'2')

setSliderPosition :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
setSliderPosition arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (setSliderPosition' arg'1' arg'2')

setTracking :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
setTracking arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'2 >>= \arg'2' ->
  (setTracking' arg'1' arg'2')

triggerAction :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (QAbstractSliderAction) -> (HoppyP.IO ())
triggerAction arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (triggerAction' arg'1' arg'2')

setValue :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
setValue arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (setValue' arg'1' arg'2')

emitActionTriggered :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (QAbstractSliderAction) -> (HoppyP.IO ())
emitActionTriggered arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (emitActionTriggered' arg'1' arg'2')

emitRangeChanged :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO ())
emitRangeChanged arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (emitRangeChanged' arg'1' arg'2' arg'3')

emitSliderMoved :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
emitSliderMoved arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (emitSliderMoved' arg'1' arg'2')

emitSliderPressed :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
emitSliderPressed arg'1 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (emitSliderPressed' arg'1')

emitSliderReleased :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
emitSliderReleased arg'1 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (emitSliderReleased' arg'1')

emitValueChanged :: (QAbstractSliderPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
emitValueChanged arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractSlider arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (emitValueChanged' arg'1' arg'2')

data QAbstractSliderConst =
    QAbstractSliderConst (HoppyF.Ptr QAbstractSliderConst)
  | QAbstractSliderConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractSliderConst)
  deriving (HoppyP.Show)

instance HoppyP.Eq QAbstractSliderConst where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QAbstractSliderConst where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQAbstractSliderToConst :: QAbstractSlider -> QAbstractSliderConst
castQAbstractSliderToConst (QAbstractSlider ptr') = QAbstractSliderConst $ HoppyF.castPtr ptr'
castQAbstractSliderToConst (QAbstractSliderGc fptr' ptr') = QAbstractSliderConstGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QAbstractSliderConst where
  nullptr = QAbstractSliderConst HoppyF.nullPtr
  
  withCppPtr (QAbstractSliderConst ptr') f' = f' ptr'
  withCppPtr (QAbstractSliderConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QAbstractSliderConst ptr') = ptr'
  toPtr (QAbstractSliderConstGc _ ptr') = ptr'
  
  touchCppPtr (QAbstractSliderConst _) = HoppyP.return ()
  touchCppPtr (QAbstractSliderConstGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QAbstractSliderConst where
  delete (QAbstractSliderConst ptr') = delete'QAbstractSlider ptr'
  delete (QAbstractSliderConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractSliderConst", " object."]
  
  toGc this'@(QAbstractSliderConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractSliderConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractSlider :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QAbstractSliderConstGc {}) = HoppyP.return this'

instance QAbstractSliderConstPtr QAbstractSliderConst where
  toQAbstractSliderConst = HoppyP.id

instance M506.QWidgetConstPtr QAbstractSliderConst where
  toQWidgetConst (QAbstractSliderConst ptr') = M506.QWidgetConst $ castQAbstractSliderToQWidget ptr'
  toQWidgetConst (QAbstractSliderConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractSliderToQWidget ptr'

instance M94.QObjectConstPtr QAbstractSliderConst where
  toQObjectConst (QAbstractSliderConst ptr') = M94.QObjectConst $ castQAbstractSliderToQObject ptr'
  toQObjectConst (QAbstractSliderConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractSliderToQObject ptr'

data QAbstractSlider =
    QAbstractSlider (HoppyF.Ptr QAbstractSlider)
  | QAbstractSliderGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractSlider)
  deriving (HoppyP.Show)

instance HoppyP.Eq QAbstractSlider where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QAbstractSlider where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQAbstractSliderToNonconst :: QAbstractSliderConst -> QAbstractSlider
castQAbstractSliderToNonconst (QAbstractSliderConst ptr') = QAbstractSlider $ HoppyF.castPtr ptr'
castQAbstractSliderToNonconst (QAbstractSliderConstGc fptr' ptr') = QAbstractSliderGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QAbstractSlider where
  nullptr = QAbstractSlider HoppyF.nullPtr
  
  withCppPtr (QAbstractSlider ptr') f' = f' ptr'
  withCppPtr (QAbstractSliderGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QAbstractSlider ptr') = ptr'
  toPtr (QAbstractSliderGc _ ptr') = ptr'
  
  touchCppPtr (QAbstractSlider _) = HoppyP.return ()
  touchCppPtr (QAbstractSliderGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QAbstractSlider where
  delete (QAbstractSlider ptr') = delete'QAbstractSlider $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractSliderConst)
  delete (QAbstractSliderGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractSlider", " object."]
  
  toGc this'@(QAbstractSlider ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractSliderGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractSlider :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QAbstractSliderGc {}) = HoppyP.return this'

instance QAbstractSliderConstPtr QAbstractSlider where
  toQAbstractSliderConst (QAbstractSlider ptr') = QAbstractSliderConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
  toQAbstractSliderConst (QAbstractSliderGc fptr' ptr') = QAbstractSliderConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'

instance QAbstractSliderPtr QAbstractSlider where
  toQAbstractSlider = HoppyP.id

instance M506.QWidgetConstPtr QAbstractSlider where
  toQWidgetConst (QAbstractSlider ptr') = M506.QWidgetConst $ castQAbstractSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
  toQWidgetConst (QAbstractSliderGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'

instance M506.QWidgetPtr QAbstractSlider where
  toQWidget (QAbstractSlider ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
  toQWidget (QAbstractSliderGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractSliderToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'

instance M94.QObjectConstPtr QAbstractSlider where
  toQObjectConst (QAbstractSlider ptr') = M94.QObjectConst $ castQAbstractSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
  toQObjectConst (QAbstractSliderGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'

instance M94.QObjectPtr QAbstractSlider where
  toQObject (QAbstractSlider ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'
  toQObject (QAbstractSliderGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractSliderToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractSlider -> HoppyF.Ptr QAbstractSliderConst) ptr'

new :: (HoppyP.IO QAbstractSlider)
new =
  HoppyP.fmap QAbstractSlider
  (new')

newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QAbstractSlider)
newWithParent arg'1 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  HoppyP.fmap QAbstractSlider
  (newWithParent' arg'1')

class QAbstractSliderSuper a where
  downToQAbstractSlider :: a -> QAbstractSlider

instance QAbstractSliderSuper M506.QWidget where
  downToQAbstractSlider = castQAbstractSliderToNonconst . cast' . M506.castQWidgetToConst
    where
      cast' (M506.QWidgetConst ptr') = QAbstractSliderConst $ castQWidgetToQAbstractSlider ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractSliderConstGc fptr' $ castQWidgetToQAbstractSlider ptr'
instance QAbstractSliderSuper M94.QObject where
  downToQAbstractSlider = castQAbstractSliderToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QAbstractSliderConst $ castQObjectToQAbstractSlider ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractSliderConstGc fptr' $ castQObjectToQAbstractSlider ptr'

class QAbstractSliderSuperConst a where
  downToQAbstractSliderConst :: a -> QAbstractSliderConst

instance QAbstractSliderSuperConst M506.QWidgetConst where
  downToQAbstractSliderConst = cast'
    where
      cast' (M506.QWidgetConst ptr') = QAbstractSliderConst $ castQWidgetToQAbstractSlider ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractSliderConstGc fptr' $ castQWidgetToQAbstractSlider ptr'
instance QAbstractSliderSuperConst M94.QObjectConst where
  downToQAbstractSliderConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QAbstractSliderConst $ castQObjectToQAbstractSlider ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractSliderConstGc fptr' $ castQObjectToQAbstractSlider ptr'

instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractSlider)) QAbstractSlider where
  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'

instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractSlider)) QAbstractSlider where
  decode = HoppyP.fmap QAbstractSlider . HoppyF.peek

data QAbstractSliderAction =
  SliderNoAction
  | SliderSingleStepAdd
  | SliderSingleStepSub
  | SliderPageStepAdd
  | SliderPageStepSub
  | SliderToMinimum
  | SliderToMaximum
  | SliderMove
  | Unknown (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractSliderAction where
  fromCppEnum SliderNoAction = 0
  fromCppEnum SliderSingleStepAdd = 1
  fromCppEnum SliderSingleStepSub = 2
  fromCppEnum SliderPageStepAdd = 3
  fromCppEnum SliderPageStepSub = 4
  fromCppEnum SliderToMinimum = 5
  fromCppEnum SliderToMaximum = 6
  fromCppEnum SliderMove = 7
  fromCppEnum (Unknown n) = n
  
  toCppEnum (0) = SliderNoAction
  toCppEnum (1) = SliderSingleStepAdd
  toCppEnum (2) = SliderSingleStepSub
  toCppEnum (3) = SliderPageStepAdd
  toCppEnum (4) = SliderPageStepSub
  toCppEnum (5) = SliderToMinimum
  toCppEnum (6) = SliderToMaximum
  toCppEnum (7) = SliderMove
  toCppEnum n = Unknown n

instance HoppyP.Eq QAbstractSliderAction where
  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y

instance HoppyP.Ord QAbstractSliderAction where
  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
instance HoppyDB.Bits QAbstractSliderAction where
  x .&. y = HoppyFHR.toCppEnum (HoppyFHR.fromCppEnum x .&. HoppyFHR.fromCppEnum y)
  x .|. y = HoppyFHR.toCppEnum (HoppyFHR.fromCppEnum x .|. HoppyFHR.fromCppEnum y)
  xor x y = HoppyFHR.toCppEnum $ HoppyDB.xor (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)
  complement x = HoppyFHR.toCppEnum $ HoppyDB.complement $ HoppyFHR.fromCppEnum x
  shift x i = HoppyFHR.toCppEnum $ HoppyDB.shift (HoppyFHR.fromCppEnum x) i
  rotate x i = HoppyFHR.toCppEnum $ HoppyDB.rotate (HoppyFHR.fromCppEnum x) i
  bitSize x = case HoppyDB.bitSizeMaybe x of
      HoppyP.Just n -> n
      HoppyP.Nothing -> HoppyP.error "bitSize is undefined"
  bitSizeMaybe = HoppyDB.bitSizeMaybe . HoppyFHR.fromCppEnum
  isSigned = HoppyDB.isSigned . HoppyFHR.fromCppEnum
  testBit x i = HoppyDB.testBit (HoppyFHR.fromCppEnum x) i
  bit = HoppyFHR.toCppEnum . HoppyDB.bit
  popCount = HoppyDB.popCount . HoppyFHR.fromCppEnum