packages feed

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

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

module Graphics.UI.Qtah.Generated.Widgets.QLabel (
  castQLabelToQFrame,
  castQFrameToQLabel,
  castQLabelToQWidget,
  castQWidgetToQLabel,
  castQLabelToQObject,
  castQObjectToQLabel,
  QLabelValue (..),
  QLabelConstPtr (..),
  alignment,
  buddy,
  hasSelectedText,
  indent,
  margin,
  openExternalLinks,
  pixmap,
  hasScaledContents,
  selectedText,
  selectionStart,
  text,
  textFormat,
  textInteractionFlags,
  wordWrap,
  QLabelPtr (..),
  setAlignment,
  setBuddy,
  clear,
  setIndent,
  setMargin,
  setOpenExternalLinks,
  setScaledContents,
  setInt,
  setDouble,
  setPixmap,
  setSelection,
  setText,
  setTextFormat,
  setTextInteractionFlags,
  setWordWrap,
  emitLinkActivated,
  emitLinkHovered,
  QLabelConst (..),
  castQLabelToConst,
  QLabel (..),
  castQLabelToNonconst,
  new,
  newWithParent,
  newWithText,
  newWithTextAndParent,
  QLabelSuper (..),
  QLabelSuperConst (..),
  ) where

import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Flags as QtahFlags
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.Types as M190
import qualified Graphics.UI.Qtah.Generated.Gui.QPixmap as M316
import qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
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__QLabel_new" new' ::  HoppyP.IO (HoppyF.Ptr QLabel)
foreign import ccall "genpop__QLabel_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QLabel)
foreign import ccall "genpop__QLabel_newWithText" newWithText' ::  HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QLabel)
foreign import ccall "genpop__QLabel_newWithTextAndParent" newWithTextAndParent' ::  HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QLabel)
foreign import ccall "genpop__QLabel_alignment" alignment' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QLabel_setAlignment" setAlignment' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_buddy" buddy' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
foreign import ccall "genpop__QLabel_setBuddy" setBuddy' ::  HoppyF.Ptr QLabel -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_clear" clear' ::  HoppyF.Ptr QLabel -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_hasSelectedText" hasSelectedText' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QLabel_indent" indent' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QLabel_setIndent" setIndent' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_margin" margin' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QLabel_setMargin" setMargin' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_openExternalLinks" openExternalLinks' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QLabel_setOpenExternalLinks" setOpenExternalLinks' ::  HoppyF.Ptr QLabel -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_pixmap" pixmap' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO (HoppyF.Ptr M316.QPixmapConst)
foreign import ccall "genpop__QLabel_hasScaledContents" hasScaledContents' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QLabel_setScaledContents" setScaledContents' ::  HoppyF.Ptr QLabel -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_selectedText" selectedText' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QLabel_selectionStart" selectionStart' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QLabel_setInt" setInt' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_setDouble" setDouble' ::  HoppyF.Ptr QLabel -> HoppyFC.CDouble -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_setPixmap" setPixmap' ::  HoppyF.Ptr QLabel -> HoppyF.Ptr M316.QPixmapConst -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_setSelection" setSelection' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_text" text' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QLabel_setText" setText' ::  HoppyF.Ptr QLabel -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_textFormat" textFormat' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QLabel_setTextFormat" setTextFormat' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_textInteractionFlags" textInteractionFlags' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QLabel_setTextInteractionFlags" setTextInteractionFlags' ::  HoppyF.Ptr QLabel -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_wordWrap" wordWrap' ::  HoppyF.Ptr QLabelConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QLabel_setWordWrap" setWordWrap' ::  HoppyF.Ptr QLabel -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_emitLinkActivated" emitLinkActivated' ::  HoppyF.Ptr QLabel -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QLabel_emitLinkHovered" emitLinkHovered' ::  HoppyF.Ptr QLabel -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "gencast__QLabel__QFrame" castQLabelToQFrame :: HoppyF.Ptr QLabelConst -> HoppyF.Ptr M400.QFrameConst
foreign import ccall "gencast__QFrame__QLabel" castQFrameToQLabel :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QLabelConst
foreign import ccall "gencast__QLabel__QWidget" castQLabelToQWidget :: HoppyF.Ptr QLabelConst -> HoppyF.Ptr M506.QWidgetConst
foreign import ccall "gencast__QWidget__QLabel" castQWidgetToQLabel :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QLabelConst
foreign import ccall "gencast__QLabel__QObject" castQLabelToQObject :: HoppyF.Ptr QLabelConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QLabel" castQObjectToQLabel :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QLabelConst
foreign import ccall "gendel__QLabel" delete'QLabel :: HoppyF.Ptr QLabelConst -> HoppyP.IO ()
foreign import ccall "&gendel__QLabel" deletePtr'QLabel :: HoppyF.FunPtr (HoppyF.Ptr QLabelConst -> HoppyP.IO ())

class QLabelValue a where
  withQLabelPtr :: a -> (QLabelConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QLabelConstPtr a => QLabelValue a where
  withQLabelPtr = HoppyP.flip ($) . toQLabelConst

class (M400.QFrameConstPtr this) => QLabelConstPtr this where
  toQLabelConst :: this -> QLabelConst

alignment :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtAlignment)
alignment arg'1 =
  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    QtahP.return . QtahFlags.numToFlags
  ) =<<
  (alignment' arg'1')

buddy :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
buddy arg'1 =
  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M506.QWidget
  (buddy' arg'1')

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

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

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

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

pixmap :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO M316.QPixmapConst)
pixmap arg'1 =
  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M316.QPixmapConst
  (pixmap' arg'1')

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

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

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

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

textFormat :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtTextFormat)
textFormat arg'1 =
  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (textFormat' arg'1')

textInteractionFlags :: (QLabelValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtTextInteractionFlags)
textInteractionFlags arg'1 =
  withQLabelPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    QtahP.return . QtahFlags.numToFlags
  ) =<<
  (textInteractionFlags' arg'1')

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

class (QLabelConstPtr this, M400.QFramePtr this) => QLabelPtr this where
  toQLabel :: this -> QLabel

setAlignment :: (QLabelPtr this, M190.IsQtAlignment arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setAlignment arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtAlignment
  ) arg'2 >>= \arg'2' ->
  (setAlignment' arg'1' arg'2')

setBuddy :: (QLabelPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setBuddy arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
  (setBuddy' arg'1' arg'2')

clear :: (QLabelPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
clear arg'1 =
  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
  (clear' arg'1')

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

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

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

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

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

setDouble :: (QLabelPtr this) => (this) {- ^ this -} -> (HoppyP.Double) -> (HoppyP.IO ())
setDouble arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyP.realToFrac
  ) arg'2 >>= \arg'2' ->
  (setDouble' arg'1' arg'2')

setPixmap :: (QLabelPtr this, M316.QPixmapValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setPixmap arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
  M316.withQPixmapPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (setPixmap' arg'1' arg'2')

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

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

setTextFormat :: (QLabelPtr this) => (this) {- ^ this -} -> (M190.QtTextFormat) -> (HoppyP.IO ())
setTextFormat arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setTextFormat' arg'1' arg'2')

setTextInteractionFlags :: (QLabelPtr this, M190.IsQtTextInteractionFlags arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setTextInteractionFlags arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQLabel arg'1) $ \arg'1' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtTextInteractionFlags
  ) arg'2 >>= \arg'2' ->
  (setTextInteractionFlags' arg'1' arg'2')

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

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

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

data QLabelConst =
    QLabelConst (HoppyF.Ptr QLabelConst)
  | QLabelConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLabelConst)
  deriving (HoppyP.Show)

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

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

castQLabelToConst :: QLabel -> QLabelConst
castQLabelToConst (QLabel ptr') = QLabelConst $ HoppyF.castPtr ptr'
castQLabelToConst (QLabelGc fptr' ptr') = QLabelConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QLabelConstPtr QLabelConst where
  toQLabelConst = HoppyP.id

instance M400.QFrameConstPtr QLabelConst where
  toQFrameConst (QLabelConst ptr') = M400.QFrameConst $ castQLabelToQFrame ptr'
  toQFrameConst (QLabelConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQLabelToQFrame ptr'

instance M506.QWidgetConstPtr QLabelConst where
  toQWidgetConst (QLabelConst ptr') = M506.QWidgetConst $ castQLabelToQWidget ptr'
  toQWidgetConst (QLabelConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQLabelToQWidget ptr'

instance M94.QObjectConstPtr QLabelConst where
  toQObjectConst (QLabelConst ptr') = M94.QObjectConst $ castQLabelToQObject ptr'
  toQObjectConst (QLabelConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQLabelToQObject ptr'

data QLabel =
    QLabel (HoppyF.Ptr QLabel)
  | QLabelGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QLabel)
  deriving (HoppyP.Show)

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

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

castQLabelToNonconst :: QLabelConst -> QLabel
castQLabelToNonconst (QLabelConst ptr') = QLabel $ HoppyF.castPtr ptr'
castQLabelToNonconst (QLabelConstGc fptr' ptr') = QLabelGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QLabelConstPtr QLabel where
  toQLabelConst (QLabel ptr') = QLabelConst $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
  toQLabelConst (QLabelGc fptr' ptr') = QLabelConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'

instance QLabelPtr QLabel where
  toQLabel = HoppyP.id

instance M400.QFrameConstPtr QLabel where
  toQFrameConst (QLabel ptr') = M400.QFrameConst $ castQLabelToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
  toQFrameConst (QLabelGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQLabelToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'

instance M400.QFramePtr QLabel where
  toQFrame (QLabel ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQLabelToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
  toQFrame (QLabelGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQLabelToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'

instance M506.QWidgetConstPtr QLabel where
  toQWidgetConst (QLabel ptr') = M506.QWidgetConst $ castQLabelToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
  toQWidgetConst (QLabelGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQLabelToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'

instance M506.QWidgetPtr QLabel where
  toQWidget (QLabel ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQLabelToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
  toQWidget (QLabelGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQLabelToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'

instance M94.QObjectConstPtr QLabel where
  toQObjectConst (QLabel ptr') = M94.QObjectConst $ castQLabelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
  toQObjectConst (QLabelGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQLabelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'

instance M94.QObjectPtr QLabel where
  toQObject (QLabel ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQLabelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'
  toQObject (QLabelGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQLabelToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QLabel -> HoppyF.Ptr QLabelConst) ptr'

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

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

newWithText :: (M142.QStringValue arg'1) => (arg'1) -> (HoppyP.IO QLabel)
newWithText arg'1 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap QLabel
  (newWithText' arg'1')

newWithTextAndParent :: (M142.QStringValue arg'1, M506.QWidgetPtr arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QLabel)
newWithTextAndParent arg'1 arg'2 =
  M142.withQStringPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
  HoppyP.fmap QLabel
  (newWithTextAndParent' arg'1' arg'2')

class QLabelSuper a where
  downToQLabel :: a -> QLabel

instance QLabelSuper M400.QFrame where
  downToQLabel = castQLabelToNonconst . cast' . M400.castQFrameToConst
    where
      cast' (M400.QFrameConst ptr') = QLabelConst $ castQFrameToQLabel ptr'
      cast' (M400.QFrameConstGc fptr' ptr') = QLabelConstGc fptr' $ castQFrameToQLabel ptr'
instance QLabelSuper M506.QWidget where
  downToQLabel = castQLabelToNonconst . cast' . M506.castQWidgetToConst
    where
      cast' (M506.QWidgetConst ptr') = QLabelConst $ castQWidgetToQLabel ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QLabelConstGc fptr' $ castQWidgetToQLabel ptr'
instance QLabelSuper M94.QObject where
  downToQLabel = castQLabelToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QLabelConst $ castQObjectToQLabel ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QLabelConstGc fptr' $ castQObjectToQLabel ptr'

class QLabelSuperConst a where
  downToQLabelConst :: a -> QLabelConst

instance QLabelSuperConst M400.QFrameConst where
  downToQLabelConst = cast'
    where
      cast' (M400.QFrameConst ptr') = QLabelConst $ castQFrameToQLabel ptr'
      cast' (M400.QFrameConstGc fptr' ptr') = QLabelConstGc fptr' $ castQFrameToQLabel ptr'
instance QLabelSuperConst M506.QWidgetConst where
  downToQLabelConst = cast'
    where
      cast' (M506.QWidgetConst ptr') = QLabelConst $ castQWidgetToQLabel ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QLabelConstGc fptr' $ castQWidgetToQLabel ptr'
instance QLabelSuperConst M94.QObjectConst where
  downToQLabelConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QLabelConst $ castQObjectToQLabel ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QLabelConstGc fptr' $ castQObjectToQLabel ptr'

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

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