-- 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/Blob.chs" #-}
module Graphics.UI.Gtk.WebKit.DOM.Blob(
slice,
getSize,
Blob,
castToBlob,
gTypeBlob,
BlobClass,
toBlob,
) 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 21 "./Graphics/UI/Gtk/WebKit/DOM/Blob.chs" #-}
import Graphics.UI.Gtk.WebKit.DOM.Enums

 
slice ::
      (MonadIO m, BlobClass self, GlibString string) =>
        self -> Int64 -> Int64 -> (Maybe string) -> m (Maybe Blob)
slice self start end contentType
  = liftIO
      (maybeNull (makeNewGObject mkBlob)
         (maybeWith withUTFString contentType $
            \ contentTypePtr ->
              (\(Blob arg1) arg2 arg3 arg4 -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_blob_slice argPtr1 arg2 arg3 arg4) (toBlob self) (fromIntegral start)
                (fromIntegral end)
                contentTypePtr))
 
getSize :: (MonadIO m, BlobClass self) => self -> m Word64
getSize self
  = liftIO
      (fromIntegral <$>
         ((\(Blob arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_dom_blob_get_size argPtr1) (toBlob self)))

foreign import ccall safe "webkit_dom_blob_slice"
  webkit_dom_blob_slice :: ((Ptr Blob) -> (CLong -> (CLong -> ((Ptr CChar) -> (IO (Ptr Blob))))))

foreign import ccall safe "webkit_dom_blob_get_size"
  webkit_dom_blob_get_size :: ((Ptr Blob) -> (IO CULong))