! Copyright (C) 2005, 2006 Eduardo Cavazos and Alex Chapman ! See http://factorcode.org/license.txt for BSD license. ! Based on X.h USING: alien alien.syntax math x11.xlib ; IN: x11.constants TYPEDEF: ulong Mask TYPEDEF: uchar KeyCode ! Reserved Resource and Constant Definitions : ParentRelative 1 ; : CopyFromParent 0 ; : PointerWindow 0 ; : InputFocus 1 ; : PointerRoot 1 ; : AnyPropertyType 0 ; : AnyKey 0 ; : AnyButton 0 ; : AllTemporary 0 ; : CurrentTime 0 ; : NoSymbol 0 ; ! Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer, ! state in various key-, mouse-, and button-related events. ! modifier names. Used to build a SetModifierMapping request or ! to read a GetModifierMapping request. These correspond to the ! masks defined above. : ShiftMapIndex 0 ; : LockMapIndex 1 ; : ControlMapIndex 2 ; : Mod1MapIndex 3 ; : Mod2MapIndex 4 ; : Mod3MapIndex 5 ; : Mod4MapIndex 6 ; : Mod5MapIndex 7 ; ! button masks. Used in same manner as Key masks above. Not to be confused ! with button names below. : AnyModifier ( -- n ) 15 2^ ; ! used in GrabButton, GrabKey ! button names. Used as arguments to GrabButton and as detail in ButtonPress ! and ButtonRelease events. Not to be confused with button masks above. ! Note that 0 is already defined above as "AnyButton". ! Notify modes : NotifyNormal 0 ; : NotifyGrab 1 ; : NotifyUngrab 2 ; : NotifyWhileGrabbed 3 ; : NotifyHint 1 ; ! for MotionNotify events ! Notify detail : NotifyAncestor 0 ; : NotifyVirtual 1 ; : NotifyInferior 2 ; : NotifyNonlinear 3 ; : NotifyNonlinearVirtual 4 ; : NotifyPointer 5 ; : NotifyPointerRoot 6 ; : NotifyDetailNone 7 ; ! Visibility notify : VisibilityUnobscured 0 ; : VisibilityPartiallyObscured 1 ; : VisibilityFullyObscured 2 ; ! Circulation request : PlaceOnTop 0 ; : PlaceOnBottom 1 ; ! protocol families : FamilyInternet 0 ; ! IPv4 : FamilyDECnet 1 ; : FamilyChaos 2 ; : FamilyInternet6 6 ; ! IPv6 ! authentication families not tied to a specific protocol : FamilyServerInterpreted 5 ; ! Property notification : PropertyNewValue 0 ; : PropertyDelete 1 ; ! Color Map notification : ColormapUninstalled 0 ; : ColormapInstalled 1 ; ! GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes : GrabModeSync 0 ; : GrabModeAsync 1 ; ! GrabPointer, GrabKeyboard reply status : GrabSuccess 0 ; : AlreadyGrabbed 1 ; : GrabInvalidTime 2 ; : GrabNotViewable 3 ; : GrabFrozen 4 ; ! AllowEvents modes : AsyncPointer 0 ; : SyncPointer 1 ; : ReplayPointer 2 ; : AsyncKeyboard 3 ; : SyncKeyboard 4 ; : ReplayKeyboard 5 ; : AsyncBoth 6 ; : SyncBoth 7 ; ! Used in SetInputFocus, GetInputFocus : RevertToNone ( -- n ) None ; : RevertToPointerRoot ( -- n ) PointerRoot ; : RevertToParent 2 ; ! ***************************************************************** ! * ERROR CODES ! ***************************************************************** : Success 0 ; ! everything's okay : BadRequest 1 ; ! bad request code : BadValue 2 ; ! int parameter out of range : BadWindow 3 ; ! parameter not a Window : BadPixmap 4 ; ! parameter not a Pixmap : BadAtom 5 ; ! parameter not an Atom : BadCursor 6 ; ! parameter not a Cursor : BadFont 7 ; ! parameter not a Font : BadMatch 8 ; ! parameter mismatch : BadDrawable 9 ; ! parameter not a Pixmap or Window : BadAccess 10 ; ! depending on context: ! - key/button already grabbed ! - attempt to free an illegal ! cmap entry ! - attempt to store into a read-only ! color map entry. ! - attempt to modify the access control ! list from other than the local host. : BadAlloc 11 ; ! insufficient resources : BadColor 12 ; ! no such colormap : BadGC 13 ; ! parameter not a GC : BadIDChoice 14 ; ! choice not in range or already used : BadName 15 ; ! font or color name doesn't exist : BadLength 16 ; ! Request length incorrect : BadImplementation 17 ; ! server is defective : FirstExtensionError 128 ; : LastExtensionError 255 ; ! ***************************************************************** ! * WINDOW DEFINITIONS ! ***************************************************************** ! Window classes used by CreateWindow ! Note that CopyFromParent is already defined as 0 above : InputOutput 1 ; : InputOnly 2 ; ! Used in CreateWindow for backing-store hint : NotUseful 0 ; : WhenMapped 1 ; : Always 2 ; ! Used in ChangeSaveSet : SetModeInsert 0 ; : SetModeDelete 1 ; ! Used in ChangeCloseDownMode : DestroyAll 0 ; : RetainPermanent 1 ; : RetainTemporary 2 ; ! Window stacking method (in configureWindow) : Above 0 ; : Below 1 ; : TopIf 2 ; : BottomIf 3 ; : Opposite 4 ; ! Circulation direction : RaiseLowest 0 ; : LowerHighest 1 ; ! Property modes : PropModeReplace 0 ; : PropModePrepend 1 ; : PropModeAppend 2 ; ! ***************************************************************** ! * GRAPHICS DEFINITIONS ! ***************************************************************** ! LineStyle : LineSolid 0 ; : LineOnOffDash 1 ; : LineDoubleDash 2 ; ! capStyle : CapNotLast 0 ; : CapButt 1 ; : CapRound 2 ; : CapProjecting 3 ; ! joinStyle : JoinMiter 0 ; : JoinRound 1 ; : JoinBevel 2 ; ! fillStyle : FillSolid 0 ; : FillTiled 1 ; : FillStippled 2 ; : FillOpaqueStippled 3 ; ! fillRule : EvenOddRule 0 ; : WindingRule 1 ; ! subwindow mode : ClipByChildren 0 ; : IncludeInferiors 1 ; ! SetClipRectangles ordering : Unsorted 0 ; : YSorted 1 ; : YXSorted 2 ; : YXBanded 3 ; ! CoordinateMode for drawing routines : CoordModeOrigin 0 ; ! relative to the origin : CoordModePrevious 1 ; ! relative to previous point ! Polygon shapes : Complex 0 ; ! paths may intersect : Nonconvex 1 ; ! no paths intersect, but not convex : Convex 2 ; ! wholly convex ! Arc modes for PolyFillArc : ArcChord 0 ; ! join endpoints of arc : ArcPieSlice 1 ; ! join endpoints to center of arc ! ***************************************************************** ! * FONTS ! ***************************************************************** ! used in QueryFont -- draw direction : FontLeftToRight 0 ; : FontRightToLeft 1 ; : FontChange 255 ; ! ***************************************************************** ! * IMAGING ! ***************************************************************** ! ImageFormat -- PutImage, GetImage : XYBitmap 0 ; ! depth 1, XYFormat : XYPixmap 1 ; ! depth == drawable depth : ZPixmap 2 ; ! depth == drawable depth ! ***************************************************************** ! * COLOR MAP STUFF ! ***************************************************************** ! For CreateColormap : AllocNone 0 ; ! create map with no entries : AllocAll 1 ; ! allocate entire map writeable ! Flags used in StoreNamedColor, StoreColors : DoRed ( -- n ) 0 2^ ; : DoGreen ( -- n ) 1 2^ ; : DoBlue ( -- n ) 2 2^ ; ! ***************************************************************** ! * CURSOR STUFF ! ***************************************************************** ! QueryBestSize Class : CursorShape 0 ; ! largest size that can be displayed : TileShape 1 ; ! size tiled fastest : StippleShape 2 ; ! size stippled fastest ! ***************************************************************** ! * KEYBOARD/POINTER STUFF ! ***************************************************************** : AutoRepeatModeOff 0 ; : AutoRepeatModeOn 1 ; : AutoRepeatModeDefault 2 ; : LedModeOff 0 ; : LedModeOn 1 ; ! masks for ChangeKeyboardControl : KBKeyClickPercent ( -- n ) 0 2^ ; : KBBellPercent ( -- n ) 1 2^ ; : KBBellPitch ( -- n ) 2 2^ ; : KBBellDuration ( -- n ) 3 2^ ; : KBLed ( -- n ) 4 2^ ; : KBLedMode ( -- n ) 5 2^ ; : KBKey ( -- n ) 6 2^ ; : KBAutoRepeatMode ( -- n ) 7 2^ ; : MappingSuccess 0 ; : MappingBusy 1 ; : MappingFailed 2 ; : MappingModifier 0 ; : MappingKeyboard 1 ; : MappingPointer 2 ; ! ***************************************************************** ! * SCREEN SAVER STUFF ! ***************************************************************** : DontPreferBlanking 0 ; : PreferBlanking 1 ; : DefaultBlanking 2 ; : DisableScreenSaver 0 ; : DisableScreenInterval 0 ; : DontAllowExposures 0 ; : AllowExposures 1 ; : DefaultExposures 2 ; ! for ForceScreenSaver : ScreenSaverReset 0 ; : ScreenSaverActive 1 ; ! ***************************************************************** ! * HOSTS AND CONNECTIONS ! ***************************************************************** ! for ChangeHosts : HostInsert 0 ; : HostDelete 1 ; ! for ChangeAccessControl : EnableAccess 1 ; : DisableAccess 0 ; ! Display classes used in opening the connection ! Note that the statically allocated ones are even numbered and the ! dynamically changeable ones are odd numbered : StaticGray 0 ; : GrayScale 1 ; : StaticColor 2 ; : PseudoColor 3 ; : TrueColor 4 ; : DirectColor 5 ; ! Byte order used in imageByteOrder and bitmapBitOrder : LSBFirst 0 ; : MSBFirst 1 ; ! ***************************************************************** ! * EXTENDED WINDOW MANAGER HINTS ! ***************************************************************** C-ENUM: _NET_WM_STATE_REMOVE _NET_WM_STATE_ADD _NET_WM_STATE_TOGGLE ;