-- GENERATED by C->Haskell Compiler, version 0.13.13 (gtk2hs branch) "Bin IO", 27 May 2012 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "./Graphics/UI/Gtk/WebKit/DOM/TextTrackList.chs" #-}
module Graphics.UI.Gtk.WebKit.DOM.TextTrackList(
item,
getTrackById,
getLength,
addTrack,
change,
removeTrack,
TextTrackList,
castToTextTrackList,
gTypeTextTrackList,
TextTrackListClass,
toTextTrackList,
) where
import Prelude hiding (drop, error, print)
import Data.Typeable (Typeable)
import Foreign.Marshal (maybePeek, maybeWith)
import System.Glib.FFI (maybeNull, withForeignPtr, nullForeignPtr, Ptr, nullPtr, castPtr, Word, Int64, Word64, CChar(..), CInt(..), CUInt(..), CLong(..), CULong(..), CLLong(..), CULLong(..), CShort(..), CUShort(..), CFloat(..), CDouble(..), toBool, fromBool)
import System.Glib.UTFString (GlibString(..), readUTFString)
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Monad.IO.Class (MonadIO(..))
import System.Glib.GError
import Graphics.UI.Gtk.WebKit.DOM.EventTargetClosures
import Graphics.UI.Gtk.WebKit.DOM.EventM
import Graphics.UI.Gtk.WebKit.Types
{-# LINE 30 "./Graphics/UI/Gtk/WebKit/DOM/TextTrackList.chs" #-}
import Graphics.UI.Gtk.WebKit.DOM.Enums

 
item ::
     (MonadIO m, TextTrackListClass self) =>
       self -> Word -> m (Maybe TextTrack)
item self index
  = liftIO
      (maybeNull (makeNewGObject mkTextTrack)
         ((\(TextTrackList arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_text_track_list_item argPtr1 arg2) (toTextTrackList self)
            (fromIntegral index)))

getTrackById ::
             (MonadIO m, TextTrackListClass self, GlibString string) =>
               self -> string -> m (Maybe TextTrack)
getTrackById self id
  = liftIO
      (maybeNull (makeNewGObject mkTextTrack)
         (withUTFString id $
            \ idPtr ->
              (\(TextTrackList arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_text_track_list_get_track_by_id argPtr1 arg2)
{-# LINE 52 "./Graphics/UI/Gtk/WebKit/DOM/TextTrackList.chs" #-}
                (toTextTrackList self)
                idPtr))
 
getLength :: (MonadIO m, TextTrackListClass self) => self -> m Word
getLength self
  = liftIO
      (fromIntegral <$>
         ((\(TextTrackList arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_text_track_list_get_length argPtr1)
{-# LINE 61 "./Graphics/UI/Gtk/WebKit/DOM/TextTrackList.chs" #-}
            (toTextTrackList self)))
 
addTrack :: (TextTrackListClass self) => EventName self Event
addTrack = EventName "addtrack"
 
change :: (TextTrackListClass self) => EventName self Event
change = EventName "change"
 
removeTrack :: (TextTrackListClass self) => EventName self Event
removeTrack = EventName "removetrack"

foreign import ccall safe "dist/build/Graphics/UI/Gtk/WebKit/DOM/TextTrackList.h webkit_dom_text_track_list_item"
  webkit_dom_text_track_list_item :: ((Ptr TextTrackList) -> (CULong -> (IO (Ptr TextTrack))))

foreign import ccall safe "dist/build/Graphics/UI/Gtk/WebKit/DOM/TextTrackList.h webkit_dom_text_track_list_get_track_by_id"
  webkit_dom_text_track_list_get_track_by_id :: ((Ptr TextTrackList) -> ((Ptr CChar) -> (IO (Ptr TextTrack))))

foreign import ccall safe "dist/build/Graphics/UI/Gtk/WebKit/DOM/TextTrackList.h webkit_dom_text_track_list_get_length"
  webkit_dom_text_track_list_get_length :: ((Ptr TextTrackList) -> (IO CULong))