module System.GIO.File.FileAttribute (
FileAttributeType (..),
FileAttributeInfo (..),
FileAttributeInfoFlags (..),
fileAttributeStandardType,
fileAttributeStandardIsHidden,
fileAttributeStandardIsBackup,
fileAttributeStandardIsSymlink,
fileAttributeStandardIsVirtual,
fileAttributeStandardName,
fileAttributeStandardDisplayName,
fileAttributeStandardEditName,
fileAttributeStandardCopyName,
fileAttributeStandardIcon,
fileAttributeStandardContentType,
fileAttributeStandardFastContentType,
fileAttributeStandardSize,
fileAttributeStandardAllocatedSize,
fileAttributeStandardSymlinkTarget,
fileAttributeStandardTargetURI,
fileAttributeStandardSortOrder,
fileAttributeEtagValue,
fileAttributeIDFile,
fileAttributeIDFilesystem,
fileAttributeAccessCanRead,
fileAttributeAccessCanWrite,
fileAttributeAccessCanExecute,
fileAttributeAccessCanDelete,
fileAttributeAccessCanTrash,
fileAttributeAccessCanRename,
fileAttributeMountableCanMount,
fileAttributeMountableCanUnmount,
fileAttributeMountableCanEject,
fileAttributeMountableUnixDevice,
fileAttributeMountableUnixDeviceFile,
fileAttributeMountableCanStart,
fileAttributeMountableCanDegraded,
fileAttributeMountableCanStop,
fileAttributeMountableStartStopType,
fileAttributeMountableCanPoll,
fileAttributeMountableHalUDI,
fileAttributeTimeModified,
fileAttributeTimeModifiedUSec,
fileAttributeTimeAccess,
fileAttributeTimeAccessUSec,
fileAttributeTimeChanged,
fileAttributeTimeChangedUSec,
fileAttributeTimeCreated,
fileAttributeTimeCreatedUSec,
fileAttributeUnixDevice,
fileAttributeUnixInode,
fileAttributeUnixMode,
fileAttributeUnixNLink,
fileAttributeUnixUID,
fileAttributeUnixGID,
fileAttributeUnixRDev,
fileAttributeUnixBlockSize,
fileAttributeUnixBlocks,
fileAttributeDosIsMountpoint,
fileAttributeDosIsArchive,
fileAttributeDosIsSystem,
fileAttributeOwnerUser,
fileAttributeOwnerUserReal,
fileAttributeOwnerGroup,
fileAttributeThumbnailPath,
fileAttributeThumbnailingFailed,
fileAttributePreviewIcon,
fileAttributeFilesystemSize,
fileAttributeFilesystemFree,
fileAttributeFilesystemType,
fileAttributeFilesystemReadonly,
fileAttributeGVfsBackend,
fileAttributeSELinuxContext,
fileAttributeTrashItemCount,
fileAttributeFilesystemUsePreview,
fileAttributeStandardDescription,
fileAttributeTrashOrigPath,
fileAttributeTrashDeletionDate,
) where
import System.Glib.FFI
import System.Glib.UTFString
import System.Glib.Flags
import System.GIO.Enums
data FileAttributeType = FileAttributeTypeInvalid
| FileAttributeTypeString
| FileAttributeTypeByteString
| FileAttributeTypeBool
| FileAttributeTypeWord32
| FileAttributeTypeInt32
| FileAttributeTypeWord64
| FileAttributeTypeInt64
| FileAttributeTypeObject
| FileAttributeTypeStringList
deriving (Eq, Ord, Bounded, Show, Read)
instance Enum FileAttributeType where
toEnum 0 = FileAttributeTypeInvalid
toEnum 1 = FileAttributeTypeString
toEnum 2 = FileAttributeTypeByteString
toEnum 3 = FileAttributeTypeBool
toEnum 4 = FileAttributeTypeWord32
toEnum 5 = FileAttributeTypeInt32
toEnum 6 = FileAttributeTypeWord64
toEnum 7 = FileAttributeTypeInt64
toEnum 8 = FileAttributeTypeObject
toEnum 9 = FileAttributeTypeStringList
fromEnum FileAttributeTypeInvalid = 0
fromEnum FileAttributeTypeString = 1
fromEnum FileAttributeTypeByteString = 2
fromEnum FileAttributeTypeBool = 3
fromEnum FileAttributeTypeWord32 = 4
fromEnum FileAttributeTypeInt32 = 5
fromEnum FileAttributeTypeWord64 = 6
fromEnum FileAttributeTypeInt64 = 7
fromEnum FileAttributeTypeObject = 8
fromEnum FileAttributeTypeStringList = 9
data FileAttributeInfo =
FileAttributeInfo
{ fileAttributeInfoName :: String
, fileAttributeInfoType :: FileAttributeType
, fileAttributeInfoFlags :: [FileAttributeInfoFlags]
} deriving (Eq, Read, Show)
instance Storable FileAttributeInfo where
sizeOf _ = (12)
alignment _ = alignment (undefined :: Ptr ())
peek ptr = do
retName <- (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr >>= readUTFString
retType <- ((\hsc_ptr -> peekByteOff hsc_ptr 4) ptr :: IO CInt) >>= return . (toEnum . fromIntegral)
retFlags <- ((\hsc_ptr -> peekByteOff hsc_ptr 8) ptr :: IO CInt) >>= return . (toFlags . fromIntegral)
return $ FileAttributeInfo
{ fileAttributeInfoName = retName
, fileAttributeInfoType = retType
, fileAttributeInfoFlags = retFlags }
poke _ = error "not implemented"
fileAttributeStandardType,
fileAttributeStandardIsHidden,
fileAttributeStandardIsBackup,
fileAttributeStandardIsSymlink,
fileAttributeStandardIsVirtual,
fileAttributeStandardName,
fileAttributeStandardDisplayName,
fileAttributeStandardEditName,
fileAttributeStandardCopyName,
fileAttributeStandardIcon,
fileAttributeStandardContentType,
fileAttributeStandardFastContentType,
fileAttributeStandardSize,
fileAttributeStandardAllocatedSize,
fileAttributeStandardSymlinkTarget,
fileAttributeStandardTargetURI,
fileAttributeStandardSortOrder,
fileAttributeEtagValue,
fileAttributeIDFile,
fileAttributeIDFilesystem,
fileAttributeAccessCanRead,
fileAttributeAccessCanWrite,
fileAttributeAccessCanExecute,
fileAttributeAccessCanDelete,
fileAttributeAccessCanTrash,
fileAttributeAccessCanRename,
fileAttributeMountableCanMount,
fileAttributeMountableCanUnmount,
fileAttributeMountableCanEject,
fileAttributeMountableUnixDevice,
fileAttributeMountableUnixDeviceFile,
fileAttributeMountableCanStart,
fileAttributeMountableCanDegraded,
fileAttributeMountableCanStop,
fileAttributeMountableStartStopType,
fileAttributeMountableCanPoll,
fileAttributeMountableHalUDI,
fileAttributeTimeModified,
fileAttributeTimeModifiedUSec,
fileAttributeTimeAccess,
fileAttributeTimeAccessUSec,
fileAttributeTimeChanged,
fileAttributeTimeChangedUSec,
fileAttributeTimeCreated,
fileAttributeTimeCreatedUSec,
fileAttributeUnixDevice,
fileAttributeUnixInode,
fileAttributeUnixMode,
fileAttributeUnixNLink,
fileAttributeUnixUID,
fileAttributeUnixGID,
fileAttributeUnixRDev,
fileAttributeUnixBlockSize,
fileAttributeUnixBlocks,
fileAttributeDosIsMountpoint,
fileAttributeDosIsArchive,
fileAttributeDosIsSystem,
fileAttributeOwnerUser,
fileAttributeOwnerUserReal,
fileAttributeOwnerGroup,
fileAttributeThumbnailPath,
fileAttributeThumbnailingFailed,
fileAttributePreviewIcon,
fileAttributeFilesystemSize,
fileAttributeFilesystemFree,
fileAttributeFilesystemType,
fileAttributeFilesystemReadonly,
fileAttributeGVfsBackend,
fileAttributeSELinuxContext,
fileAttributeTrashItemCount,
fileAttributeFilesystemUsePreview,
fileAttributeTrashOrigPath,
fileAttributeTrashDeletionDate,
fileAttributeStandardDescription
:: String
fileAttributeStandardType = "standard::type"
fileAttributeStandardIsHidden = "standard::is-hidden"
fileAttributeStandardIsBackup = "standard::is-backup"
fileAttributeStandardIsSymlink = "standard::is-symlink"
fileAttributeStandardIsVirtual = "standard::is-virtual"
fileAttributeStandardName = "standard::name"
fileAttributeStandardDisplayName = "standard::display-name"
fileAttributeStandardEditName = "standard::edit-name"
fileAttributeStandardCopyName = "standard::copy-name"
fileAttributeStandardIcon = "standard::icon"
fileAttributeStandardContentType = "standard::content-type"
fileAttributeStandardFastContentType = "standard::fast-content-type"
fileAttributeStandardSize = "standard::size"
fileAttributeStandardAllocatedSize = "standard::allocated-size"
fileAttributeStandardSymlinkTarget = "standard::symlink-target"
fileAttributeStandardTargetURI = "standard::target-uri"
fileAttributeStandardSortOrder = "standard::sort-order"
fileAttributeEtagValue = "etag::value"
fileAttributeIDFile = "id::file"
fileAttributeIDFilesystem = "id::filesystem"
fileAttributeAccessCanRead = "access::can-read"
fileAttributeAccessCanWrite = "access::can-write"
fileAttributeAccessCanExecute = "access::can-execute"
fileAttributeAccessCanDelete = "access::can-delete"
fileAttributeAccessCanTrash = "access::can-trash"
fileAttributeAccessCanRename = "access::can-rename"
fileAttributeMountableCanMount = "mountable::can-mount"
fileAttributeMountableCanUnmount = "mountable::can-unmount"
fileAttributeMountableCanEject = "mountable::can-eject"
fileAttributeMountableUnixDevice = "mountable::unix-device"
fileAttributeMountableUnixDeviceFile = "mountable::unix-device-file"
fileAttributeMountableCanStart = "mountable::can-start"
fileAttributeMountableCanDegraded = "mountable::can-start-degraded"
fileAttributeMountableCanStop = "mountable::can-stop"
fileAttributeMountableStartStopType = "mountable::start-stop-type"
fileAttributeMountableCanPoll = "mountable::can-poll"
fileAttributeMountableIsMediaCheckAutomatic = "mountable::is-media-check-automatic"
fileAttributeMountableHalUDI = "mountable::hal-udi"
fileAttributeTimeModified = "time::modified"
fileAttributeTimeModifiedUSec = "time::modified-usec"
fileAttributeTimeAccess = "time::access"
fileAttributeTimeAccessUSec = "time::access-usec"
fileAttributeTimeChanged = "time::changed"
fileAttributeTimeChangedUSec = "time::changed-usec"
fileAttributeTimeCreated = "time::created"
fileAttributeTimeCreatedUSec = "time::created-usec"
fileAttributeUnixDevice = "unix::device"
fileAttributeUnixInode = "unix::inode"
fileAttributeUnixMode = "unix::mode"
fileAttributeUnixNLink = "unix::nlink"
fileAttributeUnixUID = "unix::uid"
fileAttributeUnixGID = "unix::gid"
fileAttributeUnixRDev = "unix::rdev"
fileAttributeUnixBlockSize = "unix::block-size"
fileAttributeUnixBlocks = "unix::blocks"
fileAttributeDosIsMountpoint = "unix::is-mountpoint"
fileAttributeDosIsArchive = "dos::is-archive"
fileAttributeDosIsSystem = "dos::is-system"
fileAttributeOwnerUser = "owner::user"
fileAttributeOwnerUserReal = "owner::user-real"
fileAttributeOwnerGroup = "owner::group"
fileAttributeThumbnailPath = "thumbnail::path"
fileAttributeThumbnailingFailed = "thumbnail::failed"
fileAttributePreviewIcon = "preview::icon"
fileAttributeFilesystemSize = "filesystem::size"
fileAttributeFilesystemFree = "filesystem::free"
fileAttributeFilesystemType = "filesystem::type"
fileAttributeFilesystemReadonly = "filesystem::readonly"
fileAttributeGVfsBackend = "gvfs::backend"
fileAttributeSELinuxContext = "selinux::context"
fileAttributeTrashItemCount = "trash::item-count"
fileAttributeFilesystemUsePreview = "filesystem::use-preview"
fileAttributeStandardDescription = "standard::description"
fileAttributeTrashOrigPath = "trash::orig-path"
fileAttributeTrashDeletionDate = "trash::deletion-date"