{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, GeneralizedNewtypeDeriving, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
module Graphics.UI.Qtah.Generated.Widgets.QDateEdit (
castQDateEditToQDateTimeEdit,
castQDateTimeEditToQDateEdit,
castQDateEditToQAbstractSpinBox,
castQAbstractSpinBoxToQDateEdit,
castQDateEditToQWidget,
castQWidgetToQDateEdit,
castQDateEditToQObject,
castQObjectToQDateEdit,
QDateEditValue (..),
QDateEditConstPtr (..),
QDateEditPtr (..),
QDateEditConst (..),
castQDateEditToConst,
QDateEdit (..),
castQDateEditToNonconst,
new,
newWithParent,
newWithDate,
newWithDateAndParent,
QDateEditSuper (..),
QDateEditSuperConst (..),
) where
import qualified Foreign as HoppyF
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Generated.Core.QDate as M16
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M34
import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractSpinBox as M200
import qualified Graphics.UI.Qtah.Generated.Widgets.QDateTimeEdit as M216
import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M330
import Prelude (($), (.), (==))
import qualified Prelude as HoppyP
foreign import ccall "genpop__QDateEdit_new" new' :: HoppyP.IO (HoppyF.Ptr QDateEdit)
foreign import ccall "genpop__QDateEdit_newWithParent" newWithParent' :: HoppyF.Ptr M330.QWidget -> HoppyP.IO (HoppyF.Ptr QDateEdit)
foreign import ccall "genpop__QDateEdit_newWithDate" newWithDate' :: HoppyF.Ptr M16.QDateConst -> HoppyP.IO (HoppyF.Ptr QDateEdit)
foreign import ccall "genpop__QDateEdit_newWithDateAndParent" newWithDateAndParent' :: HoppyF.Ptr M16.QDateConst -> HoppyF.Ptr M330.QWidget -> HoppyP.IO (HoppyF.Ptr QDateEdit)
foreign import ccall "gencast__QDateEdit__QDateTimeEdit" castQDateEditToQDateTimeEdit :: HoppyF.Ptr QDateEditConst -> HoppyF.Ptr M216.QDateTimeEditConst
foreign import ccall "gencast__QDateTimeEdit__QDateEdit" castQDateTimeEditToQDateEdit :: HoppyF.Ptr M216.QDateTimeEditConst -> HoppyF.Ptr QDateEditConst
foreign import ccall "gencast__QDateEdit__QAbstractSpinBox" castQDateEditToQAbstractSpinBox :: HoppyF.Ptr QDateEditConst -> HoppyF.Ptr M200.QAbstractSpinBoxConst
foreign import ccall "gencast__QAbstractSpinBox__QDateEdit" castQAbstractSpinBoxToQDateEdit :: HoppyF.Ptr M200.QAbstractSpinBoxConst -> HoppyF.Ptr QDateEditConst
foreign import ccall "gencast__QDateEdit__QWidget" castQDateEditToQWidget :: HoppyF.Ptr QDateEditConst -> HoppyF.Ptr M330.QWidgetConst
foreign import ccall "gencast__QWidget__QDateEdit" castQWidgetToQDateEdit :: HoppyF.Ptr M330.QWidgetConst -> HoppyF.Ptr QDateEditConst
foreign import ccall "gencast__QDateEdit__QObject" castQDateEditToQObject :: HoppyF.Ptr QDateEditConst -> HoppyF.Ptr M34.QObjectConst
foreign import ccall "gencast__QObject__QDateEdit" castQObjectToQDateEdit :: HoppyF.Ptr M34.QObjectConst -> HoppyF.Ptr QDateEditConst
foreign import ccall "gendel__QDateEdit" delete'QDateEdit :: HoppyF.Ptr QDateEditConst -> HoppyP.IO ()
foreign import ccall "&gendel__QDateEdit" deletePtr'QDateEdit :: HoppyF.FunPtr (HoppyF.Ptr QDateEditConst -> HoppyP.IO ())
class QDateEditValue a where
withQDateEditPtr :: a -> (QDateEditConst -> HoppyP.IO b) -> HoppyP.IO b
instance {-# OVERLAPPABLE #-} QDateEditConstPtr a => QDateEditValue a where
withQDateEditPtr = HoppyP.flip ($) . toQDateEditConst
class (M216.QDateTimeEditConstPtr this) => QDateEditConstPtr this where
toQDateEditConst :: this -> QDateEditConst
class (QDateEditConstPtr this, M216.QDateTimeEditPtr this) => QDateEditPtr this where
toQDateEdit :: this -> QDateEdit
data QDateEditConst =
QDateEditConst (HoppyF.Ptr QDateEditConst)
| QDateEditConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDateEditConst)
deriving (HoppyP.Show)
instance HoppyP.Eq QDateEditConst where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QDateEditConst where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQDateEditToConst :: QDateEdit -> QDateEditConst
castQDateEditToConst (QDateEdit ptr') = QDateEditConst $ HoppyF.castPtr ptr'
castQDateEditToConst (QDateEditGc fptr' ptr') = QDateEditConstGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QDateEditConst where
nullptr = QDateEditConst HoppyF.nullPtr
withCppPtr (QDateEditConst ptr') f' = f' ptr'
withCppPtr (QDateEditConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QDateEditConst ptr') = ptr'
toPtr (QDateEditConstGc _ ptr') = ptr'
touchCppPtr (QDateEditConst _) = HoppyP.return ()
touchCppPtr (QDateEditConstGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QDateEditConst where
delete (QDateEditConst ptr') = delete'QDateEdit ptr'
delete (QDateEditConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDateEditConst", " object."]
toGc this'@(QDateEditConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDateEditConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDateEdit :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QDateEditConstGc {}) = HoppyP.return this'
instance QDateEditConstPtr QDateEditConst where
toQDateEditConst = HoppyP.id
instance M216.QDateTimeEditConstPtr QDateEditConst where
toQDateTimeEditConst (QDateEditConst ptr') = M216.QDateTimeEditConst $ castQDateEditToQDateTimeEdit ptr'
toQDateTimeEditConst (QDateEditConstGc fptr' ptr') = M216.QDateTimeEditConstGc fptr' $ castQDateEditToQDateTimeEdit ptr'
instance M200.QAbstractSpinBoxConstPtr QDateEditConst where
toQAbstractSpinBoxConst (QDateEditConst ptr') = M200.QAbstractSpinBoxConst $ castQDateEditToQAbstractSpinBox ptr'
toQAbstractSpinBoxConst (QDateEditConstGc fptr' ptr') = M200.QAbstractSpinBoxConstGc fptr' $ castQDateEditToQAbstractSpinBox ptr'
instance M330.QWidgetConstPtr QDateEditConst where
toQWidgetConst (QDateEditConst ptr') = M330.QWidgetConst $ castQDateEditToQWidget ptr'
toQWidgetConst (QDateEditConstGc fptr' ptr') = M330.QWidgetConstGc fptr' $ castQDateEditToQWidget ptr'
instance M34.QObjectConstPtr QDateEditConst where
toQObjectConst (QDateEditConst ptr') = M34.QObjectConst $ castQDateEditToQObject ptr'
toQObjectConst (QDateEditConstGc fptr' ptr') = M34.QObjectConstGc fptr' $ castQDateEditToQObject ptr'
data QDateEdit =
QDateEdit (HoppyF.Ptr QDateEdit)
| QDateEditGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QDateEdit)
deriving (HoppyP.Show)
instance HoppyP.Eq QDateEdit where
x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y
instance HoppyP.Ord QDateEdit where
compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)
castQDateEditToNonconst :: QDateEditConst -> QDateEdit
castQDateEditToNonconst (QDateEditConst ptr') = QDateEdit $ HoppyF.castPtr ptr'
castQDateEditToNonconst (QDateEditConstGc fptr' ptr') = QDateEditGc fptr' $ HoppyF.castPtr ptr'
instance HoppyFHR.CppPtr QDateEdit where
nullptr = QDateEdit HoppyF.nullPtr
withCppPtr (QDateEdit ptr') f' = f' ptr'
withCppPtr (QDateEditGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
toPtr (QDateEdit ptr') = ptr'
toPtr (QDateEditGc _ ptr') = ptr'
touchCppPtr (QDateEdit _) = HoppyP.return ()
touchCppPtr (QDateEditGc fptr' _) = HoppyF.touchForeignPtr fptr'
instance HoppyFHR.Deletable QDateEdit where
delete (QDateEdit ptr') = delete'QDateEdit $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QDateEditConst)
delete (QDateEditGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QDateEdit", " object."]
toGc this'@(QDateEdit ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QDateEditGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QDateEdit :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
toGc this'@(QDateEditGc {}) = HoppyP.return this'
instance QDateEditConstPtr QDateEdit where
toQDateEditConst (QDateEdit ptr') = QDateEditConst $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
toQDateEditConst (QDateEditGc fptr' ptr') = QDateEditConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
instance QDateEditPtr QDateEdit where
toQDateEdit = HoppyP.id
instance M216.QDateTimeEditConstPtr QDateEdit where
toQDateTimeEditConst (QDateEdit ptr') = M216.QDateTimeEditConst $ castQDateEditToQDateTimeEdit $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
toQDateTimeEditConst (QDateEditGc fptr' ptr') = M216.QDateTimeEditConstGc fptr' $ castQDateEditToQDateTimeEdit $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
instance M216.QDateTimeEditPtr QDateEdit where
toQDateTimeEdit (QDateEdit ptr') = M216.QDateTimeEdit $ (HoppyF.castPtr :: HoppyF.Ptr M216.QDateTimeEditConst -> HoppyF.Ptr M216.QDateTimeEdit) $ castQDateEditToQDateTimeEdit $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
toQDateTimeEdit (QDateEditGc fptr' ptr') = M216.QDateTimeEditGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M216.QDateTimeEditConst -> HoppyF.Ptr M216.QDateTimeEdit) $ castQDateEditToQDateTimeEdit $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
instance M200.QAbstractSpinBoxConstPtr QDateEdit where
toQAbstractSpinBoxConst (QDateEdit ptr') = M200.QAbstractSpinBoxConst $ castQDateEditToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
toQAbstractSpinBoxConst (QDateEditGc fptr' ptr') = M200.QAbstractSpinBoxConstGc fptr' $ castQDateEditToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
instance M200.QAbstractSpinBoxPtr QDateEdit where
toQAbstractSpinBox (QDateEdit ptr') = M200.QAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr M200.QAbstractSpinBoxConst -> HoppyF.Ptr M200.QAbstractSpinBox) $ castQDateEditToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
toQAbstractSpinBox (QDateEditGc fptr' ptr') = M200.QAbstractSpinBoxGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M200.QAbstractSpinBoxConst -> HoppyF.Ptr M200.QAbstractSpinBox) $ castQDateEditToQAbstractSpinBox $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
instance M330.QWidgetConstPtr QDateEdit where
toQWidgetConst (QDateEdit ptr') = M330.QWidgetConst $ castQDateEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
toQWidgetConst (QDateEditGc fptr' ptr') = M330.QWidgetConstGc fptr' $ castQDateEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
instance M330.QWidgetPtr QDateEdit where
toQWidget (QDateEdit ptr') = M330.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M330.QWidgetConst -> HoppyF.Ptr M330.QWidget) $ castQDateEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
toQWidget (QDateEditGc fptr' ptr') = M330.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M330.QWidgetConst -> HoppyF.Ptr M330.QWidget) $ castQDateEditToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
instance M34.QObjectConstPtr QDateEdit where
toQObjectConst (QDateEdit ptr') = M34.QObjectConst $ castQDateEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
toQObjectConst (QDateEditGc fptr' ptr') = M34.QObjectConstGc fptr' $ castQDateEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
instance M34.QObjectPtr QDateEdit where
toQObject (QDateEdit ptr') = M34.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M34.QObjectConst -> HoppyF.Ptr M34.QObject) $ castQDateEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
toQObject (QDateEditGc fptr' ptr') = M34.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M34.QObjectConst -> HoppyF.Ptr M34.QObject) $ castQDateEditToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QDateEdit -> HoppyF.Ptr QDateEditConst) ptr'
new :: HoppyP.IO QDateEdit
new =
HoppyP.fmap QDateEdit
(new')
newWithParent :: (M330.QWidgetPtr arg'1) => arg'1 -> HoppyP.IO QDateEdit
newWithParent arg'1 =
HoppyFHR.withCppPtr (M330.toQWidget arg'1) $ \arg'1' ->
HoppyP.fmap QDateEdit
(newWithParent' arg'1')
newWithDate :: (M16.QDateValue arg'1) => arg'1 -> HoppyP.IO QDateEdit
newWithDate arg'1 =
M16.withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyP.fmap QDateEdit
(newWithDate' arg'1')
newWithDateAndParent :: (M16.QDateValue arg'1, M330.QWidgetPtr arg'2) => arg'1 -> arg'2 -> HoppyP.IO QDateEdit
newWithDateAndParent arg'1 arg'2 =
M16.withQDatePtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
HoppyFHR.withCppPtr (M330.toQWidget arg'2) $ \arg'2' ->
HoppyP.fmap QDateEdit
(newWithDateAndParent' arg'1' arg'2')
class QDateEditSuper a where
downToQDateEdit :: a -> QDateEdit
instance QDateEditSuper M216.QDateTimeEdit where
downToQDateEdit = castQDateEditToNonconst . cast' . M216.castQDateTimeEditToConst
where
cast' (M216.QDateTimeEditConst ptr') = QDateEditConst $ castQDateTimeEditToQDateEdit ptr'
cast' (M216.QDateTimeEditConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQDateTimeEditToQDateEdit ptr'
instance QDateEditSuper M200.QAbstractSpinBox where
downToQDateEdit = castQDateEditToNonconst . cast' . M200.castQAbstractSpinBoxToConst
where
cast' (M200.QAbstractSpinBoxConst ptr') = QDateEditConst $ castQAbstractSpinBoxToQDateEdit ptr'
cast' (M200.QAbstractSpinBoxConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQAbstractSpinBoxToQDateEdit ptr'
instance QDateEditSuper M330.QWidget where
downToQDateEdit = castQDateEditToNonconst . cast' . M330.castQWidgetToConst
where
cast' (M330.QWidgetConst ptr') = QDateEditConst $ castQWidgetToQDateEdit ptr'
cast' (M330.QWidgetConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQWidgetToQDateEdit ptr'
instance QDateEditSuper M34.QObject where
downToQDateEdit = castQDateEditToNonconst . cast' . M34.castQObjectToConst
where
cast' (M34.QObjectConst ptr') = QDateEditConst $ castQObjectToQDateEdit ptr'
cast' (M34.QObjectConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQObjectToQDateEdit ptr'
class QDateEditSuperConst a where
downToQDateEditConst :: a -> QDateEditConst
instance QDateEditSuperConst M216.QDateTimeEditConst where
downToQDateEditConst = cast'
where
cast' (M216.QDateTimeEditConst ptr') = QDateEditConst $ castQDateTimeEditToQDateEdit ptr'
cast' (M216.QDateTimeEditConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQDateTimeEditToQDateEdit ptr'
instance QDateEditSuperConst M200.QAbstractSpinBoxConst where
downToQDateEditConst = cast'
where
cast' (M200.QAbstractSpinBoxConst ptr') = QDateEditConst $ castQAbstractSpinBoxToQDateEdit ptr'
cast' (M200.QAbstractSpinBoxConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQAbstractSpinBoxToQDateEdit ptr'
instance QDateEditSuperConst M330.QWidgetConst where
downToQDateEditConst = cast'
where
cast' (M330.QWidgetConst ptr') = QDateEditConst $ castQWidgetToQDateEdit ptr'
cast' (M330.QWidgetConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQWidgetToQDateEdit ptr'
instance QDateEditSuperConst M34.QObjectConst where
downToQDateEditConst = cast'
where
cast' (M34.QObjectConst ptr') = QDateEditConst $ castQObjectToQDateEdit ptr'
cast' (M34.QObjectConstGc fptr' ptr') = QDateEditConstGc fptr' $ castQObjectToQDateEdit ptr'
instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QDateEdit)) QDateEdit where
assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'
instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QDateEdit)) QDateEdit where
decode = HoppyP.fmap QDateEdit . HoppyF.peek