packages feed

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

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

{-# LANGUAGE NoMonomorphismRestriction #-}

module Graphics.UI.Qtah.Gui.QOpenGLWindow (
  QOpenGLWindowValue (..),
  QOpenGLWindowConstPtr (..),
  QOpenGLWindowPtr (..),
  QOpenGLWindowConst,
  QOpenGLWindow,
  castConst,
  cast,
  downCastConst,
  downCast,
  new,
  newWithUpdateBehavior,
  newWithUpdateBehaviorAndParent,
  defaultFramebufferObject,
  doneCurrent,
  emitFrameSwapped,
  grabFramebuffer,
  isValid,
  makeCurrent,
  updateBehavior,
  frameSwappedSignal,
  QOpenGLWindowUpdateBehavior (..),
  ) where

import qualified Foreign.Hoppy.Runtime as QtahFHR
import Graphics.UI.Qtah.Generated.Gui.QOpenGLWindow
import Graphics.UI.Qtah.Internal.Listener
import qualified Graphics.UI.Qtah.Signal as QtahSignal
import Prelude (($), (>>))
import qualified Prelude as HoppyP
import qualified Prelude as QtahP


castConst = toQOpenGLWindowConst
cast = toQOpenGLWindow
downCastConst = downToQOpenGLWindowConst
downCast = downToQOpenGLWindow

frameSwappedSignal :: (QOpenGLWindowPtr object) => QtahSignal.Signal object (HoppyP.IO ())
frameSwappedSignal = QtahSignal.Signal
  { QtahSignal.internalConnectSignal = \object' fn' -> do
    listener' <- listener_new object' "2frameSwapped()" fn'
    valid' <- listener_isValid listener'
    if valid'
      then QtahP.fmap QtahP.Just $ QtahSignal.internalMakeConnection listener'
      else QtahFHR.delete listener' >> QtahP.return QtahP.Nothing
  , QtahSignal.internalName = "QOpenGLWindow::frameSwapped (Listener)"
  }