gtk-0.14.2: Graphics/UI/Gtk/General/Enums.chs
{-# LANGUAGE CPP #-}
-- -*-haskell-*-
-- GIMP Toolkit (GTK) Enumerations
--
-- Author : Axel Simon, Manuel Chakravarty
--
-- Created: 13 January 1999
--
-- Copyright (C) 1999..2005 Axel Simon, Manuel Chakravarty
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- This library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- |
-- Maintainer : gtk2hs-users@lists.sourceforge.net
-- Stability : provisional
-- Portability : portable (depends on GHC)
--
-- General enumeration types.
--
module Graphics.UI.Gtk.General.Enums (
AccelFlags(..),
#if GTK_CHECK_VERSION(3,0,0)
Align(..),
#endif
ArrowType(..),
AttachOptions(..),
#if GTK_CHECK_VERSION(3,10,0)
BaselinePosition(..),
#endif
MouseButton(..),
ButtonBoxStyle(..),
CalendarDisplayOptions(..),
Click(..),
CornerType(..),
DeleteType(..),
DestDefaults(..),
#if GTK_CHECK_VERSION(2,12,0)
DragResult(..),
#endif
DirectionType(..),
Justification(..),
#if GTK_CHECK_VERSION(3,6,0)
LevelBarMode(..),
#endif
#if GTK_MAJOR_VERSION < 3
#ifndef DISABLE_DEPRECATED
MatchType(..),
#endif
#endif
MenuDirectionType(..),
#if GTK_MAJOR_VERSION < 3
#if GTK_CHECK_VERSION(2,8,0)
MetricType(..),
#endif
#endif
MovementStep(..),
Orientation(..),
Packing(..), toPacking, fromPacking,
PackType(..),
PathPriorityType(..),
PathType(..),
PolicyType(..),
PositionType(..),
#if GTK_MAJOR_VERSION < 3
ProgressBarOrientation(..),
#endif
ReliefStyle(..),
ResizeMode(..),
ScrollType(..),
ScrollStep (..),
SelectionMode(..),
ShadowType(..),
#if GTK_CHECK_VERSION(3,0,0)
StateFlags(..),
#endif
SortType(..),
StateType(..),
#if GTK_MAJOR_VERSION < 3
#ifndef DISABLE_DEPRECATED
SubmenuDirection(..),
SubmenuPlacement(..),
#endif
#endif
SpinButtonUpdatePolicy(..),
SpinType(..),
TargetFlags(..),
TextDirection(..),
TextSearchFlags(..),
TextWindowType(..),
ToolbarStyle(..),
TreeViewColumnSizing(..),
--TroughType(..),
#if GTK_MAJOR_VERSION < 3
UpdateType(..),
Visibility(..),
#endif
WindowPosition(..),
WindowType(..),
WrapMode(..),
#if GTK_CHECK_VERSION(2,16,0)
EntryIconPosition(..),
#endif
#if GTK_MAJOR_VERSION < 3
AnchorType (..),
#endif
module Graphics.UI.Gtk.Gdk.Enums
) where
import System.Glib.Flags (Flags)
import Graphics.UI.Gtk.Gdk.Enums
{#context lib="gtk" prefix ="gtk"#}
-- | State of an accelerator
--
{#enum AccelFlags {underscoreToCase} deriving(Bounded,Eq,Show)#}
instance Flags AccelFlags
#if GTK_CHECK_VERSION(3,0,0)
-- | State of an accelerator
--
{#enum Align {underscoreToCase} deriving(Bounded,Eq,Show)#}
#endif
-- | Arrow directions for the arrow widget
--
{#enum ArrowType {underscoreToCase} deriving (Eq,Show)#}
-- | Child widget attach options for table containers
--
{#enum AttachOptions {underscoreToCase} deriving(Bounded,Eq,Show)#}
instance Flags AttachOptions
#if GTK_CHECK_VERSION(3,10,0)
-- | Whenever a container has some form of natural row it may align children in
-- that row along a common typographical baseline. If the amount of verical space
-- in the row is taller than the total requested height of the baseline-aligned
-- children then it can use a BaselinePosition to select where to put the
-- baseline inside the extra availible space.
--
{#enum BaselinePosition {underscoreToCase} deriving (Eq,Show)#}
#endif
-- | Mouse buttons.
--
data MouseButton = LeftButton
| MiddleButton
| RightButton
| OtherButton Int
deriving (Eq,Show)
instance Enum MouseButton where
toEnum 1 = LeftButton
toEnum 2 = MiddleButton
toEnum 3 = RightButton
toEnum n = OtherButton (fromIntegral n)
fromEnum LeftButton = 1
fromEnum MiddleButton = 2
fromEnum RightButton = 3
fromEnum (OtherButton n) = fromIntegral n
-- | Dictate the style that a ButtonBox uses to align it contents
--
{#enum ButtonBoxStyle {underscoreToCase} deriving (Eq,Show)#}
-- | Specify which items of a calendar should be displayed.
--
{#enum CalendarDisplayOptions {underscoreToCase} deriving(Bounded,Eq,Show)#}
instance Flags CalendarDisplayOptions
-- | Type of mouse click
--
data Click = SingleClick
| DoubleClick
| TripleClick
| ReleaseClick
deriving (Eq,Show,Enum)
-- | Specifies in which corner a child widget should be placed
--
{#enum CornerType {underscoreToCase} deriving (Eq,Show)#}
-- | Editing option
--
{#enum DeleteType {underscoreToCase} deriving (Eq,Show)#}
-- | The 'DestDefaults' enumeration specifies the various types of action that
-- will be taken on behalf of the user for a drag destination site.
--
-- * 'DestDefaultMotion': If set for a widget, GTK+, during a drag over this
-- widget will check if the drag matches this widget's list of possible
-- targets and actions. GTK+ will then call
-- 'Graphics.UI.Gtk.Gdk.Drag.dragStatus' as appropriate.
--
-- * 'DestDefaultHighlight': If set for a widget, GTK+ will draw a
-- highlight on this widget as long as a drag is over this widget and the
-- widget drag format and action are acceptable.
--
-- * 'DestDefaultDrop': If set for a widget, when a drop occurs, GTK+ will
-- will check if the drag matches this widget's list of possible targets and
-- actions. If so, GTK+ will call 'Graphics.UI.Gtk.Gdk.Drag.dragGetData' on
-- behalf of the widget. Whether or not the drop is successful, GTK+ will
-- call 'Graphics.UI.Gtk.Gdk.Drag.dragFinish'. If the action was a move,
-- then if the drag was successful, then @True@ will be passed for the
-- delete parameter to 'Graphics.UI.Gtk.Gdk.Drag.dragFinish'
--
-- * 'DestDefaultAll': If set, specifies that all default actions should be
-- taken.
--
{#enum DestDefaults {underscoreToCase} deriving (Bounded,Eq,Show)#}
instance Flags DestDefaults
#if GTK_CHECK_VERSION(2,12,0)
-- | Gives an indication why a drag operation failed. The value can by
-- obtained by connecting to the 'dragFailed' signal.
--
-- * 'DragResultSuccess': The drag operation was successful
--
-- * 'DragResultNoTarget': No suitable drag target
--
-- * 'DragResultUserCancelled': The user cancelled the drag operation
--
-- * 'DragResultTimeoutExpired': The drag operation timed out
--
-- * 'DragResultGrabBroken': The pointer or keyboard grab used for the drag
-- operation was broken
--
-- * 'DragResultError': The drag operation failed due to some unspecified error
--
{#enum DragResult {underscoreToCase} deriving (Bounded,Eq,Show)#}
#endif
-- | Editing direction
--
{#enum DirectionType {underscoreToCase} deriving (Eq,Show)#}
-- | Justification for label and maybe other widgets (text?)
--
{#enum Justification {underscoreToCase} deriving (Eq,Show)#}
#if GTK_CHECK_VERSION(3,6,0)
{#enum LevelBarMode {underscoreToCase} deriving (Eq,Show)#}
#endif
#if GTK_MAJOR_VERSION < 3
#ifndef DISABLE_DEPRECATED
-- | Some kind of string search options
--
-- Removed in Gtk3.
{#enum MatchType {underscoreToCase} deriving (Eq,Show)#}
#endif
#endif
-- | From where was a menu item entered?
--
{#enum MenuDirectionType {underscoreToCase} deriving (Eq,Show)#}
#if GTK_MAJOR_VERSION < 3
-- | Units of measure
--
-- Removed in Gtk3.
{#enum MetricType {underscoreToCase} deriving (Eq,Show)#}
#endif
-- | Movement in text widget
--
{#enum MovementStep {underscoreToCase} deriving (Eq,Show)#}
-- | Orientation is good
--
{#enum Orientation {underscoreToCase} deriving (Eq,Show)#}
-- | Packing parameters of a widget
--
-- * The 'Packing' parameter determines how the child behaves in the horizontal
-- or vertical way in an 'Graphics.UI.Gtk.Layout.HBox' or
-- 'Graphics.UI.Gtk.Layout.VBox', respectively. 'PackNatural'
-- means the child is as big as it requests. It will stay at the start or
-- end of a 'Graphics.UI.Gtk.Layout.Box' if there is more space available.
-- All children packed with 'PackRepel' will be padded on both sides with
-- additional space. 'PackGrow' will increase the size of a widget so that it
-- covers the available space. A menu bar, for instance, should always
-- stay at the top of a window and should only occupy as little space
-- as possible. Hence it should be packed at the start of a
-- 'Graphics.UI.Gtk.Layout.VBox' with
-- the packing option 'PackNatural'. The working area of a window
-- (e.g. the text area in an editor) should expand when the window is
-- resized. Here the packing option 'PackGrow' is the right choice and
-- it is irrelevant whether the main area is inserted at the start or
-- the end of a box. Finally 'PackRepel' is most useful in a window
-- where no widget can make use of excess space. Examples include a
-- dialog box without list boxes or text fields.
--
data Packing = PackRepel
| PackGrow
| PackNatural
deriving (Enum,Eq,Show)
-- The conversions between our Packing type and Gtk's expand and fill
-- properties.
--
toPacking :: Bool -> Bool -> Packing
toPacking expand True = PackGrow
toPacking True fill = PackRepel
toPacking False fill = PackNatural
fromPacking :: Packing -> (Bool, Bool)
fromPacking PackGrow = (True,True)
fromPacking PackRepel = (True,False)
fromPacking PackNatural = (False,False)
-- | Packing of widgets at start or end in a box
--
{#enum PackType {underscoreToCase} deriving (Eq,Show)#}
-- | Priorities
--
{#enum PathPriorityType {underscoreToCase} deriving (Eq,Show)#}
-- | Widget identification path
--
{#enum PathType {underscoreToCase} deriving (Eq,Show)#}
-- | Scrollbar policy types (for scrolled windows)
--
{#enum PolicyType {underscoreToCase} deriving (Eq,Show)#}
-- | Position a scale's value is drawn relative to the
-- trough
--
{#enum PositionType {underscoreToCase} deriving (Eq,Show)#}
#if GTK_MAJOR_VERSION < 3
-- | Is the ProgressBar horizontally or vertically
-- directed?
--
-- Removed in Gtk3.
{#enum ProgressBarOrientation {underscoreToCase} deriving (Eq,Show)#}
#endif
-- | I don't have a clue.
--
{#enum ReliefStyle {underscoreToCase} deriving (Eq,Show)#}
-- | Resize mode, for containers
--
-- * 'ResizeParent' Pass resize request to the parent
--
-- * 'ResizeQueue' Queue resizes on this widget
--
-- * 'ResizeImmediate' Perform the resizes now
--
{#enum ResizeMode {underscoreToCase} deriving (Eq,Show)#}
-- | Scrolling type
--
{#enum ScrollType {underscoreToCase} deriving (Eq,Show)#}
-- | Scrolling step
--
{#enum ScrollStep {underscoreToCase} deriving (Eq,Show)#}
-- | Mode in which selections can be performed
--
-- * There is a deprecated entry SelectionExtended which should have the same
-- value as SelectionMultiple. C2HS chokes on that construct.
--
data SelectionMode = SelectionNone
| SelectionSingle
| SelectionBrowse
| SelectionMultiple
deriving (Enum,Eq,Show)
-- {#enum SelectionMode {underscoreToCase} deriving (Eq,Show)#}
-- | Shadow types
--
{#enum ShadowType {underscoreToCase} deriving (Eq,Show)#}
#if GTK_CHECK_VERSION(3,0,0)
-- | Describes a widget state. Widget states are used to match the widget against
-- CSS pseudo-classes. Note that GTK extends the regular CSS classes and
-- sometimes uses different names.
--
{#enum StateFlags {underscoreToCase} deriving (Bounded,Eq,Show)#}
instance Flags StateFlags
#endif
-- Sort a 'Graphics.UI.Gtk.ModelView.TreeViewColumn' in ascending or descending
-- order.
--
{#enum SortType {underscoreToCase} deriving (Eq,Show)#}
-- | Widget states
--
{#enum StateType {underscoreToCase} deriving (Eq,Show)#}
#if GTK_MAJOR_VERSION < 3
#ifndef DISABLE_DEPRECATED
-- | Submenu direction policies
--
-- Removed in Gtk3.
{#enum SubmenuDirection {underscoreToCase} deriving (Eq,Show)#}
-- | Submenu placement policies
--
-- Removed in Gtk3.
{#enum SubmenuPlacement {underscoreToCase} deriving (Eq,Show)#}
#endif
#endif
-- | Whether to clamp or ignore illegal values.
--
{#enum SpinButtonUpdatePolicy {underscoreToCase} deriving (Eq,Show)#}
-- | Spin a SpinButton with the following method.
--
{#enum SpinType {underscoreToCase} deriving (Eq,Show)#}
-- | The 'TargetFlags' enumeration is used to specify constraints on an entry
-- in a 'Graphics.UI.Gtk.Gdk.Selection.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.
--
{#enum TargetFlags {underscoreToCase} deriving(Bounded,Eq,Show) #}
instance Flags TargetFlags
-- | Is the text written from left to right or the exotic way?
--
{#enum TextDirection {underscoreToCase} deriving (Eq,Show)#}
-- | Specify the way the search function for
-- 'Graphics.UI.Gtk.Multiline.TextBuffer' works.
--
{#enum TextSearchFlags {underscoreToCase} deriving(Bounded,Eq,Show)#}
instance Flags TextSearchFlags
-- | The window type for coordinate translation.
--
{#enum TextWindowType {underscoreToCase} deriving (Eq,Show)#}
-- | Where to place the toolbar?
--
{#enum ToolbarStyle {underscoreToCase} deriving (Eq,Show)#}
-- | Wether columns of a tree or list widget can be resized.
--
{#enum TreeViewColumnSizing {underscoreToCase} deriving (Eq,Show)#}
-- hm... text editing?
--{#enum TroughType {underscoreToCase} deriving (Eq,Show)#}
#if GTK_MAJOR_VERSION < 3
-- | Updating types for range widgets (determines when the
-- @\"connectToValueChanged\"@ signal is emitted by the widget)
--
-- Removed in Gtk3.
{#enum UpdateType {underscoreToCase} deriving (Eq,Show)#}
-- | Visibility
--
-- Removed in Gtk3.
{#enum Visibility {underscoreToCase} deriving (Eq,Show)#}
#endif
-- | Window position types
--
{#enum WindowPosition {underscoreToCase} deriving (Eq,Show)#}
-- | Interaction of a window with window manager
--
{#enum WindowType {underscoreToCase} deriving (Eq,Show)#}
-- | Determine how lines are wrapped in a 'Graphics.UI.Gtk.Multiline.TextView'.
--
{#enum WrapMode {underscoreToCase} deriving (Eq,Show)#}
#if GTK_CHECK_VERSION(2,16,0)
-- | Specifies the side of the entry at which an icon is placed.
--
{#enum EntryIconPosition {underscoreToCase} deriving (Eq,Show)#}
#endif
#if GTK_MAJOR_VERSION < 3
-- |
--
-- Removed in Gtk3.
{#enum AnchorType {underscoreToCase} deriving (Eq,Show)#}
#endif