packages feed

qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Generated/Gui/QPainter.hs

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

module Graphics.UI.Qtah.Generated.Gui.QPainter (
  QPainterValue (..),
  QPainterConstPtr (..),
  QPainterPtr (..),
  drawImageAtRaw,
  drawImageAtRawAll,
  fillRectWithGlobalColor,
  setRenderHint,
  QPainterConst (..),
  castQPainterToConst,
  QPainter (..),
  castQPainterToNonconst,
  new,
  newWithDevice,
  QPainterSuper (..),
  QPainterSuperConst (..),
  QPainterRenderHint (..),
  QPainterRenderHints,
  IsQPainterRenderHints (..),
  antialiasing,
  highQualityAntialiasing,
  nonCosmeticDefaultPen,
  qt4CompatiblePainting,
  smoothPixmapTransform,
  textAntialiasing,
  ) where

import Data.Bits ((.&.), (.|.))
import qualified Data.Bits as QtahDB
import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Foreign.Hoppy.Runtime as QtahFHR
import qualified Graphics.UI.Qtah.Flags as QtahFlags
import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QImage as M292
import qualified Graphics.UI.Qtah.Generated.Gui.QPaintDevice as M304
import Prelude (($), (.), (==), (>>=))
import qualified Prelude as HoppyP
import qualified Prelude as QtahP

foreign import ccall "genpop__QPainter_new" new' ::  HoppyP.IO (HoppyF.Ptr QPainter)
foreign import ccall "genpop__QPainter_newWithDevice" newWithDevice' ::  HoppyF.Ptr M304.QPaintDevice -> HoppyP.IO (HoppyF.Ptr QPainter)
foreign import ccall "genpop__QPainter_drawImageAtRaw" drawImageAtRaw' ::  HoppyF.Ptr QPainter -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M292.QImageConst -> HoppyP.IO ()
foreign import ccall "genpop__QPainter_drawImageAtRawAll" drawImageAtRawAll' ::  HoppyF.Ptr QPainter -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyF.Ptr M292.QImageConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QPainter_fillRectWithGlobalColor" fillRectWithGlobalColor' ::  HoppyF.Ptr QPainter -> HoppyF.Ptr M122.QRectConst -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QPainter_setRenderHint" setRenderHint' ::  HoppyF.Ptr QPainter -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "gendel__QPainter" delete'QPainter :: HoppyF.Ptr QPainterConst -> HoppyP.IO ()
foreign import ccall "&gendel__QPainter" deletePtr'QPainter :: HoppyF.FunPtr (HoppyF.Ptr QPainterConst -> HoppyP.IO ())

class QPainterValue a where
  withQPainterPtr :: a -> (QPainterConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QPainterConstPtr a => QPainterValue a where
  withQPainterPtr = HoppyP.flip ($) . toQPainterConst

class (HoppyFHR.CppPtr this) => QPainterConstPtr this where
  toQPainterConst :: this -> QPainterConst

class (QPainterConstPtr this) => QPainterPtr this where
  toQPainter :: this -> QPainter

drawImageAtRaw :: (QPainterPtr this, M292.QImageValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
drawImageAtRaw arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (toQPainter arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  M292.withQImagePtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  (drawImageAtRaw' arg'1' arg'2' arg'3' arg'4')

drawImageAtRawAll :: (QPainterPtr this, M292.QImageValue arg'4, M190.IsQtImageConversionFlags arg'9) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.Int) -> (arg'9) -> (HoppyP.IO ())
drawImageAtRawAll arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 arg'7 arg'8 arg'9 =
  HoppyFHR.withCppPtr (toQPainter arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  M292.withQImagePtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'5 >>= \arg'5' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'6 >>= \arg'6' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'7 >>= \arg'7' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'8 >>= \arg'8' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtImageConversionFlags
  ) arg'9 >>= \arg'9' ->
  (drawImageAtRawAll' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6' arg'7' arg'8' arg'9')

fillRectWithGlobalColor :: (QPainterPtr this, M122.QRectValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtGlobalColor) -> (HoppyP.IO ())
fillRectWithGlobalColor arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQPainter arg'1) $ \arg'1' ->
  M122.withQRectPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'3 >>= \arg'3' ->
  (fillRectWithGlobalColor' arg'1' arg'2' arg'3')

setRenderHint :: (QPainterPtr this) => (this) {- ^ this -} -> (QPainterRenderHint) -> (HoppyP.IO ())
setRenderHint arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQPainter arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setRenderHint' arg'1' arg'2')

data QPainterConst =
    QPainterConst (HoppyF.Ptr QPainterConst)
  | QPainterConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPainterConst)
  deriving (HoppyP.Show)

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

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

castQPainterToConst :: QPainter -> QPainterConst
castQPainterToConst (QPainter ptr') = QPainterConst $ HoppyF.castPtr ptr'
castQPainterToConst (QPainterGc fptr' ptr') = QPainterConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QPainterConstPtr QPainterConst where
  toQPainterConst = HoppyP.id

data QPainter =
    QPainter (HoppyF.Ptr QPainter)
  | QPainterGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QPainter)
  deriving (HoppyP.Show)

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

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

castQPainterToNonconst :: QPainterConst -> QPainter
castQPainterToNonconst (QPainterConst ptr') = QPainter $ HoppyF.castPtr ptr'
castQPainterToNonconst (QPainterConstGc fptr' ptr') = QPainterGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QPainterConstPtr QPainter where
  toQPainterConst (QPainter ptr') = QPainterConst $ (HoppyF.castPtr :: HoppyF.Ptr QPainter -> HoppyF.Ptr QPainterConst) ptr'
  toQPainterConst (QPainterGc fptr' ptr') = QPainterConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QPainter -> HoppyF.Ptr QPainterConst) ptr'

instance QPainterPtr QPainter where
  toQPainter = HoppyP.id

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

newWithDevice :: (M304.QPaintDevicePtr arg'1) => (arg'1) -> (HoppyP.IO QPainter)
newWithDevice arg'1 =
  HoppyFHR.withCppPtr (M304.toQPaintDevice arg'1) $ \arg'1' ->
  HoppyP.fmap QPainter
  (newWithDevice' arg'1')

class QPainterSuper a where
  downToQPainter :: a -> QPainter


class QPainterSuperConst a where
  downToQPainterConst :: a -> QPainterConst


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

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

data QPainterRenderHint =
  Antialiasing
  | TextAntialiasing
  | SmoothPixmapTransform
  | HighQualityAntialiasing
  | NonCosmeticDefaultPen
  | Qt4CompatiblePainting
  | UnknownQPainterRenderHint (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QPainterRenderHint where
  fromCppEnum Antialiasing = 1
  fromCppEnum TextAntialiasing = 2
  fromCppEnum SmoothPixmapTransform = 4
  fromCppEnum HighQualityAntialiasing = 8
  fromCppEnum NonCosmeticDefaultPen = 16
  fromCppEnum Qt4CompatiblePainting = 32
  fromCppEnum (UnknownQPainterRenderHint n) = n
  
  toCppEnum (1) = Antialiasing
  toCppEnum (2) = TextAntialiasing
  toCppEnum (4) = SmoothPixmapTransform
  toCppEnum (8) = HighQualityAntialiasing
  toCppEnum (16) = NonCosmeticDefaultPen
  toCppEnum (32) = Qt4CompatiblePainting
  toCppEnum n = UnknownQPainterRenderHint n

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

instance HoppyP.Ord QPainterRenderHint where
  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)

newtype QPainterRenderHints = QPainterRenderHints (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)

instance QtahFlags.Flags (HoppyFC.CInt) QPainterRenderHint QPainterRenderHints where
  enumToFlags = QPainterRenderHints . QtahFHR.fromCppEnum
  flagsToEnum (QPainterRenderHints x') = QtahFHR.toCppEnum x'

class IsQPainterRenderHints a where
  toQPainterRenderHints :: a -> QPainterRenderHints

instance IsQPainterRenderHints QPainterRenderHints where toQPainterRenderHints = QtahP.id
instance IsQPainterRenderHints QPainterRenderHint where toQPainterRenderHints = QtahFlags.enumToFlags
instance IsQPainterRenderHints (HoppyFC.CInt) where toQPainterRenderHints = QtahFlags.numToFlags

antialiasing :: QPainterRenderHints
antialiasing = QPainterRenderHints (1)

highQualityAntialiasing :: QPainterRenderHints
highQualityAntialiasing = QPainterRenderHints (8)

nonCosmeticDefaultPen :: QPainterRenderHints
nonCosmeticDefaultPen = QPainterRenderHints (16)

qt4CompatiblePainting :: QPainterRenderHints
qt4CompatiblePainting = QPainterRenderHints (32)

smoothPixmapTransform :: QPainterRenderHints
smoothPixmapTransform = QPainterRenderHints (4)

textAntialiasing :: QPainterRenderHints
textAntialiasing = QPainterRenderHints (2)

instance QtahDB.Bits QPainterRenderHints where
  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
  bitSize x = case QtahDB.bitSizeMaybe x of
      QtahP.Just n -> n
      QtahP.Nothing -> QtahP.error "bitSize is undefined"
  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
  bit = QtahFlags.numToFlags . QtahDB.bit
  popCount = QtahDB.popCount . QtahFlags.flagsToNum