gtk3-0.13.7: Binding to the Gtk+ graphical user interface library.

Maintainergtk2hs-users\@lists.sourceforge.net
Stabilitydeprecated
Portabilityportable (depends on GHC)
Safe HaskellNone
LanguageHaskell98

Graphics.UI.Gtk.Gdk.Events

Description

Definiton of a record that contains event information. Deprecated in favor of EventM and not exported by Gtk.hs.

Synopsis

Documentation

data Modifier Source

Keyboard modifiers that are depressed when the user presses a key or a mouse button.

  • This data type is used to build lists of modifers that were active during an event.
  • The Apple key on Macintoshs is mapped to Alt2 and the Meta key (if available).
  • Since Gtk 2.10, there are also Super, Hyper and Meta modifiers which are simply generated from Alt .. Compose modifier keys, depending on the mapping used by the windowing system. Due to one key being mapped to e.g. Alt2 and Meta, you shouldn't pattern match directly against a certain key but check whether a key is in the list using the elem function, say.

type TimeStamp = Word32 Source

The time (in milliseconds) when an event happened. This is used mostly for ordering events and responses to events.

currentTime :: TimeStamp Source

Represents the current time, and can be used anywhere a time is expected.

Deprecated way of conveying event information.

data Event Source

Events that are delivered to a widget.

  • Any given signal only emits one of these variants as described in Widget. Many events share common attributes:
  • The eventSent attribute is True if the event was not created by the user but by another application.
  • The eventTime attribute contains a time in milliseconds when the event happened.
  • The eventX and eventY attributes contain the coordinates relative to the DrawWindow associated with this widget. The values can contain sub-pixel information if the input device is a graphics tablet or the like.
  • The eventModifier attribute denotes what modifier key was pressed during the event.

Constructors

Event

An event that is not in one of the more specific categories below. This includes delete, destroy, map and unmap events. These events have no extra information associated with them.

Fields

eventSent :: Bool
 
Expose

The expose event.

  • A region of widget that receives this event needs to be redrawn. This event is the result of revealing part or all of a window or by the application calling functions like widgetQueueDrawArea.

Fields

eventSent :: Bool
 
eventArea :: Rectangle

A bounding box denoting what needs to be updated. For a more detailed information on the area that needs redrawing, use the next field.

eventCount :: Int

The number of contiguous Expose events following this one. The only use for this is "exposure compression", i.e. handling all contiguous Expose events in one go, though Gdk performs some exposure compression so this is not normally needed.

Motion

Mouse motion.

  • Captures the movement of the mouse cursor while it is within the area of the widget.

Fields

eventSent :: Bool
 
eventTime :: TimeStamp

The time of the event in milliseconds.

eventX :: Double
 
eventY :: Double
 
eventModifier :: [Modifier]
 
eventIsHint :: Bool

Indicate if this event is only a hint of the motion.

eventXRoot :: Double

The coordinates of the click relative to the screen origin.

eventYRoot :: Double

The coordinates of the click relative to the screen origin.

Button

A mouse button was pressed or released.

  • This event is triggered if the mouse button was pressed or released while the mouse cursor was within the region of the widget.

Fields

eventSent :: Bool
 
eventClick :: Click

The kind of button press, see Click. Note that double clicks will trigger this event with eventClick set to SingleClick, ReleaseClick, SingleClick, DoubleClick, ReleaseClick. Triple clicks will produce this sequence followed by SingleClick, DoubleClick, TripleClick, ReleaseClick.

eventTime :: TimeStamp

The time of the event in milliseconds.

eventX :: Double
 
eventY :: Double
 
eventModifier :: [Modifier]
 
eventButton :: MouseButton

The button that was pressed.

eventXRoot :: Double

The coordinates of the click relative to the screen origin.

eventYRoot :: Double

The coordinates of the click relative to the screen origin.

Key

A key was pressed while the widget had the input focus.

  • If the widget has the current input focus (see widgetSetCanFocus) it will receive key pressed events. Certain key combinations are of no interest to a normal widget like Alt-F to access the file menu. For all these keys, the handler must return False to indicate that the key stroke should be propagated to the parent widget. At the top-level widget, keyboard shortcuts like Alt-F are turned into the corresponding signals.

Fields

eventRelease :: Bool

This flag is set if the key was released. This flag makes it possible to connect the same handler to onKeyPress and onKeyRelease.

eventSent :: Bool
 
eventTime :: TimeStamp

The time of the event in milliseconds.

eventModifier :: [Modifier]
 
eventWithCapsLock :: Bool

This flag is True if Caps Lock is on while this key was pressed.

eventWithNumLock :: Bool

This flag is True if Number Lock is on while this key was pressed.

eventWithScrollLock :: Bool

This flag is True if Scroll Lock is on while this key was pressed.

eventKeyVal :: KeyVal

A number representing the key that was pressed or released. A more convenient interface is provided by the next two fields.

eventKeyName :: DefaultGlibString

A string representing the key that was pressed or released.

  • This string contains a description of the key rather than what should appear on screen. For example, pressing "1" on the keypad results in KP_1. Of particular interest are F1 till F12, for a complete list refer to "gdk/gdkkeysyms.h" where all possible values are defined. The corresponding strings are the constants without the GDK_ prefix.
eventKeyChar :: Maybe Char

A character matching the key that was pressed.

  • This entry can be used to build up a whole input string. The character is Nothing if the key does not correspond to a simple unicode character.
Crossing

Mouse cursor crossing event.

  • This event indicates that the mouse cursor is hovering over this widget. It is used to set a widget into the pre-focus state where some GUI elements like buttons on a toolbar change their appearance.

Fields

eventSent :: Bool
 
eventTime :: TimeStamp

The time of the event in milliseconds.

eventX :: Double
 
eventY :: Double
 
eventXRoot :: Double

The coordinates of the click relative to the screen origin.

eventYRoot :: Double

The coordinates of the click relative to the screen origin.

eventLeaves :: Bool

This flag is false if the widget was entered, it is true when the widget the mouse cursor left the widget.

eventCrossingMode :: CrossingMode

Kind of enter/leave event.

  • The mouse cursor might enter this widget because it grabs the mouse cursor for e.g. a modal dialog box.
eventNotifyType :: NotifyType

Information on from what level of the widget hierarchy the mouse cursor came.

eventModifier :: [Modifier]
 
Focus

Gaining or loosing input focus.

Fields

eventSent :: Bool
 
eventInFocus :: Bool

This flag is True if the widget receives the focus and False if it just lost the input focus.

Configure

The widget's size has changed.

  • In response to this event the application can allocate resources that are specific to the size of the widget. It is emitted when the widget is shown the first time and on every resize.

Fields

eventSent :: Bool
 
eventXParent :: Int

Position within the parent window.

eventYParent :: Int

Position within the parent window.

eventWidth :: Int
 
eventHeight :: Int
 
Visibility

Change of visibility of a widget.

Fields

eventSent :: Bool
 
eventVisible :: VisibilityState

Denote what portions of the widget is visible.

Scroll

Wheel movement of the mouse.

  • This action denotes that the content of the widget should be scrolled. The event is triggered by the movement of the mouse wheel. Surrounding scroll bars are independant of this signal. Most mice do not have buttons for horizontal scrolling, hence eventDirection will usually not contain ScrollLeft and ScrollRight. Mice with additional buttons may not work on X since only five buttons are supported (the three main buttons and two for the wheel).
  • The handler of this signal should update the scroll bars that surround this widget which in turn tell this widget to update.

Fields

eventSent :: Bool
 
eventTime :: TimeStamp

The time of the event in milliseconds.

eventX :: Double
 
eventY :: Double
 
eventDirection :: ScrollDirection
 
eventXRoot :: Double

The coordinates of the click relative to the screen origin.

eventYRoot :: Double

The coordinates of the click relative to the screen origin.

WindowState

Indicate how the appearance of this window has changed.

Fields

eventSent :: Bool
 
eventWindowMask :: [WindowState]

The mask indicates which flags have changed.

eventWindowState :: [WindowState]

The state indicates the current state of the window.

Proximity

The state of the pen of a graphics tablet pen or touchscreen device.

Fields

eventSent :: Bool
 
eventTime :: TimeStamp

The time of the event in milliseconds.

eventInContact :: Bool

Whether the stylus has moved in or out of contact with the tablet.

Instances

type EventButton = Event Source

An event that contains information on a button press.

type EventScroll = Event Source

An event that contains information on scrolling.

type EventMotion = Event Source

An event that contains information on the movement of the mouse pointer.

type EventExpose = Event Source

An area of the DrawWindow needs redrawing.

type EventKey = Event Source

An event that contains information about a key press.

type EventConfigure = Event Source

An event that contains the new size of a window.

type EventCrossing = Event Source

Generated when the pointer enters or leaves a window.

type EventFocus = Event Source

An event that informs about a change of the input focus.

type EventProperty = Event Source

An event that indicates a property of the window changed.

type EventProximity = Event Source

An event that indicates that the pen of a graphics table is touching or not touching the tablet.

type EventVisibility = Event Source

Parts of the window have been exposed or obscured.

type EventWindowState = Event Source

The window state has changed.

type EventGrabBroken = Event Source

A grab has been broken by unusual means.

data NotifyType Source

Information on from what level of the widget hierarchy the mouse cursor came.

NotifyAncestor
The window is entered from an ancestor or left towards an ancestor.
NotifyVirtual
The pointer moves between an ancestor and an inferior of the window.
NotifyInferior
The window is entered from an inferior or left towards an inferior.
NotifyNonlinear
The window is entered from or left towards a window which is neither an ancestor nor an inferior.
NotifyNonlinearVirtual
The pointer moves between two windows which are not ancestors of each other and the window is part of the ancestor chain between one of these windows and their least common ancestor.
NotifyUnknown
The level change does not fit into any of the other categories or could not be determined.

data WindowState Source

The state a DrawWindow is in.

Instances

Bounded WindowState 
Enum WindowState

These are hints for the window manager that indicate what type of function the window has. The window manager can use this when determining decoration and behaviour of the window. The hint must be set before mapping the window.

See the extended window manager hints specification for more details about window types.

Eq WindowState 
Show WindowState 
Flags WindowState 

data Click Source

Type of mouse click

Instances

data Rectangle :: *

Rectangle

  • Specifies x, y, width and height

Constructors

Rectangle Int Int Int Int