mirror of https://github.com/buggins/dlangui.git
added X11 binding
This commit is contained in:
parent
d6d36a21a1
commit
f3cd071904
|
@ -0,0 +1,2 @@
|
||||||
|
*.o
|
||||||
|
*.deps
|
|
@ -0,0 +1,31 @@
|
||||||
|
Release 0.12:
|
||||||
|
==========
|
||||||
|
Fixed:
|
||||||
|
X11/Xlib.h: functions which were macros in C now are D templates
|
||||||
|
Overview:
|
||||||
|
It is not necessary to compile&link with the bindings anymore,
|
||||||
|
just include them
|
||||||
|
|
||||||
|
Release 0.11.1: (Alex Herrmann)
|
||||||
|
==========
|
||||||
|
Fixed:
|
||||||
|
X11/Xlib.d: all typedefs changed to Aliases
|
||||||
|
example/simple.d: updated to work
|
||||||
|
Added:
|
||||||
|
Makefiles to build, tested, all work
|
||||||
|
Overview:
|
||||||
|
General Updates to multiple Items
|
||||||
|
|
||||||
|
Release 0.11 ALPHA:
|
||||||
|
==========
|
||||||
|
Added:
|
||||||
|
Full xcb bindings
|
||||||
|
|
||||||
|
Release 0.1 ALPHA:
|
||||||
|
==========
|
||||||
|
First release of binding
|
||||||
|
Full bindings of X11/Xlib.h and X11/X.h
|
||||||
|
Todo:
|
||||||
|
More tests
|
||||||
|
Other X11 bindings
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
***************************************************************************
|
||||||
|
Copyright 1985, 1986, 1987, 1991, 1998 The Open Group
|
||||||
|
|
||||||
|
Permission to use, copy, modify, distribute, and sell this software and its
|
||||||
|
documentation for any purpose is hereby granted without fee, provided that
|
||||||
|
the above copyright notice appear in all copies and that both that
|
||||||
|
copyright notice and this permission notice appear in supporting
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||||
|
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
Except as contained in this notice, the name of The Open Group shall not be
|
||||||
|
used in advertising or otherwise to promote the sale, use or other dealings
|
||||||
|
in this Software without prior written authorization from The Open Group.
|
||||||
|
****************************************************************************
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
X11.d
|
||||||
|
=====
|
||||||
|
|
||||||
|
This is a binding for Xlib for D language (version 2).
|
||||||
|
|
||||||
|
It is extracted from the bindings project (http://www.dsource.org/projects/bindings). Original credit goes to Teissier Sylvere (sligor@free.fr).
|
||||||
|
|
||||||
|
=====
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Alex Herrmann
|
||||||
|
Andrea R.
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
TODO list:
|
||||||
|
----------
|
||||||
|
|
||||||
|
-Test test and retest ! You can share your code for a Test Suite
|
||||||
|
-Bind other X11 library extensions
|
||||||
|
-Write other example code
|
|
@ -0,0 +1,749 @@
|
||||||
|
/* Xlib binding for D language
|
||||||
|
Copyright 2007 TEISSIER Sylvere sligor(at)free.fr
|
||||||
|
version 0.1 2007/08/29
|
||||||
|
This binding is an alpha release and need to be more tested
|
||||||
|
|
||||||
|
This file is free software, please read licence.txt for more informations
|
||||||
|
*/
|
||||||
|
|
||||||
|
module X11.X;
|
||||||
|
|
||||||
|
pragma(lib, "X11");
|
||||||
|
|
||||||
|
const uint X_PROTOCOL=11; /* current protocol version */
|
||||||
|
const uint X_PROTOCOL_REVISION=0; /* current minor version */
|
||||||
|
|
||||||
|
/* Resources */
|
||||||
|
alias uint XID;
|
||||||
|
alias uint Mask;
|
||||||
|
alias uint VisualID;
|
||||||
|
alias uint Time;
|
||||||
|
alias XID Atom; //alias needed because of None invariant shared for Atom and XID
|
||||||
|
alias XID Window;
|
||||||
|
alias XID Drawable;
|
||||||
|
alias XID Font;
|
||||||
|
alias XID Pixmap;
|
||||||
|
alias XID Cursor;
|
||||||
|
alias XID Colormap;
|
||||||
|
alias XID GContext;
|
||||||
|
alias XID KeySym;
|
||||||
|
alias uint KeyCode;
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
* RESERVED RESOURCE AND CONSTANT DEFINITIONS
|
||||||
|
*****************************************************************/
|
||||||
|
const XID None=0;/* universal null resource or null atom */
|
||||||
|
const uint ParentRelative=1; /* border pixmap in CreateWindow and ChangeWindowAttributes special VisualID and special window class passed to CreateWindow */
|
||||||
|
const uint CopyFromParent=0; /* background pixmap in CreateWindow and ChangeWindowAttributes */
|
||||||
|
const Window PointerWindow=0; /* destination window in SendEvent */
|
||||||
|
const Window InputFocus=1; /* destination window in SendEvent */
|
||||||
|
const Window PointerRoot=1; /* focus window in SetInputFocus */
|
||||||
|
const Atom AnyPropertyType=0; /* special Atom, passed to GetProperty */
|
||||||
|
const KeyCode AnyKey=0; /* special Key Code, passed to GrabKey */
|
||||||
|
const uint AnyButton=0; /* special Button Code, passed to GrabButton */
|
||||||
|
const XID AllTemporary=0; /* special Resource ID passed to KillClient */
|
||||||
|
const Time CurrentTime=0; /* special Time */
|
||||||
|
const KeySym NoSymbol=0; /* special KeySym */
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
* EVENT DEFINITIONS
|
||||||
|
*****************************************************************/
|
||||||
|
|
||||||
|
/* Input Event Masks. Used as event-mask window attribute and as arguments
|
||||||
|
to Grab requests. Not to be confused with event names. */
|
||||||
|
|
||||||
|
enum:int
|
||||||
|
{
|
||||||
|
NoEventMask =0,
|
||||||
|
KeyPressMask =1<<0,
|
||||||
|
KeyReleaseMask =1<<1,
|
||||||
|
ButtonPressMask =1<<2,
|
||||||
|
ButtonReleaseMask =1<<3,
|
||||||
|
EnterWindowMask =1<<4,
|
||||||
|
LeaveWindowMask =1<<5,
|
||||||
|
PointerMotionMask =1<<6,
|
||||||
|
PointerMotionHintMask =1<<7,
|
||||||
|
Button1MotionMask =1<<8,
|
||||||
|
Button2MotionMask =1<<9,
|
||||||
|
Button3MotionMask =1<<10,
|
||||||
|
Button4MotionMask =1<<11,
|
||||||
|
Button5MotionMask =1<<12,
|
||||||
|
ButtonMotionMask =1<<13,
|
||||||
|
KeymapStateMask =1<<14,
|
||||||
|
ExposureMask =1<<15,
|
||||||
|
VisibilityChangeMask =1<<16,
|
||||||
|
StructureNotifyMask =1<<17,
|
||||||
|
ResizeRedirectMask =1<<18,
|
||||||
|
SubstructureNotifyMask =1<<19,
|
||||||
|
SubstructureRedirectMask=1<<20,
|
||||||
|
FocusChangeMask =1<<21,
|
||||||
|
PropertyChangeMask =1<<22,
|
||||||
|
ColormapChangeMask =1<<23,
|
||||||
|
OwnerGrabButtonMask =1<<24
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Event names. Used in "type" field in XEvent structures. Not to be
|
||||||
|
confused with event masks above. They start from 2 because 0 and 1
|
||||||
|
are reserved in the protocol for errors and replies. */
|
||||||
|
|
||||||
|
enum:int
|
||||||
|
{
|
||||||
|
KeyPress = 2,
|
||||||
|
KeyRelease = 3,
|
||||||
|
ButtonPress = 4,
|
||||||
|
ButtonRelease = 5,
|
||||||
|
MotionNotify = 6,
|
||||||
|
EnterNotify = 7,
|
||||||
|
LeaveNotify = 8,
|
||||||
|
FocusIn = 9,
|
||||||
|
FocusOut = 10,
|
||||||
|
KeymapNotify = 11,
|
||||||
|
Expose = 12,
|
||||||
|
GraphicsExpose = 13,
|
||||||
|
NoExpose = 14,
|
||||||
|
VisibilityNotify = 15,
|
||||||
|
CreateNotify = 16,
|
||||||
|
DestroyNotify = 17,
|
||||||
|
UnmapNotify = 18,
|
||||||
|
MapNotify = 19,
|
||||||
|
MapRequest = 20,
|
||||||
|
ReparentNotify = 21,
|
||||||
|
ConfigureNotify = 22,
|
||||||
|
ConfigureRequest = 23,
|
||||||
|
GravityNotify = 24,
|
||||||
|
ResizeRequest = 25,
|
||||||
|
CirculateNotify = 26,
|
||||||
|
CirculateRequest = 27,
|
||||||
|
PropertyNotify = 28,
|
||||||
|
SelectionClear = 29,
|
||||||
|
SelectionRequest = 30,
|
||||||
|
SelectionNotify = 31,
|
||||||
|
ColormapNotify = 32,
|
||||||
|
ClientMessage = 33,
|
||||||
|
MappingNotify = 34,
|
||||||
|
LASTEvent = 35 /* must be bigger than any event # */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer,
|
||||||
|
state in various key-, mouse-, and button-related events. */
|
||||||
|
enum KeyMask:uint
|
||||||
|
{
|
||||||
|
ShiftMask =1<<0,
|
||||||
|
LockMask =1<<1,
|
||||||
|
ControlMask =1<<2,
|
||||||
|
Mod1Mask =1<<3,
|
||||||
|
Mod2Mask =1<<4,
|
||||||
|
Mod3Mask =1<<5,
|
||||||
|
Mod4Mask =1<<6,
|
||||||
|
Mod5Mask =1<<7,
|
||||||
|
AnyModifier =1<<15/* used in GrabButton, GrabKey */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* modifier names. Used to build a SetModifierMapping request or
|
||||||
|
to read a GetModifierMapping request. These correspond to the
|
||||||
|
masks defined above. */
|
||||||
|
enum ModifierName:int
|
||||||
|
{
|
||||||
|
ShiftMapIndex =0,
|
||||||
|
LockMapIndex =1,
|
||||||
|
ControlMapIndex =2,
|
||||||
|
Mod1MapIndex =3,
|
||||||
|
Mod2MapIndex =4,
|
||||||
|
Mod3MapIndex =5,
|
||||||
|
Mod4MapIndex =6,
|
||||||
|
Mod5MapIndex =7
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ButtonMask:int
|
||||||
|
{
|
||||||
|
Button1Mask =1<<8,
|
||||||
|
Button2Mask =1<<9,
|
||||||
|
Button3Mask =1<<10,
|
||||||
|
Button4Mask =1<<11,
|
||||||
|
Button5Mask =1<<12,
|
||||||
|
AnyModifier =1<<15/* used in GrabButton, GrabKey */
|
||||||
|
};
|
||||||
|
|
||||||
|
enum KeyOrButtonMask:uint
|
||||||
|
{
|
||||||
|
ShiftMask =1<<0,
|
||||||
|
LockMask =1<<1,
|
||||||
|
ControlMask =1<<2,
|
||||||
|
Mod1Mask =1<<3,
|
||||||
|
Mod2Mask =1<<4,
|
||||||
|
Mod3Mask =1<<5,
|
||||||
|
Mod4Mask =1<<6,
|
||||||
|
Mod5Mask =1<<7,
|
||||||
|
Button1Mask =1<<8,
|
||||||
|
Button2Mask =1<<9,
|
||||||
|
Button3Mask =1<<10,
|
||||||
|
Button4Mask =1<<11,
|
||||||
|
Button5Mask =1<<12,
|
||||||
|
AnyModifier =1<<15/* 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". */
|
||||||
|
|
||||||
|
enum ButtonName:int
|
||||||
|
{
|
||||||
|
Button1 =1,
|
||||||
|
Button2 =2,
|
||||||
|
Button3 =3,
|
||||||
|
Button4 =4,
|
||||||
|
Button5 =5
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Notify modes */
|
||||||
|
enum NotifyModes:int
|
||||||
|
{
|
||||||
|
NotifyNormal =0,
|
||||||
|
NotifyGrab =1,
|
||||||
|
NotifyUngrab =2,
|
||||||
|
NotifyWhileGrabbed =3
|
||||||
|
};
|
||||||
|
const int NotifyHint =1; /* for MotionNotify events */
|
||||||
|
|
||||||
|
/* Notify detail */
|
||||||
|
enum NotifyDetail:int
|
||||||
|
{
|
||||||
|
NotifyAncestor =0,
|
||||||
|
NotifyVirtual =1,
|
||||||
|
NotifyInferior =2,
|
||||||
|
NotifyNonlinear =3,
|
||||||
|
NotifyNonlinearVirtual =4,
|
||||||
|
NotifyPointer =5,
|
||||||
|
NotifyPointerRoot =6,
|
||||||
|
NotifyDetailNone =7
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Visibility notify */
|
||||||
|
|
||||||
|
enum:int
|
||||||
|
{
|
||||||
|
VisibilityUnobscured = 0,
|
||||||
|
VisibilityPartiallyObscured = 1,
|
||||||
|
VisibilityFullyObscured = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Circulation request */
|
||||||
|
enum CirculationRequest:int
|
||||||
|
{
|
||||||
|
PlaceOnTop =0,
|
||||||
|
PlaceOnBottom =1
|
||||||
|
};
|
||||||
|
/* protocol families */
|
||||||
|
enum ProtocolFamlily:int
|
||||||
|
{
|
||||||
|
FamilyInternet =0, /* IPv4 */
|
||||||
|
FamilyDECnet =1,
|
||||||
|
FamilyChaos =2,
|
||||||
|
FamilyServerInterpreted =5, /* authentication families not tied to a specific protocol */
|
||||||
|
FamilyInternet6 =6 /* IPv6 */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Property notification */
|
||||||
|
|
||||||
|
enum PropertyNotification:int
|
||||||
|
{
|
||||||
|
PropertyNewValue =0,
|
||||||
|
PropertyDelete =1
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Color Map notification */
|
||||||
|
enum ColorMapNotification:int
|
||||||
|
{
|
||||||
|
ColormapUninstalled =0,
|
||||||
|
ColormapInstalled =1
|
||||||
|
};
|
||||||
|
|
||||||
|
/* GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes */
|
||||||
|
enum GrabMode:int
|
||||||
|
{
|
||||||
|
GrabModeSync =0,
|
||||||
|
GrabModeAsync =1
|
||||||
|
};
|
||||||
|
|
||||||
|
/* GrabPointer, GrabKeyboard reply status */
|
||||||
|
enum GrabReplyStatus:int
|
||||||
|
{
|
||||||
|
GrabSuccess =0,
|
||||||
|
AlreadyGrabbed =1,
|
||||||
|
GrabInvalidTime =2,
|
||||||
|
GrabNotViewable =3,
|
||||||
|
GrabFrozen =4
|
||||||
|
};
|
||||||
|
|
||||||
|
/* AllowEvents modes */
|
||||||
|
|
||||||
|
enum AllowEventMode:int
|
||||||
|
{
|
||||||
|
AsyncPointer =0,
|
||||||
|
SyncPointer =1,
|
||||||
|
ReplayPointer =2,
|
||||||
|
AsyncKeyboard =3,
|
||||||
|
SyncKeyboard =4,
|
||||||
|
ReplayKeyboard =5,
|
||||||
|
AsyncBoth =6,
|
||||||
|
SyncBoth =7
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Used in SetInputFocus, GetInputFocus */
|
||||||
|
enum InputFocusRevertTo:int
|
||||||
|
{
|
||||||
|
RevertToNone =None,
|
||||||
|
RevertToPointerRoot =PointerRoot,
|
||||||
|
RevertToParent =2
|
||||||
|
};
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
* ERROR CODES
|
||||||
|
*****************************************************************/
|
||||||
|
|
||||||
|
enum XErrorCode:int
|
||||||
|
{
|
||||||
|
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 */
|
||||||
|
enum:uint
|
||||||
|
{
|
||||||
|
InputOutput = 1,
|
||||||
|
InputOnly = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Window attributes for CreateWindow and ChangeWindowAttributes */
|
||||||
|
|
||||||
|
enum:uint
|
||||||
|
{
|
||||||
|
CWBackPixmap =1<<0,
|
||||||
|
CWBackPixel =1<<1,
|
||||||
|
CWBorderPixmap =1<<2,
|
||||||
|
CWBorderPixel =1<<3,
|
||||||
|
CWBitGravity =1<<4,
|
||||||
|
CWWinGravity =1<<5,
|
||||||
|
CWBackingStore =1<<6,
|
||||||
|
CWBackingPlanes =1<<7,
|
||||||
|
CWBackingPixel =1<<8,
|
||||||
|
CWOverrideRedirect =1<<9,
|
||||||
|
CWSaveUnder =1<<10,
|
||||||
|
CWEventMask =1<<11,
|
||||||
|
CWDontPropagate =1<<12,
|
||||||
|
CWColormap =1<<13,
|
||||||
|
CWCursor =1<<14
|
||||||
|
};
|
||||||
|
/* ConfigureWindow structure */
|
||||||
|
enum:int
|
||||||
|
{
|
||||||
|
CWX =1<<0,
|
||||||
|
CWY =1<<1,
|
||||||
|
CWWidth =1<<2,
|
||||||
|
CWHeight =1<<3,
|
||||||
|
CWBorderWidth =1<<4,
|
||||||
|
CWSibling =1<<5,
|
||||||
|
CWStackMode =1<<6
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Bit Gravity */
|
||||||
|
enum BitGravity:int
|
||||||
|
{
|
||||||
|
ForgetGravity =0,
|
||||||
|
NorthWestGravity =1,
|
||||||
|
NorthGravity =2,
|
||||||
|
NorthEastGravity =3,
|
||||||
|
WestGravity =4,
|
||||||
|
CenterGravity =5,
|
||||||
|
EastGravity =6,
|
||||||
|
SouthWestGravity =7,
|
||||||
|
SouthGravity =8,
|
||||||
|
SouthEastGravity =9,
|
||||||
|
StaticGravity =10
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Window gravity + bit gravity above */
|
||||||
|
|
||||||
|
const uint UnmapGravity=0;
|
||||||
|
|
||||||
|
/* Used in CreateWindow for backing-store hint */
|
||||||
|
enum BackingStoreHint:int
|
||||||
|
{
|
||||||
|
NotUseful =0,
|
||||||
|
WhenMapped =1,
|
||||||
|
Always =2
|
||||||
|
};
|
||||||
|
/* Used in GetWindowAttributes reply */
|
||||||
|
enum MapState:int
|
||||||
|
{
|
||||||
|
IsUnmapped =0,
|
||||||
|
IsUnviewable =1,
|
||||||
|
IsViewable =2
|
||||||
|
};
|
||||||
|
/* Used in ChangeSaveSet */
|
||||||
|
enum ChangeMode:int
|
||||||
|
{
|
||||||
|
SetModeInsert =0,
|
||||||
|
SetModeDelete =1
|
||||||
|
};
|
||||||
|
/* Used in ChangeCloseDownMode */
|
||||||
|
enum CloseDownMode:int
|
||||||
|
{
|
||||||
|
DestroyAll =0,
|
||||||
|
RetainPermanent =1,
|
||||||
|
RetainTemporary =2
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Window stacking method (in configureWindow) */
|
||||||
|
enum WindowStackingMethod:int
|
||||||
|
{
|
||||||
|
Above =0,
|
||||||
|
Below =1,
|
||||||
|
TopIf =2,
|
||||||
|
BottomIf =3,
|
||||||
|
Opposite =4
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Circulation direction */
|
||||||
|
enum CircularDirection:int
|
||||||
|
{
|
||||||
|
RaiseLowest =0,
|
||||||
|
LowerHighest =1
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Property modes */
|
||||||
|
enum:int
|
||||||
|
{
|
||||||
|
PropModeReplace =0,
|
||||||
|
PropModePrepend =1,
|
||||||
|
PropModeAppend =2
|
||||||
|
};
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
* GRAPHICS DEFINITIONS
|
||||||
|
*****************************************************************/
|
||||||
|
|
||||||
|
/* graphics functions, as in GC.alu */
|
||||||
|
enum GraphicFunction:int
|
||||||
|
{
|
||||||
|
GXclear =0x0, /* 0 */
|
||||||
|
GXand =0x1, /* src AND dst */
|
||||||
|
GXandReverse =0x2, /* src AND NOT dst */
|
||||||
|
GXcopy =0x3, /* src */
|
||||||
|
GXandInverted =0x4, /* NOT src AND dst */
|
||||||
|
GXnoop =0x5, /* dst */
|
||||||
|
GXxor =0x6, /* src XOR dst */
|
||||||
|
GXor =0x7, /* src OR dst */
|
||||||
|
GXnor =0x8, /* NOT src AND NOT dst */
|
||||||
|
GXequiv =0x9, /* NOT src XOR dst */
|
||||||
|
GXinvert =0xa, /* NOT dst */
|
||||||
|
GXorReverse =0xb, /* src OR NOT dst */
|
||||||
|
GXcopyInverted =0xc, /* NOT src */
|
||||||
|
GXorInverted =0xd, /* NOT src OR dst */
|
||||||
|
GXnand =0xe, /* NOT src OR NOT dst */
|
||||||
|
GXset =0xf /* 1 */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* LineStyle */
|
||||||
|
enum LineStyle:int
|
||||||
|
{
|
||||||
|
LineSolid =0,
|
||||||
|
LineOnOffDash =1,
|
||||||
|
LineDoubleDash =2
|
||||||
|
};
|
||||||
|
/* capStyle */
|
||||||
|
enum CapStyle:int
|
||||||
|
{
|
||||||
|
CapNotLast =0,
|
||||||
|
CapButt =1,
|
||||||
|
CapRound =2,
|
||||||
|
CapProjecting =3
|
||||||
|
};
|
||||||
|
/* joinStyle */
|
||||||
|
enum JoinStyle:int
|
||||||
|
{
|
||||||
|
JoinMiter =0,
|
||||||
|
JoinRound =1,
|
||||||
|
JoinBevel =2
|
||||||
|
};
|
||||||
|
/* fillStyle */
|
||||||
|
enum FillStyle:int
|
||||||
|
{
|
||||||
|
FillSolid =0,
|
||||||
|
FillTiled =1,
|
||||||
|
FillStippled =2,
|
||||||
|
FillOpaqueStippled =3
|
||||||
|
};
|
||||||
|
/* fillRule */
|
||||||
|
enum FillRule:int
|
||||||
|
{
|
||||||
|
EvenOddRule =0,
|
||||||
|
WindingRule =1
|
||||||
|
};
|
||||||
|
/* subwindow mode */
|
||||||
|
enum SubwindowMode:int
|
||||||
|
{
|
||||||
|
ClipByChildren =0,
|
||||||
|
IncludeInferiors =1
|
||||||
|
};
|
||||||
|
/* SetClipRectangles ordering */
|
||||||
|
enum ClipRectanglesOrdering:int
|
||||||
|
{
|
||||||
|
Unsorted =0,
|
||||||
|
YSorted =1,
|
||||||
|
YXSorted =2,
|
||||||
|
YXBanded =3
|
||||||
|
};
|
||||||
|
/* CoordinateMode for drawing routines */
|
||||||
|
enum CoordinateMode:int
|
||||||
|
{
|
||||||
|
CoordModeOrigin =0, /* relative to the origin */
|
||||||
|
CoordModePrevious =1 /* relative to previous point */
|
||||||
|
};
|
||||||
|
/* Polygon shapes */
|
||||||
|
enum PolygonShape:int
|
||||||
|
{
|
||||||
|
Complex =0, /* paths may intersect */
|
||||||
|
Nonconvex =1, /* no paths intersect, but not convex */
|
||||||
|
Convex =2 /* wholly convex */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Arc modes for PolyFillArc */
|
||||||
|
enum ArcMode:int
|
||||||
|
{
|
||||||
|
ArcChord =0, /* join endpoints of arc */
|
||||||
|
ArcPieSlice =1 /* join endpoints to center of arc */
|
||||||
|
};
|
||||||
|
/* GC components: masks used in CreateGC, CopyGC, ChangeGC, OR'ed into
|
||||||
|
GC.stateChanges */
|
||||||
|
enum GCMask:uint
|
||||||
|
{
|
||||||
|
GCFunction =1<<0,
|
||||||
|
GCPlaneMask =1<<1,
|
||||||
|
GCForeground =1<<2,
|
||||||
|
GCBackground =1<<3,
|
||||||
|
GCLineWidth =1<<4,
|
||||||
|
GCLineStyle =1<<5,
|
||||||
|
GCCapStyle =1<<6,
|
||||||
|
GCJoinStyle =1<<7,
|
||||||
|
GCFillStyle =1<<8,
|
||||||
|
GCFillRule =1<<9,
|
||||||
|
GCTile =1<<10,
|
||||||
|
GCStipple =1<<11,
|
||||||
|
GCTileStipXOrigin =1<<12,
|
||||||
|
GCTileStipYOrigin =1<<13,
|
||||||
|
GCFont =1<<14,
|
||||||
|
GCSubwindowMode =1<<15,
|
||||||
|
GCGraphicsExposures =1<<16,
|
||||||
|
GCClipXOrigin =1<<17,
|
||||||
|
GCClipYOrigin =1<<18,
|
||||||
|
GCClipMask =1<<19,
|
||||||
|
GCDashOffset =1<<20,
|
||||||
|
GCDashList =1<<21,
|
||||||
|
GCArcMode =1<<22,
|
||||||
|
};
|
||||||
|
const uint GCLastBit=22;
|
||||||
|
/*****************************************************************
|
||||||
|
* FONTS
|
||||||
|
*****************************************************************/
|
||||||
|
|
||||||
|
/* used in QueryFont -- draw direction */
|
||||||
|
enum FontDrawDirection:int
|
||||||
|
{
|
||||||
|
FontLeftToRight =0,
|
||||||
|
FontRightToLeft =1,
|
||||||
|
FontChange =255
|
||||||
|
}
|
||||||
|
/*****************************************************************
|
||||||
|
* IMAGING
|
||||||
|
*****************************************************************/
|
||||||
|
|
||||||
|
/* ImageFormat -- PutImage, GetImage */
|
||||||
|
enum ImageFormat:int
|
||||||
|
{
|
||||||
|
XYBitmap =0, /* depth 1, XYFormat */
|
||||||
|
XYPixmap =1, /* depth == drawable depth */
|
||||||
|
ZPixmap =2 /* depth == drawable depth */
|
||||||
|
};
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
* COLOR MAP STUFF
|
||||||
|
*****************************************************************/
|
||||||
|
|
||||||
|
/* For CreateColormap */
|
||||||
|
enum:int
|
||||||
|
{
|
||||||
|
AllocNone = 0, /* create map with no entries */
|
||||||
|
AllocAll = 1 /* allocate entire map writeable */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Flags used in StoreNamedColor, StoreColors */
|
||||||
|
enum StoreColor:int
|
||||||
|
{
|
||||||
|
DoRed =1<<0,
|
||||||
|
DoGreen =1<<1,
|
||||||
|
DoBlue =1<<2
|
||||||
|
};
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
* CURSOR STUFF
|
||||||
|
*****************************************************************/
|
||||||
|
|
||||||
|
/* QueryBestSize Class */
|
||||||
|
enum QueryBestSizeClass:int
|
||||||
|
{
|
||||||
|
CursorShape =0, /* largest size that can be displayed */
|
||||||
|
TileShape =1, /* size tiled fastest */
|
||||||
|
StippleShape =2 /* size stippled fastest */
|
||||||
|
};
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
* KEYBOARD/POINTER STUFF
|
||||||
|
*****************************************************************/
|
||||||
|
|
||||||
|
enum AutoRepeatMode:int
|
||||||
|
{
|
||||||
|
AutoRepeatModeOff =0,
|
||||||
|
AutoRepeatModeOn =1,
|
||||||
|
AutoRepeatModeDefault =2
|
||||||
|
};
|
||||||
|
|
||||||
|
enum LedMode:int
|
||||||
|
{
|
||||||
|
LedModeOff =0,
|
||||||
|
LedModeOn =1
|
||||||
|
};
|
||||||
|
/* masks for ChangeKeyboardControl */
|
||||||
|
|
||||||
|
enum KBMask:uint
|
||||||
|
{
|
||||||
|
KBKeyClickPercent =1<<0,
|
||||||
|
KBBellPercent =1<<1,
|
||||||
|
KBBellPitch =1<<2,
|
||||||
|
KBBellDuration =1<<3,
|
||||||
|
KBLed =1<<4,
|
||||||
|
KBLedMode =1<<5,
|
||||||
|
KBKey =1<<6,
|
||||||
|
KBAutoRepeatMode =1<<7
|
||||||
|
};
|
||||||
|
|
||||||
|
enum MappingErrorCode:int
|
||||||
|
{
|
||||||
|
MappingSuccess =0,
|
||||||
|
MappingBusy =1,
|
||||||
|
MappingFailed =2
|
||||||
|
};
|
||||||
|
|
||||||
|
enum MappingType:int
|
||||||
|
{
|
||||||
|
MappingModifier =0,
|
||||||
|
MappingKeyboard =1,
|
||||||
|
MappingPointer =2
|
||||||
|
};
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
* SCREEN SAVER STUFF
|
||||||
|
*****************************************************************/
|
||||||
|
|
||||||
|
enum ScreenSaverBlancking:int
|
||||||
|
{
|
||||||
|
DontPreferBlanking =0,
|
||||||
|
PreferBlanking =1,
|
||||||
|
DefaultBlanking =2
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ScreenSaverDisable:int
|
||||||
|
{
|
||||||
|
DisableScreenSaver =0,
|
||||||
|
DisableScreenInterval =0
|
||||||
|
};
|
||||||
|
|
||||||
|
enum ScreenSaverExposure:int
|
||||||
|
{
|
||||||
|
DontAllowExposures =0,
|
||||||
|
AllowExposures =1,
|
||||||
|
DefaultExposures =2
|
||||||
|
};
|
||||||
|
|
||||||
|
/* for ForceScreenSaver */
|
||||||
|
|
||||||
|
enum ScreenSaverMode:int
|
||||||
|
{
|
||||||
|
ScreenSaverReset =0,
|
||||||
|
ScreenSaverActive =1
|
||||||
|
};
|
||||||
|
|
||||||
|
/*****************************************************************
|
||||||
|
* HOSTS AND CONNECTIONS
|
||||||
|
*****************************************************************/
|
||||||
|
|
||||||
|
/* for ChangeHosts */
|
||||||
|
|
||||||
|
enum HostChange:int
|
||||||
|
{
|
||||||
|
HostInsert =0,
|
||||||
|
HostDelete =1
|
||||||
|
};
|
||||||
|
|
||||||
|
/* for ChangeAccessControl */
|
||||||
|
|
||||||
|
enum HostAccess:int
|
||||||
|
{
|
||||||
|
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 */
|
||||||
|
|
||||||
|
enum DisplayClass:int
|
||||||
|
{
|
||||||
|
StaticGray =0,
|
||||||
|
GrayScale =1,
|
||||||
|
StaticColor =2,
|
||||||
|
PseudoColor =3,
|
||||||
|
TrueColor =4,
|
||||||
|
DirectColor =5
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Byte order used in imageByteOrder and bitmapBitOrder */
|
||||||
|
|
||||||
|
enum ByteOrder:int
|
||||||
|
{
|
||||||
|
LSBFirst =0,
|
||||||
|
MSBFirst =1
|
||||||
|
};
|
|
@ -0,0 +1,80 @@
|
||||||
|
/* Xlib binding for D language
|
||||||
|
Copyright 2010 Adam Cigánek <adam.ciganek@gmail.com>
|
||||||
|
|
||||||
|
This file is free software, please read COPYING file for more informations
|
||||||
|
*/
|
||||||
|
|
||||||
|
module X11.Xatom;
|
||||||
|
|
||||||
|
import X11.X;
|
||||||
|
|
||||||
|
immutable Atom XA_PRIMARY = 1;
|
||||||
|
immutable Atom XA_SECONDARY = 2;
|
||||||
|
immutable Atom XA_ARC = 3;
|
||||||
|
immutable Atom XA_ATOM = 4;
|
||||||
|
immutable Atom XA_BITMAP = 5;
|
||||||
|
immutable Atom XA_CARDINAL = 6;
|
||||||
|
immutable Atom XA_COLORMAP = 7;
|
||||||
|
immutable Atom XA_CURSOR = 8;
|
||||||
|
immutable Atom XA_CUT_BUFFER0 = 9;
|
||||||
|
immutable Atom XA_CUT_BUFFER1 = 10;
|
||||||
|
immutable Atom XA_CUT_BUFFER2 = 11;
|
||||||
|
immutable Atom XA_CUT_BUFFER3 = 12;
|
||||||
|
immutable Atom XA_CUT_BUFFER4 = 13;
|
||||||
|
immutable Atom XA_CUT_BUFFER5 = 14;
|
||||||
|
immutable Atom XA_CUT_BUFFER6 = 15;
|
||||||
|
immutable Atom XA_CUT_BUFFER7 = 16;
|
||||||
|
immutable Atom XA_DRAWABLE = 17;
|
||||||
|
immutable Atom XA_FONT = 18;
|
||||||
|
immutable Atom XA_INTEGER = 19;
|
||||||
|
immutable Atom XA_PIXMAP = 20;
|
||||||
|
immutable Atom XA_POINT = 21;
|
||||||
|
immutable Atom XA_RECTANGLE = 22;
|
||||||
|
immutable Atom XA_RESOURCE_MANAGER = 23;
|
||||||
|
immutable Atom XA_RGB_COLOR_MAP = 24;
|
||||||
|
immutable Atom XA_RGB_BEST_MAP = 25;
|
||||||
|
immutable Atom XA_RGB_BLUE_MAP = 26;
|
||||||
|
immutable Atom XA_RGB_DEFAULT_MAP = 27;
|
||||||
|
immutable Atom XA_RGB_GRAY_MAP = 28;
|
||||||
|
immutable Atom XA_RGB_GREEN_MAP = 29;
|
||||||
|
immutable Atom XA_RGB_RED_MAP = 30;
|
||||||
|
immutable Atom XA_STRING = 31;
|
||||||
|
immutable Atom XA_VISUALID = 32;
|
||||||
|
immutable Atom XA_WINDOW = 33;
|
||||||
|
immutable Atom XA_WM_COMMAND = 34;
|
||||||
|
immutable Atom XA_WM_HINTS = 35;
|
||||||
|
immutable Atom XA_WM_CLIENT_MACHINE = 36;
|
||||||
|
immutable Atom XA_WM_ICON_NAME = 37;
|
||||||
|
immutable Atom XA_WM_ICON_SIZE = 38;
|
||||||
|
immutable Atom XA_WM_NAME = 39;
|
||||||
|
immutable Atom XA_WM_NORMAL_HINTS = 40;
|
||||||
|
immutable Atom XA_WM_SIZE_HINTS = 41;
|
||||||
|
immutable Atom XA_WM_ZOOM_HINTS = 42;
|
||||||
|
immutable Atom XA_MIN_SPACE = 43;
|
||||||
|
immutable Atom XA_NORM_SPACE = 44;
|
||||||
|
immutable Atom XA_MAX_SPACE = 45;
|
||||||
|
immutable Atom XA_END_SPACE = 46;
|
||||||
|
immutable Atom XA_SUPERSCRIPT_X = 47;
|
||||||
|
immutable Atom XA_SUPERSCRIPT_Y = 48;
|
||||||
|
immutable Atom XA_SUBSCRIPT_X = 49;
|
||||||
|
immutable Atom XA_SUBSCRIPT_Y = 50;
|
||||||
|
immutable Atom XA_UNDERLINE_POSITION = 51;
|
||||||
|
immutable Atom XA_UNDERLINE_THICKNESS = 52;
|
||||||
|
immutable Atom XA_STRIKEOUT_ASCENT = 53;
|
||||||
|
immutable Atom XA_STRIKEOUT_DESCENT = 54;
|
||||||
|
immutable Atom XA_ITALIC_ANGLE = 55;
|
||||||
|
immutable Atom XA_X_HEIGHT = 56;
|
||||||
|
immutable Atom XA_QUAD_WIDTH = 57;
|
||||||
|
immutable Atom XA_WEIGHT = 58;
|
||||||
|
immutable Atom XA_POINT_SIZE = 59;
|
||||||
|
immutable Atom XA_RESOLUTION = 60;
|
||||||
|
immutable Atom XA_COPYRIGHT = 61;
|
||||||
|
immutable Atom XA_NOTICE = 62;
|
||||||
|
immutable Atom XA_FONT_NAME = 63;
|
||||||
|
immutable Atom XA_FAMILY_NAME = 64;
|
||||||
|
immutable Atom XA_FULL_NAME = 65;
|
||||||
|
immutable Atom XA_CAP_HEIGHT = 66;
|
||||||
|
immutable Atom XA_WM_CLASS = 67;
|
||||||
|
immutable Atom XA_WM_TRANSIENT_FOR = 68;
|
||||||
|
|
||||||
|
immutable Atom XA_LAST_PREDEFINED = 68;
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,834 @@
|
||||||
|
|
||||||
|
/***********************************************************
|
||||||
|
|
||||||
|
Copyright 1987, 1998 The Open Group
|
||||||
|
|
||||||
|
Permission to use, copy, modify, distribute, and sell this software and its
|
||||||
|
documentation for any purpose is hereby granted without fee, provided that
|
||||||
|
the above copyright notice appear in all copies and that both that
|
||||||
|
copyright notice and this permission notice appear in supporting
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||||
|
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
Except as contained in this notice, the name of The Open Group shall not be
|
||||||
|
used in advertising or otherwise to promote the sale, use or other dealings
|
||||||
|
in this Software without prior written authorization from The Open Group.
|
||||||
|
|
||||||
|
|
||||||
|
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
|
||||||
|
|
||||||
|
All Rights Reserved
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and distribute this software and its
|
||||||
|
documentation for any purpose and without fee is hereby granted,
|
||||||
|
provided that the above copyright notice appear in all copies and that
|
||||||
|
both that copyright notice and this permission notice appear in
|
||||||
|
supporting documentation, and that the name of Digital not be
|
||||||
|
used in advertising or publicity pertaining to distribution of the
|
||||||
|
software without specific, written prior permission.
|
||||||
|
|
||||||
|
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||||
|
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||||
|
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||||
|
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||||
|
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||||
|
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
******************************************************************/
|
||||||
|
|
||||||
|
// TODO: [D-bidings]: So far only the Region type is defined, finish the rest.
|
||||||
|
|
||||||
|
module X11.Xutil;
|
||||||
|
|
||||||
|
import X11.X;
|
||||||
|
// import X11.keysym;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Bitmask returned by XParseGeometry(). Each bit tells if the corresponding
|
||||||
|
* value (x, y, width, height) was found in the parsed string.
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
NoValue = 0x0000,
|
||||||
|
XValue = 0x0001,
|
||||||
|
YValue = 0x0002,
|
||||||
|
WidthValue = 0x0004,
|
||||||
|
HeightValue = 0x0008,
|
||||||
|
AllValues = 0x000F,
|
||||||
|
XNegative = 0x0010,
|
||||||
|
YNegative = 0x0020
|
||||||
|
}
|
||||||
|
|
||||||
|
/+
|
||||||
|
|
||||||
|
/*
|
||||||
|
* new version containing base_width, base_height, and win_gravity fields;
|
||||||
|
* used with WM_NORMAL_HINTS.
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
long flags; /* marks which fields in this structure are defined */
|
||||||
|
int x, y; /* obsolete for new window mgrs, but clients */
|
||||||
|
int width, height; /* should set so old wm's don't mess up */
|
||||||
|
int min_width, min_height;
|
||||||
|
int max_width, max_height;
|
||||||
|
int width_inc, height_inc;
|
||||||
|
struct {
|
||||||
|
int x; /* numerator */
|
||||||
|
int y; /* denominator */
|
||||||
|
} min_aspect, max_aspect;
|
||||||
|
int base_width, base_height; /* added by ICCCM version 1 */
|
||||||
|
int win_gravity; /* added by ICCCM version 1 */
|
||||||
|
} XSizeHints;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The next block of definitions are for window manager properties that
|
||||||
|
* clients and applications use for communication.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* flags argument in size hints */
|
||||||
|
#define USPosition (1L << 0) /* user specified x, y */
|
||||||
|
#define USSize (1L << 1) /* user specified width, height */
|
||||||
|
|
||||||
|
#define PPosition (1L << 2) /* program specified position */
|
||||||
|
#define PSize (1L << 3) /* program specified size */
|
||||||
|
#define PMinSize (1L << 4) /* program specified minimum size */
|
||||||
|
#define PMaxSize (1L << 5) /* program specified maximum size */
|
||||||
|
#define PResizeInc (1L << 6) /* program specified resize increments */
|
||||||
|
#define PAspect (1L << 7) /* program specified min and max aspect ratios */
|
||||||
|
#define PBaseSize (1L << 8) /* program specified base for incrementing */
|
||||||
|
#define PWinGravity (1L << 9) /* program specified window gravity */
|
||||||
|
|
||||||
|
/* obsolete */
|
||||||
|
#define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
long flags; /* marks which fields in this structure are defined */
|
||||||
|
Bool input; /* does this application rely on the window manager to
|
||||||
|
get keyboard input? */
|
||||||
|
int initial_state; /* see below */
|
||||||
|
Pixmap icon_pixmap; /* pixmap to be used as icon */
|
||||||
|
Window icon_window; /* window to be used as icon */
|
||||||
|
int icon_x, icon_y; /* initial position of icon */
|
||||||
|
Pixmap icon_mask; /* icon mask bitmap */
|
||||||
|
XID window_group; /* id of related window group */
|
||||||
|
/* this structure may be extended in the future */
|
||||||
|
} XWMHints;
|
||||||
|
|
||||||
|
/* definition for flags of XWMHints */
|
||||||
|
|
||||||
|
#define InputHint (1L << 0)
|
||||||
|
#define StateHint (1L << 1)
|
||||||
|
#define IconPixmapHint (1L << 2)
|
||||||
|
#define IconWindowHint (1L << 3)
|
||||||
|
#define IconPositionHint (1L << 4)
|
||||||
|
#define IconMaskHint (1L << 5)
|
||||||
|
#define WindowGroupHint (1L << 6)
|
||||||
|
#define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \
|
||||||
|
IconPositionHint|IconMaskHint|WindowGroupHint)
|
||||||
|
#define XUrgencyHint (1L << 8)
|
||||||
|
|
||||||
|
/* definitions for initial window state */
|
||||||
|
#define WithdrawnState 0 /* for windows that are not mapped */
|
||||||
|
#define NormalState 1 /* most applications want to start this way */
|
||||||
|
#define IconicState 3 /* application wants to start as an icon */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Obsolete states no longer defined by ICCCM
|
||||||
|
*/
|
||||||
|
#define DontCareState 0 /* don't know or care */
|
||||||
|
#define ZoomState 2 /* application wants to start zoomed */
|
||||||
|
#define InactiveState 4 /* application believes it is seldom used; */
|
||||||
|
/* some wm's may put it on inactive menu */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* new structure for manipulating TEXT properties; used with WM_NAME,
|
||||||
|
* WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND.
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
unsigned char *value; /* same as Property routines */
|
||||||
|
Atom encoding; /* prop type */
|
||||||
|
int format; /* prop data format: 8, 16, or 32 */
|
||||||
|
unsigned long nitems; /* number of data items in value */
|
||||||
|
} XTextProperty;
|
||||||
|
|
||||||
|
#define XNoMemory -1
|
||||||
|
#define XLocaleNotSupported -2
|
||||||
|
#define XConverterNotFound -3
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
XStringStyle, /* STRING */
|
||||||
|
XCompoundTextStyle, /* COMPOUND_TEXT */
|
||||||
|
XTextStyle, /* text in owner's encoding (current locale)*/
|
||||||
|
XStdICCTextStyle, /* STRING, else COMPOUND_TEXT */
|
||||||
|
/* The following is an XFree86 extension, introduced in November 2000 */
|
||||||
|
XUTF8StringStyle /* UTF8_STRING */
|
||||||
|
} XICCEncodingStyle;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int min_width, min_height;
|
||||||
|
int max_width, max_height;
|
||||||
|
int width_inc, height_inc;
|
||||||
|
} XIconSize;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
char *res_name;
|
||||||
|
char *res_class;
|
||||||
|
} XClassHint;
|
||||||
|
|
||||||
|
#ifdef XUTIL_DEFINE_FUNCTIONS
|
||||||
|
extern int XDestroyImage(
|
||||||
|
XImage *ximage);
|
||||||
|
extern unsigned long XGetPixel(
|
||||||
|
XImage *ximage,
|
||||||
|
int x, int y);
|
||||||
|
extern int XPutPixel(
|
||||||
|
XImage *ximage,
|
||||||
|
int x, int y,
|
||||||
|
unsigned long pixel);
|
||||||
|
extern XImage *XSubImage(
|
||||||
|
XImage *ximage,
|
||||||
|
int x, int y,
|
||||||
|
unsigned int width, unsigned int height);
|
||||||
|
extern int XAddPixel(
|
||||||
|
XImage *ximage,
|
||||||
|
long value);
|
||||||
|
#else
|
||||||
|
/*
|
||||||
|
* These macros are used to give some sugar to the image routines so that
|
||||||
|
* naive people are more comfortable with them.
|
||||||
|
*/
|
||||||
|
#define XDestroyImage(ximage) \
|
||||||
|
((*((ximage)->f.destroy_image))((ximage)))
|
||||||
|
#define XGetPixel(ximage, x, y) \
|
||||||
|
((*((ximage)->f.get_pixel))((ximage), (x), (y)))
|
||||||
|
#define XPutPixel(ximage, x, y, pixel) \
|
||||||
|
((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)))
|
||||||
|
#define XSubImage(ximage, x, y, width, height) \
|
||||||
|
((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height)))
|
||||||
|
#define XAddPixel(ximage, value) \
|
||||||
|
((*((ximage)->f.add_pixel))((ximage), (value)))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Compose sequence status structure, used in calling XLookupString.
|
||||||
|
*/
|
||||||
|
typedef struct _XComposeStatus {
|
||||||
|
XPointer compose_ptr; /* state table pointer */
|
||||||
|
int chars_matched; /* match state */
|
||||||
|
} XComposeStatus;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keysym macros, used on Keysyms to test for classes of symbols
|
||||||
|
*/
|
||||||
|
#define IsKeypadKey(keysym) \
|
||||||
|
(((KeySym)(keysym) >= XK_KP_Space) && ((KeySym)(keysym) <= XK_KP_Equal))
|
||||||
|
|
||||||
|
#define IsPrivateKeypadKey(keysym) \
|
||||||
|
(((KeySym)(keysym) >= 0x11000000) && ((KeySym)(keysym) <= 0x1100FFFF))
|
||||||
|
|
||||||
|
#define IsCursorKey(keysym) \
|
||||||
|
(((KeySym)(keysym) >= XK_Home) && ((KeySym)(keysym) < XK_Select))
|
||||||
|
|
||||||
|
#define IsPFKey(keysym) \
|
||||||
|
(((KeySym)(keysym) >= XK_KP_F1) && ((KeySym)(keysym) <= XK_KP_F4))
|
||||||
|
|
||||||
|
#define IsFunctionKey(keysym) \
|
||||||
|
(((KeySym)(keysym) >= XK_F1) && ((KeySym)(keysym) <= XK_F35))
|
||||||
|
|
||||||
|
#define IsMiscFunctionKey(keysym) \
|
||||||
|
(((KeySym)(keysym) >= XK_Select) && ((KeySym)(keysym) <= XK_Break))
|
||||||
|
|
||||||
|
#ifdef XK_XKB_KEYS
|
||||||
|
#define IsModifierKey(keysym) \
|
||||||
|
((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
|
||||||
|
|| (((KeySym)(keysym) >= XK_ISO_Lock) && \
|
||||||
|
((KeySym)(keysym) <= XK_ISO_Last_Group_Lock)) \
|
||||||
|
|| ((KeySym)(keysym) == XK_Mode_switch) \
|
||||||
|
|| ((KeySym)(keysym) == XK_Num_Lock))
|
||||||
|
#else
|
||||||
|
#define IsModifierKey(keysym) \
|
||||||
|
((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
|
||||||
|
|| ((KeySym)(keysym) == XK_Mode_switch) \
|
||||||
|
|| ((KeySym)(keysym) == XK_Num_Lock))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* opaque reference to Region data type
|
||||||
|
*/
|
||||||
|
struct _XRegion {}
|
||||||
|
alias _XRegion* Region;
|
||||||
|
|
||||||
|
/+
|
||||||
|
|
||||||
|
/* Return values from XRectInRegion() */
|
||||||
|
#define RectangleOut 0
|
||||||
|
#define RectangleIn 1
|
||||||
|
#define RectanglePart 2
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Information used by the visual utility routines to find desired visual
|
||||||
|
* type from the many visuals a display may support.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
Visual *visual;
|
||||||
|
VisualID visualid;
|
||||||
|
int screen;
|
||||||
|
int depth;
|
||||||
|
#if defined(__cplusplus) || defined(c_plusplus)
|
||||||
|
int c_class; /* C++ */
|
||||||
|
#else
|
||||||
|
int class;
|
||||||
|
#endif
|
||||||
|
unsigned long red_mask;
|
||||||
|
unsigned long green_mask;
|
||||||
|
unsigned long blue_mask;
|
||||||
|
int colormap_size;
|
||||||
|
int bits_per_rgb;
|
||||||
|
} XVisualInfo;
|
||||||
|
|
||||||
|
#define VisualNoMask 0x0
|
||||||
|
#define VisualIDMask 0x1
|
||||||
|
#define VisualScreenMask 0x2
|
||||||
|
#define VisualDepthMask 0x4
|
||||||
|
#define VisualClassMask 0x8
|
||||||
|
#define VisualRedMaskMask 0x10
|
||||||
|
#define VisualGreenMaskMask 0x20
|
||||||
|
#define VisualBlueMaskMask 0x40
|
||||||
|
#define VisualColormapSizeMask 0x80
|
||||||
|
#define VisualBitsPerRGBMask 0x100
|
||||||
|
#define VisualAllMask 0x1FF
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This defines a window manager property that clients may use to
|
||||||
|
* share standard color maps of type RGB_COLOR_MAP:
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
Colormap colormap;
|
||||||
|
unsigned long red_max;
|
||||||
|
unsigned long red_mult;
|
||||||
|
unsigned long green_max;
|
||||||
|
unsigned long green_mult;
|
||||||
|
unsigned long blue_max;
|
||||||
|
unsigned long blue_mult;
|
||||||
|
unsigned long base_pixel;
|
||||||
|
VisualID visualid; /* added by ICCCM version 1 */
|
||||||
|
XID killid; /* added by ICCCM version 1 */
|
||||||
|
} XStandardColormap;
|
||||||
|
|
||||||
|
#define ReleaseByFreeingColormap ((XID) 1L) /* for killid field above */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* return codes for XReadBitmapFile and XWriteBitmapFile
|
||||||
|
*/
|
||||||
|
#define BitmapSuccess 0
|
||||||
|
#define BitmapOpenFailed 1
|
||||||
|
#define BitmapFileInvalid 2
|
||||||
|
#define BitmapNoMemory 3
|
||||||
|
|
||||||
|
/****************************************************************
|
||||||
|
*
|
||||||
|
* Context Management
|
||||||
|
*
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/* Associative lookup table return codes */
|
||||||
|
|
||||||
|
#define XCSUCCESS 0 /* No error. */
|
||||||
|
#define XCNOMEM 1 /* Out of memory */
|
||||||
|
#define XCNOENT 2 /* No entry in table */
|
||||||
|
|
||||||
|
typedef int XContext;
|
||||||
|
|
||||||
|
#define XUniqueContext() ((XContext) XrmUniqueQuark())
|
||||||
|
#define XStringToContext(string) ((XContext) XrmStringToQuark(string))
|
||||||
|
|
||||||
|
_XFUNCPROTOBEGIN
|
||||||
|
|
||||||
|
/* The following declarations are alphabetized. */
|
||||||
|
|
||||||
|
extern XClassHint *XAllocClassHint (
|
||||||
|
void
|
||||||
|
);
|
||||||
|
|
||||||
|
extern XIconSize *XAllocIconSize (
|
||||||
|
void
|
||||||
|
);
|
||||||
|
|
||||||
|
extern XSizeHints *XAllocSizeHints (
|
||||||
|
void
|
||||||
|
);
|
||||||
|
|
||||||
|
extern XStandardColormap *XAllocStandardColormap (
|
||||||
|
void
|
||||||
|
);
|
||||||
|
|
||||||
|
extern XWMHints *XAllocWMHints (
|
||||||
|
void
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XClipBox(
|
||||||
|
Region /* r */,
|
||||||
|
XRectangle* /* rect_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Region XCreateRegion(
|
||||||
|
void
|
||||||
|
);
|
||||||
|
|
||||||
|
extern const char *XDefaultString (void);
|
||||||
|
|
||||||
|
extern int XDeleteContext(
|
||||||
|
Display* /* display */,
|
||||||
|
XID /* rid */,
|
||||||
|
XContext /* context */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XDestroyRegion(
|
||||||
|
Region /* r */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XEmptyRegion(
|
||||||
|
Region /* r */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XEqualRegion(
|
||||||
|
Region /* r1 */,
|
||||||
|
Region /* r2 */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XFindContext(
|
||||||
|
Display* /* display */,
|
||||||
|
XID /* rid */,
|
||||||
|
XContext /* context */,
|
||||||
|
XPointer* /* data_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetClassHint(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XClassHint* /* class_hints_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetIconSizes(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XIconSize** /* size_list_return */,
|
||||||
|
int* /* count_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetNormalHints(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XSizeHints* /* hints_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetRGBColormaps(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XStandardColormap** /* stdcmap_return */,
|
||||||
|
int* /* count_return */,
|
||||||
|
Atom /* property */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetSizeHints(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XSizeHints* /* hints_return */,
|
||||||
|
Atom /* property */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetStandardColormap(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XStandardColormap* /* colormap_return */,
|
||||||
|
Atom /* property */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetTextProperty(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* window */,
|
||||||
|
XTextProperty* /* text_prop_return */,
|
||||||
|
Atom /* property */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern XVisualInfo *XGetVisualInfo(
|
||||||
|
Display* /* display */,
|
||||||
|
long /* vinfo_mask */,
|
||||||
|
XVisualInfo* /* vinfo_template */,
|
||||||
|
int* /* nitems_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetWMClientMachine(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XTextProperty* /* text_prop_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern XWMHints *XGetWMHints(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetWMIconName(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XTextProperty* /* text_prop_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetWMName(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XTextProperty* /* text_prop_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetWMNormalHints(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XSizeHints* /* hints_return */,
|
||||||
|
long* /* supplied_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetWMSizeHints(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XSizeHints* /* hints_return */,
|
||||||
|
long* /* supplied_return */,
|
||||||
|
Atom /* property */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XGetZoomHints(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XSizeHints* /* zhints_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XIntersectRegion(
|
||||||
|
Region /* sra */,
|
||||||
|
Region /* srb */,
|
||||||
|
Region /* dr_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void XConvertCase(
|
||||||
|
KeySym /* sym */,
|
||||||
|
KeySym* /* lower */,
|
||||||
|
KeySym* /* upper */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XLookupString(
|
||||||
|
XKeyEvent* /* event_struct */,
|
||||||
|
char* /* buffer_return */,
|
||||||
|
int /* bytes_buffer */,
|
||||||
|
KeySym* /* keysym_return */,
|
||||||
|
XComposeStatus* /* status_in_out */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XMatchVisualInfo(
|
||||||
|
Display* /* display */,
|
||||||
|
int /* screen */,
|
||||||
|
int /* depth */,
|
||||||
|
int /* class */,
|
||||||
|
XVisualInfo* /* vinfo_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XOffsetRegion(
|
||||||
|
Region /* r */,
|
||||||
|
int /* dx */,
|
||||||
|
int /* dy */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Bool XPointInRegion(
|
||||||
|
Region /* r */,
|
||||||
|
int /* x */,
|
||||||
|
int /* y */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Region XPolygonRegion(
|
||||||
|
XPoint* /* points */,
|
||||||
|
int /* n */,
|
||||||
|
int /* fill_rule */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XRectInRegion(
|
||||||
|
Region /* r */,
|
||||||
|
int /* x */,
|
||||||
|
int /* y */,
|
||||||
|
unsigned int /* width */,
|
||||||
|
unsigned int /* height */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XSaveContext(
|
||||||
|
Display* /* display */,
|
||||||
|
XID /* rid */,
|
||||||
|
XContext /* context */,
|
||||||
|
_Xconst char* /* data */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XSetClassHint(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XClassHint* /* class_hints */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XSetIconSizes(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XIconSize* /* size_list */,
|
||||||
|
int /* count */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XSetNormalHints(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XSizeHints* /* hints */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void XSetRGBColormaps(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XStandardColormap* /* stdcmaps */,
|
||||||
|
int /* count */,
|
||||||
|
Atom /* property */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XSetSizeHints(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XSizeHints* /* hints */,
|
||||||
|
Atom /* property */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XSetStandardProperties(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
_Xconst char* /* window_name */,
|
||||||
|
_Xconst char* /* icon_name */,
|
||||||
|
Pixmap /* icon_pixmap */,
|
||||||
|
char** /* argv */,
|
||||||
|
int /* argc */,
|
||||||
|
XSizeHints* /* hints */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void XSetTextProperty(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XTextProperty* /* text_prop */,
|
||||||
|
Atom /* property */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void XSetWMClientMachine(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XTextProperty* /* text_prop */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XSetWMHints(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XWMHints* /* wm_hints */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void XSetWMIconName(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XTextProperty* /* text_prop */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void XSetWMName(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XTextProperty* /* text_prop */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void XSetWMNormalHints(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XSizeHints* /* hints */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void XSetWMProperties(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XTextProperty* /* window_name */,
|
||||||
|
XTextProperty* /* icon_name */,
|
||||||
|
char** /* argv */,
|
||||||
|
int /* argc */,
|
||||||
|
XSizeHints* /* normal_hints */,
|
||||||
|
XWMHints* /* wm_hints */,
|
||||||
|
XClassHint* /* class_hints */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void XmbSetWMProperties(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
_Xconst char* /* window_name */,
|
||||||
|
_Xconst char* /* icon_name */,
|
||||||
|
char** /* argv */,
|
||||||
|
int /* argc */,
|
||||||
|
XSizeHints* /* normal_hints */,
|
||||||
|
XWMHints* /* wm_hints */,
|
||||||
|
XClassHint* /* class_hints */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void Xutf8SetWMProperties(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
_Xconst char* /* window_name */,
|
||||||
|
_Xconst char* /* icon_name */,
|
||||||
|
char** /* argv */,
|
||||||
|
int /* argc */,
|
||||||
|
XSizeHints* /* normal_hints */,
|
||||||
|
XWMHints* /* wm_hints */,
|
||||||
|
XClassHint* /* class_hints */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void XSetWMSizeHints(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XSizeHints* /* hints */,
|
||||||
|
Atom /* property */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XSetRegion(
|
||||||
|
Display* /* display */,
|
||||||
|
GC /* gc */,
|
||||||
|
Region /* r */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void XSetStandardColormap(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XStandardColormap* /* colormap */,
|
||||||
|
Atom /* property */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XSetZoomHints(
|
||||||
|
Display* /* display */,
|
||||||
|
Window /* w */,
|
||||||
|
XSizeHints* /* zhints */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XShrinkRegion(
|
||||||
|
Region /* r */,
|
||||||
|
int /* dx */,
|
||||||
|
int /* dy */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XStringListToTextProperty(
|
||||||
|
char** /* list */,
|
||||||
|
int /* count */,
|
||||||
|
XTextProperty* /* text_prop_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XSubtractRegion(
|
||||||
|
Region /* sra */,
|
||||||
|
Region /* srb */,
|
||||||
|
Region /* dr_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XmbTextListToTextProperty(
|
||||||
|
Display* display,
|
||||||
|
char** list,
|
||||||
|
int count,
|
||||||
|
XICCEncodingStyle style,
|
||||||
|
XTextProperty* text_prop_return
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XwcTextListToTextProperty(
|
||||||
|
Display* display,
|
||||||
|
wchar_t** list,
|
||||||
|
int count,
|
||||||
|
XICCEncodingStyle style,
|
||||||
|
XTextProperty* text_prop_return
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int Xutf8TextListToTextProperty(
|
||||||
|
Display* display,
|
||||||
|
char** list,
|
||||||
|
int count,
|
||||||
|
XICCEncodingStyle style,
|
||||||
|
XTextProperty* text_prop_return
|
||||||
|
);
|
||||||
|
|
||||||
|
extern void XwcFreeStringList(
|
||||||
|
wchar_t** list
|
||||||
|
);
|
||||||
|
|
||||||
|
extern Status XTextPropertyToStringList(
|
||||||
|
XTextProperty* /* text_prop */,
|
||||||
|
char*** /* list_return */,
|
||||||
|
int* /* count_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XmbTextPropertyToTextList(
|
||||||
|
Display* display,
|
||||||
|
const XTextProperty* text_prop,
|
||||||
|
char*** list_return,
|
||||||
|
int* count_return
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XwcTextPropertyToTextList(
|
||||||
|
Display* display,
|
||||||
|
const XTextProperty* text_prop,
|
||||||
|
wchar_t*** list_return,
|
||||||
|
int* count_return
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int Xutf8TextPropertyToTextList(
|
||||||
|
Display* display,
|
||||||
|
const XTextProperty* text_prop,
|
||||||
|
char*** list_return,
|
||||||
|
int* count_return
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XUnionRectWithRegion(
|
||||||
|
XRectangle* /* rectangle */,
|
||||||
|
Region /* src_region */,
|
||||||
|
Region /* dest_region_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XUnionRegion(
|
||||||
|
Region /* sra */,
|
||||||
|
Region /* srb */,
|
||||||
|
Region /* dr_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XWMGeometry(
|
||||||
|
Display* /* display */,
|
||||||
|
int /* screen_number */,
|
||||||
|
_Xconst char* /* user_geometry */,
|
||||||
|
_Xconst char* /* default_geometry */,
|
||||||
|
unsigned int /* border_width */,
|
||||||
|
XSizeHints* /* hints */,
|
||||||
|
int* /* x_return */,
|
||||||
|
int* /* y_return */,
|
||||||
|
int* /* width_return */,
|
||||||
|
int* /* height_return */,
|
||||||
|
int* /* gravity_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
extern int XXorRegion(
|
||||||
|
Region /* sra */,
|
||||||
|
Region /* srb */,
|
||||||
|
Region /* dr_return */
|
||||||
|
);
|
||||||
|
|
||||||
|
_XFUNCPROTOEND
|
||||||
|
+/
|
|
@ -0,0 +1,510 @@
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* Copyright © 2000 SuSE, Inc.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||||
|
* documentation for any purpose is hereby granted without fee, provided that
|
||||||
|
* the above copyright notice appear in all copies and that both that
|
||||||
|
* copyright notice and this permission notice appear in supporting
|
||||||
|
* documentation, and that the name of SuSE not be used in advertising or
|
||||||
|
* publicity pertaining to distribution of the software without specific,
|
||||||
|
* written prior permission. SuSE makes no representations about the
|
||||||
|
* suitability of this software for any purpose. It is provided "as is"
|
||||||
|
* without express or implied warranty.
|
||||||
|
*
|
||||||
|
* SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
|
||||||
|
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||||
|
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||||
|
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* Author: Keith Packard, SuSE, Inc.
|
||||||
|
* Author of this D binding: Adam Cigánek <adam.ciganek@gmail.com>
|
||||||
|
*/
|
||||||
|
module X11.extensions.Xrender;
|
||||||
|
|
||||||
|
pragma(lib, "Xrender");
|
||||||
|
|
||||||
|
import X11.Xlib;
|
||||||
|
// import X11.Xosdefs;
|
||||||
|
import X11.Xutil;
|
||||||
|
|
||||||
|
import X11.extensions.render;
|
||||||
|
|
||||||
|
struct XRenderDirectFormat {
|
||||||
|
short red;
|
||||||
|
short redMask;
|
||||||
|
short green;
|
||||||
|
short greenMask;
|
||||||
|
short blue;
|
||||||
|
short blueMask;
|
||||||
|
short alpha;
|
||||||
|
short alphaMask;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XRenderPictFormat {
|
||||||
|
PictFormat id;
|
||||||
|
int type;
|
||||||
|
int depth;
|
||||||
|
XRenderDirectFormat direct;
|
||||||
|
Colormap colormap;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum {
|
||||||
|
PictFormatID = 1 << 0,
|
||||||
|
PictFormatType = 1 << 1,
|
||||||
|
PictFormatDepth = 1 << 2,
|
||||||
|
PictFormatRed = 1 << 3,
|
||||||
|
PictFormatRedMask = 1 << 4,
|
||||||
|
PictFormatGreen = 1 << 5,
|
||||||
|
PictFormatGreenMask = 1 << 6,
|
||||||
|
PictFormatBlue = 1 << 7,
|
||||||
|
PictFormatBlueMask = 1 << 8,
|
||||||
|
PictFormatAlpha = 1 << 9,
|
||||||
|
PictFormatAlphaMask = 1 << 10,
|
||||||
|
PictFormatColormap = 1 << 11}
|
||||||
|
|
||||||
|
struct XRenderPictureAttributes {
|
||||||
|
int repeat;
|
||||||
|
Picture alpha_map;
|
||||||
|
int alpha_x_origin;
|
||||||
|
int alpha_y_origin;
|
||||||
|
int clip_x_origin;
|
||||||
|
int clip_y_origin;
|
||||||
|
Pixmap clip_mask;
|
||||||
|
Bool graphics_exposures;
|
||||||
|
int subwindow_mode;
|
||||||
|
int poly_edge;
|
||||||
|
int poly_mode;
|
||||||
|
Atom dither;
|
||||||
|
Bool component_alpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XRenderColor {
|
||||||
|
ushort red;
|
||||||
|
ushort green;
|
||||||
|
ushort blue;
|
||||||
|
ushort alpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XGlyphInfo {
|
||||||
|
ushort width;
|
||||||
|
ushort height;
|
||||||
|
short x;
|
||||||
|
short y;
|
||||||
|
short xOff;
|
||||||
|
short yOff;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XGlyphElt8 {
|
||||||
|
GlyphSet glyphset;
|
||||||
|
const char* chars;
|
||||||
|
int nchars;
|
||||||
|
int xOff;
|
||||||
|
int yOff;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XGlyphElt16 {
|
||||||
|
GlyphSet glyphset;
|
||||||
|
const ushort* chars;
|
||||||
|
int nchars;
|
||||||
|
int xOff;
|
||||||
|
int yOff;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XGlyphElt32 {
|
||||||
|
GlyphSet glyphset;
|
||||||
|
const uint* chars;
|
||||||
|
int nchars;
|
||||||
|
int xOff;
|
||||||
|
int yOff;
|
||||||
|
}
|
||||||
|
|
||||||
|
alias double XDouble;
|
||||||
|
|
||||||
|
struct XPointDouble {
|
||||||
|
XDouble x, y;
|
||||||
|
}
|
||||||
|
|
||||||
|
XFixed XDoubleToFixed(XDouble f) { return cast(XFixed) (f * 65536); }
|
||||||
|
XDouble XFixedToDouble(XFixed f) { return cast(XDouble) (f / 65536); }
|
||||||
|
|
||||||
|
alias int XFixed;
|
||||||
|
|
||||||
|
struct XPointFixed {
|
||||||
|
XFixed x, y;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XLineFixed {
|
||||||
|
XPointFixed p1, p2;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XTriangle {
|
||||||
|
XPointFixed p1, p2, p3;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XCircle {
|
||||||
|
XFixed x;
|
||||||
|
XFixed y;
|
||||||
|
XFixed radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XTrapezoid {
|
||||||
|
XFixed top, bottom;
|
||||||
|
XLineFixed left, right;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XTransform {
|
||||||
|
XFixed matrix[3][3];
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XFilters {
|
||||||
|
int nfilter;
|
||||||
|
char** filter;
|
||||||
|
int nalias;
|
||||||
|
short* _alias; // [D-binding]: This was called alias, but that is a keyword in D.
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XIndexValue {
|
||||||
|
uint pixel;
|
||||||
|
ushort red, green, blue, alpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XAnimCursor {
|
||||||
|
Cursor cursor;
|
||||||
|
uint delay;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XSpanFix {
|
||||||
|
XFixed left, right, y;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XTrap {
|
||||||
|
XSpanFix top, bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XLinearGradient {
|
||||||
|
XPointFixed p1;
|
||||||
|
XPointFixed p2;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XRadialGradient {
|
||||||
|
XCircle inner;
|
||||||
|
XCircle outer;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct XConicalGradient {
|
||||||
|
XPointFixed center;
|
||||||
|
XFixed angle; // in degrees
|
||||||
|
}
|
||||||
|
|
||||||
|
extern(C) Bool XRenderQueryExtension(
|
||||||
|
Display* dpy,
|
||||||
|
int* event_basep,
|
||||||
|
int* error_basep);
|
||||||
|
|
||||||
|
extern(C) Status XRenderQueryVersion(
|
||||||
|
Display* dpy,
|
||||||
|
int* major_versionp,
|
||||||
|
int* minor_versionp);
|
||||||
|
|
||||||
|
extern(C) Status XRenderQueryFormats(
|
||||||
|
Display* dpy);
|
||||||
|
|
||||||
|
extern(C) int XRenderQuerySubpixelOrder(
|
||||||
|
Display* dpy,
|
||||||
|
int screen);
|
||||||
|
|
||||||
|
extern(C) Bool XRenderSetSubpixelOrder(
|
||||||
|
Display* dpy,
|
||||||
|
int screen,
|
||||||
|
int subpixel);
|
||||||
|
|
||||||
|
extern(C) XRenderPictFormat* XRenderFindVisualFormat(
|
||||||
|
Display* dpy,
|
||||||
|
const Visual* visual);
|
||||||
|
|
||||||
|
extern(C) XRenderPictFormat* XRenderFindFormat(
|
||||||
|
Display* dpy,
|
||||||
|
uint mask,
|
||||||
|
const XRenderPictFormat* templ,
|
||||||
|
int count);
|
||||||
|
|
||||||
|
enum {
|
||||||
|
PictStandardARGB32 = 0,
|
||||||
|
PictStandardRGB24 = 1,
|
||||||
|
PictStandardA8 = 2,
|
||||||
|
PictStandardA4 = 3,
|
||||||
|
PictStandardA1 = 4,
|
||||||
|
PictStandardNUM = 5}
|
||||||
|
|
||||||
|
extern(C) XRenderPictFormat* XRenderFindStandardFormat(
|
||||||
|
Display* dpy,
|
||||||
|
int format);
|
||||||
|
|
||||||
|
extern(C) XIndexValue* XRenderQueryPictIndexValues(
|
||||||
|
Display* dpy,
|
||||||
|
const XRenderPictFormat* format,
|
||||||
|
int* num);
|
||||||
|
|
||||||
|
extern(C) Picture XRenderCreatePicture(
|
||||||
|
Display* dpy,
|
||||||
|
Drawable drawable,
|
||||||
|
const XRenderPictFormat* format,
|
||||||
|
uint valuemask,
|
||||||
|
const XRenderPictureAttributes* attributes);
|
||||||
|
|
||||||
|
extern(C) void XRenderChangePicture(
|
||||||
|
Display* dpy,
|
||||||
|
Picture picture,
|
||||||
|
uint valuemask,
|
||||||
|
const XRenderPictureAttributes *attributes);
|
||||||
|
|
||||||
|
extern(C) void XRenderSetPictureClipRectangles(
|
||||||
|
Display* dpy,
|
||||||
|
Picture picture,
|
||||||
|
int xOrigin,
|
||||||
|
int yOrigin,
|
||||||
|
const XRectangle* rects,
|
||||||
|
int n);
|
||||||
|
|
||||||
|
extern(C) void XRenderSetPictureClipRegion(
|
||||||
|
Display* dpy,
|
||||||
|
Picture picture,
|
||||||
|
Region r);
|
||||||
|
|
||||||
|
extern(C) void XRenderSetPictureTransform(
|
||||||
|
Display* dpy,
|
||||||
|
Picture picture,
|
||||||
|
XTransform* transform);
|
||||||
|
|
||||||
|
extern(C) void XRenderFreePicture(Display* dpy,
|
||||||
|
Picture picture);
|
||||||
|
|
||||||
|
extern(C) void XRenderComposite(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture src,
|
||||||
|
Picture mask,
|
||||||
|
Picture dst,
|
||||||
|
int src_x,
|
||||||
|
int src_y,
|
||||||
|
int mask_x,
|
||||||
|
int mask_y,
|
||||||
|
int dst_x,
|
||||||
|
int dst_y,
|
||||||
|
uint width,
|
||||||
|
uint height);
|
||||||
|
|
||||||
|
extern(C) GlyphSet XRenderCreateGlyphSet(Display* dpy, const XRenderPictFormat *format);
|
||||||
|
|
||||||
|
extern(C) GlyphSet XRenderReferenceGlyphSet(Display* dpy, GlyphSet existing);
|
||||||
|
|
||||||
|
extern(C) void XRenderFreeGlyphSet(Display* dpy, GlyphSet glyphset);
|
||||||
|
|
||||||
|
extern(C) void XRenderAddGlyphs(Display* dpy,
|
||||||
|
GlyphSet glyphset,
|
||||||
|
const Glyph *gids,
|
||||||
|
const XGlyphInfo *glyphs,
|
||||||
|
int nglyphs,
|
||||||
|
const char *images,
|
||||||
|
int nbyte_images);
|
||||||
|
|
||||||
|
extern(C) void XRenderFreeGlyphs(Display* dpy,
|
||||||
|
GlyphSet glyphset,
|
||||||
|
const Glyph *gids,
|
||||||
|
int nglyphs);
|
||||||
|
|
||||||
|
extern(C) void XRenderCompositeString8(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture src,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderPictFormat *maskFormat,
|
||||||
|
GlyphSet glyphset,
|
||||||
|
int xSrc,
|
||||||
|
int ySrc,
|
||||||
|
int xDst,
|
||||||
|
int yDst,
|
||||||
|
const char *string,
|
||||||
|
int nchar);
|
||||||
|
|
||||||
|
extern(C) void XRenderCompositeString16(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture src,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderPictFormat *maskFormat,
|
||||||
|
GlyphSet glyphset,
|
||||||
|
int xSrc,
|
||||||
|
int ySrc,
|
||||||
|
int xDst,
|
||||||
|
int yDst,
|
||||||
|
const ushort *string,
|
||||||
|
int nchar);
|
||||||
|
|
||||||
|
extern(C) void XRenderCompositeString32(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture src,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderPictFormat *maskFormat,
|
||||||
|
GlyphSet glyphset,
|
||||||
|
int xSrc,
|
||||||
|
int ySrc,
|
||||||
|
int xDst,
|
||||||
|
int yDst,
|
||||||
|
const uint *string,
|
||||||
|
int nchar);
|
||||||
|
|
||||||
|
extern(C) void XRenderCompositeText8(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture src,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderPictFormat *maskFormat,
|
||||||
|
int xSrc,
|
||||||
|
int ySrc,
|
||||||
|
int xDst,
|
||||||
|
int yDst,
|
||||||
|
const XGlyphElt8 *elts,
|
||||||
|
int nelt);
|
||||||
|
|
||||||
|
extern(C) void XRenderCompositeText16(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture src,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderPictFormat *maskFormat,
|
||||||
|
int xSrc,
|
||||||
|
int ySrc,
|
||||||
|
int xDst,
|
||||||
|
int yDst,
|
||||||
|
const XGlyphElt16 *elts,
|
||||||
|
int nelt);
|
||||||
|
|
||||||
|
extern(C) void XRenderCompositeText32(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture src,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderPictFormat *maskFormat,
|
||||||
|
int xSrc,
|
||||||
|
int ySrc,
|
||||||
|
int xDst,
|
||||||
|
int yDst,
|
||||||
|
const XGlyphElt32 *elts,
|
||||||
|
int nelt);
|
||||||
|
|
||||||
|
extern(C) void XRenderFillRectangle(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderColor *color,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
uint width,
|
||||||
|
uint height);
|
||||||
|
|
||||||
|
extern(C) void XRenderFillRectangles(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderColor *color,
|
||||||
|
const XRectangle *rectangles,
|
||||||
|
int n_rects);
|
||||||
|
|
||||||
|
extern(C) void XRenderCompositeTrapezoids(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture src,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderPictFormat *maskFormat,
|
||||||
|
int xSrc,
|
||||||
|
int ySrc,
|
||||||
|
const XTrapezoid *traps,
|
||||||
|
int ntrap);
|
||||||
|
|
||||||
|
extern(C) void XRenderCompositeTriangles(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture src,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderPictFormat *maskFormat,
|
||||||
|
int xSrc,
|
||||||
|
int ySrc,
|
||||||
|
const XTriangle *triangles,
|
||||||
|
int ntriangle);
|
||||||
|
|
||||||
|
extern(C) void XRenderCompositeTriStrip(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture src,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderPictFormat *maskFormat,
|
||||||
|
int xSrc,
|
||||||
|
int ySrc,
|
||||||
|
const XPointFixed *points,
|
||||||
|
int npoint);
|
||||||
|
|
||||||
|
extern(C) void XRenderCompositeTriFan(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture src,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderPictFormat *maskFormat,
|
||||||
|
int xSrc,
|
||||||
|
int ySrc,
|
||||||
|
const XPointFixed *points,
|
||||||
|
int npoint);
|
||||||
|
|
||||||
|
extern(C) void XRenderCompositeDoublePoly(Display* dpy,
|
||||||
|
int op,
|
||||||
|
Picture src,
|
||||||
|
Picture dst,
|
||||||
|
const XRenderPictFormat *maskFormat,
|
||||||
|
int xSrc,
|
||||||
|
int ySrc,
|
||||||
|
int xDst,
|
||||||
|
int yDst,
|
||||||
|
const XPointDouble *fpoints,
|
||||||
|
int npoints,
|
||||||
|
int winding);
|
||||||
|
|
||||||
|
extern(C) Status XRenderParseColor(Display* dpy,
|
||||||
|
char *spec,
|
||||||
|
XRenderColor *def);
|
||||||
|
|
||||||
|
extern(C) Cursor XRenderCreateCursor(Display* dpy,
|
||||||
|
Picture source,
|
||||||
|
uint x,
|
||||||
|
uint y);
|
||||||
|
|
||||||
|
extern(C) XFilters * XRenderQueryFilters(Display* dpy, Drawable drawable);
|
||||||
|
|
||||||
|
extern(C) void XRenderSetPictureFilter(Display* dpy,
|
||||||
|
Picture picture,
|
||||||
|
const char *filter,
|
||||||
|
XFixed *params,
|
||||||
|
int nparams);
|
||||||
|
|
||||||
|
extern(C) Cursor XRenderCreateAnimCursor(Display* dpy,
|
||||||
|
int ncursor,
|
||||||
|
XAnimCursor *cursors);
|
||||||
|
|
||||||
|
|
||||||
|
extern(C) void XRenderAddTraps(Display* dpy,
|
||||||
|
Picture picture,
|
||||||
|
int xOff,
|
||||||
|
int yOff,
|
||||||
|
const XTrap *traps,
|
||||||
|
int ntrap);
|
||||||
|
|
||||||
|
extern(C) Picture XRenderCreateSolidFill(Display* dpy,
|
||||||
|
const XRenderColor *color);
|
||||||
|
|
||||||
|
extern(C) Picture XRenderCreateLinearGradient(Display* dpy,
|
||||||
|
const XLinearGradient *gradient,
|
||||||
|
const XFixed *stops,
|
||||||
|
const XRenderColor *colors,
|
||||||
|
int nstops);
|
||||||
|
|
||||||
|
extern(C) Picture XRenderCreateRadialGradient(Display* dpy,
|
||||||
|
const XRadialGradient *gradient,
|
||||||
|
const XFixed *stops,
|
||||||
|
const XRenderColor *colors,
|
||||||
|
int nstops);
|
||||||
|
|
||||||
|
extern(C) Picture XRenderCreateConicalGradient(Display* dpy,
|
||||||
|
const XConicalGradient *gradient,
|
||||||
|
const XFixed *stops,
|
||||||
|
const XRenderColor *colors,
|
||||||
|
int nstops);
|
|
@ -0,0 +1,230 @@
|
||||||
|
/*
|
||||||
|
* $XFree86: xc/include/extensions/render.h,v 1.10 2002/11/06 22:47:49 keithp Exp $
|
||||||
|
*
|
||||||
|
* Copyright © 2000 SuSE, Inc.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||||
|
* documentation for any purpose is hereby granted without fee, provided that
|
||||||
|
* the above copyright notice appear in all copies and that both that
|
||||||
|
* copyright notice and this permission notice appear in supporting
|
||||||
|
* documentation, and that the name of SuSE not be used in advertising or
|
||||||
|
* publicity pertaining to distribution of the software without specific,
|
||||||
|
* written prior permission. SuSE makes no representations about the
|
||||||
|
* suitability of this software for any purpose. It is provided "as is"
|
||||||
|
* without express or implied warranty.
|
||||||
|
*
|
||||||
|
* SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
|
||||||
|
* BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
|
||||||
|
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||||
|
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* Author: Keith Packard, SuSE, Inc.
|
||||||
|
* Author of this D binding: Adam Cigánek <adam.ciganek@gmail.com>
|
||||||
|
*/
|
||||||
|
module X11.extensions.render;
|
||||||
|
|
||||||
|
import X11.X;
|
||||||
|
|
||||||
|
alias XID Glyph;
|
||||||
|
alias XID GlyphSet;
|
||||||
|
alias XID Picture;
|
||||||
|
alias XID PictFormat;
|
||||||
|
|
||||||
|
const RENDER_NAME = "RENDER";
|
||||||
|
const RENDER_MAJOR = 0;
|
||||||
|
const RENDER_MINOR = 11;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
X_RenderQueryVersion = 0,
|
||||||
|
X_RenderQueryPictFormats = 1,
|
||||||
|
X_RenderQueryPictIndexValues = 2, // 0.7
|
||||||
|
X_RenderQueryDithers = 3,
|
||||||
|
X_RenderCreatePicture = 4,
|
||||||
|
X_RenderChangePicture = 5,
|
||||||
|
X_RenderSetPictureClipRectangles = 6,
|
||||||
|
X_RenderFreePicture = 7,
|
||||||
|
X_RenderComposite = 8,
|
||||||
|
X_RenderScale = 9,
|
||||||
|
X_RenderTrapezoids = 10,
|
||||||
|
X_RenderTriangles = 11,
|
||||||
|
X_RenderTriStrip = 12,
|
||||||
|
X_RenderTriFan = 13,
|
||||||
|
X_RenderColorTrapezoids = 14,
|
||||||
|
X_RenderColorTriangles = 15,
|
||||||
|
// X_RenderTransform = 16,
|
||||||
|
X_RenderCreateGlyphSet = 17,
|
||||||
|
X_RenderReferenceGlyphSet = 18,
|
||||||
|
X_RenderFreeGlyphSet = 19,
|
||||||
|
X_RenderAddGlyphs = 20,
|
||||||
|
X_RenderAddGlyphsFromPicture = 21,
|
||||||
|
X_RenderFreeGlyphs = 22,
|
||||||
|
X_RenderCompositeGlyphs8 = 23,
|
||||||
|
X_RenderCompositeGlyphs16 = 24,
|
||||||
|
X_RenderCompositeGlyphs32 = 25,
|
||||||
|
X_RenderFillRectangles = 26,
|
||||||
|
// 0.5
|
||||||
|
X_RenderCreateCursor = 27,
|
||||||
|
// 0.6
|
||||||
|
X_RenderSetPictureTransform = 28,
|
||||||
|
X_RenderQueryFilters = 29,
|
||||||
|
X_RenderSetPictureFilter = 30,
|
||||||
|
// 0.8
|
||||||
|
X_RenderCreateAnimCursor = 31,
|
||||||
|
// 0.9
|
||||||
|
X_RenderAddTraps = 32,
|
||||||
|
// 0.10
|
||||||
|
X_RenderCreateSolidFill = 33,
|
||||||
|
X_RenderCreateLinearGradient = 34,
|
||||||
|
X_RenderCreateRadialGradient = 35,
|
||||||
|
X_RenderCreateConicalGradient = 36,
|
||||||
|
RenderNumberRequests = X_RenderCreateConicalGradient + 1
|
||||||
|
}
|
||||||
|
|
||||||
|
enum {
|
||||||
|
BadPictFormat = 0,
|
||||||
|
BadPicture = 1,
|
||||||
|
BadPictOp = 2,
|
||||||
|
BadGlyphSet = 3,
|
||||||
|
BadGlyph = 4,
|
||||||
|
RenderNumberErrors = BadGlyph + 1
|
||||||
|
}
|
||||||
|
|
||||||
|
enum {
|
||||||
|
PictTypeIndexed = 0,
|
||||||
|
PictTypeDirect = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
enum {
|
||||||
|
PictOpMinimum = 0,
|
||||||
|
PictOpClear = 0,
|
||||||
|
PictOpSrc = 1,
|
||||||
|
PictOpDst = 2,
|
||||||
|
PictOpOver = 3,
|
||||||
|
PictOpOverReverse = 4,
|
||||||
|
PictOpIn = 5,
|
||||||
|
PictOpInReverse = 6,
|
||||||
|
PictOpOut = 7,
|
||||||
|
PictOpOutReverse = 8,
|
||||||
|
PictOpAtop = 9,
|
||||||
|
PictOpAtopReverse = 10,
|
||||||
|
PictOpXor = 11,
|
||||||
|
PictOpAdd = 12,
|
||||||
|
PictOpSaturate = 13,
|
||||||
|
PictOpMaximum = 13,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Operators only available in version 0.2
|
||||||
|
*/
|
||||||
|
PictOpDisjointMinimum = 0x10,
|
||||||
|
PictOpDisjointClear = 0x10,
|
||||||
|
PictOpDisjointSrc = 0x11,
|
||||||
|
PictOpDisjointDst = 0x12,
|
||||||
|
PictOpDisjointOver = 0x13,
|
||||||
|
PictOpDisjointOverReverse = 0x14,
|
||||||
|
PictOpDisjointIn = 0x15,
|
||||||
|
PictOpDisjointInReverse = 0x16,
|
||||||
|
PictOpDisjointOut = 0x17,
|
||||||
|
PictOpDisjointOutReverse = 0x18,
|
||||||
|
PictOpDisjointAtop = 0x19,
|
||||||
|
PictOpDisjointAtopReverse = 0x1a,
|
||||||
|
PictOpDisjointXor = 0x1b,
|
||||||
|
PictOpDisjointMaximum = 0x1b,
|
||||||
|
|
||||||
|
PictOpConjointMinimum = 0x20,
|
||||||
|
PictOpConjointClear = 0x20,
|
||||||
|
PictOpConjointSrc = 0x21,
|
||||||
|
PictOpConjointDst = 0x22,
|
||||||
|
PictOpConjointOver = 0x23,
|
||||||
|
PictOpConjointOverReverse = 0x24,
|
||||||
|
PictOpConjointIn = 0x25,
|
||||||
|
PictOpConjointInReverse = 0x26,
|
||||||
|
PictOpConjointOut = 0x27,
|
||||||
|
PictOpConjointOutReverse = 0x28,
|
||||||
|
PictOpConjointAtop = 0x29,
|
||||||
|
PictOpConjointAtopReverse = 0x2a,
|
||||||
|
PictOpConjointXor = 0x2b,
|
||||||
|
PictOpConjointMaximum = 0x2b,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Operators only available in version 0.11
|
||||||
|
*/
|
||||||
|
PictOpBlendMinimum = 0x30,
|
||||||
|
PictOpMultiply = 0x30,
|
||||||
|
PictOpScreen = 0x31,
|
||||||
|
PictOpOverlay = 0x32,
|
||||||
|
PictOpDarken = 0x33,
|
||||||
|
PictOpLighten = 0x34,
|
||||||
|
PictOpColorDodge = 0x35,
|
||||||
|
PictOpColorBurn = 0x36,
|
||||||
|
PictOpHardLight = 0x37,
|
||||||
|
PictOpSoftLight = 0x38,
|
||||||
|
PictOpDifference = 0x39,
|
||||||
|
PictOpExclusion = 0x3a,
|
||||||
|
PictOpHSLHue = 0x3b,
|
||||||
|
PictOpHSLSaturation = 0x3c,
|
||||||
|
PictOpHSLColor = 0x3d,
|
||||||
|
PictOpHSLLuminosity = 0x3e,
|
||||||
|
PictOpBlendMaximum = 0x3e
|
||||||
|
}
|
||||||
|
|
||||||
|
enum {
|
||||||
|
PolyEdgeSharp = 0,
|
||||||
|
PolyEdgeSmooth = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
enum {
|
||||||
|
PolyModePrecise = 0,
|
||||||
|
PolyModeImprecise = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
enum {
|
||||||
|
CPRepeat = 1 << 0,
|
||||||
|
CPAlphaMap = 1 << 1,
|
||||||
|
CPAlphaXOrigin = 1 << 2,
|
||||||
|
CPAlphaYOrigin = 1 << 3,
|
||||||
|
CPClipXOrigin = 1 << 4,
|
||||||
|
CPClipYOrigin = 1 << 5,
|
||||||
|
CPClipMask = 1 << 6,
|
||||||
|
CPGraphicsExposure = 1 << 7,
|
||||||
|
CPSubwindowMode = 1 << 8,
|
||||||
|
CPPolyEdge = 1 << 9,
|
||||||
|
CPPolyMode = 1 << 10,
|
||||||
|
CPDither = 1 << 11,
|
||||||
|
CPComponentAlpha = 1 << 12,
|
||||||
|
CPLastBit = 12
|
||||||
|
}
|
||||||
|
|
||||||
|
enum {
|
||||||
|
/* Filters included in 0.6 */
|
||||||
|
FilterNearest = "nearest",
|
||||||
|
FilterBilinear = "bilinear",
|
||||||
|
/* Filters included in 0.10 */
|
||||||
|
FilterConvolution = "convolution",
|
||||||
|
|
||||||
|
FilterFast = "fast",
|
||||||
|
FilterGood = "good",
|
||||||
|
FilterBest = "best"
|
||||||
|
}
|
||||||
|
|
||||||
|
enum FilterAliasNone = -1;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
/* Subpixel orders included in 0.6 */
|
||||||
|
SubPixelUnknown = 0,
|
||||||
|
SubPixelHorizontalRGB = 1,
|
||||||
|
SubPixelHorizontalBGR = 2,
|
||||||
|
SubPixelVerticalRGB = 3,
|
||||||
|
SubPixelVerticalBGR = 4,
|
||||||
|
SubPixelNone = 5
|
||||||
|
}
|
||||||
|
|
||||||
|
enum {
|
||||||
|
/* Extended repeat attributes included in 0.10 */
|
||||||
|
RepeatNone = 0,
|
||||||
|
RepeatNormal = 1,
|
||||||
|
RepeatPad = 2,
|
||||||
|
RepeatReflect = 3
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
DC = dmd -c $(INCS)
|
||||||
|
DLINK = dmd $(LIBS)
|
||||||
|
|
||||||
|
INCS = -I..
|
||||||
|
LIBS = -L-lX11
|
||||||
|
|
||||||
|
RM = rm
|
||||||
|
|
||||||
|
%.o: %.d
|
||||||
|
$(DC) $(<)
|
||||||
|
|
||||||
|
all: simple
|
||||||
|
|
||||||
|
simple: simple.o
|
||||||
|
$(DLINK) $<
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(RM) *.o simple
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
// This an example for the X11 binding.
|
||||||
|
//
|
||||||
|
// Build/run with rdmd:
|
||||||
|
// rdmd -I.. simple.d
|
||||||
|
|
||||||
|
|
||||||
|
module simple;
|
||||||
|
|
||||||
|
import X11.Xlib;
|
||||||
|
import std.c.stdio;
|
||||||
|
import std.string;
|
||||||
|
|
||||||
|
int main(char[][] args)
|
||||||
|
{
|
||||||
|
Display* display = XOpenDisplay(null); //Open default display
|
||||||
|
Window window = XCreateSimpleWindow( //create a simple windows
|
||||||
|
display, // display
|
||||||
|
DefaultRootWindow(display), // parent window
|
||||||
|
0, 0, 200, 100, // x, y, w, h
|
||||||
|
0,0x0,0x000000FF // border_width,boder_color,back_color
|
||||||
|
);
|
||||||
|
XMapWindow(display, window); //map the window
|
||||||
|
XRaiseWindow(display, window); //show the window
|
||||||
|
XStoreName(display,window, cast(char*) "Hello Window"); //set window name
|
||||||
|
XFlush(display); // flush X server
|
||||||
|
|
||||||
|
//wait for a enter pressed (in fact you need to wait for MapNotify event before drawing...)
|
||||||
|
printf("press enter to show window content\0");
|
||||||
|
getchar();
|
||||||
|
|
||||||
|
XGCValues values;
|
||||||
|
values.foreground=0xFFFFFF;
|
||||||
|
values.background=0x00FF00;
|
||||||
|
GC gc=XCreateGC(display,window, 3<<3 , &values); //create zone for drawing
|
||||||
|
XDrawString(display, window,gc, 30,50, cast(char*)"hello world", 11); //draw string
|
||||||
|
XDrawRectangle(display,window,gc,20,20,150,50); //draw rectangle
|
||||||
|
XFlush(display); //flush X server
|
||||||
|
printf("press enter to close program\0");
|
||||||
|
getchar(); //wait for a enter pressed to close program
|
||||||
|
XUnmapWindow(display, window); // unmap the window
|
||||||
|
XDestroyWindow(display, window); //destroy the window
|
||||||
|
XCloseDisplay(display); //close the display
|
||||||
|
return 0;
|
||||||
|
};
|
Loading…
Reference in New Issue