packages feed

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

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

module Graphics.UI.Qtah.Generated.Widgets.QScrollBar (
  castQScrollBarToQAbstractSlider,
  castQAbstractSliderToQScrollBar,
  castQScrollBarToQWidget,
  castQWidgetToQScrollBar,
  castQScrollBarToQObject,
  castQObjectToQScrollBar,
  QScrollBarValue (..),
  QScrollBarConstPtr (..),
  QScrollBarPtr (..),
  QScrollBarConst (..),
  castQScrollBarToConst,
  QScrollBar (..),
  castQScrollBarToNonconst,
  new,
  newWithParent,
  newWithOrientation,
  newWithOrientationAndParent,
  QScrollBarSuper (..),
  QScrollBarSuperConst (..),
  ) where

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.QAbstractSlider as M364
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
import Prelude (($), (.), (==), (>>=))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QScrollBar_new" new' ::  HoppyP.IO (HoppyF.Ptr QScrollBar)
foreign import ccall "genpop__QScrollBar_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QScrollBar)
foreign import ccall "genpop__QScrollBar_newWithOrientation" newWithOrientation' ::  HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QScrollBar)
foreign import ccall "genpop__QScrollBar_newWithOrientationAndParent" newWithOrientationAndParent' ::  HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QScrollBar)
foreign import ccall "gencast__QScrollBar__QAbstractSlider" castQScrollBarToQAbstractSlider :: HoppyF.Ptr QScrollBarConst -> HoppyF.Ptr M364.QAbstractSliderConst
foreign import ccall "gencast__QAbstractSlider__QScrollBar" castQAbstractSliderToQScrollBar :: HoppyF.Ptr M364.QAbstractSliderConst -> HoppyF.Ptr QScrollBarConst
foreign import ccall "gencast__QScrollBar__QWidget" castQScrollBarToQWidget :: HoppyF.Ptr QScrollBarConst -> HoppyF.Ptr M506.QWidgetConst
foreign import ccall "gencast__QWidget__QScrollBar" castQWidgetToQScrollBar :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QScrollBarConst
foreign import ccall "gencast__QScrollBar__QObject" castQScrollBarToQObject :: HoppyF.Ptr QScrollBarConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QScrollBar" castQObjectToQScrollBar :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QScrollBarConst
foreign import ccall "gendel__QScrollBar" delete'QScrollBar :: HoppyF.Ptr QScrollBarConst -> HoppyP.IO ()
foreign import ccall "&gendel__QScrollBar" deletePtr'QScrollBar :: HoppyF.FunPtr (HoppyF.Ptr QScrollBarConst -> HoppyP.IO ())

class QScrollBarValue a where
  withQScrollBarPtr :: a -> (QScrollBarConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QScrollBarConstPtr a => QScrollBarValue a where
  withQScrollBarPtr = HoppyP.flip ($) . toQScrollBarConst

class (M364.QAbstractSliderConstPtr this) => QScrollBarConstPtr this where
  toQScrollBarConst :: this -> QScrollBarConst

class (QScrollBarConstPtr this, M364.QAbstractSliderPtr this) => QScrollBarPtr this where
  toQScrollBar :: this -> QScrollBar

data QScrollBarConst =
    QScrollBarConst (HoppyF.Ptr QScrollBarConst)
  | QScrollBarConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QScrollBarConst)
  deriving (HoppyP.Show)

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

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

castQScrollBarToConst :: QScrollBar -> QScrollBarConst
castQScrollBarToConst (QScrollBar ptr') = QScrollBarConst $ HoppyF.castPtr ptr'
castQScrollBarToConst (QScrollBarGc fptr' ptr') = QScrollBarConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QScrollBarConstPtr QScrollBarConst where
  toQScrollBarConst = HoppyP.id

instance M364.QAbstractSliderConstPtr QScrollBarConst where
  toQAbstractSliderConst (QScrollBarConst ptr') = M364.QAbstractSliderConst $ castQScrollBarToQAbstractSlider ptr'
  toQAbstractSliderConst (QScrollBarConstGc fptr' ptr') = M364.QAbstractSliderConstGc fptr' $ castQScrollBarToQAbstractSlider ptr'

instance M506.QWidgetConstPtr QScrollBarConst where
  toQWidgetConst (QScrollBarConst ptr') = M506.QWidgetConst $ castQScrollBarToQWidget ptr'
  toQWidgetConst (QScrollBarConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQScrollBarToQWidget ptr'

instance M94.QObjectConstPtr QScrollBarConst where
  toQObjectConst (QScrollBarConst ptr') = M94.QObjectConst $ castQScrollBarToQObject ptr'
  toQObjectConst (QScrollBarConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQScrollBarToQObject ptr'

data QScrollBar =
    QScrollBar (HoppyF.Ptr QScrollBar)
  | QScrollBarGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QScrollBar)
  deriving (HoppyP.Show)

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

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

castQScrollBarToNonconst :: QScrollBarConst -> QScrollBar
castQScrollBarToNonconst (QScrollBarConst ptr') = QScrollBar $ HoppyF.castPtr ptr'
castQScrollBarToNonconst (QScrollBarConstGc fptr' ptr') = QScrollBarGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QScrollBarConstPtr QScrollBar where
  toQScrollBarConst (QScrollBar ptr') = QScrollBarConst $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
  toQScrollBarConst (QScrollBarGc fptr' ptr') = QScrollBarConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'

instance QScrollBarPtr QScrollBar where
  toQScrollBar = HoppyP.id

instance M364.QAbstractSliderConstPtr QScrollBar where
  toQAbstractSliderConst (QScrollBar ptr') = M364.QAbstractSliderConst $ castQScrollBarToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
  toQAbstractSliderConst (QScrollBarGc fptr' ptr') = M364.QAbstractSliderConstGc fptr' $ castQScrollBarToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'

instance M364.QAbstractSliderPtr QScrollBar where
  toQAbstractSlider (QScrollBar ptr') = M364.QAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr M364.QAbstractSliderConst -> HoppyF.Ptr M364.QAbstractSlider) $ castQScrollBarToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
  toQAbstractSlider (QScrollBarGc fptr' ptr') = M364.QAbstractSliderGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M364.QAbstractSliderConst -> HoppyF.Ptr M364.QAbstractSlider) $ castQScrollBarToQAbstractSlider $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'

instance M506.QWidgetConstPtr QScrollBar where
  toQWidgetConst (QScrollBar ptr') = M506.QWidgetConst $ castQScrollBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
  toQWidgetConst (QScrollBarGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQScrollBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'

instance M506.QWidgetPtr QScrollBar where
  toQWidget (QScrollBar ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQScrollBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
  toQWidget (QScrollBarGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQScrollBarToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'

instance M94.QObjectConstPtr QScrollBar where
  toQObjectConst (QScrollBar ptr') = M94.QObjectConst $ castQScrollBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
  toQObjectConst (QScrollBarGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQScrollBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'

instance M94.QObjectPtr QScrollBar where
  toQObject (QScrollBar ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQScrollBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'
  toQObject (QScrollBarGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQScrollBarToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QScrollBar -> HoppyF.Ptr QScrollBarConst) ptr'

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

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

newWithOrientation :: (M190.QtOrientation) -> (HoppyP.IO QScrollBar)
newWithOrientation arg'1 =
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'1 >>= \arg'1' ->
  HoppyP.fmap QScrollBar
  (newWithOrientation' arg'1')

newWithOrientationAndParent :: (M506.QWidgetPtr arg'2) => (M190.QtOrientation) -> (arg'2) -> (HoppyP.IO QScrollBar)
newWithOrientationAndParent arg'1 arg'2 =
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'1 >>= \arg'1' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
  HoppyP.fmap QScrollBar
  (newWithOrientationAndParent' arg'1' arg'2')

class QScrollBarSuper a where
  downToQScrollBar :: a -> QScrollBar

instance QScrollBarSuper M364.QAbstractSlider where
  downToQScrollBar = castQScrollBarToNonconst . cast' . M364.castQAbstractSliderToConst
    where
      cast' (M364.QAbstractSliderConst ptr') = QScrollBarConst $ castQAbstractSliderToQScrollBar ptr'
      cast' (M364.QAbstractSliderConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQAbstractSliderToQScrollBar ptr'
instance QScrollBarSuper M506.QWidget where
  downToQScrollBar = castQScrollBarToNonconst . cast' . M506.castQWidgetToConst
    where
      cast' (M506.QWidgetConst ptr') = QScrollBarConst $ castQWidgetToQScrollBar ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQWidgetToQScrollBar ptr'
instance QScrollBarSuper M94.QObject where
  downToQScrollBar = castQScrollBarToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QScrollBarConst $ castQObjectToQScrollBar ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQObjectToQScrollBar ptr'

class QScrollBarSuperConst a where
  downToQScrollBarConst :: a -> QScrollBarConst

instance QScrollBarSuperConst M364.QAbstractSliderConst where
  downToQScrollBarConst = cast'
    where
      cast' (M364.QAbstractSliderConst ptr') = QScrollBarConst $ castQAbstractSliderToQScrollBar ptr'
      cast' (M364.QAbstractSliderConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQAbstractSliderToQScrollBar ptr'
instance QScrollBarSuperConst M506.QWidgetConst where
  downToQScrollBarConst = cast'
    where
      cast' (M506.QWidgetConst ptr') = QScrollBarConst $ castQWidgetToQScrollBar ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQWidgetToQScrollBar ptr'
instance QScrollBarSuperConst M94.QObjectConst where
  downToQScrollBarConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QScrollBarConst $ castQObjectToQScrollBar ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QScrollBarConstGc fptr' $ castQObjectToQScrollBar ptr'

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

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