gtk3-0.15.10: Binding to the Gtk+ 3 graphical user interface library

Maintainer | gtk2hs-users@lists.sourceforge.net
Stability | provisional
Portability | portable (depends on GHC)
Safe Haskell | None
Language | Haskell98

Graphics.UI.Gtk.General.Selection

Contents

- Types
- Constants
- Constructors
- Methods
- Signals

Description

Functions for handling inter-process communication via selections.

Synopsis

- type InfoId = CUInt
- data Atom
- type TargetTag = Atom
- type SelectionTag = Atom
- type SelectionTypeTag = Atom
- data TargetList
- type SelectionDataM a = ReaderT (Ptr ()) IO a
- data TargetFlags
  - = TargetSameApp
  - | TargetSameWidget
  - | TargetOtherApp
  - | TargetOtherWidget
- targetString :: TargetTag
- selectionTypeAtom :: SelectionTypeTag
- selectionTypeInteger :: SelectionTypeTag
- selectionTypeString :: SelectionTypeTag
- atomNew :: GlibString string => string -> IO Atom
- targetListNew :: IO TargetList
- targetListAdd :: TargetList -> TargetTag -> [TargetFlags] -> InfoId -> IO ()
- targetListAddTextTargets :: TargetList -> InfoId -> IO ()
- targetListAddImageTargets :: TargetList -> InfoId -> Bool -> IO ()
- targetListAddUriTargets :: TargetList -> InfoId -> IO ()
- targetListAddRichTextTargets :: TextBufferClass tb => TargetList -> InfoId -> Bool -> tb -> IO ()
- targetListRemove :: TargetList -> TargetTag -> IO ()
- selectionAddTarget :: WidgetClass widget => widget -> SelectionTag -> TargetTag -> InfoId -> IO ()
- selectionClearTargets :: WidgetClass widget => widget -> SelectionTag -> IO ()
- selectionOwnerSet :: WidgetClass widget => Maybe widget -> SelectionTag -> TimeStamp -> IO Bool
- selectionOwnerSetForDisplay :: WidgetClass widget => Display -> Maybe widget -> SelectionTag -> TimeStamp -> IO Bool
- selectionRemoveAll :: WidgetClass widget => widget -> IO ()
- selectionDataSet :: (Integral a, Storable a) => SelectionTypeTag -> [a] -> SelectionDataM ()
- selectionDataIsValid :: SelectionDataM Bool
- selectionDataSetText :: GlibString string => string -> SelectionDataM Bool
- selectionDataGetText :: GlibString string => SelectionDataM (Maybe string)
- selectionDataSetPixbuf :: Pixbuf -> SelectionDataM Bool
- selectionDataGetPixbuf :: SelectionDataM (Maybe Pixbuf)
- selectionDataSetURIs :: GlibString string => [string] -> SelectionDataM Bool
- selectionDataGetURIs :: GlibString string => SelectionDataM (Maybe [string])
- selectionDataTargetsIncludeImage :: Bool -> SelectionDataM Bool
- selectionDataGetTarget :: SelectionDataM TargetTag
- selectionDataGetTargets :: SelectionDataM [TargetTag]
- selectionDataTargetsIncludeText :: SelectionDataM Bool
- selectionDataTargetsIncludeUri :: SelectionDataM Bool
- selectionDataTargetsIncludeRichText :: TextBufferClass tb => tb -> SelectionDataM Bool
- selectionGet :: WidgetClass self => Signal self (InfoId -> TimeStamp -> SelectionDataM ())
- selectionReceived :: WidgetClass self => Signal self (TimeStamp -> SelectionDataM ())

# Types

type InfoId = CUInt Source #

A number that the application can use to differentiate between different data types or application states.

data Atom Source #

An atom is an index into a global string table. It is possible to associate binary data with each entry. This facility is used for inter-application data exchange such as properties of `DrawWindow` (using `PropertyTag`), `Clipboard` or `Drag` (`SelectionId` and `TargetId`).

#### Instances

Instances details

Show Atom Source # |
Instance details Defined in Graphics.UI.Gtk.General.DNDTypes Methods showsPrec :: Int -> Atom -> ShowS Source # show :: Atom -> String Source # showList :: [Atom] -> ShowS Source #
Eq Atom Source # |
Instance details Defined in Graphics.UI.Gtk.General.DNDTypes Methods (==) :: Atom -> Atom -> Bool Source # (/=) :: Atom -> Atom -> Bool Source #

type TargetTag = Atom Source #

A tag that uniquely identifies a target. A target describes the format of the underlying data source, for instance, it might be a string. A single selection may support multiple targets: suppose a new target is created for the Haskell data type `Double`. In this case, the value of the floating point number could also be offered as a string.

type SelectionTag = Atom Source #

A tag that uniquely identifies a selection. A selection denotes the exchange mechanism that is being used, for instance, the clipboard is the most common exchange mechanism. For drag and drop applications, a new selection tag is usually created for each different kind of data that is being exchanged.

type SelectionTypeTag = Atom Source #

A tag that defines the encoding of the binary data. For instance, a string might be encoded as UTF-8 or in a different locale. Each encoding would use the same `TargetTag` but a different `SelectionTypeTag`.

data TargetList Source #

A `TargetList` contains information about all possible formats (represented as `TargetTag`) that a widget can create or receive in form of a selection.

type SelectionDataM a = ReaderT (Ptr ()) IO a Source #

A monad providing access to selection data.

data TargetFlags Source #

The `TargetFlags` enumeration is used to specify constraints on an entry in a `TargetList`. These flags are only used for drag and drop.

- If the `TargetSameApp` flag is set, the target will only be selected for drags within a single application.
- If the `TargetSameWidget` flag is set, the target will only be selected for drags within a single widget.

Constructors

TargetSameApp |
TargetSameWidget |
TargetOtherApp |
TargetOtherWidget |

#### Instances

Instances details

Bounded TargetFlags Source # |
Instance details Defined in Graphics.UI.Gtk.General.Enums Methods minBound :: TargetFlags Source # maxBound :: TargetFlags Source #
Enum TargetFlags Source # | Is the text written from left to right or the exotic way?

Instance details

Defined in Graphics.UI.Gtk.General.Enums

Methods

succ :: TargetFlags -> TargetFlags Source #

pred :: TargetFlags -> TargetFlags Source #

toEnum :: Int -> TargetFlags Source #

fromEnum :: TargetFlags -> Int Source #

enumFrom :: TargetFlags -> [TargetFlags] Source #

enumFromThen :: TargetFlags -> TargetFlags -> [TargetFlags] Source #

enumFromTo :: TargetFlags -> TargetFlags -> [TargetFlags] Source #

enumFromThenTo :: TargetFlags -> TargetFlags -> TargetFlags -> [TargetFlags] Source #

Show TargetFlags Source # |
Instance details Defined in Graphics.UI.Gtk.General.Enums Methods showsPrec :: Int -> TargetFlags -> ShowS Source # show :: TargetFlags -> String Source # showList :: [TargetFlags] -> ShowS Source #
Eq TargetFlags Source # |
Instance details Defined in Graphics.UI.Gtk.General.Enums Methods (==) :: TargetFlags -> TargetFlags -> Bool Source # (/=) :: TargetFlags -> TargetFlags -> Bool Source #
Flags TargetFlags Source # |
Instance details Defined in Graphics.UI.Gtk.General.Enums

# Constants

targetString :: TargetTag Source #

If this target is provided by a selection, then the data is a string.

selectionTypeAtom :: SelectionTypeTag Source #

The type indicating that the associated data is itself a (list of) `Atom`s.

selectionTypeInteger :: SelectionTypeTag Source #

The type indicating that the associated data consists of integers.

selectionTypeString :: SelectionTypeTag Source #

The type indicating that the associated data is a string without further information on its encoding.

# Constructors

atomNew :: GlibString string => string -> IO Atom Source #

Create a new `TargetTag`, `SelectionTag`, `SelectionTypeTag` or `PropertyTag`. Note that creating two target tags with the same name will create the same tag, in particular, the tag will be the same across different applications. Note that the name of an `Atom` can be printed by `show` though comparing the atom is merely an integer comparison.

targetListNew :: IO TargetList Source #

Create a new, empty `TargetList`.

# Methods

targetListAdd :: TargetList -> TargetTag -> [TargetFlags] -> InfoId -> IO () Source #

Append another target to the given `TargetList`.

- Note that the `TargetFlags` are only used for drag and drop, not in normal selection handling.

targetListAddTextTargets :: TargetList -> InfoId -> IO () Source #

Append all text targets supported by the selection mechanism to the target list. All targets are added with the same `InfoId`.

- Since Gtk 2.6.

targetListAddImageTargets :: TargetList -> InfoId -> Bool -> IO () Source #

Append all image targets supported by the selection mechanism to the target list. All targets are added with the same `InfoId`. If the boolean flag is set, only targets will be added which Gtk+ knows how to convert into a `Pixbuf`.

- Since Gtk 2.6.

targetListAddUriTargets :: TargetList -> InfoId -> IO () Source #

Append all URI (universal resource indicator, fomerly URL) targets supported by the selection mechanism to the target list. All targets are added with the same `InfoId`.

- Since Gtk 2.6.

targetListAddRichTextTargets :: TextBufferClass tb => TargetList -> InfoId -> Bool -> tb -> IO () Source #

Append all rich text targets registered with `textBufferRegisterSerializeFormat` to the target list. All targets are added with the same `InfoId`. If the boolean flag is `True` then deserializable rich text formats will be added, serializable formats otherwise.

- Since Gtk 2.10.

targetListRemove :: TargetList -> TargetTag -> IO () Source #

Remove a target from a target list.

selectionAddTarget :: WidgetClass widget => widget -> SelectionTag -> TargetTag -> InfoId -> IO () Source #

Appends a specified target to the list of supported targets for a given widget and selection.

selectionClearTargets :: WidgetClass widget => widget -> SelectionTag -> IO () Source #

Remove all targets registered for the given selection for the widget.

selectionOwnerSet :: WidgetClass widget => Maybe widget -> SelectionTag -> TimeStamp -> IO Bool Source #

Claims ownership of a given selection for a particular widget, or, if widget is `Nothing`, release ownership of the selection.

selectionOwnerSetForDisplay :: WidgetClass widget => Display -> Maybe widget -> SelectionTag -> TimeStamp -> IO Bool Source #

Set the ownership of a given selection and display.

selectionRemoveAll :: WidgetClass widget => widget -> IO () Source #

Removes all handlers and unsets ownership of all selections for a widget. Called when widget is being destroyed. This function will not generally be called by applications.

selectionDataSet :: (Integral a, Storable a) => SelectionTypeTag -> [a] -> SelectionDataM () Source #

Stores new data in the `SelectionDataM` monad. The stored data may only be an array of integer types that are no larger than 32 bits.

selectionDataIsValid :: SelectionDataM Bool Source #

Check if the currently stored data is valid.

- If this function returns `False`, no data is set in this selection and `selectionDataGet` will return `Nothing` no matter what type is requested.

selectionDataSetText :: GlibString string => string -> SelectionDataM Bool Source #

Sets the contents of the selection from a string. The string is converted to the form determined by the allowed targets of the selection.

- Returns `True` if setting the text was successful.

selectionDataGetText :: GlibString string => SelectionDataM (Maybe string) Source #

Gets the contents of the selection data as a string.

selectionDataSetPixbuf :: Pixbuf -> SelectionDataM Bool Source #

Sets the contents of the selection from a `Pixbuf`. The pixbuf is converted to the form determined by the allowed targets of the selection.

- Returns `True` if setting the `Pixbuf` was successful. Since Gtk 2.6.

selectionDataGetPixbuf :: SelectionDataM (Maybe Pixbuf) Source #

Gets the contents of the selection data as a `Pixbuf`.

- Since Gtk 2.6.

selectionDataSetURIs :: GlibString string => [string] -> SelectionDataM Bool Source #

Sets the contents of the selection from a list of URIs. The string is converted to the form determined by the possible targets of the selection.

- Returns `True` if setting the URIs was successful. Since Gtk 2.6.

selectionDataGetURIs :: GlibString string => SelectionDataM (Maybe [string]) Source #

Gets the contents of the selection data as list of URIs. Returns `Nothing` if the selection did not contain any URIs.

- Since Gtk 2.6.

selectionDataTargetsIncludeImage Source #

Arguments

:: Bool | whether to accept only targets for which GTK+ knows how to convert a pixbuf into the format
-> SelectionDataM Bool |

Given a `SelectionDataM` holding a list of targets, determines if any of the targets in targets can be used to provide a `Pixbuf`.

- Since Gtk 2.6

selectionDataGetTarget :: SelectionDataM TargetTag Source #

Retrieve the currently set `TargetTag` in the selection.

selectionDataGetTargets :: SelectionDataM [TargetTag] Source #

Queries the content type of the selection data as a list of targets. Whenever the application is asked whether certain targets are acceptable, it is handed a selection that contains a list of `TargetTag`s as payload. A similar result could be achieved using 'selectionDataGet selectionTypeAtom'.

selectionDataTargetsIncludeText :: SelectionDataM Bool Source #

Given a `SelectionDataM` holding a list of targets, determines if any of the targets in targets can be used to provide text.

selectionDataTargetsIncludeUri :: SelectionDataM Bool Source #

Given a `SelectionDataM` holding a list of targets, determines if any of the targets in targets can be used to provide URIs.

- Since Gtk 2.10

selectionDataTargetsIncludeRichText :: TextBufferClass tb => tb -> SelectionDataM Bool Source #

Given a `SelectionDataM` holding a list of targets, check if, well, dunno really. FIXME: what does the `TextBuffer` do?

- Since Gtk 2.10

# Signals

selectionGet :: WidgetClass self => Signal self (InfoId -> TimeStamp -> SelectionDataM ()) Source #

Emitted in order to ask the application for selection data. Within the handler the function `selectionDataSet` or one of its derivatives should be called.

selectionReceived :: WidgetClass self => Signal self (TimeStamp -> SelectionDataM ()) Source #

Pass the supplied selection data to the application. The application is expected to read the data using `selectionDataGet` or one of its derivatives.