{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (garetxe@gmail.com) A GtkRecentFilterInfo struct is used to pass information about the tested file to gtk_recent_filter_filter(). -} module GI.Gtk.Structs.RecentFilterInfo ( -- * Exported types RecentFilterInfo(..) , noRecentFilterInfo , -- * Properties -- ** Age recentFilterInfoReadAge , -- ** Applications recentFilterInfoReadApplications , -- ** Contains recentFilterInfoReadContains , -- ** DisplayName recentFilterInfoReadDisplayName , -- ** Groups recentFilterInfoReadGroups , -- ** MimeType recentFilterInfoReadMimeType , -- ** Uri recentFilterInfoReadUri , ) where import Prelude () import Data.GI.Base.ShortPrelude import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import GI.Gtk.Types import GI.Gtk.Callbacks newtype RecentFilterInfo = RecentFilterInfo (ForeignPtr RecentFilterInfo) noRecentFilterInfo :: Maybe RecentFilterInfo noRecentFilterInfo = Nothing recentFilterInfoReadContains :: RecentFilterInfo -> IO [RecentFilterFlags] recentFilterInfoReadContains s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO CUInt let val' = wordToGFlags val return val' recentFilterInfoReadUri :: RecentFilterInfo -> IO T.Text recentFilterInfoReadUri s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 8) :: IO CString val' <- cstringToText val return val' recentFilterInfoReadDisplayName :: RecentFilterInfo -> IO T.Text recentFilterInfoReadDisplayName s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 16) :: IO CString val' <- cstringToText val return val' recentFilterInfoReadMimeType :: RecentFilterInfo -> IO T.Text recentFilterInfoReadMimeType s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 24) :: IO CString val' <- cstringToText val return val' recentFilterInfoReadApplications :: RecentFilterInfo -> IO [T.Text] recentFilterInfoReadApplications s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 32) :: IO (Ptr CString) val' <- unpackZeroTerminatedUTF8CArray val return val' recentFilterInfoReadGroups :: RecentFilterInfo -> IO [T.Text] recentFilterInfoReadGroups s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 40) :: IO (Ptr CString) val' <- unpackZeroTerminatedUTF8CArray val return val' recentFilterInfoReadAge :: RecentFilterInfo -> IO Int32 recentFilterInfoReadAge s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 48) :: IO Int32 return val