fudgets-0.18.3: hsrc/xtypes/Xtypes.hs
module Xtypes(module Xtypes,module EventMask,module AuxTypes,module ResourceIds,module Image) where
--import Geometry(Line, Point, Rect)
import EventMask
import AuxTypes
import ResourceIds
import Image
import Data.Ix
import HbcWord
-- #ifdef __NHC__
-- Bug in export of newtype
-- #define newtype data
-- #endif
newtype Display = Display Int deriving (Eq, Ord, Show, Read)
type XDisplay = Display
noDisplay = Display (-1)
type KeyLookup = String
type Width = Int
newtype Pixel = Pixel Word deriving (Eq, Ord, Show, Read)
type PlaneMask = Pixel
pixel0 = Pixel 0
pixel1 = Pixel 1
--black = Pixel 0 -- not always true !!
--white = Pixel 1 -- not always true !!
data RGB = RGB Int Int Int deriving ( Eq, Ord, Show, Read, Ix )
data Color = Color { colorPixel::Pixel, colorRGB::RGB }
deriving (Eq, Ord, Show, Read)
maxRGB :: Int -- for hugs
maxRGB = 65535
grayRGB x = RGB x x x
whiteRGB = grayRGB maxRGB
blackRGB = grayRGB 0
data Selection = Selection Atom Atom Atom deriving (Eq, Ord, Show, Read)
newtype PropertyMode = PropertyMode Int deriving (Eq, Ord, Show, Read)
propModeReplace = PropertyMode 0
propModePrepend = PropertyMode 1
propModeAppend = PropertyMode 2
--data EventMask -- moved to EventMask.hs
data BackingStore
= NotUseful | WhenMapped | Always
deriving (Eq, Ord, Show, Read, Bounded, Enum)
data GrabPointerResult
= GrabSuccess
| AlreadyGrabbed
| GrabInvalidTime
| GrabNotViewable
| GrabFrozen
deriving (Eq, Ord, Show, Read, Bounded, Enum)
-- Same order as in X.h
data GCFunction
= GXclear
| GXand
| GXandReverse
| GXcopy
| GXandInverted
| GXnoop
| GXxor
| GXor
| GXnor
| GXequiv
| GXinvert
| GXorReverse
| GXCopyInverted
| GXorInverted
| GXnand
| GXset
deriving (Eq, Ord, Show, Read, Bounded, Enum)
-- Same order as in X.h
data GCLineStyle
= LineSolid | LineDoubleDash | LineOnOffDash
deriving (Eq, Ord, Show, Read, Bounded, Enum)
data GCCapStyle
= CapNotLast | CapButt | CapRound | CapProjecting
deriving (Eq, Ord, Show, Read, Bounded, Enum)
data GCJoinStyle
= JoinMiter | JoinRound | JoinBevel
deriving (Eq, Ord, Show, Read, Bounded, Enum)
data GCSubwindowMode
= ClipByChildren | IncludeInferiors
deriving (Eq, Ord, Show, Read, Bounded, Enum)
data GCFillStyle
= FillSolid | FillTiled | FillStippled | FillOpaqueStippled
deriving (Eq, Ord, Show, Read, Bounded, Enum)
data GCAttributes a b
= GCFunction GCFunction
| GCForeground a
| GCBackground a
| GCLineWidth Width
| GCLineStyle GCLineStyle
| GCFont b
| GCCapStyle GCCapStyle
| GCSubwindowMode GCSubwindowMode
| GCGraphicsExposures Bool
| GCFillStyle GCFillStyle
| GCTile PixmapId
| GCStipple PixmapId
| GCJoinStyle GCJoinStyle
deriving (Eq, Ord, Show, Read)
type GCAttributeList = [GCAttributes Pixel FontId]
--invertGCattrs = invertColorGCattrs white black
invertColorGCattrs bgcol fgcol =
[GCFunction GXxor, GCForeground (invcol bgcol fgcol)]
invcol (Pixel bg) (Pixel fg) = Pixel (bitXor bg fg)
data WindowAttributes
= CWEventMask [EventMask]
| CWBackingStore BackingStore
| CWSaveUnder Bool
| CWDontPropagate [EventMask]
| CWOverrideRedirect Bool
| CWBackPixel Pixel
| CWCursor CursorId
| CWBitGravity Gravity
| CWWinGravity Gravity
| CWBackPixmap PixmapId
| CWBorderPixmap PixmapId
| CWBorderPixel Pixel
deriving (Eq, Ord, Show, Read)
data WindowChanges
= CWX Int
| CWY Int
| CWWidth Int
| CWHeight Int
| CWBorderWidth Int
| CWStackMode StackMode
deriving (Eq, Ord, Show, Read)
data StackMode
= StackAbove | StackBelow | TopIf | BottomIf | Opposite
deriving (Eq, Ord, Read, Show, Bounded, Enum)
-- DBE (double buffering extension):
data SwapAction
= DbeUndefined | DbeBackground | DbeUntouched | DbeCopied
deriving (Eq, Ord, Show, Read, Bounded, Enum)