packages feed

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

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

module Graphics.UI.Qtah.Generated.Widgets.QComboBox (
  castQComboBoxToQWidget,
  castQWidgetToQComboBox,
  castQComboBoxToQObject,
  castQObjectToQComboBox,
  QComboBoxValue (..),
  QComboBoxConstPtr (..),
  currentIndex,
  currentText,
  QComboBoxPtr (..),
  addItem,
  addItemWithData,
  addItemWithIcon,
  addItemWithIconAndData,
  setCurrentIndex,
  setCurrentText,
  emitActivated,
  emitActivatedString,
  emitCurrentIndexChanged,
  emitCurrentIndexChangedString,
  QComboBoxConst (..),
  castQComboBoxToConst,
  QComboBox (..),
  castQComboBoxToNonconst,
  new,
  newWithParent,
  QComboBoxSuper (..),
  QComboBoxSuperConst (..),
  ) 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.QString as M142
import qualified Graphics.UI.Qtah.Generated.Core.QVariant as M168
import qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
import Prelude (($), (.), (=<<), (==), (>>=))
import qualified Prelude as HoppyP
import qualified Prelude as QtahP

foreign import ccall "genpop__QComboBox_new" new' ::  HoppyP.IO (HoppyF.Ptr QComboBox)
foreign import ccall "genpop__QComboBox_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QComboBox)
foreign import ccall "genpop__QComboBox_addItem" addItem' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QComboBox_addItemWithData" addItemWithData' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
foreign import ccall "genpop__QComboBox_addItemWithIcon" addItemWithIcon' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QComboBox_addItemWithIconAndData" addItemWithIconAndData' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M168.QVariantConst -> HoppyP.IO ()
foreign import ccall "genpop__QComboBox_currentIndex" currentIndex' ::  HoppyF.Ptr QComboBoxConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QComboBox_setCurrentIndex" setCurrentIndex' ::  HoppyF.Ptr QComboBox -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QComboBox_currentText" currentText' ::  HoppyF.Ptr QComboBoxConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QComboBox_setCurrentText" setCurrentText' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QComboBox_emitActivated" emitActivated' ::  HoppyF.Ptr QComboBox -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QComboBox_emitActivatedString" emitActivatedString' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QComboBox_emitCurrentIndexChanged" emitCurrentIndexChanged' ::  HoppyF.Ptr QComboBox -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QComboBox_emitCurrentIndexChangedString" emitCurrentIndexChangedString' ::  HoppyF.Ptr QComboBox -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "gencast__QComboBox__QWidget" castQComboBoxToQWidget :: HoppyF.Ptr QComboBoxConst -> HoppyF.Ptr M506.QWidgetConst
foreign import ccall "gencast__QWidget__QComboBox" castQWidgetToQComboBox :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QComboBoxConst
foreign import ccall "gencast__QComboBox__QObject" castQComboBoxToQObject :: HoppyF.Ptr QComboBoxConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QComboBox" castQObjectToQComboBox :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QComboBoxConst
foreign import ccall "gendel__QComboBox" delete'QComboBox :: HoppyF.Ptr QComboBoxConst -> HoppyP.IO ()
foreign import ccall "&gendel__QComboBox" deletePtr'QComboBox :: HoppyF.FunPtr (HoppyF.Ptr QComboBoxConst -> HoppyP.IO ())

class QComboBoxValue a where
  withQComboBoxPtr :: a -> (QComboBoxConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QComboBoxConstPtr a => QComboBoxValue a where
  withQComboBoxPtr = HoppyP.flip ($) . toQComboBoxConst

class (M506.QWidgetConstPtr this) => QComboBoxConstPtr this where
  toQComboBoxConst :: this -> QComboBoxConst

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

currentText :: (QComboBoxValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
currentText arg'1 =
  withQComboBoxPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (currentText' arg'1')

class (QComboBoxConstPtr this, M506.QWidgetPtr this) => QComboBoxPtr this where
  toQComboBox :: this -> QComboBox

addItem :: (QComboBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
addItem arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (addItem' arg'1' arg'2')

addItemWithData :: (QComboBoxPtr this, M142.QStringValue arg'2, M168.QVariantValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
addItemWithData arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M168.withQVariantPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (addItemWithData' arg'1' arg'2' arg'3')

addItemWithIcon :: (QComboBoxPtr this, M288.QIconValue arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
addItemWithIcon arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (addItemWithIcon' arg'1' arg'2' arg'3')

addItemWithIconAndData :: (QComboBoxPtr this, M288.QIconValue arg'2, M142.QStringValue arg'3, M168.QVariantValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO ())
addItemWithIconAndData arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
  M288.withQIconPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M168.withQVariantPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  (addItemWithIconAndData' arg'1' arg'2' arg'3' arg'4')

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

setCurrentText :: (QComboBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setCurrentText arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (setCurrentText' arg'1' arg'2')

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

emitActivatedString :: (QComboBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitActivatedString arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (emitActivatedString' arg'1' arg'2')

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

emitCurrentIndexChangedString :: (QComboBoxPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitCurrentIndexChangedString arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQComboBox arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (emitCurrentIndexChangedString' arg'1' arg'2')

data QComboBoxConst =
    QComboBoxConst (HoppyF.Ptr QComboBoxConst)
  | QComboBoxConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QComboBoxConst)
  deriving (HoppyP.Show)

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

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

castQComboBoxToConst :: QComboBox -> QComboBoxConst
castQComboBoxToConst (QComboBox ptr') = QComboBoxConst $ HoppyF.castPtr ptr'
castQComboBoxToConst (QComboBoxGc fptr' ptr') = QComboBoxConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QComboBoxConstPtr QComboBoxConst where
  toQComboBoxConst = HoppyP.id

instance M506.QWidgetConstPtr QComboBoxConst where
  toQWidgetConst (QComboBoxConst ptr') = M506.QWidgetConst $ castQComboBoxToQWidget ptr'
  toQWidgetConst (QComboBoxConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQComboBoxToQWidget ptr'

instance M94.QObjectConstPtr QComboBoxConst where
  toQObjectConst (QComboBoxConst ptr') = M94.QObjectConst $ castQComboBoxToQObject ptr'
  toQObjectConst (QComboBoxConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQComboBoxToQObject ptr'

data QComboBox =
    QComboBox (HoppyF.Ptr QComboBox)
  | QComboBoxGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QComboBox)
  deriving (HoppyP.Show)

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

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

castQComboBoxToNonconst :: QComboBoxConst -> QComboBox
castQComboBoxToNonconst (QComboBoxConst ptr') = QComboBox $ HoppyF.castPtr ptr'
castQComboBoxToNonconst (QComboBoxConstGc fptr' ptr') = QComboBoxGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QComboBoxConstPtr QComboBox where
  toQComboBoxConst (QComboBox ptr') = QComboBoxConst $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
  toQComboBoxConst (QComboBoxGc fptr' ptr') = QComboBoxConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'

instance QComboBoxPtr QComboBox where
  toQComboBox = HoppyP.id

instance M506.QWidgetConstPtr QComboBox where
  toQWidgetConst (QComboBox ptr') = M506.QWidgetConst $ castQComboBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
  toQWidgetConst (QComboBoxGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQComboBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'

instance M506.QWidgetPtr QComboBox where
  toQWidget (QComboBox ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQComboBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
  toQWidget (QComboBoxGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQComboBoxToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'

instance M94.QObjectConstPtr QComboBox where
  toQObjectConst (QComboBox ptr') = M94.QObjectConst $ castQComboBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
  toQObjectConst (QComboBoxGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQComboBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'

instance M94.QObjectPtr QComboBox where
  toQObject (QComboBox ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQComboBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'
  toQObject (QComboBoxGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQComboBoxToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QComboBox -> HoppyF.Ptr QComboBoxConst) ptr'

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

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

class QComboBoxSuper a where
  downToQComboBox :: a -> QComboBox

instance QComboBoxSuper M506.QWidget where
  downToQComboBox = castQComboBoxToNonconst . cast' . M506.castQWidgetToConst
    where
      cast' (M506.QWidgetConst ptr') = QComboBoxConst $ castQWidgetToQComboBox ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QComboBoxConstGc fptr' $ castQWidgetToQComboBox ptr'
instance QComboBoxSuper M94.QObject where
  downToQComboBox = castQComboBoxToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QComboBoxConst $ castQObjectToQComboBox ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QComboBoxConstGc fptr' $ castQObjectToQComboBox ptr'

class QComboBoxSuperConst a where
  downToQComboBoxConst :: a -> QComboBoxConst

instance QComboBoxSuperConst M506.QWidgetConst where
  downToQComboBoxConst = cast'
    where
      cast' (M506.QWidgetConst ptr') = QComboBoxConst $ castQWidgetToQComboBox ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QComboBoxConstGc fptr' $ castQWidgetToQComboBox ptr'
instance QComboBoxSuperConst M94.QObjectConst where
  downToQComboBoxConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QComboBoxConst $ castQObjectToQComboBox ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QComboBoxConstGc fptr' $ castQObjectToQComboBox ptr'

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

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