added missing library files
This commit is contained in:
parent
f311acc589
commit
1536415146
30 changed files with 44495 additions and 36 deletions
|
|
@ -444,7 +444,8 @@ proc addf(s: var string, formatstr: string, a: openarray[string]) =
|
||||||
case formatstr[i+1] # again we use the fact that strings
|
case formatstr[i+1] # again we use the fact that strings
|
||||||
# are zero-terminated here
|
# are zero-terminated here
|
||||||
of '#':
|
of '#':
|
||||||
add s, a[num]
|
if not isNil(a[num]):
|
||||||
|
add s, a[num]
|
||||||
inc i, 2
|
inc i, 2
|
||||||
inc num
|
inc num
|
||||||
of '$':
|
of '$':
|
||||||
|
|
|
||||||
945
lib/wrappers/iup.nim
Executable file
945
lib/wrappers/iup.nim
Executable file
|
|
@ -0,0 +1,945 @@
|
||||||
|
#
|
||||||
|
# Binding for the IUP GUI toolkit
|
||||||
|
# (c) 2010 Andreas Rumpf
|
||||||
|
# C header files translated by hand
|
||||||
|
# Licence of IUP follows:
|
||||||
|
|
||||||
|
|
||||||
|
# ****************************************************************************
|
||||||
|
# Copyright (C) 1994-2009 Tecgraf, PUC-Rio.
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
# a copy of this software and associated documentation files (the
|
||||||
|
# "Software"), to deal in the Software without restriction, including
|
||||||
|
# without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
# permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
# the following conditions:
|
||||||
|
#
|
||||||
|
# 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 AUTHORS OR COPYRIGHT HOLDERS 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.
|
||||||
|
# ****************************************************************************
|
||||||
|
|
||||||
|
{.deadCodeElim: on.}
|
||||||
|
|
||||||
|
when defined(windows):
|
||||||
|
const dllname = "iup(30|27|26|25|24).dll"
|
||||||
|
elif defined(macosx):
|
||||||
|
const dllname = "libiup(3.0|2.7|2.6|2.5|2.4).dylib"
|
||||||
|
else:
|
||||||
|
const dllname = "libiup(3.0|2.7|2.6|2.5|2.4).so.1"
|
||||||
|
|
||||||
|
const
|
||||||
|
IUP_NAME* = "IUP - Portable User Interface"
|
||||||
|
IUP_COPYRIGHT* = "Copyright (C) 1994-2009 Tecgraf, PUC-Rio."
|
||||||
|
IUP_DESCRIPTION* = "Portable toolkit for building graphical user interfaces."
|
||||||
|
constIUP_VERSION* = "3.0"
|
||||||
|
constIUP_VERSION_NUMBER* = 300000
|
||||||
|
constIUP_VERSION_DATE* = "2009/07/18"
|
||||||
|
|
||||||
|
type
|
||||||
|
Ihandle {.pure.} = object
|
||||||
|
PIhandle* = ptr Ihandle
|
||||||
|
|
||||||
|
Icallback* = proc (arg: PIhandle): cint {.cdecl.}
|
||||||
|
|
||||||
|
# pre-definided dialogs
|
||||||
|
proc FileDlg*: PIhandle {.importc: "IupFileDlg", dynlib: dllname, cdecl.}
|
||||||
|
proc MessageDlg*: PIhandle {.importc: "IupMessageDlg", dynlib: dllname, cdecl.}
|
||||||
|
proc ColorDlg*: PIhandle {.importc: "IupColorDlg", dynlib: dllname, cdecl.}
|
||||||
|
proc FontDlg*: PIhandle {.importc: "IupFontDlg", dynlib: dllname, cdecl.}
|
||||||
|
|
||||||
|
proc GetFile*(arq: cstring): cint {.
|
||||||
|
importc: "IupGetFile", dynlib: dllname, cdecl.}
|
||||||
|
proc Message*(title, msg: cstring) {.
|
||||||
|
importc: "IupMessage", dynlib: dllname, cdecl.}
|
||||||
|
proc Messagef*(title, format: cstring) {.
|
||||||
|
importc: "IupMessagef", dynlib: dllname, cdecl, varargs.}
|
||||||
|
proc Alarm*(title, msg, b1, b2, b3: cstring): cint {.
|
||||||
|
importc: "IupAlarm", dynlib: dllname, cdecl.}
|
||||||
|
proc Scanf*(format: cstring): cint {.
|
||||||
|
importc: "IupScanf", dynlib: dllname, cdecl, varargs.}
|
||||||
|
proc ListDialog*(theType: cint, title: cstring, size: cint,
|
||||||
|
list: cstringArray, op, max_col, max_lin: cint,
|
||||||
|
marks: ptr cint): cint {.
|
||||||
|
importc: "IupListDialog", dynlib: dllname, cdecl.}
|
||||||
|
proc GetText*(title, text: cstring): cint {.
|
||||||
|
importc: "IupGetText", dynlib: dllname, cdecl.}
|
||||||
|
proc GetColor*(x, y: cint, r, g, b: var byte): cint {.
|
||||||
|
importc: "IupGetColor", dynlib: dllname, cdecl.}
|
||||||
|
|
||||||
|
type
|
||||||
|
Iparamcb* = proc (dialog: PIhandle, param_index: cint,
|
||||||
|
user_data: pointer): cint {.cdecl.}
|
||||||
|
|
||||||
|
proc GetParam*(title: cstring, action: Iparamcb, user_data: pointer,
|
||||||
|
format: cstring): cint {.
|
||||||
|
importc: "IupGetParam", cdecl, varargs, dynlib: dllname.}
|
||||||
|
proc GetParamv*(title: cstring, action: Iparamcb, user_data: pointer,
|
||||||
|
format: cstring, param_count, param_extra: cint,
|
||||||
|
param_data: pointer): cint {.
|
||||||
|
importc: "IupGetParamv", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
|
||||||
|
proc Open*(argc: ptr cint, argv: ptr cstringArray): cint {.
|
||||||
|
importc: "IupOpen", cdecl, dynlib: dllname.}
|
||||||
|
proc Close*() {.importc: "IupClose", cdecl, dynlib: dllname.}
|
||||||
|
proc ImageLibOpen*() {.importc: "IupImageLibOpen", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc MainLoop*(): cint {.importc: "IupMainLoop", cdecl, dynlib: dllname.}
|
||||||
|
proc LoopStep*(): cint {.importc: "IupLoopStep", cdecl, dynlib: dllname.}
|
||||||
|
proc MainLoopLevel*(): cint {.importc: "IupMainLoopLevel", cdecl, dynlib: dllname.}
|
||||||
|
proc Flush*() {.importc: "IupFlush", cdecl, dynlib: dllname.}
|
||||||
|
proc ExitLoop*() {.importc: "IupExitLoop", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc Update*(ih: PIhandle) {.importc: "IupUpdate", cdecl, dynlib: dllname.}
|
||||||
|
proc UpdateChildren*(ih: PIhandle) {.importc: "IupUpdateChildren", cdecl, dynlib: dllname.}
|
||||||
|
proc Redraw*(ih: PIhandle, children: cint) {.importc: "IupRedraw", cdecl, dynlib: dllname.}
|
||||||
|
proc Refresh*(ih: PIhandle) {.importc: "IupRefresh", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc MapFont*(iupfont: cstring): cstring {.importc: "IupMapFont", cdecl, dynlib: dllname.}
|
||||||
|
proc UnMapFont*(driverfont: cstring): cstring {.importc: "IupUnMapFont", cdecl, dynlib: dllname.}
|
||||||
|
proc Help*(url: cstring): cint {.importc: "IupHelp", cdecl, dynlib: dllname.}
|
||||||
|
proc Load*(filename: cstring): cstring {.importc: "IupLoad", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc IupVersion*(): cstring {.importc: "IupVersion", cdecl, dynlib: dllname.}
|
||||||
|
proc IupVersionDate*(): cstring {.importc: "IupVersionDate", cdecl, dynlib: dllname.}
|
||||||
|
proc IupVersionNumber*(): cint {.importc: "IupVersionNumber", cdecl, dynlib: dllname.}
|
||||||
|
proc SetLanguage*(lng: cstring) {.importc: "IupSetLanguage", cdecl, dynlib: dllname.}
|
||||||
|
proc GetLanguage*(): cstring {.importc: "IupGetLanguage", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc Destroy*(ih: PIhandle) {.importc: "IupDestroy", cdecl, dynlib: dllname.}
|
||||||
|
proc Detach*(child: PIhandle) {.importc: "IupDetach", cdecl, dynlib: dllname.}
|
||||||
|
proc Append*(ih, child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupAppend", cdecl, dynlib: dllname.}
|
||||||
|
proc Insert*(ih, ref_child, child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupInsert", cdecl, dynlib: dllname.}
|
||||||
|
proc GetChild*(ih: PIhandle, pos: cint): PIhandle {.
|
||||||
|
importc: "IupGetChild", cdecl, dynlib: dllname.}
|
||||||
|
proc GetChildPos*(ih, child: PIhandle): cint {.
|
||||||
|
importc: "IupGetChildPos", cdecl, dynlib: dllname.}
|
||||||
|
proc GetChildCount*(ih: PIhandle): cint {.
|
||||||
|
importc: "IupGetChildCount", cdecl, dynlib: dllname.}
|
||||||
|
proc GetNextChild*(ih, child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupGetNextChild", cdecl, dynlib: dllname.}
|
||||||
|
proc GetBrother*(ih: PIhandle): PIhandle {.
|
||||||
|
importc: "IupGetBrother", cdecl, dynlib: dllname.}
|
||||||
|
proc GetParent*(ih: PIhandle): PIhandle {.
|
||||||
|
importc: "IupGetParent", cdecl, dynlib: dllname.}
|
||||||
|
proc GetDialog*(ih: PIhandle): PIhandle {.
|
||||||
|
importc: "IupGetDialog", cdecl, dynlib: dllname.}
|
||||||
|
proc GetDialogChild*(ih: PIhandle, name: cstring): PIhandle {.
|
||||||
|
importc: "IupGetDialogChild", cdecl, dynlib: dllname.}
|
||||||
|
proc Reparent*(ih, new_parent: PIhandle): cint {.
|
||||||
|
importc: "IupReparent", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc Popup*(ih: PIhandle, x, y: cint): cint {.
|
||||||
|
importc: "IupPopup", cdecl, dynlib: dllname.}
|
||||||
|
proc Show*(ih: PIhandle): cint {.
|
||||||
|
importc: "IupShow", cdecl, dynlib: dllname.}
|
||||||
|
proc ShowXY*(ih: PIhandle, x, y: cint): cint {.
|
||||||
|
importc: "IupShowXY", cdecl, dynlib: dllname.}
|
||||||
|
proc Hide*(ih: PIhandle): cint {.
|
||||||
|
importc: "IupHide", cdecl, dynlib: dllname.}
|
||||||
|
proc Map*(ih: PIhandle): cint {.
|
||||||
|
importc: "IupMap", cdecl, dynlib: dllname.}
|
||||||
|
proc Unmap*(ih: PIhandle) {.
|
||||||
|
importc: "IupUnmap", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc SetAttribute*(ih: PIhandle, name, value: cstring) {.
|
||||||
|
importc: "IupSetAttribute", cdecl, dynlib: dllname.}
|
||||||
|
proc StoreAttribute*(ih: PIhandle, name, value: cstring) {.
|
||||||
|
importc: "IupStoreAttribute", cdecl, dynlib: dllname.}
|
||||||
|
proc SetAttributes*(ih: PIhandle, str: cstring): PIhandle {.
|
||||||
|
importc: "IupSetAttributes", cdecl, dynlib: dllname.}
|
||||||
|
proc GetAttribute*(ih: PIhandle, name: cstring): cstring {.
|
||||||
|
importc: "IupGetAttribute", cdecl, dynlib: dllname.}
|
||||||
|
proc GetAttributes*(ih: PIhandle): cstring {.
|
||||||
|
importc: "IupGetAttributes", cdecl, dynlib: dllname.}
|
||||||
|
proc GetInt*(ih: PIhandle, name: cstring): cint {.
|
||||||
|
importc: "IupGetInt", cdecl, dynlib: dllname.}
|
||||||
|
proc GetInt2*(ih: PIhandle, name: cstring): cint {.
|
||||||
|
importc: "IupGetInt2", cdecl, dynlib: dllname.}
|
||||||
|
proc GetIntInt*(ih: PIhandle, name: cstring, i1, i2: var cint): cint {.
|
||||||
|
importc: "IupGetIntInt", cdecl, dynlib: dllname.}
|
||||||
|
proc GetFloat*(ih: PIhandle, name: cstring): cfloat {.
|
||||||
|
importc: "IupGetFloat", cdecl, dynlib: dllname.}
|
||||||
|
proc SetfAttribute*(ih: PIhandle, name, format: cstring) {.
|
||||||
|
importc: "IupSetfAttribute", cdecl, dynlib: dllname, varargs.}
|
||||||
|
proc GetAllAttributes*(ih: PIhandle, names: cstringArray, n: cint): cint {.
|
||||||
|
importc: "IupGetAllAttributes", cdecl, dynlib: dllname.}
|
||||||
|
proc SetAtt*(handle_name: cstring, ih: PIhandle, name: cstring): PIhandle {.
|
||||||
|
importc: "IupSetAtt", cdecl, dynlib: dllname, varargs.}
|
||||||
|
|
||||||
|
proc SetGlobal*(name, value: cstring) {.
|
||||||
|
importc: "IupSetGlobal", cdecl, dynlib: dllname.}
|
||||||
|
proc StoreGlobal*(name, value: cstring) {.
|
||||||
|
importc: "IupStoreGlobal", cdecl, dynlib: dllname.}
|
||||||
|
proc GetGlobal*(name: cstring): cstring {.
|
||||||
|
importc: "IupGetGlobal", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc SetFocus*(ih: PIhandle): PIhandle {.
|
||||||
|
importc: "IupSetFocus", cdecl, dynlib: dllname.}
|
||||||
|
proc GetFocus*(): PIhandle {.
|
||||||
|
importc: "IupGetFocus", cdecl, dynlib: dllname.}
|
||||||
|
proc PreviousField*(ih: PIhandle): PIhandle {.
|
||||||
|
importc: "IupPreviousField", cdecl, dynlib: dllname.}
|
||||||
|
proc NextField*(ih: PIhandle): PIhandle {.
|
||||||
|
importc: "IupNextField", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc GetCallback*(ih: PIhandle, name: cstring): Icallback {.
|
||||||
|
importc: "IupGetCallback", cdecl, dynlib: dllname.}
|
||||||
|
proc SetCallback*(ih: PIhandle, name: cstring, func: Icallback): Icallback {.
|
||||||
|
importc: "IupSetCallback", cdecl, dynlib: dllname.}
|
||||||
|
proc SetCallbacks*(ih: PIhandle, name: cstring, func: Icallback): PIhandle {.
|
||||||
|
importc: "IupSetCallbacks", cdecl, dynlib: dllname, varargs.}
|
||||||
|
|
||||||
|
proc GetFunction*(name: cstring): Icallback {.
|
||||||
|
importc: "IupGetFunction", cdecl, dynlib: dllname.}
|
||||||
|
proc SetFunction*(name: cstring, func: Icallback): Icallback {.
|
||||||
|
importc: "IupSetFunction", cdecl, dynlib: dllname.}
|
||||||
|
proc GetActionName*(): cstring {.
|
||||||
|
importc: "IupGetActionName", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc GetHandle*(name: cstring): PIhandle {.
|
||||||
|
importc: "IupGetHandle", cdecl, dynlib: dllname.}
|
||||||
|
proc SetHandle*(name: cstring, ih: PIhandle): PIhandle {.
|
||||||
|
importc: "IupSetHandle", cdecl, dynlib: dllname.}
|
||||||
|
proc GetAllNames*(names: cstringArray, n: cint): cint {.
|
||||||
|
importc: "IupGetAllNames", cdecl, dynlib: dllname.}
|
||||||
|
proc GetAllDialogs*(names: cstringArray, n: cint): cint {.
|
||||||
|
importc: "IupGetAllDialogs", cdecl, dynlib: dllname.}
|
||||||
|
proc GetName*(ih: PIhandle): cstring {.
|
||||||
|
importc: "IupGetName", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc SetAttributeHandle*(ih: PIhandle, name: cstring, ih_named: PIhandle) {.
|
||||||
|
importc: "IupSetAttributeHandle", cdecl, dynlib: dllname.}
|
||||||
|
proc GetAttributeHandle*(ih: PIhandle, name: cstring): PIhandle {.
|
||||||
|
importc: "IupGetAttributeHandle", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc GetClassName*(ih: PIhandle): cstring {.
|
||||||
|
importc: "IupGetClassName", cdecl, dynlib: dllname.}
|
||||||
|
proc GetClassType*(ih: PIhandle): cstring {.
|
||||||
|
importc: "IupGetClassType", cdecl, dynlib: dllname.}
|
||||||
|
proc GetClassAttributes*(classname: cstring, names: cstringArray,
|
||||||
|
n: cint): cint {.
|
||||||
|
importc: "IupGetClassAttributes", cdecl, dynlib: dllname.}
|
||||||
|
proc SaveClassAttributes*(ih: PIhandle) {.
|
||||||
|
importc: "IupSaveClassAttributes", cdecl, dynlib: dllname.}
|
||||||
|
proc SetClassDefaultAttribute*(classname, name, value: cstring) {.
|
||||||
|
importc: "IupSetClassDefaultAttribute", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc Create*(classname: cstring): PIhandle {.
|
||||||
|
importc: "IupCreate", cdecl, dynlib: dllname.}
|
||||||
|
proc Createv*(classname: cstring, params: pointer): PIhandle {.
|
||||||
|
importc: "IupCreatev", cdecl, dynlib: dllname.}
|
||||||
|
proc Createp*(classname: cstring, first: pointer): PIhandle {.
|
||||||
|
importc: "IupCreatep", cdecl, dynlib: dllname, varargs.}
|
||||||
|
|
||||||
|
proc Fill*(): PIhandle {.importc: "IupFill", cdecl, dynlib: dllname.}
|
||||||
|
proc Radio*(child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupRadio", cdecl, dynlib: dllname.}
|
||||||
|
proc Vbox*(child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupVbox", cdecl, dynlib: dllname, varargs.}
|
||||||
|
proc Vboxv*(children: ptr PIhandle): PIhandle {.
|
||||||
|
importc: "IupVboxv", cdecl, dynlib: dllname.}
|
||||||
|
proc Zbox*(child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupZbox", cdecl, dynlib: dllname, varargs.}
|
||||||
|
proc Zboxv*(children: ptr PIhandle): PIhandle {.
|
||||||
|
importc: "IupZboxv", cdecl, dynlib: dllname.}
|
||||||
|
proc Hbox*(child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupHbox", cdecl, dynlib: dllname, varargs.}
|
||||||
|
proc Hboxv*(children: ptr PIhandle): PIhandle {.
|
||||||
|
importc: "IupHboxv", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc Normalizer*(ih_first: PIhandle): PIhandle {.
|
||||||
|
importc: "IupNormalizer", cdecl, dynlib: dllname, varargs.}
|
||||||
|
proc Normalizerv*(ih_list: ptr PIhandle): PIhandle {.
|
||||||
|
importc: "IupNormalizerv", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc Cbox*(child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupCbox", cdecl, dynlib: dllname, varargs.}
|
||||||
|
proc Cboxv*(children: ptr PIhandle): PIhandle {.
|
||||||
|
importc: "IupCboxv", cdecl, dynlib: dllname.}
|
||||||
|
proc Sbox*(child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupSbox", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc Frame*(child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupFrame", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc Image*(width, height: cint, pixmap: pointer): PIhandle {.
|
||||||
|
importc: "IupImage", cdecl, dynlib: dllname.}
|
||||||
|
proc ImageRGB*(width, height: cint, pixmap: pointer): PIhandle {.
|
||||||
|
importc: "IupImageRGB", cdecl, dynlib: dllname.}
|
||||||
|
proc ImageRGBA*(width, height: cint, pixmap: pointer): PIhandle {.
|
||||||
|
importc: "IupImageRGBA", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc Item*(title, action: cstring): PIhandle {.
|
||||||
|
importc: "IupItem", cdecl, dynlib: dllname.}
|
||||||
|
proc Submenu*(title: cstring, child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupSubmenu", cdecl, dynlib: dllname.}
|
||||||
|
proc Separator*(): PIhandle {.
|
||||||
|
importc: "IupSeparator", cdecl, dynlib: dllname.}
|
||||||
|
proc Menu*(child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupMenu", cdecl, dynlib: dllname, varargs.}
|
||||||
|
proc Menuv*(children: ptr PIhandle): PIhandle {.
|
||||||
|
importc: "IupMenuv", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc Button*(title, action: cstring): PIhandle {.
|
||||||
|
importc: "IupButton", cdecl, dynlib: dllname.}
|
||||||
|
proc Canvas*(action: cstring): PIhandle {.
|
||||||
|
importc: "IupCanvas", cdecl, dynlib: dllname.}
|
||||||
|
proc Dialog*(child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupDialog", cdecl, dynlib: dllname.}
|
||||||
|
proc User*(): PIhandle {.
|
||||||
|
importc: "IupUser", cdecl, dynlib: dllname.}
|
||||||
|
proc Label*(title: cstring): PIhandle {.
|
||||||
|
importc: "IupLabel", cdecl, dynlib: dllname.}
|
||||||
|
proc List*(action: cstring): PIhandle {.
|
||||||
|
importc: "IupList", cdecl, dynlib: dllname.}
|
||||||
|
proc Text*(action: cstring): PIhandle {.
|
||||||
|
importc: "IupText", cdecl, dynlib: dllname.}
|
||||||
|
proc MultiLine*(action: cstring): PIhandle {.
|
||||||
|
importc: "IupMultiLine", cdecl, dynlib: dllname.}
|
||||||
|
proc Toggle*(title, action: cstring): PIhandle {.
|
||||||
|
importc: "IupToggle", cdecl, dynlib: dllname.}
|
||||||
|
proc Timer*(): PIhandle {.
|
||||||
|
importc: "IupTimer", cdecl, dynlib: dllname.}
|
||||||
|
proc ProgressBar*(): PIhandle {.
|
||||||
|
importc: "IupProgressBar", cdecl, dynlib: dllname.}
|
||||||
|
proc Val*(theType: cstring): PIhandle {.
|
||||||
|
importc: "IupVal", cdecl, dynlib: dllname.}
|
||||||
|
proc Tabs*(child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupTabs", cdecl, dynlib: dllname, varargs.}
|
||||||
|
proc Tabsv*(children: ptr PIhandle): PIhandle {.
|
||||||
|
importc: "IupTabsv", cdecl, dynlib: dllname.}
|
||||||
|
proc Tree*(): PIhandle {.importc: "IupTree", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc Spin*(): PIhandle {.importc: "IupSpin", cdecl, dynlib: dllname.}
|
||||||
|
proc Spinbox*(child: PIhandle): PIhandle {.
|
||||||
|
importc: "IupSpinbox", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
# IupText utilities
|
||||||
|
proc TextConvertLinColToPos*(ih: PIhandle, lin, col: cint, pos: var cint) {.
|
||||||
|
importc: "IupTextConvertLinColToPos", cdecl, dynlib: dllname.}
|
||||||
|
proc TextConvertPosToLinCol*(ih: PIhandle, pos: cint, lin, col: var cint) {.
|
||||||
|
importc: "IupTextConvertPosToLinCol", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc ConvertXYToPos*(ih: PIhandle, x, y: cint): cint {.
|
||||||
|
importc: "IupConvertXYToPos", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
# IupTree utilities
|
||||||
|
proc TreeSetUserId*(ih: PIhandle, id: cint, userid: pointer): cint {.
|
||||||
|
importc: "IupTreeSetUserId", cdecl, dynlib: dllname.}
|
||||||
|
proc TreeGetUserId*(ih: PIhandle, id: cint): pointer {.
|
||||||
|
importc: "IupTreeGetUserId", cdecl, dynlib: dllname.}
|
||||||
|
proc TreeGetId*(ih: PIhandle, userid: pointer): cint {.
|
||||||
|
importc: "IupTreeGetId", cdecl, dynlib: dllname.}
|
||||||
|
|
||||||
|
proc TreeSetAttribute*(ih: PIhandle, name: cstring, id: cint, value: cstring) {.
|
||||||
|
importc: "IupTreeSetAttribute", cdecl, dynlib: dllname.}
|
||||||
|
proc TreeStoreAttribute*(ih: PIhandle, name: cstring, id: cint, value: cstring) {.
|
||||||
|
importc: "IupTreeStoreAttribute", cdecl, dynlib: dllname.}
|
||||||
|
proc TreeGetAttribute*(ih: PIhandle, name: cstring, id: cint): cstring {.
|
||||||
|
importc: "IupTreeGetAttribute", cdecl, dynlib: dllname.}
|
||||||
|
proc TreeGetInt*(ih: PIhandle, name: cstring, id: cint): cint {.
|
||||||
|
importc: "IupTreeGetInt", cdecl, dynlib: dllname.}
|
||||||
|
proc TreeGetFloat*(ih: PIhandle, name: cstring, id: cint): cfloat {.
|
||||||
|
importc: "IupTreeGetFloat", cdecl, dynlib: dllname.}
|
||||||
|
proc TreeSetfAttribute*(ih: PIhandle, name: cstring, id: cint, format: cstring) {.
|
||||||
|
importc: "IupTreeSetfAttribute", cdecl, dynlib: dllname, varargs.}
|
||||||
|
|
||||||
|
|
||||||
|
# Common Return Values
|
||||||
|
const
|
||||||
|
IUP_ERROR* = cint(1)
|
||||||
|
IUP_NOERROR* = cint(0)
|
||||||
|
IUP_OPENED* = cint(-1)
|
||||||
|
IUP_INVALID* = cint(-1)
|
||||||
|
|
||||||
|
# Callback Return Values
|
||||||
|
IUP_IGNORE* = cint(-1)
|
||||||
|
IUP_DEFAULT* = cint(-2)
|
||||||
|
IUP_CLOSE* = cint(-3)
|
||||||
|
IUP_CONTINUE* = cint(-4)
|
||||||
|
|
||||||
|
# IupPopup and IupShowXY Parameter Values
|
||||||
|
IUP_CENTER* = cint(0xFFFF)
|
||||||
|
IUP_LEFT* = cint(0xFFFE)
|
||||||
|
IUP_RIGHT* = cint(0xFFFD)
|
||||||
|
IUP_MOUSEPOS* = cint(0xFFFC)
|
||||||
|
IUP_CURRENT* = cint(0xFFFB)
|
||||||
|
IUP_CENTERPARENT* = cint(0xFFFA)
|
||||||
|
IUP_TOP* = IUP_LEFT
|
||||||
|
IUP_BOTTOM* = IUP_RIGHT
|
||||||
|
|
||||||
|
# SHOW_CB Callback Values
|
||||||
|
IUP_SHOW* = cint(0)
|
||||||
|
IUP_RESTORE* = cint(1)
|
||||||
|
IUP_MINIMIZE* = cint(2)
|
||||||
|
IUP_MAXIMIZE* = cint(3)
|
||||||
|
IUP_HIDE* = cint(4)
|
||||||
|
|
||||||
|
# SCROLL_CB Callback Values
|
||||||
|
IUP_SBUP* = cint(0)
|
||||||
|
IUP_SBDN* = cint(1)
|
||||||
|
IUP_SBPGUP* = cint(2)
|
||||||
|
IUP_SBPGDN* = cint(3)
|
||||||
|
IUP_SBPOSV* = cint(4)
|
||||||
|
IUP_SBDRAGV* = cint(5)
|
||||||
|
IUP_SBLEFT* = cint(6)
|
||||||
|
IUP_SBRIGHT* = cint(7)
|
||||||
|
IUP_SBPGLEFT* = cint(8)
|
||||||
|
IUP_SBPGRIGHT* = cint(9)
|
||||||
|
IUP_SBPOSH* = cint(10)
|
||||||
|
IUP_SBDRAGH* = cint(11)
|
||||||
|
|
||||||
|
# Mouse Button Values and Macros
|
||||||
|
IUP_BUTTON1* = cint(ord('1'))
|
||||||
|
IUP_BUTTON2* = cint(ord('2'))
|
||||||
|
IUP_BUTTON3* = cint(ord('3'))
|
||||||
|
IUP_BUTTON4* = cint(ord('4'))
|
||||||
|
IUP_BUTTON5* = cint(ord('5'))
|
||||||
|
|
||||||
|
proc isShift*(s: cstring): bool = return s[0] == 'S'
|
||||||
|
proc isControl*(s: cstring): bool = return s[1] == 'C'
|
||||||
|
proc isButton1*(s: cstring): bool = return s[2] == '1'
|
||||||
|
proc isButton2*(s: cstring): bool = return s[3] == '2'
|
||||||
|
proc isbutton3*(s: cstring): bool = return s[4] == '3'
|
||||||
|
proc isDouble*(s: cstring): bool = return s[5] == 'D'
|
||||||
|
proc isAlt*(s: cstring): bool = return s[6] == 'A'
|
||||||
|
proc isSys*(s: cstring): bool = return s[7] == 'Y'
|
||||||
|
proc isButton4*(s: cstring): bool = return s[8] == '4'
|
||||||
|
proc isButton5*(s: cstring): bool = return s[9] == '5'
|
||||||
|
|
||||||
|
# Pre-Defined Masks
|
||||||
|
const
|
||||||
|
IUP_MASK_FLOAT* = "[+/-]?(/d+/.?/d*|/./d+)"
|
||||||
|
IUP_MASK_UFLOAT* = "(/d+/.?/d*|/./d+)"
|
||||||
|
IUP_MASK_EFLOAT* = "[+/-]?(/d+/.?/d*|/./d+)([eE][+/-]?/d+)?"
|
||||||
|
IUP_MASK_INT* = "[+/-]?/d+"
|
||||||
|
IUP_MASK_UINT* = "/d+"
|
||||||
|
|
||||||
|
# from 32 to 126, all character sets are equal,
|
||||||
|
# the key code i the same as the character code.
|
||||||
|
const
|
||||||
|
K_SP* = cint(ord(' '))
|
||||||
|
K_exclam* = cint(ord('!'))
|
||||||
|
K_quotedbl* = cint(ord('\"'))
|
||||||
|
K_numbersign* = cint(ord('#'))
|
||||||
|
K_dollar* = cint(ord('$'))
|
||||||
|
K_percent* = cint(ord('%'))
|
||||||
|
K_ampersand* = cint(ord('&'))
|
||||||
|
K_apostrophe* = cint(ord('\''))
|
||||||
|
K_parentleft* = cint(ord('('))
|
||||||
|
K_parentright* = cint(ord(')'))
|
||||||
|
K_asterisk* = cint(ord('*'))
|
||||||
|
K_plus* = cint(ord('+'))
|
||||||
|
K_comma* = cint(ord(','))
|
||||||
|
K_minus* = cint(ord('-'))
|
||||||
|
K_period* = cint(ord('.'))
|
||||||
|
K_slash* = cint(ord('/'))
|
||||||
|
K_0* = cint(ord('0'))
|
||||||
|
K_1* = cint(ord('1'))
|
||||||
|
K_2* = cint(ord('2'))
|
||||||
|
K_3* = cint(ord('3'))
|
||||||
|
K_4* = cint(ord('4'))
|
||||||
|
K_5* = cint(ord('5'))
|
||||||
|
K_6* = cint(ord('6'))
|
||||||
|
K_7* = cint(ord('7'))
|
||||||
|
K_8* = cint(ord('8'))
|
||||||
|
K_9* = cint(ord('9'))
|
||||||
|
K_colon* = cint(ord(':'))
|
||||||
|
K_semicolon* = cint(ord(';'))
|
||||||
|
K_less* = cint(ord('<'))
|
||||||
|
K_equal* = cint(ord('='))
|
||||||
|
K_greater* = cint(ord('>'))
|
||||||
|
K_question* = cint(ord('?'))
|
||||||
|
K_at* = cint(ord('@'))
|
||||||
|
K_upperA* = cint(ord('A'))
|
||||||
|
K_upperB* = cint(ord('B'))
|
||||||
|
K_upperC* = cint(ord('C'))
|
||||||
|
K_upperD* = cint(ord('D'))
|
||||||
|
K_upperE* = cint(ord('E'))
|
||||||
|
K_upperF* = cint(ord('F'))
|
||||||
|
K_upperG* = cint(ord('G'))
|
||||||
|
K_upperH* = cint(ord('H'))
|
||||||
|
K_upperI* = cint(ord('I'))
|
||||||
|
K_upperJ* = cint(ord('J'))
|
||||||
|
K_upperK* = cint(ord('K'))
|
||||||
|
K_upperL* = cint(ord('L'))
|
||||||
|
K_upperM* = cint(ord('M'))
|
||||||
|
K_upperN* = cint(ord('N'))
|
||||||
|
K_upperO* = cint(ord('O'))
|
||||||
|
K_upperP* = cint(ord('P'))
|
||||||
|
K_upperQ* = cint(ord('Q'))
|
||||||
|
K_upperR* = cint(ord('R'))
|
||||||
|
K_upperS* = cint(ord('S'))
|
||||||
|
K_upperT* = cint(ord('T'))
|
||||||
|
K_upperU* = cint(ord('U'))
|
||||||
|
K_upperV* = cint(ord('V'))
|
||||||
|
K_upperW* = cint(ord('W'))
|
||||||
|
K_upperX* = cint(ord('X'))
|
||||||
|
K_upperY* = cint(ord('Y'))
|
||||||
|
K_upperZ* = cint(ord('Z'))
|
||||||
|
K_bracketleft* = cint(ord('['))
|
||||||
|
K_backslash* = cint(ord('\\'))
|
||||||
|
K_bracketright* = cint(ord(']'))
|
||||||
|
K_circum* = cint(ord('^'))
|
||||||
|
K_underscore* = cint(ord('_'))
|
||||||
|
K_grave* = cint(ord('`'))
|
||||||
|
K_lowera* = cint(ord('a'))
|
||||||
|
K_lowerb* = cint(ord('b'))
|
||||||
|
K_lowerc* = cint(ord('c'))
|
||||||
|
K_lowerd* = cint(ord('d'))
|
||||||
|
K_lowere* = cint(ord('e'))
|
||||||
|
K_lowerf* = cint(ord('f'))
|
||||||
|
K_lowerg* = cint(ord('g'))
|
||||||
|
K_lowerh* = cint(ord('h'))
|
||||||
|
K_loweri* = cint(ord('i'))
|
||||||
|
K_lowerj* = cint(ord('j'))
|
||||||
|
K_lowerk* = cint(ord('k'))
|
||||||
|
K_lowerl* = cint(ord('l'))
|
||||||
|
K_lowerm* = cint(ord('m'))
|
||||||
|
K_lowern* = cint(ord('n'))
|
||||||
|
K_lowero* = cint(ord('o'))
|
||||||
|
K_lowerp* = cint(ord('p'))
|
||||||
|
K_lowerq* = cint(ord('q'))
|
||||||
|
K_lowerr* = cint(ord('r'))
|
||||||
|
K_lowers* = cint(ord('s'))
|
||||||
|
K_lowert* = cint(ord('t'))
|
||||||
|
K_loweru* = cint(ord('u'))
|
||||||
|
K_lowerv* = cint(ord('v'))
|
||||||
|
K_lowerw* = cint(ord('w'))
|
||||||
|
K_lowerx* = cint(ord('x'))
|
||||||
|
K_lowery* = cint(ord('y'))
|
||||||
|
K_lowerz* = cint(ord('z'))
|
||||||
|
K_braceleft* = cint(ord('{'))
|
||||||
|
K_bar* = cint(ord('|'))
|
||||||
|
K_braceright* = cint(ord('}'))
|
||||||
|
K_tilde* = cint(ord('~'))
|
||||||
|
|
||||||
|
proc isPrint*(c: cint): bool = return c > 31 and c < 127
|
||||||
|
|
||||||
|
# also define the escape sequences that have keys associated
|
||||||
|
const
|
||||||
|
K_BS* = cint(ord('\b'))
|
||||||
|
K_TAB* = cint(ord('\t'))
|
||||||
|
K_LF* = cint(10)
|
||||||
|
K_CR* = cint(13)
|
||||||
|
|
||||||
|
# IUP Extended Key Codes, range start at 128
|
||||||
|
# Modifiers use 256 interval
|
||||||
|
# These key code definitions are specific to IUP
|
||||||
|
|
||||||
|
proc isXkey*(c: cint): bool = return c > 128
|
||||||
|
proc isShiftXkey*(c: cint): bool = return c > 256 and c < 512
|
||||||
|
proc isCtrlXkey*(c: cint): bool = return c > 512 and c < 768
|
||||||
|
proc isAltXkey*(c: cint): bool = return c > 768 and c < 1024
|
||||||
|
proc isSysXkey*(c: cint): bool = return c > 1024 and c < 1280
|
||||||
|
|
||||||
|
proc IUPxCODE*(c: cint): cint = return c + cint(128) # Normal (must be above 128)
|
||||||
|
proc IUPsxCODE*(c: cint): cint =
|
||||||
|
return c + cint(256)
|
||||||
|
# Shift (must have range to include the standard keys and the normal
|
||||||
|
# extended keys, so must be above 256
|
||||||
|
|
||||||
|
proc IUPcxCODE*(c: cint): cint = return c + cint(512) # Ctrl
|
||||||
|
proc IUPmxCODE*(c: cint): cint = return c + cint(768) # Alt
|
||||||
|
proc IUPyxCODE*(c: cint): cint = return c + cint(1024) # Sys (Win or Apple)
|
||||||
|
|
||||||
|
const
|
||||||
|
IUP_NUMMAXCODES* = 1280 ## 5*256=1280 Normal+Shift+Ctrl+Alt+Sys
|
||||||
|
|
||||||
|
K_HOME* = IUPxCODE(1)
|
||||||
|
K_UP* = IUPxCODE(2)
|
||||||
|
K_PGUP* = IUPxCODE(3)
|
||||||
|
K_LEFT* = IUPxCODE(4)
|
||||||
|
K_MIDDLE* = IUPxCODE(5)
|
||||||
|
K_RIGHT* = IUPxCODE(6)
|
||||||
|
K_END* = IUPxCODE(7)
|
||||||
|
K_DOWN* = IUPxCODE(8)
|
||||||
|
K_PGDN* = IUPxCODE(9)
|
||||||
|
K_INS* = IUPxCODE(10)
|
||||||
|
K_DEL* = IUPxCODE(11)
|
||||||
|
K_PAUSE* = IUPxCODE(12)
|
||||||
|
K_ESC* = IUPxCODE(13)
|
||||||
|
K_ccedilla* = IUPxCODE(14)
|
||||||
|
K_F1* = IUPxCODE(15)
|
||||||
|
K_F2* = IUPxCODE(16)
|
||||||
|
K_F3* = IUPxCODE(17)
|
||||||
|
K_F4* = IUPxCODE(18)
|
||||||
|
K_F5* = IUPxCODE(19)
|
||||||
|
K_F6* = IUPxCODE(20)
|
||||||
|
K_F7* = IUPxCODE(21)
|
||||||
|
K_F8* = IUPxCODE(22)
|
||||||
|
K_F9* = IUPxCODE(23)
|
||||||
|
K_F10* = IUPxCODE(24)
|
||||||
|
K_F11* = IUPxCODE(25)
|
||||||
|
K_F12* = IUPxCODE(26)
|
||||||
|
K_Print* = IUPxCODE(27)
|
||||||
|
K_Menu* = IUPxCODE(28)
|
||||||
|
|
||||||
|
K_acute* = IUPxCODE(29) # no Shift/Ctrl/Alt
|
||||||
|
|
||||||
|
K_sHOME* = IUPsxCODE(K_HOME)
|
||||||
|
K_sUP* = IUPsxCODE(K_UP)
|
||||||
|
K_sPGUP* = IUPsxCODE(K_PGUP)
|
||||||
|
K_sLEFT* = IUPsxCODE(K_LEFT)
|
||||||
|
K_sMIDDLE* = IUPsxCODE(K_MIDDLE)
|
||||||
|
K_sRIGHT* = IUPsxCODE(K_RIGHT)
|
||||||
|
K_sEND* = IUPsxCODE(K_END)
|
||||||
|
K_sDOWN* = IUPsxCODE(K_DOWN)
|
||||||
|
K_sPGDN* = IUPsxCODE(K_PGDN)
|
||||||
|
K_sINS* = IUPsxCODE(K_INS)
|
||||||
|
K_sDEL* = IUPsxCODE(K_DEL)
|
||||||
|
K_sSP* = IUPsxCODE(K_SP)
|
||||||
|
K_sTAB* = IUPsxCODE(K_TAB)
|
||||||
|
K_sCR* = IUPsxCODE(K_CR)
|
||||||
|
K_sBS* = IUPsxCODE(K_BS)
|
||||||
|
K_sPAUSE* = IUPsxCODE(K_PAUSE)
|
||||||
|
K_sESC* = IUPsxCODE(K_ESC)
|
||||||
|
K_sCcedilla* = IUPsxCODE(K_ccedilla)
|
||||||
|
K_sF1* = IUPsxCODE(K_F1)
|
||||||
|
K_sF2* = IUPsxCODE(K_F2)
|
||||||
|
K_sF3* = IUPsxCODE(K_F3)
|
||||||
|
K_sF4* = IUPsxCODE(K_F4)
|
||||||
|
K_sF5* = IUPsxCODE(K_F5)
|
||||||
|
K_sF6* = IUPsxCODE(K_F6)
|
||||||
|
K_sF7* = IUPsxCODE(K_F7)
|
||||||
|
K_sF8* = IUPsxCODE(K_F8)
|
||||||
|
K_sF9* = IUPsxCODE(K_F9)
|
||||||
|
K_sF10* = IUPsxCODE(K_F10)
|
||||||
|
K_sF11* = IUPsxCODE(K_F11)
|
||||||
|
K_sF12* = IUPsxCODE(K_F12)
|
||||||
|
K_sPrint* = IUPsxCODE(K_Print)
|
||||||
|
K_sMenu* = IUPsxCODE(K_Menu)
|
||||||
|
|
||||||
|
K_cHOME* = IUPcxCODE(K_HOME)
|
||||||
|
K_cUP* = IUPcxCODE(K_UP)
|
||||||
|
K_cPGUP* = IUPcxCODE(K_PGUP)
|
||||||
|
K_cLEFT* = IUPcxCODE(K_LEFT)
|
||||||
|
K_cMIDDLE* = IUPcxCODE(K_MIDDLE)
|
||||||
|
K_cRIGHT* = IUPcxCODE(K_RIGHT)
|
||||||
|
K_cEND* = IUPcxCODE(K_END)
|
||||||
|
K_cDOWN* = IUPcxCODE(K_DOWN)
|
||||||
|
K_cPGDN* = IUPcxCODE(K_PGDN)
|
||||||
|
K_cINS* = IUPcxCODE(K_INS)
|
||||||
|
K_cDEL* = IUPcxCODE(K_DEL)
|
||||||
|
K_cSP* = IUPcxCODE(K_SP)
|
||||||
|
K_cTAB* = IUPcxCODE(K_TAB)
|
||||||
|
K_cCR* = IUPcxCODE(K_CR)
|
||||||
|
K_cBS* = IUPcxCODE(K_BS)
|
||||||
|
K_cPAUSE* = IUPcxCODE(K_PAUSE)
|
||||||
|
K_cESC* = IUPcxCODE(K_ESC)
|
||||||
|
K_cCcedilla* = IUPcxCODE(K_ccedilla)
|
||||||
|
K_cF1* = IUPcxCODE(K_F1)
|
||||||
|
K_cF2* = IUPcxCODE(K_F2)
|
||||||
|
K_cF3* = IUPcxCODE(K_F3)
|
||||||
|
K_cF4* = IUPcxCODE(K_F4)
|
||||||
|
K_cF5* = IUPcxCODE(K_F5)
|
||||||
|
K_cF6* = IUPcxCODE(K_F6)
|
||||||
|
K_cF7* = IUPcxCODE(K_F7)
|
||||||
|
K_cF8* = IUPcxCODE(K_F8)
|
||||||
|
K_cF9* = IUPcxCODE(K_F9)
|
||||||
|
K_cF10* = IUPcxCODE(K_F10)
|
||||||
|
K_cF11* = IUPcxCODE(K_F11)
|
||||||
|
K_cF12* = IUPcxCODE(K_F12)
|
||||||
|
K_cPrint* = IUPcxCODE(K_Print)
|
||||||
|
K_cMenu* = IUPcxCODE(K_Menu)
|
||||||
|
|
||||||
|
K_mHOME* = IUPmxCODE(K_HOME)
|
||||||
|
K_mUP* = IUPmxCODE(K_UP)
|
||||||
|
K_mPGUP* = IUPmxCODE(K_PGUP)
|
||||||
|
K_mLEFT* = IUPmxCODE(K_LEFT)
|
||||||
|
K_mMIDDLE* = IUPmxCODE(K_MIDDLE)
|
||||||
|
K_mRIGHT* = IUPmxCODE(K_RIGHT)
|
||||||
|
K_mEND* = IUPmxCODE(K_END)
|
||||||
|
K_mDOWN* = IUPmxCODE(K_DOWN)
|
||||||
|
K_mPGDN* = IUPmxCODE(K_PGDN)
|
||||||
|
K_mINS* = IUPmxCODE(K_INS)
|
||||||
|
K_mDEL* = IUPmxCODE(K_DEL)
|
||||||
|
K_mSP* = IUPmxCODE(K_SP)
|
||||||
|
K_mTAB* = IUPmxCODE(K_TAB)
|
||||||
|
K_mCR* = IUPmxCODE(K_CR)
|
||||||
|
K_mBS* = IUPmxCODE(K_BS)
|
||||||
|
K_mPAUSE* = IUPmxCODE(K_PAUSE)
|
||||||
|
K_mESC* = IUPmxCODE(K_ESC)
|
||||||
|
K_mCcedilla* = IUPmxCODE(K_ccedilla)
|
||||||
|
K_mF1* = IUPmxCODE(K_F1)
|
||||||
|
K_mF2* = IUPmxCODE(K_F2)
|
||||||
|
K_mF3* = IUPmxCODE(K_F3)
|
||||||
|
K_mF4* = IUPmxCODE(K_F4)
|
||||||
|
K_mF5* = IUPmxCODE(K_F5)
|
||||||
|
K_mF6* = IUPmxCODE(K_F6)
|
||||||
|
K_mF7* = IUPmxCODE(K_F7)
|
||||||
|
K_mF8* = IUPmxCODE(K_F8)
|
||||||
|
K_mF9* = IUPmxCODE(K_F9)
|
||||||
|
K_mF10* = IUPmxCODE(K_F10)
|
||||||
|
K_mF11* = IUPmxCODE(K_F11)
|
||||||
|
K_mF12* = IUPmxCODE(K_F12)
|
||||||
|
K_mPrint* = IUPmxCODE(K_Print)
|
||||||
|
K_mMenu* = IUPmxCODE(K_Menu)
|
||||||
|
|
||||||
|
K_yHOME* = IUPyxCODE(K_HOME)
|
||||||
|
K_yUP* = IUPyxCODE(K_UP)
|
||||||
|
K_yPGUP* = IUPyxCODE(K_PGUP)
|
||||||
|
K_yLEFT* = IUPyxCODE(K_LEFT)
|
||||||
|
K_yMIDDLE* = IUPyxCODE(K_MIDDLE)
|
||||||
|
K_yRIGHT* = IUPyxCODE(K_RIGHT)
|
||||||
|
K_yEND* = IUPyxCODE(K_END)
|
||||||
|
K_yDOWN* = IUPyxCODE(K_DOWN)
|
||||||
|
K_yPGDN* = IUPyxCODE(K_PGDN)
|
||||||
|
K_yINS* = IUPyxCODE(K_INS)
|
||||||
|
K_yDEL* = IUPyxCODE(K_DEL)
|
||||||
|
K_ySP* = IUPyxCODE(K_SP)
|
||||||
|
K_yTAB* = IUPyxCODE(K_TAB)
|
||||||
|
K_yCR* = IUPyxCODE(K_CR)
|
||||||
|
K_yBS* = IUPyxCODE(K_BS)
|
||||||
|
K_yPAUSE* = IUPyxCODE(K_PAUSE)
|
||||||
|
K_yESC* = IUPyxCODE(K_ESC)
|
||||||
|
K_yCcedilla* = IUPyxCODE(K_ccedilla)
|
||||||
|
K_yF1* = IUPyxCODE(K_F1)
|
||||||
|
K_yF2* = IUPyxCODE(K_F2)
|
||||||
|
K_yF3* = IUPyxCODE(K_F3)
|
||||||
|
K_yF4* = IUPyxCODE(K_F4)
|
||||||
|
K_yF5* = IUPyxCODE(K_F5)
|
||||||
|
K_yF6* = IUPyxCODE(K_F6)
|
||||||
|
K_yF7* = IUPyxCODE(K_F7)
|
||||||
|
K_yF8* = IUPyxCODE(K_F8)
|
||||||
|
K_yF9* = IUPyxCODE(K_F9)
|
||||||
|
K_yF10* = IUPyxCODE(K_F10)
|
||||||
|
K_yF11* = IUPyxCODE(K_F11)
|
||||||
|
K_yF12* = IUPyxCODE(K_F12)
|
||||||
|
K_yPrint* = IUPyxCODE(K_Print)
|
||||||
|
K_yMenu* = IUPyxCODE(K_Menu)
|
||||||
|
|
||||||
|
K_sPlus* = IUPsxCODE(K_plus)
|
||||||
|
K_sComma* = IUPsxCODE(K_comma)
|
||||||
|
K_sMinus* = IUPsxCODE(K_minus)
|
||||||
|
K_sPeriod* = IUPsxCODE(K_period)
|
||||||
|
K_sSlash* = IUPsxCODE(K_slash)
|
||||||
|
K_sAsterisk* = IUPsxCODE(K_asterisk)
|
||||||
|
|
||||||
|
K_cupperA* = IUPcxCODE(K_upperA)
|
||||||
|
K_cupperB* = IUPcxCODE(K_upperB)
|
||||||
|
K_cupperC* = IUPcxCODE(K_upperC)
|
||||||
|
K_cupperD* = IUPcxCODE(K_upperD)
|
||||||
|
K_cupperE* = IUPcxCODE(K_upperE)
|
||||||
|
K_cupperF* = IUPcxCODE(K_upperF)
|
||||||
|
K_cupperG* = IUPcxCODE(K_upperG)
|
||||||
|
K_cupperH* = IUPcxCODE(K_upperH)
|
||||||
|
K_cupperI* = IUPcxCODE(K_upperI)
|
||||||
|
K_cupperJ* = IUPcxCODE(K_upperJ)
|
||||||
|
K_cupperK* = IUPcxCODE(K_upperK)
|
||||||
|
K_cupperL* = IUPcxCODE(K_upperL)
|
||||||
|
K_cupperM* = IUPcxCODE(K_upperM)
|
||||||
|
K_cupperN* = IUPcxCODE(K_upperN)
|
||||||
|
K_cupperO* = IUPcxCODE(K_upperO)
|
||||||
|
K_cupperP* = IUPcxCODE(K_upperP)
|
||||||
|
K_cupperQ* = IUPcxCODE(K_upperQ)
|
||||||
|
K_cupperR* = IUPcxCODE(K_upperR)
|
||||||
|
K_cupperS* = IUPcxCODE(K_upperS)
|
||||||
|
K_cupperT* = IUPcxCODE(K_upperT)
|
||||||
|
K_cupperU* = IUPcxCODE(K_upperU)
|
||||||
|
K_cupperV* = IUPcxCODE(K_upperV)
|
||||||
|
K_cupperW* = IUPcxCODE(K_upperW)
|
||||||
|
K_cupperX* = IUPcxCODE(K_upperX)
|
||||||
|
K_cupperY* = IUPcxCODE(K_upperY)
|
||||||
|
K_cupperZ* = IUPcxCODE(K_upperZ)
|
||||||
|
K_c1* = IUPcxCODE(K_1)
|
||||||
|
K_c2* = IUPcxCODE(K_2)
|
||||||
|
K_c3* = IUPcxCODE(K_3)
|
||||||
|
K_c4* = IUPcxCODE(K_4)
|
||||||
|
K_c5* = IUPcxCODE(K_5)
|
||||||
|
K_c6* = IUPcxCODE(K_6)
|
||||||
|
K_c7* = IUPcxCODE(K_7)
|
||||||
|
K_c8* = IUPcxCODE(K_8)
|
||||||
|
K_c9* = IUPcxCODE(K_9)
|
||||||
|
K_c0* = IUPcxCODE(K_0)
|
||||||
|
K_cPlus* = IUPcxCODE(K_plus)
|
||||||
|
K_cComma* = IUPcxCODE(K_comma)
|
||||||
|
K_cMinus* = IUPcxCODE(K_minus)
|
||||||
|
K_cPeriod* = IUPcxCODE(K_period)
|
||||||
|
K_cSlash* = IUPcxCODE(K_slash)
|
||||||
|
K_cSemicolon* = IUPcxCODE(K_semicolon)
|
||||||
|
K_cEqual* = IUPcxCODE(K_equal)
|
||||||
|
K_cBracketleft* = IUPcxCODE(K_bracketleft)
|
||||||
|
K_cBracketright* = IUPcxCODE(K_bracketright)
|
||||||
|
K_cBackslash* = IUPcxCODE(K_backslash)
|
||||||
|
K_cAsterisk* = IUPcxCODE(K_asterisk)
|
||||||
|
|
||||||
|
K_mupperA* = IUPmxCODE(K_upperA)
|
||||||
|
K_mupperB* = IUPmxCODE(K_upperB)
|
||||||
|
K_mupperC* = IUPmxCODE(K_upperC)
|
||||||
|
K_mupperD* = IUPmxCODE(K_upperD)
|
||||||
|
K_mupperE* = IUPmxCODE(K_upperE)
|
||||||
|
K_mupperF* = IUPmxCODE(K_upperF)
|
||||||
|
K_mupperG* = IUPmxCODE(K_upperG)
|
||||||
|
K_mupperH* = IUPmxCODE(K_upperH)
|
||||||
|
K_mupperI* = IUPmxCODE(K_upperI)
|
||||||
|
K_mupperJ* = IUPmxCODE(K_upperJ)
|
||||||
|
K_mupperK* = IUPmxCODE(K_upperK)
|
||||||
|
K_mupperL* = IUPmxCODE(K_upperL)
|
||||||
|
K_mupperM* = IUPmxCODE(K_upperM)
|
||||||
|
K_mupperN* = IUPmxCODE(K_upperN)
|
||||||
|
K_mupperO* = IUPmxCODE(K_upperO)
|
||||||
|
K_mupperP* = IUPmxCODE(K_upperP)
|
||||||
|
K_mupperQ* = IUPmxCODE(K_upperQ)
|
||||||
|
K_mupperR* = IUPmxCODE(K_upperR)
|
||||||
|
K_mupperS* = IUPmxCODE(K_upperS)
|
||||||
|
K_mupperT* = IUPmxCODE(K_upperT)
|
||||||
|
K_mupperU* = IUPmxCODE(K_upperU)
|
||||||
|
K_mupperV* = IUPmxCODE(K_upperV)
|
||||||
|
K_mupperW* = IUPmxCODE(K_upperW)
|
||||||
|
K_mupperX* = IUPmxCODE(K_upperX)
|
||||||
|
K_mupperY* = IUPmxCODE(K_upperY)
|
||||||
|
K_mupperZ* = IUPmxCODE(K_upperZ)
|
||||||
|
K_m1* = IUPmxCODE(K_1)
|
||||||
|
K_m2* = IUPmxCODE(K_2)
|
||||||
|
K_m3* = IUPmxCODE(K_3)
|
||||||
|
K_m4* = IUPmxCODE(K_4)
|
||||||
|
K_m5* = IUPmxCODE(K_5)
|
||||||
|
K_m6* = IUPmxCODE(K_6)
|
||||||
|
K_m7* = IUPmxCODE(K_7)
|
||||||
|
K_m8* = IUPmxCODE(K_8)
|
||||||
|
K_m9* = IUPmxCODE(K_9)
|
||||||
|
K_m0* = IUPmxCODE(K_0)
|
||||||
|
K_mPlus* = IUPmxCODE(K_plus)
|
||||||
|
K_mComma* = IUPmxCODE(K_comma)
|
||||||
|
K_mMinus* = IUPmxCODE(K_minus)
|
||||||
|
K_mPeriod* = IUPmxCODE(K_period)
|
||||||
|
K_mSlash* = IUPmxCODE(K_slash)
|
||||||
|
K_mSemicolon* = IUPmxCODE(K_semicolon)
|
||||||
|
K_mEqual* = IUPmxCODE(K_equal)
|
||||||
|
K_mBracketleft* = IUPmxCODE(K_bracketleft)
|
||||||
|
K_mBracketright* = IUPmxCODE(K_bracketright)
|
||||||
|
K_mBackslash* = IUPmxCODE(K_backslash)
|
||||||
|
K_mAsterisk* = IUPmxCODE(K_asterisk)
|
||||||
|
|
||||||
|
K_yA* = IUPyxCODE(K_upperA)
|
||||||
|
K_yB* = IUPyxCODE(K_upperB)
|
||||||
|
K_yC* = IUPyxCODE(K_upperC)
|
||||||
|
K_yD* = IUPyxCODE(K_upperD)
|
||||||
|
K_yE* = IUPyxCODE(K_upperE)
|
||||||
|
K_yF* = IUPyxCODE(K_upperF)
|
||||||
|
K_yG* = IUPyxCODE(K_upperG)
|
||||||
|
K_yH* = IUPyxCODE(K_upperH)
|
||||||
|
K_yI* = IUPyxCODE(K_upperI)
|
||||||
|
K_yJ* = IUPyxCODE(K_upperJ)
|
||||||
|
K_yK* = IUPyxCODE(K_upperK)
|
||||||
|
K_yL* = IUPyxCODE(K_upperL)
|
||||||
|
K_yM* = IUPyxCODE(K_upperM)
|
||||||
|
K_yN* = IUPyxCODE(K_upperN)
|
||||||
|
K_yO* = IUPyxCODE(K_upperO)
|
||||||
|
K_yP* = IUPyxCODE(K_upperP)
|
||||||
|
K_yQ* = IUPyxCODE(K_upperQ)
|
||||||
|
K_yR* = IUPyxCODE(K_upperR)
|
||||||
|
K_yS* = IUPyxCODE(K_upperS)
|
||||||
|
K_yT* = IUPyxCODE(K_upperT)
|
||||||
|
K_yU* = IUPyxCODE(K_upperU)
|
||||||
|
K_yV* = IUPyxCODE(K_upperV)
|
||||||
|
K_yW* = IUPyxCODE(K_upperW)
|
||||||
|
K_yX* = IUPyxCODE(K_upperX)
|
||||||
|
K_yY* = IUPyxCODE(K_upperY)
|
||||||
|
K_yZ* = IUPyxCODE(K_upperZ)
|
||||||
|
K_y1* = IUPyxCODE(K_1)
|
||||||
|
K_y2* = IUPyxCODE(K_2)
|
||||||
|
K_y3* = IUPyxCODE(K_3)
|
||||||
|
K_y4* = IUPyxCODE(K_4)
|
||||||
|
K_y5* = IUPyxCODE(K_5)
|
||||||
|
K_y6* = IUPyxCODE(K_6)
|
||||||
|
K_y7* = IUPyxCODE(K_7)
|
||||||
|
K_y8* = IUPyxCODE(K_8)
|
||||||
|
K_y9* = IUPyxCODE(K_9)
|
||||||
|
K_y0* = IUPyxCODE(K_0)
|
||||||
|
K_yPlus* = IUPyxCODE(K_plus)
|
||||||
|
K_yComma* = IUPyxCODE(K_comma)
|
||||||
|
K_yMinus* = IUPyxCODE(K_minus)
|
||||||
|
K_yPeriod* = IUPyxCODE(K_period)
|
||||||
|
K_ySlash* = IUPyxCODE(K_slash)
|
||||||
|
K_ySemicolon* = IUPyxCODE(K_semicolon)
|
||||||
|
K_yEqual* = IUPyxCODE(K_equal)
|
||||||
|
K_yBracketleft* = IUPyxCODE(K_bracketleft)
|
||||||
|
K_yBracketright* = IUPyxCODE(K_bracketright)
|
||||||
|
K_yBackslash* = IUPyxCODE(K_backslash)
|
||||||
|
K_yAsterisk* = IUPyxCODE(K_asterisk)
|
||||||
|
|
||||||
|
proc ControlsOpen*(): cint {.cdecl, importc: "IupControlsOpen", dynlib: dllname.}
|
||||||
|
proc ControlsClose*() {.cdecl, importc: "IupControlsClose", dynlib: dllname.}
|
||||||
|
|
||||||
|
proc OldValOpen*() {.cdecl, importc: "IupOldValOpen", dynlib: dllname.}
|
||||||
|
proc OldTabsOpen*() {.cdecl, importc: "IupOldTabsOpen", dynlib: dllname.}
|
||||||
|
|
||||||
|
proc Colorbar*(): PIhandle {.cdecl, importc: "IupColorbar", dynlib: dllname.}
|
||||||
|
proc Cells*(): PIhandle {.cdecl, importc: "IupCells", dynlib: dllname.}
|
||||||
|
proc ColorBrowser*(): PIhandle {.cdecl, importc: "IupColorBrowser", dynlib: dllname.}
|
||||||
|
proc Gauge*(): PIhandle {.cdecl, importc: "IupGauge", dynlib: dllname.}
|
||||||
|
proc Dial*(theType: cstring): PIhandle {.cdecl, importc: "IupDial", dynlib: dllname.}
|
||||||
|
proc Matrix*(action: cstring): PIhandle {.cdecl, importc: "IupMatrix", dynlib: dllname.}
|
||||||
|
|
||||||
|
# IupMatrix utilities
|
||||||
|
proc MatSetAttribute*(ih: PIhandle, name: cstring, lin, col: cint,
|
||||||
|
value: cstring) {.
|
||||||
|
cdecl, importc: "IupMatSetAttribute", dynlib: dllname.}
|
||||||
|
proc MatStoreAttribute*(ih: PIhandle, name: cstring, lin, col: cint,
|
||||||
|
value: cstring) {.cdecl,
|
||||||
|
importc: "IupMatStoreAttribute", dynlib: dllname.}
|
||||||
|
proc MatGetAttribute*(ih: PIhandle, name: cstring, lin, col: cint): cstring {.
|
||||||
|
cdecl, importc: "IupMatGetAttribute", dynlib: dllname.}
|
||||||
|
proc MatGetInt*(ih: PIhandle, name: cstring, lin, col: cint): cint {.
|
||||||
|
cdecl, importc: "IupMatGetInt", dynlib: dllname.}
|
||||||
|
proc MatGetFloat*(ih: PIhandle, name: cstring, lin, col: cint): cfloat {.
|
||||||
|
cdecl, importc: "IupMatGetFloat", dynlib: dllname.}
|
||||||
|
proc MatSetfAttribute*(ih: PIhandle, name: cstring, lin, col: cint,
|
||||||
|
format: cstring) {.cdecl,
|
||||||
|
importc: "IupMatSetfAttribute",
|
||||||
|
dynlib: dllname, varargs.}
|
||||||
|
|
||||||
|
# Used by IupColorbar
|
||||||
|
const
|
||||||
|
IUP_PRIMARY* = -1
|
||||||
|
IUP_SECONDARY* = -2
|
||||||
|
|
||||||
|
# Initialize PPlot widget class
|
||||||
|
proc PPlotOpen*() {.cdecl, importc: "IupPPlotOpen", dynlib: dllname.}
|
||||||
|
|
||||||
|
# Create an PPlot widget instance
|
||||||
|
proc PPlot*: PIhandle {.cdecl, importc: "IupPPlot", dynlib: dllname.}
|
||||||
|
|
||||||
|
# Add dataset to plot
|
||||||
|
proc PPlotBegin*(ih: PIhandle, strXdata: cint) {.
|
||||||
|
cdecl, importc: "IupPPlotBegin", dynlib: dllname.}
|
||||||
|
proc PPlotAdd*(ih: PIhandle, x, y: cfloat) {.
|
||||||
|
cdecl, importc: "IupPPlotAdd", dynlib: dllname.}
|
||||||
|
proc PPlotAddStr*(ih: PIhandle, x: cstring, y: cfloat) {.
|
||||||
|
cdecl, importc: "IupPPlotAddStr", dynlib: dllname.}
|
||||||
|
proc PPlotEnd*(ih: PIhandle): cint {.
|
||||||
|
cdecl, importc: "IupPPlotEnd", dynlib: dllname.}
|
||||||
|
|
||||||
|
proc PPlotInsertStr*(ih: PIhandle, index, sample_index: cint, x: cstring,
|
||||||
|
y: cfloat) {.cdecl, importc: "IupPPlotInsertStr",
|
||||||
|
dynlib: dllname.}
|
||||||
|
proc PPlotInsert*(ih: PIhandle, index, sample_index: cint,
|
||||||
|
x, y: cfloat) {.
|
||||||
|
cdecl, importc: "IupPPlotInsert", dynlib: dllname.}
|
||||||
|
|
||||||
|
# convert from plot coordinates to pixels
|
||||||
|
proc PPlotTransform*(ih: PIhandle, x, y: cfloat, ix, iy: var cint) {.
|
||||||
|
cdecl, importc: "IupPPlotTransform", dynlib: dllname.}
|
||||||
|
|
||||||
|
# Plot on the given device. Uses a "cdCanvas*".
|
||||||
|
proc PPlotPaintTo*(ih: PIhandle, cnv: pointer) {.
|
||||||
|
cdecl, importc: "IupPPlotPaintTo", dynlib: dllname.}
|
||||||
|
|
||||||
|
|
||||||
788
lib/wrappers/odbcsql.nim
Executable file
788
lib/wrappers/odbcsql.nim
Executable file
|
|
@ -0,0 +1,788 @@
|
||||||
|
|
||||||
|
{.deadCodeElim: on.}
|
||||||
|
|
||||||
|
when not defined(ODBCVER):
|
||||||
|
const
|
||||||
|
ODBCVER = 0x0351 ## define ODBC version 3.51 by default
|
||||||
|
|
||||||
|
when defined(windows):
|
||||||
|
{.push callconv: stdcall.}
|
||||||
|
const odbclib = "odbc32.dll"
|
||||||
|
else:
|
||||||
|
{.push callconv: cdecl.}
|
||||||
|
const odbclib = "libodbc.so"
|
||||||
|
|
||||||
|
# DATA TYPES CORRESPONDENCE
|
||||||
|
# BDE fields ODBC types
|
||||||
|
# ---------- ------------------
|
||||||
|
# ftBlob SQL_BINARY
|
||||||
|
# ftBoolean SQL_BIT
|
||||||
|
# ftDate SQL_TYPE_DATE
|
||||||
|
# ftTime SQL_TYPE_TIME
|
||||||
|
# ftDateTime SQL_TYPE_TIMESTAMP
|
||||||
|
# ftInteger SQL_INTEGER
|
||||||
|
# ftSmallint SQL_SMALLINT
|
||||||
|
# ftFloat SQL_DOUBLE
|
||||||
|
# ftString SQL_CHAR
|
||||||
|
# ftMemo SQL_BINARY // SQL_VARCHAR
|
||||||
|
#
|
||||||
|
|
||||||
|
type
|
||||||
|
TSqlChar* = char
|
||||||
|
TSqlSmallInt* = int16
|
||||||
|
TSqlUSmallInt* = int16
|
||||||
|
TSqlHandle* = pointer
|
||||||
|
TSqlHEnv* = TSqlHandle
|
||||||
|
TSqlHDBC* = TSqlHandle
|
||||||
|
TSqlHStmt* = TSqlHandle
|
||||||
|
TSqlHDesc* = TSqlHandle
|
||||||
|
TSqlInteger* = int
|
||||||
|
TSqlUInteger* = int
|
||||||
|
TSqlPointer* = pointer
|
||||||
|
TSqlReal* = cfloat
|
||||||
|
TSqlDouble* = cdouble
|
||||||
|
TSqlFloat* = cdouble
|
||||||
|
TSqlHWND* = pointer
|
||||||
|
PSQLCHAR* = cstring
|
||||||
|
PSQLINTEGER* = ptr TSqlInteger
|
||||||
|
PSQLUINTEGER* = ptr TSqlUInteger
|
||||||
|
PSQLSMALLINT* = ptr TSqlSmallInt
|
||||||
|
PSQLUSMALLINT* = ptr TSqlUSmallInt
|
||||||
|
PSQLREAL* = ptr TSqlReal
|
||||||
|
PSQLDOUBLE* = ptr TSqlDouble
|
||||||
|
PSQLFLOAT* = ptr TSqlFloat
|
||||||
|
PSQLHANDLE* = ptr TSqlHandle
|
||||||
|
|
||||||
|
const # SQL data type codes
|
||||||
|
SQL_UNKNOWN_TYPE* = 0
|
||||||
|
SQL_LONGVARCHAR* = (- 1)
|
||||||
|
SQL_BINARY* = (- 2)
|
||||||
|
SQL_VARBINARY* = (- 3)
|
||||||
|
SQL_LONGVARBINARY* = (- 4)
|
||||||
|
SQL_BIGINT* = (- 5)
|
||||||
|
SQL_TINYINT* = (- 6)
|
||||||
|
SQL_BIT* = (- 7)
|
||||||
|
SQL_WCHAR* = (- 8)
|
||||||
|
SQL_WVARCHAR* = (- 9)
|
||||||
|
SQL_WLONGVARCHAR* = (- 10)
|
||||||
|
SQL_CHAR* = 1
|
||||||
|
SQL_NUMERIC* = 2
|
||||||
|
SQL_DECIMAL* = 3
|
||||||
|
SQL_INTEGER* = 4
|
||||||
|
SQL_SMALLINT* = 5
|
||||||
|
SQL_FLOAT* = 6
|
||||||
|
SQL_REAL* = 7
|
||||||
|
SQL_DOUBLE* = 8
|
||||||
|
SQL_DATETIME* = 9
|
||||||
|
SQL_VARCHAR* = 12
|
||||||
|
SQL_TYPE_DATE* = 91
|
||||||
|
SQL_TYPE_TIME* = 92
|
||||||
|
SQL_TYPE_TIMESTAMP* = 93
|
||||||
|
SQL_DATE* = 9
|
||||||
|
SQL_TIME* = 10
|
||||||
|
SQL_TIMESTAMP* = 11
|
||||||
|
SQL_INTERVAL* = 10
|
||||||
|
SQL_GUID* = - 11 # interval codes
|
||||||
|
|
||||||
|
when ODBCVER >= 0x0300:
|
||||||
|
const
|
||||||
|
SQL_CODE_YEAR* = 1
|
||||||
|
SQL_CODE_MONTH* = 2
|
||||||
|
SQL_CODE_DAY* = 3
|
||||||
|
SQL_CODE_HOUR* = 4
|
||||||
|
SQL_CODE_MINUTE* = 5
|
||||||
|
SQL_CODE_SECOND* = 6
|
||||||
|
SQL_CODE_YEAR_TO_MONTH* = 7
|
||||||
|
SQL_CODE_DAY_TO_HOUR* = 8
|
||||||
|
SQL_CODE_DAY_TO_MINUTE* = 9
|
||||||
|
SQL_CODE_DAY_TO_SECOND* = 10
|
||||||
|
SQL_CODE_HOUR_TO_MINUTE* = 11
|
||||||
|
SQL_CODE_HOUR_TO_SECOND* = 12
|
||||||
|
SQL_CODE_MINUTE_TO_SECOND* = 13
|
||||||
|
SQL_INTERVAL_YEAR* = 100 + SQL_CODE_YEAR
|
||||||
|
SQL_INTERVAL_MONTH* = 100 + SQL_CODE_MONTH
|
||||||
|
SQL_INTERVAL_DAY* = 100 + SQL_CODE_DAY
|
||||||
|
SQL_INTERVAL_HOUR* = 100 + SQL_CODE_HOUR
|
||||||
|
SQL_INTERVAL_MINUTE* = 100 + SQL_CODE_MINUTE
|
||||||
|
SQL_INTERVAL_SECOND* = 100 + SQL_CODE_SECOND
|
||||||
|
SQL_INTERVAL_YEAR_TO_MONTH* = 100 + SQL_CODE_YEAR_TO_MONTH
|
||||||
|
SQL_INTERVAL_DAY_TO_HOUR* = 100 + SQL_CODE_DAY_TO_HOUR
|
||||||
|
SQL_INTERVAL_DAY_TO_MINUTE* = 100 + SQL_CODE_DAY_TO_MINUTE
|
||||||
|
SQL_INTERVAL_DAY_TO_SECOND* = 100 + SQL_CODE_DAY_TO_SECOND
|
||||||
|
SQL_INTERVAL_HOUR_TO_MINUTE* = 100 + SQL_CODE_HOUR_TO_MINUTE
|
||||||
|
SQL_INTERVAL_HOUR_TO_SECOND* = 100 + SQL_CODE_HOUR_TO_SECOND
|
||||||
|
SQL_INTERVAL_MINUTE_TO_SECOND* = 100 + SQL_CODE_MINUTE_TO_SECOND
|
||||||
|
else:
|
||||||
|
const
|
||||||
|
SQL_INTERVAL_YEAR* = - 80
|
||||||
|
SQL_INTERVAL_MONTH* = - 81
|
||||||
|
SQL_INTERVAL_YEAR_TO_MONTH* = - 82
|
||||||
|
SQL_INTERVAL_DAY* = - 83
|
||||||
|
SQL_INTERVAL_HOUR* = - 84
|
||||||
|
SQL_INTERVAL_MINUTE* = - 85
|
||||||
|
SQL_INTERVAL_SECOND* = - 86
|
||||||
|
SQL_INTERVAL_DAY_TO_HOUR* = - 87
|
||||||
|
SQL_INTERVAL_DAY_TO_MINUTE* = - 88
|
||||||
|
SQL_INTERVAL_DAY_TO_SECOND* = - 89
|
||||||
|
SQL_INTERVAL_HOUR_TO_MINUTE* = - 90
|
||||||
|
SQL_INTERVAL_HOUR_TO_SECOND* = - 91
|
||||||
|
SQL_INTERVAL_MINUTE_TO_SECOND* = - 92
|
||||||
|
|
||||||
|
|
||||||
|
when ODBCVER < 0x0300:
|
||||||
|
const
|
||||||
|
SQL_UNICODE* = - 95
|
||||||
|
SQL_UNICODE_VARCHAR* = - 96
|
||||||
|
SQL_UNICODE_LONGVARCHAR* = - 97
|
||||||
|
SQL_UNICODE_CHAR* = SQL_UNICODE
|
||||||
|
else:
|
||||||
|
# The previous definitions for SQL_UNICODE_ are historical and obsolete
|
||||||
|
const
|
||||||
|
SQL_UNICODE* = SQL_WCHAR
|
||||||
|
SQL_UNICODE_VARCHAR* = SQL_WVARCHAR
|
||||||
|
SQL_UNICODE_LONGVARCHAR* = SQL_WLONGVARCHAR
|
||||||
|
SQL_UNICODE_CHAR* = SQL_WCHAR
|
||||||
|
const # C datatype to SQL datatype mapping
|
||||||
|
SQL_C_CHAR* = SQL_CHAR
|
||||||
|
SQL_C_LONG* = SQL_INTEGER
|
||||||
|
SQL_C_SHORT* = SQL_SMALLINT
|
||||||
|
SQL_C_FLOAT* = SQL_REAL
|
||||||
|
SQL_C_DOUBLE* = SQL_DOUBLE
|
||||||
|
SQL_C_NUMERIC* = SQL_NUMERIC
|
||||||
|
SQL_C_DEFAULT* = 99
|
||||||
|
SQL_SIGNED_OFFSET* = - 20
|
||||||
|
SQL_UNSIGNED_OFFSET* = - 22
|
||||||
|
SQL_C_DATE* = SQL_DATE
|
||||||
|
SQL_C_TIME* = SQL_TIME
|
||||||
|
SQL_C_TIMESTAMP* = SQL_TIMESTAMP
|
||||||
|
SQL_C_TYPE_DATE* = SQL_TYPE_DATE
|
||||||
|
SQL_C_TYPE_TIME* = SQL_TYPE_TIME
|
||||||
|
SQL_C_TYPE_TIMESTAMP* = SQL_TYPE_TIMESTAMP
|
||||||
|
SQL_C_INTERVAL_YEAR* = SQL_INTERVAL_YEAR
|
||||||
|
SQL_C_INTERVAL_MONTH* = SQL_INTERVAL_MONTH
|
||||||
|
SQL_C_INTERVAL_DAY* = SQL_INTERVAL_DAY
|
||||||
|
SQL_C_INTERVAL_HOUR* = SQL_INTERVAL_HOUR
|
||||||
|
SQL_C_INTERVAL_MINUTE* = SQL_INTERVAL_MINUTE
|
||||||
|
SQL_C_INTERVAL_SECOND* = SQL_INTERVAL_SECOND
|
||||||
|
SQL_C_INTERVAL_YEAR_TO_MONTH* = SQL_INTERVAL_YEAR_TO_MONTH
|
||||||
|
SQL_C_INTERVAL_DAY_TO_HOUR* = SQL_INTERVAL_DAY_TO_HOUR
|
||||||
|
SQL_C_INTERVAL_DAY_TO_MINUTE* = SQL_INTERVAL_DAY_TO_MINUTE
|
||||||
|
SQL_C_INTERVAL_DAY_TO_SECOND* = SQL_INTERVAL_DAY_TO_SECOND
|
||||||
|
SQL_C_INTERVAL_HOUR_TO_MINUTE* = SQL_INTERVAL_HOUR_TO_MINUTE
|
||||||
|
SQL_C_INTERVAL_HOUR_TO_SECOND* = SQL_INTERVAL_HOUR_TO_SECOND
|
||||||
|
SQL_C_INTERVAL_MINUTE_TO_SECOND* = SQL_INTERVAL_MINUTE_TO_SECOND
|
||||||
|
SQL_C_BINARY* = SQL_BINARY
|
||||||
|
SQL_C_BIT* = SQL_BIT
|
||||||
|
SQL_C_SBIGINT* = SQL_BIGINT + SQL_SIGNED_OFFSET # SIGNED BIGINT
|
||||||
|
SQL_C_UBIGINT* = SQL_BIGINT + SQL_UNSIGNED_OFFSET # UNSIGNED BIGINT
|
||||||
|
SQL_C_TINYINT* = SQL_TINYINT
|
||||||
|
SQL_C_SLONG* = SQL_C_LONG + SQL_SIGNED_OFFSET # SIGNED INTEGER
|
||||||
|
SQL_C_SSHORT* = SQL_C_SHORT + SQL_SIGNED_OFFSET # SIGNED SMALLINT
|
||||||
|
SQL_C_STINYINT* = SQL_TINYINT + SQL_SIGNED_OFFSET # SIGNED TINYINT
|
||||||
|
SQL_C_ULONG* = SQL_C_LONG + SQL_UNSIGNED_OFFSET # UNSIGNED INTEGER
|
||||||
|
SQL_C_USHORT* = SQL_C_SHORT + SQL_UNSIGNED_OFFSET # UNSIGNED SMALLINT
|
||||||
|
SQL_C_UTINYINT* = SQL_TINYINT + SQL_UNSIGNED_OFFSET # UNSIGNED TINYINT
|
||||||
|
SQL_C_BOOKMARK* = SQL_C_ULONG # BOOKMARK
|
||||||
|
SQL_C_GUID* = SQL_GUID
|
||||||
|
SQL_TYPE_NULL* = 0
|
||||||
|
|
||||||
|
when ODBCVER < 0x0300:
|
||||||
|
const
|
||||||
|
SQL_TYPE_MIN* = SQL_BIT
|
||||||
|
SQL_TYPE_MAX* = SQL_VARCHAR
|
||||||
|
|
||||||
|
const
|
||||||
|
SQL_C_VARBOOKMARK* = SQL_C_BINARY
|
||||||
|
SQL_API_SQLDESCRIBEPARAM* = 58
|
||||||
|
SQL_NO_TOTAL* = - 4
|
||||||
|
|
||||||
|
type
|
||||||
|
SQL_DATE_STRUCT* {.final, pure.} = object
|
||||||
|
Year*: TSqlSmallInt
|
||||||
|
Month*: TSqlUSmallInt
|
||||||
|
Day*: TSqlUSmallInt
|
||||||
|
|
||||||
|
PSQL_DATE_STRUCT* = ptr SQL_DATE_STRUCT
|
||||||
|
SQL_TIME_STRUCT* {.final, pure.} = object
|
||||||
|
Hour*: TSqlUSmallInt
|
||||||
|
Minute*: TSqlUSmallInt
|
||||||
|
Second*: TSqlUSmallInt
|
||||||
|
|
||||||
|
PSQL_TIME_STRUCT* = ptr SQL_TIME_STRUCT
|
||||||
|
SQL_TIMESTAMP_STRUCT* {.final, pure.} = object
|
||||||
|
Year*: TSqlUSmallInt
|
||||||
|
Month*: TSqlUSmallInt
|
||||||
|
Day*: TSqlUSmallInt
|
||||||
|
Hour*: TSqlUSmallInt
|
||||||
|
Minute*: TSqlUSmallInt
|
||||||
|
Second*: TSqlUSmallInt
|
||||||
|
Fraction*: TSqlUInteger
|
||||||
|
|
||||||
|
PSQL_TIMESTAMP_STRUCT* = ptr SQL_TIMESTAMP_STRUCT
|
||||||
|
|
||||||
|
const
|
||||||
|
SQL_NAME_LEN* = 128
|
||||||
|
SQL_OV_ODBC3* = 3
|
||||||
|
SQL_OV_ODBC2* = 2
|
||||||
|
SQL_ATTR_ODBC_VERSION* = 200 # Options for SQLDriverConnect
|
||||||
|
SQL_DRIVER_NOPROMPT* = 0
|
||||||
|
SQL_DRIVER_COMPLETE* = 1
|
||||||
|
SQL_DRIVER_PROMPT* = 2
|
||||||
|
SQL_DRIVER_COMPLETE_REQUIRED* = 3
|
||||||
|
SQL_IS_POINTER* = (- 4) # whether an attribute is a pointer or not
|
||||||
|
SQL_IS_UINTEGER* = (- 5)
|
||||||
|
SQL_IS_INTEGER* = (- 6)
|
||||||
|
SQL_IS_USMALLINT* = (- 7)
|
||||||
|
SQL_IS_SMALLINT* = (- 8) # SQLExtendedFetch "fFetchType" values
|
||||||
|
SQL_FETCH_BOOKMARK* = 8
|
||||||
|
SQL_SCROLL_OPTIONS* = 44 # SQL_USE_BOOKMARKS options
|
||||||
|
SQL_UB_OFF* = 0
|
||||||
|
SQL_UB_ON* = 1
|
||||||
|
SQL_UB_DEFAULT* = SQL_UB_OFF
|
||||||
|
SQL_UB_FIXED* = SQL_UB_ON
|
||||||
|
SQL_UB_VARIABLE* = 2 # SQL_SCROLL_OPTIONS masks
|
||||||
|
SQL_SO_FORWARD_ONLY* = 0x00000001
|
||||||
|
SQL_SO_KEYSET_DRIVEN* = 0x00000002
|
||||||
|
SQL_SO_DYNAMIC* = 0x00000004
|
||||||
|
SQL_SO_MIXED* = 0x00000008
|
||||||
|
SQL_SO_STATIC* = 0x00000010
|
||||||
|
SQL_BOOKMARK_PERSISTENCE* = 82
|
||||||
|
SQL_STATIC_SENSITIVITY* = 83 # SQL_BOOKMARK_PERSISTENCE values
|
||||||
|
SQL_BP_CLOSE* = 0x00000001
|
||||||
|
SQL_BP_DELETE* = 0x00000002
|
||||||
|
SQL_BP_DROP* = 0x00000004
|
||||||
|
SQL_BP_TRANSACTION* = 0x00000008
|
||||||
|
SQL_BP_UPDATE* = 0x00000010
|
||||||
|
SQL_BP_OTHER_HSTMT* = 0x00000020
|
||||||
|
SQL_BP_SCROLL* = 0x00000040
|
||||||
|
SQL_DYNAMIC_CURSOR_ATTRIBUTES1* = 144
|
||||||
|
SQL_DYNAMIC_CURSOR_ATTRIBUTES2* = 145
|
||||||
|
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1* = 146
|
||||||
|
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2* = 147
|
||||||
|
SQL_INDEX_KEYWORDS* = 148
|
||||||
|
SQL_INFO_SCHEMA_VIEWS* = 149
|
||||||
|
SQL_KEYSET_CURSOR_ATTRIBUTES1* = 150
|
||||||
|
SQL_KEYSET_CURSOR_ATTRIBUTES2* = 151
|
||||||
|
SQL_STATIC_CURSOR_ATTRIBUTES1* = 167
|
||||||
|
SQL_STATIC_CURSOR_ATTRIBUTES2* = 168 # supported SQLFetchScroll FetchOrientation's
|
||||||
|
SQL_CA1_NEXT* = 1
|
||||||
|
SQL_CA1_ABSOLUTE* = 2
|
||||||
|
SQL_CA1_RELATIVE* = 4
|
||||||
|
SQL_CA1_BOOKMARK* = 8 # supported SQLSetPos LockType's
|
||||||
|
SQL_CA1_LOCK_NO_CHANGE* = 0x00000040
|
||||||
|
SQL_CA1_LOCK_EXCLUSIVE* = 0x00000080
|
||||||
|
SQL_CA1_LOCK_UNLOCK* = 0x00000100 # supported SQLSetPos Operations
|
||||||
|
SQL_CA1_POS_POSITION* = 0x00000200
|
||||||
|
SQL_CA1_POS_UPDATE* = 0x00000400
|
||||||
|
SQL_CA1_POS_DELETE* = 0x00000800
|
||||||
|
SQL_CA1_POS_REFRESH* = 0x00001000 # positioned updates and deletes
|
||||||
|
SQL_CA1_POSITIONED_UPDATE* = 0x00002000
|
||||||
|
SQL_CA1_POSITIONED_DELETE* = 0x00004000
|
||||||
|
SQL_CA1_SELECT_FOR_UPDATE* = 0x00008000 # supported SQLBulkOperations operations
|
||||||
|
SQL_CA1_BULK_ADD* = 0x00010000
|
||||||
|
SQL_CA1_BULK_UPDATE_BY_BOOKMARK* = 0x00020000
|
||||||
|
SQL_CA1_BULK_DELETE_BY_BOOKMARK* = 0x00040000
|
||||||
|
SQL_CA1_BULK_FETCH_BY_BOOKMARK* = 0x00080000 # supported values for SQL_ATTR_SCROLL_CONCURRENCY
|
||||||
|
SQL_CA2_READ_ONLY_CONCURRENCY* = 1
|
||||||
|
SQL_CA2_LOCK_CONCURRENCY* = 2
|
||||||
|
SQL_CA2_OPT_ROWVER_CONCURRENCY* = 4
|
||||||
|
SQL_CA2_OPT_VALUES_CONCURRENCY* = 8 # sensitivity of the cursor to its own inserts, deletes, and updates
|
||||||
|
SQL_CA2_SENSITIVITY_ADDITIONS* = 0x00000010
|
||||||
|
SQL_CA2_SENSITIVITY_DELETIONS* = 0x00000020
|
||||||
|
SQL_CA2_SENSITIVITY_UPDATES* = 0x00000040 # semantics of SQL_ATTR_MAX_ROWS
|
||||||
|
SQL_CA2_MAX_ROWS_SELECT* = 0x00000080
|
||||||
|
SQL_CA2_MAX_ROWS_INSERT* = 0x00000100
|
||||||
|
SQL_CA2_MAX_ROWS_DELETE* = 0x00000200
|
||||||
|
SQL_CA2_MAX_ROWS_UPDATE* = 0x00000400
|
||||||
|
SQL_CA2_MAX_ROWS_CATALOG* = 0x00000800
|
||||||
|
SQL_CA2_MAX_ROWS_AFFECTS_ALL* = (SQL_CA2_MAX_ROWS_SELECT or
|
||||||
|
SQL_CA2_MAX_ROWS_INSERT or SQL_CA2_MAX_ROWS_DELETE or
|
||||||
|
SQL_CA2_MAX_ROWS_UPDATE or SQL_CA2_MAX_ROWS_CATALOG) # semantics of
|
||||||
|
# SQL_DIAG_CURSOR_ROW_COUNT
|
||||||
|
SQL_CA2_CRC_EXACT* = 0x00001000
|
||||||
|
SQL_CA2_CRC_APPROXIMATE* = 0x00002000 # the kinds of positioned statements that can be simulated
|
||||||
|
SQL_CA2_SIMULATE_NON_UNIQUE* = 0x00004000
|
||||||
|
SQL_CA2_SIMULATE_TRY_UNIQUE* = 0x00008000
|
||||||
|
SQL_CA2_SIMULATE_UNIQUE* = 0x00010000 # Operations in SQLBulkOperations
|
||||||
|
SQL_ADD* = 4
|
||||||
|
SQL_SETPOS_MAX_OPTION_VALUE* = SQL_ADD
|
||||||
|
SQL_UPDATE_BY_BOOKMARK* = 5
|
||||||
|
SQL_DELETE_BY_BOOKMARK* = 6
|
||||||
|
SQL_FETCH_BY_BOOKMARK* = 7 # Operations in SQLSetPos
|
||||||
|
SQL_POSITION* = 0
|
||||||
|
SQL_REFRESH* = 1
|
||||||
|
SQL_UPDATE* = 2
|
||||||
|
SQL_DELETE* = 3 # Lock options in SQLSetPos
|
||||||
|
SQL_LOCK_NO_CHANGE* = 0
|
||||||
|
SQL_LOCK_EXCLUSIVE* = 1
|
||||||
|
SQL_LOCK_UNLOCK* = 2 # SQLExtendedFetch "rgfRowStatus" element values
|
||||||
|
SQL_ROW_SUCCESS* = 0
|
||||||
|
SQL_ROW_DELETED* = 1
|
||||||
|
SQL_ROW_UPDATED* = 2
|
||||||
|
SQL_ROW_NOROW* = 3
|
||||||
|
SQL_ROW_ADDED* = 4
|
||||||
|
SQL_ROW_ERROR* = 5
|
||||||
|
SQL_ROW_SUCCESS_WITH_INFO* = 6
|
||||||
|
SQL_ROW_PROCEED* = 0
|
||||||
|
SQL_ROW_IGNORE* = 1
|
||||||
|
SQL_MAX_DSN_LENGTH* = 32 # maximum data source name size
|
||||||
|
SQL_MAX_OPTION_STRING_LENGTH* = 256
|
||||||
|
SQL_ODBC_CURSORS* = 110
|
||||||
|
SQL_ATTR_ODBC_CURSORS* = SQL_ODBC_CURSORS # SQL_ODBC_CURSORS options
|
||||||
|
SQL_CUR_USE_IF_NEEDED* = 0
|
||||||
|
SQL_CUR_USE_ODBC* = 1
|
||||||
|
SQL_CUR_USE_DRIVER* = 2
|
||||||
|
SQL_CUR_DEFAULT* = SQL_CUR_USE_DRIVER
|
||||||
|
SQL_PARAM_TYPE_UNKNOWN* = 0
|
||||||
|
SQL_PARAM_INPUT* = 1
|
||||||
|
SQL_PARAM_INPUT_OUTPUT* = 2
|
||||||
|
SQL_RESULT_COL* = 3
|
||||||
|
SQL_PARAM_OUTPUT* = 4
|
||||||
|
SQL_RETURN_VALUE* = 5 # special length/indicator values
|
||||||
|
SQL_NULL_DATA* = (- 1)
|
||||||
|
SQL_DATA_AT_EXEC* = (- 2)
|
||||||
|
SQL_SUCCESS* = 0
|
||||||
|
SQL_SUCCESS_WITH_INFO* = 1
|
||||||
|
SQL_NO_DATA* = 100
|
||||||
|
SQL_ERROR* = (- 1)
|
||||||
|
SQL_INVALID_HANDLE* = (- 2)
|
||||||
|
SQL_STILL_EXECUTING* = 2
|
||||||
|
SQL_NEED_DATA* = 99 # flags for null-terminated string
|
||||||
|
SQL_NTS* = (- 3) # maximum message length
|
||||||
|
SQL_MAX_MESSAGE_LENGTH* = 512 # date/time length constants
|
||||||
|
SQL_DATE_LEN* = 10
|
||||||
|
SQL_TIME_LEN* = 8 # add P+1 if precision is nonzero
|
||||||
|
SQL_TIMESTAMP_LEN* = 19 # add P+1 if precision is nonzero
|
||||||
|
# handle type identifiers
|
||||||
|
SQL_HANDLE_ENV* = 1
|
||||||
|
SQL_HANDLE_DBC* = 2
|
||||||
|
SQL_HANDLE_STMT* = 3
|
||||||
|
SQL_HANDLE_DESC* = 4 # environment attribute
|
||||||
|
SQL_ATTR_OUTPUT_NTS* = 10001 # connection attributes
|
||||||
|
SQL_ATTR_AUTO_IPD* = 10001
|
||||||
|
SQL_ATTR_METADATA_ID* = 10014 # statement attributes
|
||||||
|
SQL_ATTR_APP_ROW_DESC* = 10010
|
||||||
|
SQL_ATTR_APP_PARAM_DESC* = 10011
|
||||||
|
SQL_ATTR_IMP_ROW_DESC* = 10012
|
||||||
|
SQL_ATTR_IMP_PARAM_DESC* = 10013
|
||||||
|
SQL_ATTR_CURSOR_SCROLLABLE* = (- 1)
|
||||||
|
SQL_ATTR_CURSOR_SENSITIVITY* = (- 2)
|
||||||
|
SQL_QUERY_TIMEOUT* = 0
|
||||||
|
SQL_MAX_ROWS* = 1
|
||||||
|
SQL_NOSCAN* = 2
|
||||||
|
SQL_MAX_LENGTH* = 3
|
||||||
|
SQL_ASYNC_ENABLE* = 4 # same as SQL_ATTR_ASYNC_ENABLE */
|
||||||
|
SQL_BIND_TYPE* = 5
|
||||||
|
SQL_CURSOR_TYPE* = 6
|
||||||
|
SQL_CONCURRENCY* = 7
|
||||||
|
SQL_KEYSET_SIZE* = 8
|
||||||
|
SQL_ROWSET_SIZE* = 9
|
||||||
|
SQL_SIMULATE_CURSOR* = 10
|
||||||
|
SQL_RETRIEVE_DATA* = 11
|
||||||
|
SQL_USE_BOOKMARKS* = 12
|
||||||
|
SQL_GET_BOOKMARK* = 13 # GetStmtOption Only */
|
||||||
|
SQL_ROW_NUMBER* = 14 # GetStmtOption Only */
|
||||||
|
SQL_ATTR_CURSOR_TYPE* = SQL_CURSOR_TYPE
|
||||||
|
SQL_ATTR_CONCURRENCY* = SQL_CONCURRENCY
|
||||||
|
SQL_ATTR_FETCH_BOOKMARK_PTR* = 16
|
||||||
|
SQL_ATTR_ROW_STATUS_PTR* = 25
|
||||||
|
SQL_ATTR_ROWS_FETCHED_PTR* = 26
|
||||||
|
SQL_AUTOCOMMIT* = 102
|
||||||
|
SQL_ATTR_AUTOCOMMIT* = SQL_AUTOCOMMIT
|
||||||
|
SQL_ATTR_ROW_NUMBER* = SQL_ROW_NUMBER
|
||||||
|
SQL_TXN_ISOLATION* = 108
|
||||||
|
SQL_ATTR_TXN_ISOLATION* = SQL_TXN_ISOLATION
|
||||||
|
SQL_ATTR_MAX_ROWS* = SQL_MAX_ROWS
|
||||||
|
SQL_ATTR_USE_BOOKMARKS* = SQL_USE_BOOKMARKS #* connection attributes */
|
||||||
|
SQL_ACCESS_MODE* = 101 # SQL_AUTOCOMMIT =102;
|
||||||
|
SQL_LOGIN_TIMEOUT* = 103
|
||||||
|
SQL_OPT_TRACE* = 104
|
||||||
|
SQL_OPT_TRACEFILE* = 105
|
||||||
|
SQL_TRANSLATE_DLL* = 106
|
||||||
|
SQL_TRANSLATE_OPTION* = 107 # SQL_TXN_ISOLATION =108;
|
||||||
|
SQL_CURRENT_QUALIFIER* = 109 # SQL_ODBC_CURSORS =110;
|
||||||
|
SQL_QUIET_MODE* = 111
|
||||||
|
SQL_PACKET_SIZE* = 112 #* connection attributes with new names */
|
||||||
|
SQL_ATTR_ACCESS_MODE* = SQL_ACCESS_MODE # SQL_ATTR_AUTOCOMMIT =SQL_AUTOCOMMIT;
|
||||||
|
SQL_ATTR_CONNECTION_DEAD* = 1209 #* GetConnectAttr only */
|
||||||
|
SQL_ATTR_CONNECTION_TIMEOUT* = 113
|
||||||
|
SQL_ATTR_CURRENT_CATALOG* = SQL_CURRENT_QUALIFIER
|
||||||
|
SQL_ATTR_DISCONNECT_BEHAVIOR* = 114
|
||||||
|
SQL_ATTR_ENLIST_IN_DTC* = 1207
|
||||||
|
SQL_ATTR_ENLIST_IN_XA* = 1208
|
||||||
|
SQL_ATTR_LOGIN_TIMEOUT* = SQL_LOGIN_TIMEOUT # SQL_ATTR_ODBC_CURSORS =SQL_ODBC_CURSORS;
|
||||||
|
SQL_ATTR_PACKET_SIZE* = SQL_PACKET_SIZE
|
||||||
|
SQL_ATTR_QUIET_MODE* = SQL_QUIET_MODE
|
||||||
|
SQL_ATTR_TRACE* = SQL_OPT_TRACE
|
||||||
|
SQL_ATTR_TRACEFILE* = SQL_OPT_TRACEFILE
|
||||||
|
SQL_ATTR_TRANSLATE_LIB* = SQL_TRANSLATE_DLL
|
||||||
|
SQL_ATTR_TRANSLATE_OPTION* = SQL_TRANSLATE_OPTION # SQL_ATTR_TXN_ISOLATION =SQL_TXN_ISOLATION;
|
||||||
|
#* SQL_ACCESS_MODE options */
|
||||||
|
SQL_MODE_READ_WRITE* = 0
|
||||||
|
SQL_MODE_READ_ONLY* = 1
|
||||||
|
SQL_MODE_DEFAULT* = SQL_MODE_READ_WRITE #* SQL_AUTOCOMMIT options */
|
||||||
|
SQL_AUTOCOMMIT_OFF* = 0
|
||||||
|
SQL_AUTOCOMMIT_ON* = 1
|
||||||
|
SQL_AUTOCOMMIT_DEFAULT* = SQL_AUTOCOMMIT_ON # SQL_ATTR_CURSOR_SCROLLABLE values
|
||||||
|
SQL_NONSCROLLABLE* = 0
|
||||||
|
SQL_SCROLLABLE* = 1 # SQL_CURSOR_TYPE options
|
||||||
|
SQL_CURSOR_FORWARD_ONLY* = 0
|
||||||
|
SQL_CURSOR_KEYSET_DRIVEN* = 1
|
||||||
|
SQL_CURSOR_DYNAMIC* = 2
|
||||||
|
SQL_CURSOR_STATIC* = 3
|
||||||
|
SQL_CURSOR_TYPE_DEFAULT* = SQL_CURSOR_FORWARD_ONLY # Default value
|
||||||
|
# SQL_CONCURRENCY options
|
||||||
|
SQL_CONCUR_READ_ONLY* = 1
|
||||||
|
SQL_CONCUR_LOCK* = 2
|
||||||
|
SQL_CONCUR_ROWVER* = 3
|
||||||
|
SQL_CONCUR_VALUES* = 4
|
||||||
|
SQL_CONCUR_DEFAULT* = SQL_CONCUR_READ_ONLY # Default value
|
||||||
|
# identifiers of fields in the SQL descriptor
|
||||||
|
SQL_DESC_COUNT* = 1001
|
||||||
|
SQL_DESC_TYPE* = 1002
|
||||||
|
SQL_DESC_LENGTH* = 1003
|
||||||
|
SQL_DESC_OCTET_LENGTH_PTR* = 1004
|
||||||
|
SQL_DESC_PRECISION* = 1005
|
||||||
|
SQL_DESC_SCALE* = 1006
|
||||||
|
SQL_DESC_DATETIME_INTERVAL_CODE* = 1007
|
||||||
|
SQL_DESC_NULLABLE* = 1008
|
||||||
|
SQL_DESC_INDICATOR_PTR* = 1009
|
||||||
|
SQL_DESC_DATA_PTR* = 1010
|
||||||
|
SQL_DESC_NAME* = 1011
|
||||||
|
SQL_DESC_UNNAMED* = 1012
|
||||||
|
SQL_DESC_OCTET_LENGTH* = 1013
|
||||||
|
SQL_DESC_ALLOC_TYPE* = 1099 # identifiers of fields in the diagnostics area
|
||||||
|
SQL_DIAG_RETURNCODE* = 1
|
||||||
|
SQL_DIAG_NUMBER* = 2
|
||||||
|
SQL_DIAG_ROW_COUNT* = 3
|
||||||
|
SQL_DIAG_SQLSTATE* = 4
|
||||||
|
SQL_DIAG_NATIVE* = 5
|
||||||
|
SQL_DIAG_MESSAGE_TEXT* = 6
|
||||||
|
SQL_DIAG_DYNAMIC_FUNCTION* = 7
|
||||||
|
SQL_DIAG_CLASS_ORIGIN* = 8
|
||||||
|
SQL_DIAG_SUBCLASS_ORIGIN* = 9
|
||||||
|
SQL_DIAG_CONNECTION_NAME* = 10
|
||||||
|
SQL_DIAG_SERVER_NAME* = 11
|
||||||
|
SQL_DIAG_DYNAMIC_FUNCTION_CODE* = 12 # dynamic function codes
|
||||||
|
SQL_DIAG_ALTER_TABLE* = 4
|
||||||
|
SQL_DIAG_CREATE_INDEX* = (- 1)
|
||||||
|
SQL_DIAG_CREATE_TABLE* = 77
|
||||||
|
SQL_DIAG_CREATE_VIEW* = 84
|
||||||
|
SQL_DIAG_DELETE_WHERE* = 19
|
||||||
|
SQL_DIAG_DROP_INDEX* = (- 2)
|
||||||
|
SQL_DIAG_DROP_TABLE* = 32
|
||||||
|
SQL_DIAG_DROP_VIEW* = 36
|
||||||
|
SQL_DIAG_DYNAMIC_DELETE_CURSOR* = 38
|
||||||
|
SQL_DIAG_DYNAMIC_UPDATE_CURSOR* = 81
|
||||||
|
SQL_DIAG_GRANT* = 48
|
||||||
|
SQL_DIAG_INSERT* = 50
|
||||||
|
SQL_DIAG_REVOKE* = 59
|
||||||
|
SQL_DIAG_SELECT_CURSOR* = 85
|
||||||
|
SQL_DIAG_UNKNOWN_STATEMENT* = 0
|
||||||
|
SQL_DIAG_UPDATE_WHERE* = 82 # Statement attribute values for cursor sensitivity
|
||||||
|
SQL_UNSPECIFIED* = 0
|
||||||
|
SQL_INSENSITIVE* = 1
|
||||||
|
SQL_SENSITIVE* = 2 # GetTypeInfo() request for all data types
|
||||||
|
SQL_ALL_TYPES* = 0 # Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData()
|
||||||
|
SQL_DEFAULT* = 99 # SQLGetData() code indicating that the application row descriptor
|
||||||
|
# specifies the data type
|
||||||
|
SQL_ARD_TYPE* = (- 99) # SQL date/time type subcodes
|
||||||
|
SQL_CODE_DATE* = 1
|
||||||
|
SQL_CODE_TIME* = 2
|
||||||
|
SQL_CODE_TIMESTAMP* = 3 # CLI option values
|
||||||
|
SQL_FALSE* = 0
|
||||||
|
SQL_TRUE* = 1 # values of NULLABLE field in descriptor
|
||||||
|
SQL_NO_NULLS* = 0
|
||||||
|
SQL_NULLABLE* = 1 # Value returned by SQLGetTypeInfo() to denote that it is
|
||||||
|
# not known whether or not a data type supports null values.
|
||||||
|
SQL_NULLABLE_UNKNOWN* = 2
|
||||||
|
SQL_CLOSE* = 0
|
||||||
|
SQL_DROP* = 1
|
||||||
|
SQL_UNBIND* = 2
|
||||||
|
SQL_RESET_PARAMS* = 3 # Codes used for FetchOrientation in SQLFetchScroll(),
|
||||||
|
# and in SQLDataSources()
|
||||||
|
SQL_FETCH_NEXT* = 1
|
||||||
|
SQL_FETCH_FIRST* = 2
|
||||||
|
SQL_FETCH_FIRST_USER* = 31
|
||||||
|
SQL_FETCH_FIRST_SYSTEM* = 32 # Other codes used for FetchOrientation in SQLFetchScroll()
|
||||||
|
SQL_FETCH_LAST* = 3
|
||||||
|
SQL_FETCH_PRIOR* = 4
|
||||||
|
SQL_FETCH_ABSOLUTE* = 5
|
||||||
|
SQL_FETCH_RELATIVE* = 6
|
||||||
|
SQL_NULL_HENV* = TSqlHEnv(nil)
|
||||||
|
SQL_NULL_HDBC* = TSqlHDBC(nil)
|
||||||
|
SQL_NULL_HSTMT* = TSqlHStmt(nil)
|
||||||
|
SQL_NULL_HDESC* = TSqlHDesc(nil) #* null handle used in place of parent handle when allocating HENV */
|
||||||
|
SQL_NULL_HANDLE* = TSqlHandle(nil) #* Values that may appear in the result set of SQLSpecialColumns() */
|
||||||
|
SQL_SCOPE_CURROW* = 0
|
||||||
|
SQL_SCOPE_TRANSACTION* = 1
|
||||||
|
SQL_SCOPE_SESSION* = 2 #* Column types and scopes in SQLSpecialColumns. */
|
||||||
|
SQL_BEST_ROWID* = 1
|
||||||
|
SQL_ROWVER* = 2
|
||||||
|
SQL_ROW_IDENTIFIER* = 1 #* Reserved values for UNIQUE argument of SQLStatistics() */
|
||||||
|
SQL_INDEX_UNIQUE* = 0
|
||||||
|
SQL_INDEX_ALL* = 1 #* Reserved values for RESERVED argument of SQLStatistics() */
|
||||||
|
SQL_QUICK* = 0
|
||||||
|
SQL_ENSURE* = 1 #* Values that may appear in the result set of SQLStatistics() */
|
||||||
|
SQL_TABLE_STAT* = 0
|
||||||
|
SQL_INDEX_CLUSTERED* = 1
|
||||||
|
SQL_INDEX_HASHED* = 2
|
||||||
|
SQL_INDEX_OTHER* = 3
|
||||||
|
SQL_SCROLL_CONCURRENCY* = 43
|
||||||
|
SQL_TXN_CAPABLE* = 46
|
||||||
|
SQL_TRANSACTION_CAPABLE* = SQL_TXN_CAPABLE
|
||||||
|
SQL_USER_NAME* = 47
|
||||||
|
SQL_TXN_ISOLATION_OPTION* = 72
|
||||||
|
SQL_TRANSACTION_ISOLATION_OPTION* = SQL_TXN_ISOLATION_OPTION
|
||||||
|
SQL_OJ_CAPABILITIES* = 115
|
||||||
|
SQL_OUTER_JOIN_CAPABILITIES* = SQL_OJ_CAPABILITIES
|
||||||
|
SQL_XOPEN_CLI_YEAR* = 10000
|
||||||
|
SQL_CURSOR_SENSITIVITY* = 10001
|
||||||
|
SQL_DESCRIBE_PARAMETER* = 10002
|
||||||
|
SQL_CATALOG_NAME* = 10003
|
||||||
|
SQL_COLLATION_SEQ* = 10004
|
||||||
|
SQL_MAX_IDENTIFIER_LEN* = 10005
|
||||||
|
SQL_MAXIMUM_IDENTIFIER_LENGTH* = SQL_MAX_IDENTIFIER_LEN
|
||||||
|
SQL_SCCO_READ_ONLY* = 1
|
||||||
|
SQL_SCCO_LOCK* = 2
|
||||||
|
SQL_SCCO_OPT_ROWVER* = 4
|
||||||
|
SQL_SCCO_OPT_VALUES* = 8 #* SQL_TXN_CAPABLE values */
|
||||||
|
SQL_TC_NONE* = 0
|
||||||
|
SQL_TC_DML* = 1
|
||||||
|
SQL_TC_ALL* = 2
|
||||||
|
SQL_TC_DDL_COMMIT* = 3
|
||||||
|
SQL_TC_DDL_IGNORE* = 4 #* SQL_TXN_ISOLATION_OPTION bitmasks */
|
||||||
|
SQL_TXN_READ_UNCOMMITTED* = 1
|
||||||
|
SQL_TRANSACTION_READ_UNCOMMITTED* = SQL_TXN_READ_UNCOMMITTED
|
||||||
|
SQL_TXN_READ_COMMITTED* = 2
|
||||||
|
SQL_TRANSACTION_READ_COMMITTED* = SQL_TXN_READ_COMMITTED
|
||||||
|
SQL_TXN_REPEATABLE_READ* = 4
|
||||||
|
SQL_TRANSACTION_REPEATABLE_READ* = SQL_TXN_REPEATABLE_READ
|
||||||
|
SQL_TXN_SERIALIZABLE* = 8
|
||||||
|
SQL_TRANSACTION_SERIALIZABLE* = SQL_TXN_SERIALIZABLE
|
||||||
|
SQL_SS_ADDITIONS* = 1
|
||||||
|
SQL_SS_DELETIONS* = 2
|
||||||
|
SQL_SS_UPDATES* = 4 # SQLColAttributes defines
|
||||||
|
SQL_COLUMN_COUNT* = 0
|
||||||
|
SQL_COLUMN_NAME* = 1
|
||||||
|
SQL_COLUMN_TYPE* = 2
|
||||||
|
SQL_COLUMN_LENGTH* = 3
|
||||||
|
SQL_COLUMN_PRECISION* = 4
|
||||||
|
SQL_COLUMN_SCALE* = 5
|
||||||
|
SQL_COLUMN_DISPLAY_SIZE* = 6
|
||||||
|
SQL_COLUMN_NULLABLE* = 7
|
||||||
|
SQL_COLUMN_UNSIGNED* = 8
|
||||||
|
SQL_COLUMN_MONEY* = 9
|
||||||
|
SQL_COLUMN_UPDATABLE* = 10
|
||||||
|
SQL_COLUMN_AUTO_INCREMENT* = 11
|
||||||
|
SQL_COLUMN_CASE_SENSITIVE* = 12
|
||||||
|
SQL_COLUMN_SEARCHABLE* = 13
|
||||||
|
SQL_COLUMN_TYPE_NAME* = 14
|
||||||
|
SQL_COLUMN_TABLE_NAME* = 15
|
||||||
|
SQL_COLUMN_OWNER_NAME* = 16
|
||||||
|
SQL_COLUMN_QUALIFIER_NAME* = 17
|
||||||
|
SQL_COLUMN_LABEL* = 18
|
||||||
|
SQL_COLATT_OPT_MAX* = SQL_COLUMN_LABEL
|
||||||
|
SQL_COLUMN_DRIVER_START* = 1000
|
||||||
|
SQL_DESC_ARRAY_SIZE* = 20
|
||||||
|
SQL_DESC_ARRAY_STATUS_PTR* = 21
|
||||||
|
SQL_DESC_AUTO_UNIQUE_VALUE* = SQL_COLUMN_AUTO_INCREMENT
|
||||||
|
SQL_DESC_BASE_COLUMN_NAME* = 22
|
||||||
|
SQL_DESC_BASE_TABLE_NAME* = 23
|
||||||
|
SQL_DESC_BIND_OFFSET_PTR* = 24
|
||||||
|
SQL_DESC_BIND_TYPE* = 25
|
||||||
|
SQL_DESC_CASE_SENSITIVE* = SQL_COLUMN_CASE_SENSITIVE
|
||||||
|
SQL_DESC_CATALOG_NAME* = SQL_COLUMN_QUALIFIER_NAME
|
||||||
|
SQL_DESC_CONCISE_TYPE* = SQL_COLUMN_TYPE
|
||||||
|
SQL_DESC_DATETIME_INTERVAL_PRECISION* = 26
|
||||||
|
SQL_DESC_DISPLAY_SIZE* = SQL_COLUMN_DISPLAY_SIZE
|
||||||
|
SQL_DESC_FIXED_PREC_SCALE* = SQL_COLUMN_MONEY
|
||||||
|
SQL_DESC_LABEL* = SQL_COLUMN_LABEL
|
||||||
|
SQL_DESC_LITERAL_PREFIX* = 27
|
||||||
|
SQL_DESC_LITERAL_SUFFIX* = 28
|
||||||
|
SQL_DESC_LOCAL_TYPE_NAME* = 29
|
||||||
|
SQL_DESC_MAXIMUM_SCALE* = 30
|
||||||
|
SQL_DESC_MINIMUM_SCALE* = 31
|
||||||
|
SQL_DESC_NUM_PREC_RADIX* = 32
|
||||||
|
SQL_DESC_PARAMETER_TYPE* = 33
|
||||||
|
SQL_DESC_ROWS_PROCESSED_PTR* = 34
|
||||||
|
SQL_DESC_SCHEMA_NAME* = SQL_COLUMN_OWNER_NAME
|
||||||
|
SQL_DESC_SEARCHABLE* = SQL_COLUMN_SEARCHABLE
|
||||||
|
SQL_DESC_TYPE_NAME* = SQL_COLUMN_TYPE_NAME
|
||||||
|
SQL_DESC_TABLE_NAME* = SQL_COLUMN_TABLE_NAME
|
||||||
|
SQL_DESC_UNSIGNED* = SQL_COLUMN_UNSIGNED
|
||||||
|
SQL_DESC_UPDATABLE* = SQL_COLUMN_UPDATABLE #* SQLEndTran() options */
|
||||||
|
SQL_COMMIT* = 0
|
||||||
|
SQL_ROLLBACK* = 1
|
||||||
|
SQL_ATTR_ROW_ARRAY_SIZE* = 27 #* SQLConfigDataSource() options */
|
||||||
|
ODBC_ADD_DSN* = 1
|
||||||
|
ODBC_CONFIG_DSN* = 2
|
||||||
|
ODBC_REMOVE_DSN* = 3
|
||||||
|
ODBC_ADD_SYS_DSN* = 4
|
||||||
|
ODBC_CONFIG_SYS_DSN* = 5
|
||||||
|
ODBC_REMOVE_SYS_DSN* = 6
|
||||||
|
|
||||||
|
proc SQLAllocHandle*(HandleType: TSqlSmallInt, InputHandle: TSqlHandle,
|
||||||
|
OutputHandlePtr: var TSqlHandle): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLSetEnvAttr*(EnvironmentHandle: TSqlHEnv, Attribute: TSqlInteger,
|
||||||
|
Value: TSqlPointer, StringLength: TSqlInteger): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLGetEnvAttr*(EnvironmentHandle: TSqlHEnv, Attribute: TSqlInteger,
|
||||||
|
Value: TSqlPointer, BufferLength: TSqlInteger,
|
||||||
|
StringLength: PSQLINTEGER): TSqlSmallInt{.dynlib: odbclib,
|
||||||
|
importc.}
|
||||||
|
proc SQLFreeHandle*(HandleType: TSqlSmallInt, Handle: TSqlHandle): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLGetDiagRec*(HandleType: TSqlSmallInt, Handle: TSqlHandle,
|
||||||
|
RecNumber: TSqlSmallInt, Sqlstate: PSQLCHAR,
|
||||||
|
NativeError: var TSqlInteger, MessageText: PSQLCHAR,
|
||||||
|
BufferLength: TSqlSmallInt, TextLength: var TSqlSmallInt): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLGetDiagField*(HandleType: TSqlSmallInt, Handle: TSqlHandle,
|
||||||
|
RecNumber: TSqlSmallInt, DiagIdentifier: TSqlSmallInt,
|
||||||
|
DiagInfoPtr: TSqlPointer, BufferLength: TSqlSmallInt,
|
||||||
|
StringLengthPtr: var TSqlSmallInt): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLConnect*(ConnectionHandle: TSqlHDBC, ServerName: PSQLCHAR,
|
||||||
|
NameLength1: TSqlSmallInt, UserName: PSQLCHAR,
|
||||||
|
NameLength2: TSqlSmallInt, Authentication: PSQLCHAR,
|
||||||
|
NameLength3: TSqlSmallInt): TSqlSmallInt{.dynlib: odbclib, importc.}
|
||||||
|
proc SQLDisconnect*(ConnectionHandle: TSqlHDBC): TSqlSmallInt{.dynlib: odbclib,
|
||||||
|
importc.}
|
||||||
|
proc SQLDriverConnect*(hdbc: TSqlHDBC, hwnd: TSqlHWND, szCsin: cstring,
|
||||||
|
szCLen: TSqlSmallInt, szCsout: cstring,
|
||||||
|
cbCSMax: TSqlSmallInt, cbCsOut: var TSqlSmallInt,
|
||||||
|
f: TSqlUSmallInt): TSqlSmallInt{.dynlib: odbclib, importc.}
|
||||||
|
proc SQLBrowseConnect*(hdbc: TSqlHDBC, szConnStrIn: PSQLCHAR,
|
||||||
|
cbConnStrIn: TSqlSmallInt, szConnStrOut: PSQLCHAR,
|
||||||
|
cbConnStrOutMax: TSqlSmallInt,
|
||||||
|
cbConnStrOut: var TSqlSmallInt): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLExecDirect*(StatementHandle: TSqlHStmt, StatementText: PSQLCHAR,
|
||||||
|
TextLength: TSqlInteger): TSqlSmallInt{.dynlib: odbclib, importc.}
|
||||||
|
proc SQLPrepare*(StatementHandle: TSqlHStmt, StatementText: PSQLCHAR,
|
||||||
|
TextLength: TSqlInteger): TSqlSmallInt{.dynlib: odbclib, importc.}
|
||||||
|
proc SQLCloseCursor*(StatementHandle: TSqlHStmt): TSqlSmallInt{.dynlib: odbclib,
|
||||||
|
importc.}
|
||||||
|
proc SQLExecute*(StatementHandle: TSqlHStmt): TSqlSmallInt{.dynlib: odbclib, importc.}
|
||||||
|
proc SQLFetch*(StatementHandle: TSqlHStmt): TSqlSmallInt{.dynlib: odbclib, importc.}
|
||||||
|
proc SQLNumResultCols*(StatementHandle: TSqlHStmt, ColumnCount: var TSqlSmallInt): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLDescribeCol*(StatementHandle: TSqlHStmt, ColumnNumber: TSqlUSmallInt,
|
||||||
|
ColumnName: PSQLCHAR, BufferLength: TSqlSmallInt,
|
||||||
|
NameLength: var TSqlSmallInt, DataType: var TSqlSmallInt,
|
||||||
|
ColumnSize: var TSqlUInteger,
|
||||||
|
DecimalDigits: var TSqlSmallInt, Nullable: var TSqlSmallInt): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLFetchScroll*(StatementHandle: TSqlHStmt, FetchOrientation: TSqlSmallInt,
|
||||||
|
FetchOffset: TSqlInteger): TSqlSmallInt{.dynlib: odbclib,
|
||||||
|
importc.}
|
||||||
|
proc SQLExtendedFetch*(hstmt: TSqlHStmt, fFetchType: TSqlUSmallInt,
|
||||||
|
irow: TSqlInteger, pcrow: PSQLUINTEGER,
|
||||||
|
rgfRowStatus: PSQLUSMALLINT): TSqlSmallInt{.dynlib: odbclib,
|
||||||
|
importc.}
|
||||||
|
proc SQLGetData*(StatementHandle: TSqlHStmt, ColumnNumber: TSqlUSmallInt,
|
||||||
|
TargetType: TSqlSmallInt, TargetValue: TSqlPointer,
|
||||||
|
BufferLength: TSqlInteger, StrLen_or_Ind: PSQLINTEGER): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLSetStmtAttr*(StatementHandle: TSqlHStmt, Attribute: TSqlInteger,
|
||||||
|
Value: TSqlPointer, StringLength: TSqlInteger): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLGetStmtAttr*(StatementHandle: TSqlHStmt, Attribute: TSqlInteger,
|
||||||
|
Value: TSqlPointer, BufferLength: TSqlInteger,
|
||||||
|
StringLength: PSQLINTEGER): TSqlSmallInt{.dynlib: odbclib,
|
||||||
|
importc.}
|
||||||
|
proc SQLGetInfo*(ConnectionHandle: TSqlHDBC, InfoType: TSqlUSmallInt,
|
||||||
|
InfoValue: TSqlPointer, BufferLength: TSqlSmallInt,
|
||||||
|
StringLength: PSQLSMALLINT): TSqlSmallInt{.dynlib: odbclib,
|
||||||
|
importc.}
|
||||||
|
proc SQLBulkOperations*(StatementHandle: TSqlHStmt, Operation: TSqlSmallInt): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLPutData*(StatementHandle: TSqlHStmt, Data: TSqlPointer,
|
||||||
|
StrLen_or_Ind: TSqlInteger): TSqlSmallInt{.dynlib: odbclib, importc.}
|
||||||
|
proc SQLBindCol*(StatementHandle: TSqlHStmt, ColumnNumber: TSqlUSmallInt,
|
||||||
|
TargetType: TSqlSmallInt, TargetValue: TSqlPointer,
|
||||||
|
BufferLength: TSqlInteger, StrLen_or_Ind: PSQLINTEGER): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLSetPos*(hstmt: TSqlHStmt, irow: TSqlUSmallInt, fOption: TSqlUSmallInt,
|
||||||
|
fLock: TSqlUSmallInt): TSqlSmallInt{.dynlib: odbclib, importc.}
|
||||||
|
proc SQLDataSources*(EnvironmentHandle: TSqlHEnv, Direction: TSqlUSmallInt,
|
||||||
|
ServerName: PSQLCHAR, BufferLength1: TSqlSmallInt,
|
||||||
|
NameLength1: PSQLSMALLINT, Description: PSQLCHAR,
|
||||||
|
BufferLength2: TSqlSmallInt, NameLength2: PSQLSMALLINT): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLDrivers*(EnvironmentHandle: TSqlHEnv, Direction: TSqlUSmallInt,
|
||||||
|
DriverDescription: PSQLCHAR, BufferLength1: TSqlSmallInt,
|
||||||
|
DescriptionLength1: PSQLSMALLINT, DriverAttributes: PSQLCHAR,
|
||||||
|
BufferLength2: TSqlSmallInt, AttributesLength2: PSQLSMALLINT): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLSetConnectAttr*(ConnectionHandle: TSqlHDBC, Attribute: TSqlInteger,
|
||||||
|
Value: TSqlPointer, StringLength: TSqlInteger): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLGetCursorName*(StatementHandle: TSqlHStmt, CursorName: PSQLCHAR,
|
||||||
|
BufferLength: TSqlSmallInt, NameLength: PSQLSMALLINT): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLSetCursorName*(StatementHandle: TSqlHStmt, CursorName: PSQLCHAR,
|
||||||
|
NameLength: TSqlSmallInt): TSqlSmallInt{.dynlib: odbclib,
|
||||||
|
importc.}
|
||||||
|
proc SQLRowCount*(StatementHandle: TSqlHStmt, RowCount: var TSqlInteger): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLBindParameter*(hstmt: TSqlHStmt, ipar: TSqlUSmallInt,
|
||||||
|
fParamType: TSqlSmallInt, fCType: TSqlSmallInt,
|
||||||
|
fSqlType: TSqlSmallInt, cbColDef: TSqlUInteger,
|
||||||
|
ibScale: TSqlSmallInt, rgbValue: TSqlPointer,
|
||||||
|
cbValueMax: TSqlInteger, pcbValue: PSQLINTEGER): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLFreeStmt*(StatementHandle: TSqlHStmt, Option: TSqlUSmallInt): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLColAttribute*(StatementHandle: TSqlHStmt, ColumnNumber: TSqlUSmallInt,
|
||||||
|
FieldIdentifier: TSqlUSmallInt,
|
||||||
|
CharacterAttribute: PSQLCHAR, BufferLength: TSqlSmallInt,
|
||||||
|
StringLength: PSQLSMALLINT,
|
||||||
|
NumericAttribute: TSqlPointer): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLEndTran*(HandleType: TSqlSmallInt, Handle: TSqlHandle,
|
||||||
|
CompletionType: TSqlSmallInt): TSqlSmallInt{.dynlib: odbclib,
|
||||||
|
importc.}
|
||||||
|
proc SQLTables*(hstmt: TSqlHStmt, szTableQualifier: PSQLCHAR,
|
||||||
|
cbTableQualifier: TSqlSmallInt, szTableOwner: PSQLCHAR,
|
||||||
|
cbTableOwner: TSqlSmallInt, szTableName: PSQLCHAR,
|
||||||
|
cbTableName: TSqlSmallInt, szTableType: PSQLCHAR,
|
||||||
|
cbTableType: TSqlSmallInt): TSqlSmallInt{.dynlib: odbclib, importc.}
|
||||||
|
proc SQLColumns*(hstmt: TSqlHStmt, szTableQualifier: PSQLCHAR,
|
||||||
|
cbTableQualifier: TSqlSmallInt, szTableOwner: PSQLCHAR,
|
||||||
|
cbTableOwner: TSqlSmallInt, szTableName: PSQLCHAR,
|
||||||
|
cbTableName: TSqlSmallInt, szColumnName: PSQLCHAR,
|
||||||
|
cbColumnName: TSqlSmallInt): TSqlSmallInt{.dynlib: odbclib, importc.}
|
||||||
|
proc SQLSpecialColumns*(StatementHandle: TSqlHStmt, IdentifierType: TSqlUSmallInt,
|
||||||
|
CatalogName: PSQLCHAR, NameLength1: TSqlSmallInt,
|
||||||
|
SchemaName: PSQLCHAR, NameLength2: TSqlSmallInt,
|
||||||
|
TableName: PSQLCHAR, NameLength3: TSqlSmallInt,
|
||||||
|
Scope: TSqlUSmallInt,
|
||||||
|
Nullable: TSqlUSmallInt): TSqlSmallInt{.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
proc SQLProcedures*(hstmt: TSqlHStmt, szTableQualifier: PSQLCHAR,
|
||||||
|
cbTableQualifier: TSqlSmallInt, szTableOwner: PSQLCHAR,
|
||||||
|
cbTableOwner: TSqlSmallInt, szTableName: PSQLCHAR,
|
||||||
|
cbTableName: TSqlSmallInt): TSqlSmallInt{.dynlib: odbclib,
|
||||||
|
importc.}
|
||||||
|
proc SQLPrimaryKeys*(hstmt: TSqlHStmt, CatalogName: PSQLCHAR,
|
||||||
|
NameLength1: TSqlSmallInt, SchemaName: PSQLCHAR,
|
||||||
|
NameLength2: TSqlSmallInt, TableName: PSQLCHAR,
|
||||||
|
NameLength3: TSqlSmallInt): TSqlSmallInt{.dynlib: odbclib,
|
||||||
|
importc.}
|
||||||
|
proc SQLProcedureColumns*(hstmt: TSqlHStmt, CatalogName: PSQLCHAR,
|
||||||
|
NameLength1: TSqlSmallInt, SchemaName: PSQLCHAR,
|
||||||
|
NameLength2: TSqlSmallInt, ProcName: PSQLCHAR,
|
||||||
|
NameLength3: TSqlSmallInt, ColumnName: PSQLCHAR,
|
||||||
|
NameLength4: TSqlSmallInt): TSqlSmallInt{.dynlib: odbclib,
|
||||||
|
importc.}
|
||||||
|
proc SQLStatistics*(hstmt: TSqlHStmt, CatalogName: PSQLCHAR,
|
||||||
|
NameLength1: TSqlSmallInt, SchemaName: PSQLCHAR,
|
||||||
|
NameLength2: TSqlSmallInt, TableName: PSQLCHAR,
|
||||||
|
NameLength3: TSqlSmallInt, Unique: TSqlUSmallInt,
|
||||||
|
Reserved: TSqlUSmallInt): TSqlSmallInt {.
|
||||||
|
dynlib: odbclib, importc.}
|
||||||
|
|
||||||
|
{.pop.}
|
||||||
30072
lib/wrappers/pcre/pcre_all.c
Executable file
30072
lib/wrappers/pcre/pcre_all.c
Executable file
File diff suppressed because it is too large
Load diff
1583
lib/wrappers/python.nim
Executable file
1583
lib/wrappers/python.nim
Executable file
File diff suppressed because it is too large
Load diff
|
|
@ -955,7 +955,7 @@ type
|
||||||
# removed from the queue.
|
# removed from the queue.
|
||||||
# This function returns the number of events actually stored, or -1
|
# This function returns the number of events actually stored, or -1
|
||||||
# if there was an error. This function is thread-safe.
|
# if there was an error. This function is thread-safe.
|
||||||
scancode*: byte # hardware specific scancode
|
scancode*: byte # hardware specific scancode
|
||||||
sym*: TKey # SDL virtual keysym
|
sym*: TKey # SDL virtual keysym
|
||||||
modifier*: TMod # current key modifiers
|
modifier*: TMod # current key modifiers
|
||||||
unicode*: UInt16 # translated character
|
unicode*: UInt16 # translated character
|
||||||
|
|
|
||||||
110
lib/wrappers/x11/cursorfont.nim
Executable file
110
lib/wrappers/x11/cursorfont.nim
Executable file
|
|
@ -0,0 +1,110 @@
|
||||||
|
# $Xorg: cursorfont.h,v 1.4 2001/02/09 02:03:39 xorgcvs Exp $
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#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.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
const
|
||||||
|
XC_num_glyphs* = 154
|
||||||
|
XC_X_cursor* = 0
|
||||||
|
XC_arrow* = 2
|
||||||
|
XC_based_arrow_down* = 4
|
||||||
|
XC_based_arrow_up* = 6
|
||||||
|
XC_boat* = 8
|
||||||
|
XC_bogosity* = 10
|
||||||
|
XC_bottom_left_corner* = 12
|
||||||
|
XC_bottom_right_corner* = 14
|
||||||
|
XC_bottom_side* = 16
|
||||||
|
XC_bottom_tee* = 18
|
||||||
|
XC_box_spiral* = 20
|
||||||
|
XC_center_ptr* = 22
|
||||||
|
XC_circle* = 24
|
||||||
|
XC_clock* = 26
|
||||||
|
XC_coffee_mug* = 28
|
||||||
|
XC_cross* = 30
|
||||||
|
XC_cross_reverse* = 32
|
||||||
|
XC_crosshair* = 34
|
||||||
|
XC_diamond_cross* = 36
|
||||||
|
XC_dot* = 38
|
||||||
|
XC_dotbox* = 40
|
||||||
|
XC_double_arrow* = 42
|
||||||
|
XC_draft_large* = 44
|
||||||
|
XC_draft_small* = 46
|
||||||
|
XC_draped_box* = 48
|
||||||
|
XC_exchange* = 50
|
||||||
|
XC_fleur* = 52
|
||||||
|
XC_gobbler* = 54
|
||||||
|
XC_gumby* = 56
|
||||||
|
XC_hand1* = 58
|
||||||
|
XC_hand2* = 60
|
||||||
|
XC_heart* = 62
|
||||||
|
XC_icon* = 64
|
||||||
|
XC_iron_cross* = 66
|
||||||
|
XC_left_ptr* = 68
|
||||||
|
XC_left_side* = 70
|
||||||
|
XC_left_tee* = 72
|
||||||
|
XC_leftbutton* = 74
|
||||||
|
XC_ll_angle* = 76
|
||||||
|
XC_lr_angle* = 78
|
||||||
|
XC_man* = 80
|
||||||
|
XC_middlebutton* = 82
|
||||||
|
XC_mouse* = 84
|
||||||
|
XC_pencil* = 86
|
||||||
|
XC_pirate* = 88
|
||||||
|
XC_plus* = 90
|
||||||
|
XC_question_arrow* = 92
|
||||||
|
XC_right_ptr* = 94
|
||||||
|
XC_right_side* = 96
|
||||||
|
XC_right_tee* = 98
|
||||||
|
XC_rightbutton* = 100
|
||||||
|
XC_rtl_logo* = 102
|
||||||
|
XC_sailboat* = 104
|
||||||
|
XC_sb_down_arrow* = 106
|
||||||
|
XC_sb_h_double_arrow* = 108
|
||||||
|
XC_sb_left_arrow* = 110
|
||||||
|
XC_sb_right_arrow* = 112
|
||||||
|
XC_sb_up_arrow* = 114
|
||||||
|
XC_sb_v_double_arrow* = 116
|
||||||
|
XC_shuttle* = 118
|
||||||
|
XC_sizing* = 120
|
||||||
|
XC_spider* = 122
|
||||||
|
XC_spraycan* = 124
|
||||||
|
XC_star* = 126
|
||||||
|
XC_target* = 128
|
||||||
|
XC_tcross* = 130
|
||||||
|
XC_top_left_arrow* = 132
|
||||||
|
XC_top_left_corner* = 134
|
||||||
|
XC_top_right_corner* = 136
|
||||||
|
XC_top_side* = 138
|
||||||
|
XC_top_tee* = 140
|
||||||
|
XC_trek* = 142
|
||||||
|
XC_ul_angle* = 144
|
||||||
|
XC_umbrella* = 146
|
||||||
|
XC_ur_angle* = 148
|
||||||
|
XC_watch* = 150
|
||||||
|
XC_xterm* = 152
|
||||||
|
|
||||||
|
# implementation
|
||||||
1925
lib/wrappers/x11/keysym.nim
Executable file
1925
lib/wrappers/x11/keysym.nim
Executable file
File diff suppressed because it is too large
Load diff
399
lib/wrappers/x11/x.nim
Executable file
399
lib/wrappers/x11/x.nim
Executable file
|
|
@ -0,0 +1,399 @@
|
||||||
|
|
||||||
|
#
|
||||||
|
# Automatically converted by H2Pas 0.99.15 from x.h
|
||||||
|
# The following command line parameters were used:
|
||||||
|
# -p
|
||||||
|
# -T
|
||||||
|
# -S
|
||||||
|
# -d
|
||||||
|
# -c
|
||||||
|
# x.h
|
||||||
|
#
|
||||||
|
# Pointers to basic pascal types, inserted by h2pas conversion program.
|
||||||
|
|
||||||
|
const
|
||||||
|
X_PROTOCOL* = 11
|
||||||
|
X_PROTOCOL_REVISION* = 0
|
||||||
|
|
||||||
|
type
|
||||||
|
culong* = int
|
||||||
|
cuchar* = char
|
||||||
|
PXID* = ptr TXID
|
||||||
|
TXID* = culong
|
||||||
|
PMask* = ptr TMask
|
||||||
|
TMask* = culong
|
||||||
|
PPAtom* = ptr PAtom
|
||||||
|
PAtom* = ptr TAtom
|
||||||
|
TAtom* = culong
|
||||||
|
PVisualID* = ptr TVisualID
|
||||||
|
TVisualID* = culong
|
||||||
|
PTime* = ptr TTime
|
||||||
|
TTime* = culong
|
||||||
|
PPWindow* = ptr PWindow
|
||||||
|
PWindow* = ptr TWindow
|
||||||
|
TWindow* = TXID
|
||||||
|
PDrawable* = ptr TDrawable
|
||||||
|
TDrawable* = TXID
|
||||||
|
PFont* = ptr TFont
|
||||||
|
TFont* = TXID
|
||||||
|
PPixmap* = ptr TPixmap
|
||||||
|
TPixmap* = TXID
|
||||||
|
PCursor* = ptr TCursor
|
||||||
|
TCursor* = TXID
|
||||||
|
PColormap* = ptr TColormap
|
||||||
|
TColormap* = TXID
|
||||||
|
PGContext* = ptr TGContext
|
||||||
|
TGContext* = TXID
|
||||||
|
PKeySym* = ptr TKeySym
|
||||||
|
TKeySym* = TXID
|
||||||
|
PKeyCode* = ptr TKeyCode
|
||||||
|
TKeyCode* = cuchar
|
||||||
|
|
||||||
|
const
|
||||||
|
None* = 0
|
||||||
|
ParentRelative* = 1
|
||||||
|
CopyFromParent* = 0
|
||||||
|
PointerWindow* = 0
|
||||||
|
InputFocus* = 1
|
||||||
|
PointerRoot* = 1
|
||||||
|
AnyPropertyType* = 0
|
||||||
|
AnyKey* = 0
|
||||||
|
AnyButton* = 0
|
||||||
|
AllTemporary* = 0
|
||||||
|
CurrentTime* = 0
|
||||||
|
NoSymbol* = 0
|
||||||
|
NoEventMask* = 0
|
||||||
|
KeyPressMask* = 1 shl 0
|
||||||
|
KeyReleaseMask* = 1 shl 1
|
||||||
|
ButtonPressMask* = 1 shl 2
|
||||||
|
ButtonReleaseMask* = 1 shl 3
|
||||||
|
EnterWindowMask* = 1 shl 4
|
||||||
|
LeaveWindowMask* = 1 shl 5
|
||||||
|
PointerMotionMask* = 1 shl 6
|
||||||
|
PointerMotionHintMask* = 1 shl 7
|
||||||
|
Button1MotionMask* = 1 shl 8
|
||||||
|
Button2MotionMask* = 1 shl 9
|
||||||
|
Button3MotionMask* = 1 shl 10
|
||||||
|
Button4MotionMask* = 1 shl 11
|
||||||
|
Button5MotionMask* = 1 shl 12
|
||||||
|
ButtonMotionMask* = 1 shl 13
|
||||||
|
KeymapStateMask* = 1 shl 14
|
||||||
|
ExposureMask* = 1 shl 15
|
||||||
|
VisibilityChangeMask* = 1 shl 16
|
||||||
|
StructureNotifyMask* = 1 shl 17
|
||||||
|
ResizeRedirectMask* = 1 shl 18
|
||||||
|
SubstructureNotifyMask* = 1 shl 19
|
||||||
|
SubstructureRedirectMask* = 1 shl 20
|
||||||
|
FocusChangeMask* = 1 shl 21
|
||||||
|
PropertyChangeMask* = 1 shl 22
|
||||||
|
ColormapChangeMask* = 1 shl 23
|
||||||
|
OwnerGrabButtonMask* = 1 shl 24
|
||||||
|
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
|
||||||
|
ShiftMask* = 1 shl 0
|
||||||
|
LockMask* = 1 shl 1
|
||||||
|
ControlMask* = 1 shl 2
|
||||||
|
Mod1Mask* = 1 shl 3
|
||||||
|
Mod2Mask* = 1 shl 4
|
||||||
|
Mod3Mask* = 1 shl 5
|
||||||
|
Mod4Mask* = 1 shl 6
|
||||||
|
Mod5Mask* = 1 shl 7
|
||||||
|
ShiftMapIndex* = 0
|
||||||
|
LockMapIndex* = 1
|
||||||
|
ControlMapIndex* = 2
|
||||||
|
Mod1MapIndex* = 3
|
||||||
|
Mod2MapIndex* = 4
|
||||||
|
Mod3MapIndex* = 5
|
||||||
|
Mod4MapIndex* = 6
|
||||||
|
Mod5MapIndex* = 7
|
||||||
|
Button1Mask* = 1 shl 8
|
||||||
|
Button2Mask* = 1 shl 9
|
||||||
|
Button3Mask* = 1 shl 10
|
||||||
|
Button4Mask* = 1 shl 11
|
||||||
|
Button5Mask* = 1 shl 12
|
||||||
|
AnyModifier* = 1 shl 15
|
||||||
|
Button1* = 1
|
||||||
|
Button2* = 2
|
||||||
|
Button3* = 3
|
||||||
|
Button4* = 4
|
||||||
|
Button5* = 5
|
||||||
|
NotifyNormal* = 0
|
||||||
|
NotifyGrab* = 1
|
||||||
|
NotifyUngrab* = 2
|
||||||
|
NotifyWhileGrabbed* = 3
|
||||||
|
NotifyHint* = 1
|
||||||
|
NotifyAncestor* = 0
|
||||||
|
NotifyVirtual* = 1
|
||||||
|
NotifyInferior* = 2
|
||||||
|
NotifyNonlinear* = 3
|
||||||
|
NotifyNonlinearVirtual* = 4
|
||||||
|
NotifyPointer* = 5
|
||||||
|
NotifyPointerRoot* = 6
|
||||||
|
NotifyDetailNone* = 7
|
||||||
|
VisibilityUnobscured* = 0
|
||||||
|
VisibilityPartiallyObscured* = 1
|
||||||
|
VisibilityFullyObscured* = 2
|
||||||
|
PlaceOnTop* = 0
|
||||||
|
PlaceOnBottom* = 1
|
||||||
|
FamilyInternet* = 0
|
||||||
|
FamilyDECnet* = 1
|
||||||
|
FamilyChaos* = 2
|
||||||
|
FamilyInternet6* = 6
|
||||||
|
FamilyServerInterpreted* = 5
|
||||||
|
PropertyNewValue* = 0
|
||||||
|
PropertyDelete* = 1
|
||||||
|
ColormapUninstalled* = 0
|
||||||
|
ColormapInstalled* = 1
|
||||||
|
GrabModeSync* = 0
|
||||||
|
GrabModeAsync* = 1
|
||||||
|
GrabSuccess* = 0
|
||||||
|
AlreadyGrabbed* = 1
|
||||||
|
GrabInvalidTime* = 2
|
||||||
|
GrabNotViewable* = 3
|
||||||
|
GrabFrozen* = 4
|
||||||
|
AsyncPointer* = 0
|
||||||
|
SyncPointer* = 1
|
||||||
|
ReplayPointer* = 2
|
||||||
|
AsyncKeyboard* = 3
|
||||||
|
SyncKeyboard* = 4
|
||||||
|
ReplayKeyboard* = 5
|
||||||
|
AsyncBoth* = 6
|
||||||
|
SyncBoth* = 7
|
||||||
|
RevertToNone* = None
|
||||||
|
RevertToPointerRoot* = PointerRoot
|
||||||
|
RevertToParent* = 2
|
||||||
|
Success* = 0
|
||||||
|
BadRequest* = 1
|
||||||
|
BadValue* = 2
|
||||||
|
BadWindow* = 3
|
||||||
|
BadPixmap* = 4
|
||||||
|
BadAtom* = 5
|
||||||
|
BadCursor* = 6
|
||||||
|
BadFont* = 7
|
||||||
|
BadMatch* = 8
|
||||||
|
BadDrawable* = 9
|
||||||
|
BadAccess* = 10
|
||||||
|
BadAlloc* = 11
|
||||||
|
BadColor* = 12
|
||||||
|
BadGC* = 13
|
||||||
|
BadIDChoice* = 14
|
||||||
|
BadName* = 15
|
||||||
|
BadLength* = 16
|
||||||
|
BadImplementation* = 17
|
||||||
|
FirstExtensionError* = 128
|
||||||
|
LastExtensionError* = 255
|
||||||
|
InputOutput* = 1
|
||||||
|
InputOnly* = 2
|
||||||
|
CWBackPixmap* = 1 shl 0
|
||||||
|
CWBackPixel* = 1 shl 1
|
||||||
|
CWBorderPixmap* = 1 shl 2
|
||||||
|
CWBorderPixel* = 1 shl 3
|
||||||
|
CWBitGravity* = 1 shl 4
|
||||||
|
CWWinGravity* = 1 shl 5
|
||||||
|
CWBackingStore* = 1 shl 6
|
||||||
|
CWBackingPlanes* = 1 shl 7
|
||||||
|
CWBackingPixel* = 1 shl 8
|
||||||
|
CWOverrideRedirect* = 1 shl 9
|
||||||
|
CWSaveUnder* = 1 shl 10
|
||||||
|
CWEventMask* = 1 shl 11
|
||||||
|
CWDontPropagate* = 1 shl 12
|
||||||
|
CWColormap* = 1 shl 13
|
||||||
|
CWCursor* = 1 shl 14
|
||||||
|
CWX* = 1 shl 0
|
||||||
|
CWY* = 1 shl 1
|
||||||
|
CWWidth* = 1 shl 2
|
||||||
|
CWHeight* = 1 shl 3
|
||||||
|
CWBorderWidth* = 1 shl 4
|
||||||
|
CWSibling* = 1 shl 5
|
||||||
|
CWStackMode* = 1 shl 6
|
||||||
|
ForgetGravity* = 0
|
||||||
|
NorthWestGravity* = 1
|
||||||
|
NorthGravity* = 2
|
||||||
|
NorthEastGravity* = 3
|
||||||
|
WestGravity* = 4
|
||||||
|
CenterGravity* = 5
|
||||||
|
EastGravity* = 6
|
||||||
|
SouthWestGravity* = 7
|
||||||
|
SouthGravity* = 8
|
||||||
|
SouthEastGravity* = 9
|
||||||
|
StaticGravity* = 10
|
||||||
|
UnmapGravity* = 0
|
||||||
|
NotUseful* = 0
|
||||||
|
WhenMapped* = 1
|
||||||
|
Always* = 2
|
||||||
|
IsUnmapped* = 0
|
||||||
|
IsUnviewable* = 1
|
||||||
|
IsViewable* = 2
|
||||||
|
SetModeInsert* = 0
|
||||||
|
SetModeDelete* = 1
|
||||||
|
DestroyAll* = 0
|
||||||
|
RetainPermanent* = 1
|
||||||
|
RetainTemporary* = 2
|
||||||
|
Above* = 0
|
||||||
|
Below* = 1
|
||||||
|
TopIf* = 2
|
||||||
|
BottomIf* = 3
|
||||||
|
Opposite* = 4
|
||||||
|
RaiseLowest* = 0
|
||||||
|
LowerHighest* = 1
|
||||||
|
PropModeReplace* = 0
|
||||||
|
PropModePrepend* = 1
|
||||||
|
PropModeAppend* = 2
|
||||||
|
GXclear* = 0x00000000
|
||||||
|
GXand* = 0x00000001
|
||||||
|
GXandReverse* = 0x00000002
|
||||||
|
GXcopy* = 0x00000003
|
||||||
|
GXandInverted* = 0x00000004
|
||||||
|
GXnoop* = 0x00000005
|
||||||
|
GXxor* = 0x00000006
|
||||||
|
GXor* = 0x00000007
|
||||||
|
GXnor* = 0x00000008
|
||||||
|
GXequiv* = 0x00000009
|
||||||
|
GXinvert* = 0x0000000A
|
||||||
|
GXorReverse* = 0x0000000B
|
||||||
|
GXcopyInverted* = 0x0000000C
|
||||||
|
GXorInverted* = 0x0000000D
|
||||||
|
GXnand* = 0x0000000E
|
||||||
|
GXset* = 0x0000000F
|
||||||
|
LineSolid* = 0
|
||||||
|
LineOnOffDash* = 1
|
||||||
|
LineDoubleDash* = 2
|
||||||
|
CapNotLast* = 0
|
||||||
|
CapButt* = 1
|
||||||
|
CapRound* = 2
|
||||||
|
CapProjecting* = 3
|
||||||
|
JoinMiter* = 0
|
||||||
|
JoinRound* = 1
|
||||||
|
JoinBevel* = 2
|
||||||
|
FillSolid* = 0
|
||||||
|
FillTiled* = 1
|
||||||
|
FillStippled* = 2
|
||||||
|
FillOpaqueStippled* = 3
|
||||||
|
EvenOddRule* = 0
|
||||||
|
WindingRule* = 1
|
||||||
|
ClipByChildren* = 0
|
||||||
|
IncludeInferiors* = 1
|
||||||
|
Unsorted* = 0
|
||||||
|
YSorted* = 1
|
||||||
|
YXSorted* = 2
|
||||||
|
YXBanded* = 3
|
||||||
|
CoordModeOrigin* = 0
|
||||||
|
CoordModePrevious* = 1
|
||||||
|
Complex* = 0
|
||||||
|
Nonconvex* = 1
|
||||||
|
Convex* = 2
|
||||||
|
ArcChord* = 0
|
||||||
|
ArcPieSlice* = 1
|
||||||
|
GCFunction* = 1 shl 0
|
||||||
|
GCPlaneMask* = 1 shl 1
|
||||||
|
GCForeground* = 1 shl 2
|
||||||
|
GCBackground* = 1 shl 3
|
||||||
|
GCLineWidth* = 1 shl 4
|
||||||
|
GCLineStyle* = 1 shl 5
|
||||||
|
GCCapStyle* = 1 shl 6
|
||||||
|
GCJoinStyle* = 1 shl 7
|
||||||
|
GCFillStyle* = 1 shl 8
|
||||||
|
GCFillRule* = 1 shl 9
|
||||||
|
GCTile* = 1 shl 10
|
||||||
|
GCStipple* = 1 shl 11
|
||||||
|
GCTileStipXOrigin* = 1 shl 12
|
||||||
|
GCTileStipYOrigin* = 1 shl 13
|
||||||
|
GCFont* = 1 shl 14
|
||||||
|
GCSubwindowMode* = 1 shl 15
|
||||||
|
GCGraphicsExposures* = 1 shl 16
|
||||||
|
GCClipXOrigin* = 1 shl 17
|
||||||
|
GCClipYOrigin* = 1 shl 18
|
||||||
|
GCClipMask* = 1 shl 19
|
||||||
|
GCDashOffset* = 1 shl 20
|
||||||
|
GCDashList* = 1 shl 21
|
||||||
|
GCArcMode* = 1 shl 22
|
||||||
|
GCLastBit* = 22
|
||||||
|
FontLeftToRight* = 0
|
||||||
|
FontRightToLeft* = 1
|
||||||
|
FontChange* = 255
|
||||||
|
XYBitmap* = 0
|
||||||
|
XYPixmap* = 1
|
||||||
|
ZPixmap* = 2
|
||||||
|
AllocNone* = 0
|
||||||
|
AllocAll* = 1
|
||||||
|
DoRed* = 1 shl 0
|
||||||
|
DoGreen* = 1 shl 1
|
||||||
|
DoBlue* = 1 shl 2
|
||||||
|
CursorShape* = 0
|
||||||
|
TileShape* = 1
|
||||||
|
StippleShape* = 2
|
||||||
|
AutoRepeatModeOff* = 0
|
||||||
|
AutoRepeatModeOn* = 1
|
||||||
|
AutoRepeatModeDefault* = 2
|
||||||
|
LedModeOff* = 0
|
||||||
|
LedModeOn* = 1
|
||||||
|
KBKeyClickPercent* = 1 shl 0
|
||||||
|
KBBellPercent* = 1 shl 1
|
||||||
|
KBBellPitch* = 1 shl 2
|
||||||
|
KBBellDuration* = 1 shl 3
|
||||||
|
KBLed* = 1 shl 4
|
||||||
|
KBLedMode* = 1 shl 5
|
||||||
|
KBKey* = 1 shl 6
|
||||||
|
KBAutoRepeatMode* = 1 shl 7
|
||||||
|
MappingSuccess* = 0
|
||||||
|
MappingBusy* = 1
|
||||||
|
MappingFailed* = 2
|
||||||
|
MappingModifier* = 0
|
||||||
|
MappingKeyboard* = 1
|
||||||
|
MappingPointer* = 2
|
||||||
|
DontPreferBlanking* = 0
|
||||||
|
PreferBlanking* = 1
|
||||||
|
DefaultBlanking* = 2
|
||||||
|
DisableScreenSaver* = 0
|
||||||
|
DisableScreenInterval* = 0
|
||||||
|
DontAllowExposures* = 0
|
||||||
|
AllowExposures* = 1
|
||||||
|
DefaultExposures* = 2
|
||||||
|
ScreenSaverReset* = 0
|
||||||
|
ScreenSaverActive* = 1
|
||||||
|
HostInsert* = 0
|
||||||
|
HostDelete* = 1
|
||||||
|
EnableAccess* = 1
|
||||||
|
DisableAccess* = 0
|
||||||
|
StaticGray* = 0
|
||||||
|
GrayScale* = 1
|
||||||
|
StaticColor* = 2
|
||||||
|
PseudoColor* = 3
|
||||||
|
TrueColor* = 4
|
||||||
|
DirectColor* = 5
|
||||||
|
LSBFirst* = 0
|
||||||
|
MSBFirst* = 1
|
||||||
|
|
||||||
|
# implementation
|
||||||
81
lib/wrappers/x11/xatom.nim
Executable file
81
lib/wrappers/x11/xatom.nim
Executable file
|
|
@ -0,0 +1,81 @@
|
||||||
|
#
|
||||||
|
# THIS IS A GENERATED FILE
|
||||||
|
#
|
||||||
|
# Do not change! Changing this file implies a protocol change!
|
||||||
|
#
|
||||||
|
|
||||||
|
import
|
||||||
|
X
|
||||||
|
|
||||||
|
const
|
||||||
|
XA_PRIMARY* = TAtom(1)
|
||||||
|
XA_SECONDARY* = TAtom(2)
|
||||||
|
XA_ARC* = TAtom(3)
|
||||||
|
XA_ATOM* = TAtom(4)
|
||||||
|
XA_BITMAP* = TAtom(5)
|
||||||
|
XA_CARDINAL* = TAtom(6)
|
||||||
|
XA_COLORMAP* = TAtom(7)
|
||||||
|
XA_CURSOR* = TAtom(8)
|
||||||
|
XA_CUT_BUFFER0* = TAtom(9)
|
||||||
|
XA_CUT_BUFFER1* = TAtom(10)
|
||||||
|
XA_CUT_BUFFER2* = TAtom(11)
|
||||||
|
XA_CUT_BUFFER3* = TAtom(12)
|
||||||
|
XA_CUT_BUFFER4* = TAtom(13)
|
||||||
|
XA_CUT_BUFFER5* = TAtom(14)
|
||||||
|
XA_CUT_BUFFER6* = TAtom(15)
|
||||||
|
XA_CUT_BUFFER7* = TAtom(16)
|
||||||
|
XA_DRAWABLE* = TAtom(17)
|
||||||
|
XA_FONT* = TAtom(18)
|
||||||
|
XA_INTEGER* = TAtom(19)
|
||||||
|
XA_PIXMAP* = TAtom(20)
|
||||||
|
XA_POINT* = TAtom(21)
|
||||||
|
XA_RECTANGLE* = TAtom(22)
|
||||||
|
XA_RESOURCE_MANAGER* = TAtom(23)
|
||||||
|
XA_RGB_COLOR_MAP* = TAtom(24)
|
||||||
|
XA_RGB_BEST_MAP* = TAtom(25)
|
||||||
|
XA_RGB_BLUE_MAP* = TAtom(26)
|
||||||
|
XA_RGB_DEFAULT_MAP* = TAtom(27)
|
||||||
|
XA_RGB_GRAY_MAP* = TAtom(28)
|
||||||
|
XA_RGB_GREEN_MAP* = TAtom(29)
|
||||||
|
XA_RGB_RED_MAP* = TAtom(30)
|
||||||
|
XA_STRING* = TAtom(31)
|
||||||
|
XA_VISUALID* = TAtom(32)
|
||||||
|
XA_WINDOW* = TAtom(33)
|
||||||
|
XA_WM_COMMAND* = TAtom(34)
|
||||||
|
XA_WM_HINTS* = TAtom(35)
|
||||||
|
XA_WM_CLIENT_MACHINE* = TAtom(36)
|
||||||
|
XA_WM_ICON_NAME* = TAtom(37)
|
||||||
|
XA_WM_ICON_SIZE* = TAtom(38)
|
||||||
|
XA_WM_NAME* = TAtom(39)
|
||||||
|
XA_WM_NORMAL_HINTS* = TAtom(40)
|
||||||
|
XA_WM_SIZE_HINTS* = TAtom(41)
|
||||||
|
XA_WM_ZOOM_HINTS* = TAtom(42)
|
||||||
|
XA_MIN_SPACE* = TAtom(43)
|
||||||
|
XA_NORM_SPACE* = TAtom(44)
|
||||||
|
XA_MAX_SPACE* = TAtom(45)
|
||||||
|
XA_END_SPACE* = TAtom(46)
|
||||||
|
XA_SUPERSCRIPT_X* = TAtom(47)
|
||||||
|
XA_SUPERSCRIPT_Y* = TAtom(48)
|
||||||
|
XA_SUBSCRIPT_X* = TAtom(49)
|
||||||
|
XA_SUBSCRIPT_Y* = TAtom(50)
|
||||||
|
XA_UNDERLINE_POSITION* = TAtom(51)
|
||||||
|
XA_UNDERLINE_THICKNESS* = TAtom(52)
|
||||||
|
XA_STRIKEOUT_ASCENT* = TAtom(53)
|
||||||
|
XA_STRIKEOUT_DESCENT* = TAtom(54)
|
||||||
|
XA_ITALIC_ANGLE* = TAtom(55)
|
||||||
|
XA_X_HEIGHT* = TAtom(56)
|
||||||
|
XA_QUAD_WIDTH* = TAtom(57)
|
||||||
|
XA_WEIGHT* = TAtom(58)
|
||||||
|
XA_POINT_SIZE* = TAtom(59)
|
||||||
|
XA_RESOLUTION* = TAtom(60)
|
||||||
|
XA_COPYRIGHT* = TAtom(61)
|
||||||
|
XA_NOTICE* = TAtom(62)
|
||||||
|
XA_FONT_NAME* = TAtom(63)
|
||||||
|
XA_FAMILY_NAME* = TAtom(64)
|
||||||
|
XA_FULL_NAME* = TAtom(65)
|
||||||
|
XA_CAP_HEIGHT* = TAtom(66)
|
||||||
|
XA_WM_CLASS* = TAtom(67)
|
||||||
|
XA_WM_TRANSIENT_FOR* = TAtom(68)
|
||||||
|
XA_LAST_PREDEFINED* = TAtom(68)
|
||||||
|
|
||||||
|
# implementation
|
||||||
396
lib/wrappers/x11/xcms.nim
Executable file
396
lib/wrappers/x11/xcms.nim
Executable file
|
|
@ -0,0 +1,396 @@
|
||||||
|
|
||||||
|
import
|
||||||
|
x, xlib
|
||||||
|
|
||||||
|
#const
|
||||||
|
# libX11* = "X11"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Automatically converted by H2Pas 0.99.15 from xcms.h
|
||||||
|
# The following command line parameters were used:
|
||||||
|
# -p
|
||||||
|
# -T
|
||||||
|
# -S
|
||||||
|
# -d
|
||||||
|
# -c
|
||||||
|
# xcms.h
|
||||||
|
#
|
||||||
|
|
||||||
|
const
|
||||||
|
XcmsFailure* = 0
|
||||||
|
XcmsSuccess* = 1
|
||||||
|
XcmsSuccessWithCompression* = 2
|
||||||
|
|
||||||
|
type
|
||||||
|
PXcmsColorFormat* = ptr TXcmsColorFormat
|
||||||
|
TXcmsColorFormat* = int32
|
||||||
|
|
||||||
|
proc XcmsUndefinedFormat*(): TXcmsColorFormat
|
||||||
|
proc XcmsCIEXYZFormat*(): TXcmsColorFormat
|
||||||
|
proc XcmsCIEuvYFormat*(): TXcmsColorFormat
|
||||||
|
proc XcmsCIExyYFormat*(): TXcmsColorFormat
|
||||||
|
proc XcmsCIELabFormat*(): TXcmsColorFormat
|
||||||
|
proc XcmsCIELuvFormat*(): TXcmsColorFormat
|
||||||
|
proc XcmsTekHVCFormat*(): TXcmsColorFormat
|
||||||
|
proc XcmsRGBFormat*(): TXcmsColorFormat
|
||||||
|
proc XcmsRGBiFormat*(): TXcmsColorFormat
|
||||||
|
const
|
||||||
|
XcmsInitNone* = 0x00000000
|
||||||
|
XcmsInitSuccess* = 0x00000001
|
||||||
|
XcmsInitFailure* = 0x000000FF
|
||||||
|
|
||||||
|
when defined(MACROS):
|
||||||
|
proc DisplayOfCCC*(ccc: int32): int32
|
||||||
|
proc ScreenNumberOfCCC*(ccc: int32): int32
|
||||||
|
proc VisualOfCCC*(ccc: int32): int32
|
||||||
|
proc ClientWhitePointOfCCC*(ccc: int32): int32
|
||||||
|
proc ScreenWhitePointOfCCC*(ccc: int32): int32
|
||||||
|
proc FunctionSetOfCCC*(ccc: int32): int32
|
||||||
|
type
|
||||||
|
PXcmsFloat* = ptr TXcmsFloat
|
||||||
|
TXcmsFloat* = float64
|
||||||
|
PXcmsRGB* = ptr TXcmsRGB
|
||||||
|
TXcmsRGB*{.final.} = object
|
||||||
|
red*: int16
|
||||||
|
green*: int16
|
||||||
|
blue*: int16
|
||||||
|
|
||||||
|
PXcmsRGBi* = ptr TXcmsRGBi
|
||||||
|
TXcmsRGBi*{.final.} = object
|
||||||
|
red*: TXcmsFloat
|
||||||
|
green*: TXcmsFloat
|
||||||
|
blue*: TXcmsFloat
|
||||||
|
|
||||||
|
PXcmsCIEXYZ* = ptr TXcmsCIEXYZ
|
||||||
|
TXcmsCIEXYZ*{.final.} = object
|
||||||
|
X*: TXcmsFloat
|
||||||
|
Y*: TXcmsFloat
|
||||||
|
Z*: TXcmsFloat
|
||||||
|
|
||||||
|
PXcmsCIEuvY* = ptr TXcmsCIEuvY
|
||||||
|
TXcmsCIEuvY*{.final.} = object
|
||||||
|
u_prime*: TXcmsFloat
|
||||||
|
v_prime*: TXcmsFloat
|
||||||
|
Y*: TXcmsFloat
|
||||||
|
|
||||||
|
PXcmsCIExyY* = ptr TXcmsCIExyY
|
||||||
|
TXcmsCIExyY*{.final.} = object
|
||||||
|
x*: TXcmsFloat
|
||||||
|
y*: TXcmsFloat
|
||||||
|
theY*: TXcmsFloat
|
||||||
|
|
||||||
|
PXcmsCIELab* = ptr TXcmsCIELab
|
||||||
|
TXcmsCIELab*{.final.} = object
|
||||||
|
L_star*: TXcmsFloat
|
||||||
|
a_star*: TXcmsFloat
|
||||||
|
b_star*: TXcmsFloat
|
||||||
|
|
||||||
|
PXcmsCIELuv* = ptr TXcmsCIELuv
|
||||||
|
TXcmsCIELuv*{.final.} = object
|
||||||
|
L_star*: TXcmsFloat
|
||||||
|
u_star*: TXcmsFloat
|
||||||
|
v_star*: TXcmsFloat
|
||||||
|
|
||||||
|
PXcmsTekHVC* = ptr TXcmsTekHVC
|
||||||
|
TXcmsTekHVC*{.final.} = object
|
||||||
|
H*: TXcmsFloat
|
||||||
|
V*: TXcmsFloat
|
||||||
|
C*: TXcmsFloat
|
||||||
|
|
||||||
|
PXcmsPad* = ptr TXcmsPad
|
||||||
|
TXcmsPad*{.final.} = object
|
||||||
|
pad0*: TXcmsFloat
|
||||||
|
pad1*: TXcmsFloat
|
||||||
|
pad2*: TXcmsFloat
|
||||||
|
pad3*: TXcmsFloat
|
||||||
|
|
||||||
|
PXcmsColor* = ptr TXcmsColor
|
||||||
|
TXcmsColor*{.final.} = object # spec : record
|
||||||
|
# case longint of
|
||||||
|
# 0 : ( RGB : TXcmsRGB );
|
||||||
|
# 1 : ( RGBi : TXcmsRGBi );
|
||||||
|
# 2 : ( CIEXYZ : TXcmsCIEXYZ );
|
||||||
|
# 3 : ( CIEuvY : TXcmsCIEuvY );
|
||||||
|
# 4 : ( CIExyY : TXcmsCIExyY );
|
||||||
|
# 5 : ( CIELab : TXcmsCIELab );
|
||||||
|
# 6 : ( CIELuv : TXcmsCIELuv );
|
||||||
|
# 7 : ( TekHVC : TXcmsTekHVC );
|
||||||
|
# 8 : ( Pad : TXcmsPad );
|
||||||
|
# end;
|
||||||
|
pad*: TXcmsPad
|
||||||
|
pixel*: int32
|
||||||
|
format*: TXcmsColorFormat
|
||||||
|
|
||||||
|
PXcmsPerScrnInfo* = ptr TXcmsPerScrnInfo
|
||||||
|
TXcmsPerScrnInfo*{.final.} = object
|
||||||
|
screenWhitePt*: TXcmsColor
|
||||||
|
functionSet*: TXPointer
|
||||||
|
screenData*: TXPointer
|
||||||
|
state*: int8
|
||||||
|
pad*: array[0..2, char]
|
||||||
|
|
||||||
|
PXcmsCCC* = ptr TXcmsCCC
|
||||||
|
TXcmsCompressionProc* = proc (para1: PXcmsCCC, para2: PXcmsColor,
|
||||||
|
para3: int32, para4: int32, para5: PBool): TStatus{.
|
||||||
|
cdecl.}
|
||||||
|
TXcmsWhiteAdjustProc* = proc (para1: PXcmsCCC, para2: PXcmsColor,
|
||||||
|
para3: PXcmsColor, para4: TXcmsColorFormat,
|
||||||
|
para5: PXcmsColor, para6: int32, para7: PBool): TStatus{.
|
||||||
|
cdecl.}
|
||||||
|
TXcmsCCC*{.final.} = object
|
||||||
|
dpy*: PDisplay
|
||||||
|
screenNumber*: int32
|
||||||
|
visual*: PVisual
|
||||||
|
clientWhitePt*: TXcmsColor
|
||||||
|
gamutCompProc*: TXcmsCompressionProc
|
||||||
|
gamutCompClientData*: TXPointer
|
||||||
|
whitePtAdjProc*: TXcmsWhiteAdjustProc
|
||||||
|
whitePtAdjClientData*: TXPointer
|
||||||
|
pPerScrnInfo*: PXcmsPerScrnInfo
|
||||||
|
|
||||||
|
TXcmsCCCRec* = TXcmsCCC
|
||||||
|
PXcmsCCCRec* = ptr TXcmsCCCRec
|
||||||
|
TXcmsScreenInitProc* = proc (para1: PDisplay, para2: int32,
|
||||||
|
para3: PXcmsPerScrnInfo): TStatus{.cdecl.}
|
||||||
|
TXcmsScreenFreeProc* = proc (para1: TXPointer){.cdecl.}
|
||||||
|
TXcmsConversionProc* = proc (){.cdecl.}
|
||||||
|
PXcmsFuncListPtr* = ptr TXcmsFuncListPtr
|
||||||
|
TXcmsFuncListPtr* = TXcmsConversionProc
|
||||||
|
TXcmsParseStringProc* = proc (para1: cstring, para2: PXcmsColor): int32{.cdecl.}
|
||||||
|
PXcmsColorSpace* = ptr TXcmsColorSpace
|
||||||
|
TXcmsColorSpace*{.final.} = object
|
||||||
|
prefix*: cstring
|
||||||
|
id*: TXcmsColorFormat
|
||||||
|
parseString*: TXcmsParseStringProc
|
||||||
|
to_CIEXYZ*: TXcmsFuncListPtr
|
||||||
|
from_CIEXYZ*: TXcmsFuncListPtr
|
||||||
|
inverse_flag*: int32
|
||||||
|
|
||||||
|
PXcmsFunctionSet* = ptr TXcmsFunctionSet
|
||||||
|
TXcmsFunctionSet*{.final.} = object # error
|
||||||
|
#extern Status XcmsAddColorSpace (
|
||||||
|
#in declaration at line 323
|
||||||
|
DDColorSpaces*: ptr PXcmsColorSpace
|
||||||
|
screenInitProc*: TXcmsScreenInitProc
|
||||||
|
screenFreeProc*: TXcmsScreenFreeProc
|
||||||
|
|
||||||
|
|
||||||
|
proc XcmsAddFunctionSet*(para1: PXcmsFunctionSet): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsAllocColor*(para1: PDisplay, para2: TColormap, para3: PXcmsColor,
|
||||||
|
para4: TXcmsColorFormat): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsAllocNamedColor*(para1: PDisplay, para2: TColormap, para3: cstring,
|
||||||
|
para4: PXcmsColor, para5: PXcmsColor,
|
||||||
|
para6: TXcmsColorFormat): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsCCCOfColormap*(para1: PDisplay, para2: TColormap): TXcmsCCC{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIELabClipab*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: int32, para5: PBool): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIELabClipL*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: int32, para5: PBool): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIELabClipLab*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: int32, para5: PBool): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIELabQueryMaxC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat,
|
||||||
|
para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsCIELabQueryMaxL*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat,
|
||||||
|
para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsCIELabQueryMaxLC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: PXcmsColor): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIELabQueryMinL*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat,
|
||||||
|
para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsCIELabToCIEXYZ*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor,
|
||||||
|
para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIELabWhiteShiftColors*(para1: TXcmsCCC, para2: PXcmsColor,
|
||||||
|
para3: PXcmsColor, para4: TXcmsColorFormat,
|
||||||
|
para5: PXcmsColor, para6: int32, para7: PBool): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIELuvClipL*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: int32, para5: PBool): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIELuvClipLuv*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: int32, para5: PBool): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIELuvClipuv*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: int32, para5: PBool): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIELuvQueryMaxC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat,
|
||||||
|
para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsCIELuvQueryMaxL*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat,
|
||||||
|
para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsCIELuvQueryMaxLC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: PXcmsColor): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIELuvQueryMinL*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat,
|
||||||
|
para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsCIELuvToCIEuvY*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor,
|
||||||
|
para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIELuvWhiteShiftColors*(para1: TXcmsCCC, para2: PXcmsColor,
|
||||||
|
para3: PXcmsColor, para4: TXcmsColorFormat,
|
||||||
|
para5: PXcmsColor, para6: int32, para7: PBool): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIEXYZToCIELab*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor,
|
||||||
|
para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIEXYZToCIEuvY*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor,
|
||||||
|
para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIEXYZToCIExyY*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor,
|
||||||
|
para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIEXYZToRGBi*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: PBool): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIEuvYToCIELuv*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor,
|
||||||
|
para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIEuvYToCIEXYZ*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor,
|
||||||
|
para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIEuvYToTekHVC*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor,
|
||||||
|
para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsCIExyYToCIEXYZ*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor,
|
||||||
|
para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsClientWhitePointOfCCC*(para1: TXcmsCCC): PXcmsColor{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsConvertColors*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: TXcmsColorFormat, para5: PBool): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsCreateCCC*(para1: PDisplay, para2: int32, para3: PVisual,
|
||||||
|
para4: PXcmsColor, para5: TXcmsCompressionProc,
|
||||||
|
para6: TXPointer, para7: TXcmsWhiteAdjustProc,
|
||||||
|
para8: TXPointer): TXcmsCCC{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsDefaultCCC*(para1: PDisplay, para2: int32): TXcmsCCC{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsDisplayOfCCC*(para1: TXcmsCCC): PDisplay{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsFormatOfPrefix*(para1: cstring): TXcmsColorFormat{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsFreeCCC*(para1: TXcmsCCC){.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsLookupColor*(para1: PDisplay, para2: TColormap, para3: cstring,
|
||||||
|
para4: PXcmsColor, para5: PXcmsColor,
|
||||||
|
para6: TXcmsColorFormat): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsPrefixOfFormat*(para1: TXcmsColorFormat): cstring{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsQueryBlack*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsQueryBlue*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsQueryColor*(para1: PDisplay, para2: TColormap, para3: PXcmsColor,
|
||||||
|
para4: TXcmsColorFormat): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsQueryColors*(para1: PDisplay, para2: TColormap, para3: PXcmsColor,
|
||||||
|
para4: int32, para5: TXcmsColorFormat): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsQueryGreen*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsQueryRed*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsQueryWhite*(para1: TXcmsCCC, para2: TXcmsColorFormat, para3: PXcmsColor): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsRGBiToCIEXYZ*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: PBool): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsRGBiToRGB*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: PBool): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsRGBToRGBi*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: PBool): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsScreenNumberOfCCC*(para1: TXcmsCCC): int32{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsScreenWhitePointOfCCC*(para1: TXcmsCCC): PXcmsColor{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsSetCCCOfColormap*(para1: PDisplay, para2: TColormap, para3: TXcmsCCC): TXcmsCCC{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsSetCompressionProc*(para1: TXcmsCCC, para2: TXcmsCompressionProc,
|
||||||
|
para3: TXPointer): TXcmsCompressionProc{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsSetWhiteAdjustProc*(para1: TXcmsCCC, para2: TXcmsWhiteAdjustProc,
|
||||||
|
para3: TXPointer): TXcmsWhiteAdjustProc{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsSetWhitePoint*(para1: TXcmsCCC, para2: PXcmsColor): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsStoreColor*(para1: PDisplay, para2: TColormap, para3: PXcmsColor): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsStoreColors*(para1: PDisplay, para2: TColormap, para3: PXcmsColor,
|
||||||
|
para4: int32, para5: PBool): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsTekHVCClipC*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: int32, para5: PBool): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsTekHVCClipV*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: int32, para5: PBool): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsTekHVCClipVC*(para1: TXcmsCCC, para2: PXcmsColor, para3: int32,
|
||||||
|
para4: int32, para5: PBool): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XcmsTekHVCQueryMaxC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat,
|
||||||
|
para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsTekHVCQueryMaxV*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat,
|
||||||
|
para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsTekHVCQueryMaxVC*(para1: TXcmsCCC, para2: TXcmsFloat, para3: PXcmsColor): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsTekHVCQueryMaxVSamples*(para1: TXcmsCCC, para2: TXcmsFloat,
|
||||||
|
para3: PXcmsColor, para4: int32): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsTekHVCQueryMinV*(para1: TXcmsCCC, para2: TXcmsFloat, para3: TXcmsFloat,
|
||||||
|
para4: PXcmsColor): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XcmsTekHVCToCIEuvY*(para1: TXcmsCCC, para2: PXcmsColor, para3: PXcmsColor,
|
||||||
|
para4: int32): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsTekHVCWhiteShiftColors*(para1: TXcmsCCC, para2: PXcmsColor,
|
||||||
|
para3: PXcmsColor, para4: TXcmsColorFormat,
|
||||||
|
para5: PXcmsColor, para6: int32, para7: PBool): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XcmsVisualOfCCC*(para1: TXcmsCCC): PVisual{.cdecl, dynlib: libX11, importc.}
|
||||||
|
# implementation
|
||||||
|
|
||||||
|
proc XcmsUndefinedFormat(): TXcmsColorFormat =
|
||||||
|
result = 0x00000000'i32
|
||||||
|
|
||||||
|
proc XcmsCIEXYZFormat(): TXcmsColorFormat =
|
||||||
|
result = 0x00000001'i32
|
||||||
|
|
||||||
|
proc XcmsCIEuvYFormat(): TXcmsColorFormat =
|
||||||
|
result = 0x00000002'i32
|
||||||
|
|
||||||
|
proc XcmsCIExyYFormat(): TXcmsColorFormat =
|
||||||
|
result = 0x00000003'i32
|
||||||
|
|
||||||
|
proc XcmsCIELabFormat(): TXcmsColorFormat =
|
||||||
|
result = 0x00000004'i32
|
||||||
|
|
||||||
|
proc XcmsCIELuvFormat(): TXcmsColorFormat =
|
||||||
|
result = 0x00000005'i32
|
||||||
|
|
||||||
|
proc XcmsTekHVCFormat(): TXcmsColorFormat =
|
||||||
|
result = 0x00000006'i32
|
||||||
|
|
||||||
|
proc XcmsRGBFormat(): TXcmsColorFormat =
|
||||||
|
result = 0x80000000'i32
|
||||||
|
|
||||||
|
proc XcmsRGBiFormat(): TXcmsColorFormat =
|
||||||
|
result = 0x80000001'i32
|
||||||
|
|
||||||
|
when defined(MACROS):
|
||||||
|
proc DisplayOfCCC(ccc: int32): int32 =
|
||||||
|
result = ccc.dpy
|
||||||
|
|
||||||
|
proc ScreenNumberOfCCC(ccc: int32): int32 =
|
||||||
|
result = ccc.screenNumber
|
||||||
|
|
||||||
|
proc VisualOfCCC(ccc: int32): int32 =
|
||||||
|
result = ccc.visual
|
||||||
|
|
||||||
|
proc ClientWhitePointOfCCC(ccc: int32): int32 =
|
||||||
|
result = addr(ccc.clientWhitePt)
|
||||||
|
|
||||||
|
proc ScreenWhitePointOfCCC(ccc: int32): int32 =
|
||||||
|
result = addr(ccc.pPerScrnInfo.screenWhitePt)
|
||||||
|
|
||||||
|
proc FunctionSetOfCCC(ccc: int32): int32 =
|
||||||
|
result = ccc.pPerScrnInfo.functionSet
|
||||||
235
lib/wrappers/x11/xf86dga.nim
Executable file
235
lib/wrappers/x11/xf86dga.nim
Executable file
|
|
@ -0,0 +1,235 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 1999 XFree86 Inc
|
||||||
|
#
|
||||||
|
# $XFree86: xc/include/extensions/xf86dga.h,v 3.20 1999/10/13 04:20:48 dawes Exp $
|
||||||
|
|
||||||
|
import
|
||||||
|
x, xlib
|
||||||
|
|
||||||
|
const
|
||||||
|
libXxf86dga* = "libXxf86dga.so"
|
||||||
|
|
||||||
|
#type
|
||||||
|
# cfloat* = float32
|
||||||
|
|
||||||
|
# $XFree86: xc/include/extensions/xf86dga1.h,v 1.2 1999/04/17 07:05:41 dawes Exp $
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#Copyright (c) 1995 Jon Tombs
|
||||||
|
#Copyright (c) 1995 XFree86 Inc
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#************************************************************************
|
||||||
|
#
|
||||||
|
# THIS IS THE OLD DGA API AND IS OBSOLETE. PLEASE DO NOT USE IT ANYMORE
|
||||||
|
#
|
||||||
|
#************************************************************************
|
||||||
|
|
||||||
|
type
|
||||||
|
PPcchar* = ptr ptr cstring
|
||||||
|
|
||||||
|
const
|
||||||
|
X_XF86DGAQueryVersion* = 0
|
||||||
|
X_XF86DGAGetVideoLL* = 1
|
||||||
|
X_XF86DGADirectVideo* = 2
|
||||||
|
X_XF86DGAGetViewPortSize* = 3
|
||||||
|
X_XF86DGASetViewPort* = 4
|
||||||
|
X_XF86DGAGetVidPage* = 5
|
||||||
|
X_XF86DGASetVidPage* = 6
|
||||||
|
X_XF86DGAInstallColormap* = 7
|
||||||
|
X_XF86DGAQueryDirectVideo* = 8
|
||||||
|
X_XF86DGAViewPortChanged* = 9
|
||||||
|
XF86DGADirectPresent* = 0x00000001
|
||||||
|
XF86DGADirectGraphics* = 0x00000002
|
||||||
|
XF86DGADirectMouse* = 0x00000004
|
||||||
|
XF86DGADirectKeyb* = 0x00000008
|
||||||
|
XF86DGAHasColormap* = 0x00000100
|
||||||
|
XF86DGADirectColormap* = 0x00000200
|
||||||
|
|
||||||
|
proc XF86DGAQueryVersion*(dpy: PDisplay, majorVersion: Pcint,
|
||||||
|
minorVersion: Pcint): TBool{.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGAQueryExtension*(dpy: PDisplay, event_base: Pcint, error_base: Pcint): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGAGetVideoLL*(dpy: PDisplay, screen: cint, base_addr: Pcint,
|
||||||
|
width: Pcint, bank_size: Pcint, ram_size: Pcint): TStatus{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGAGetVideo*(dpy: PDisplay, screen: cint, base_addr: PPcchar,
|
||||||
|
width: Pcint, bank_size: Pcint, ram_size: Pcint): TStatus{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGADirectVideo*(dpy: PDisplay, screen: cint, enable: cint): TStatus{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGADirectVideoLL*(dpy: PDisplay, screen: cint, enable: cint): TStatus{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGAGetViewPortSize*(dpy: PDisplay, screen: cint, width: Pcint,
|
||||||
|
height: Pcint): TStatus{.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGASetViewPort*(dpy: PDisplay, screen: cint, x: cint, y: cint): TStatus{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGAGetVidPage*(dpy: PDisplay, screen: cint, vid_page: Pcint): TStatus{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGASetVidPage*(dpy: PDisplay, screen: cint, vid_page: cint): TStatus{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGAInstallColormap*(dpy: PDisplay, screen: cint, Colormap: TColormap): TStatus{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGAForkApp*(screen: cint): cint{.CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGAQueryDirectVideo*(dpy: PDisplay, screen: cint, flags: Pcint): TStatus{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XF86DGAViewPortChanged*(dpy: PDisplay, screen: cint, n: cint): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
const
|
||||||
|
X_XDGAQueryVersion* = 0 # 1 through 9 are in xf86dga1.pp
|
||||||
|
# 10 and 11 are reserved to avoid conflicts with rogue DGA extensions
|
||||||
|
X_XDGAQueryModes* = 12
|
||||||
|
X_XDGASetMode* = 13
|
||||||
|
X_XDGASetViewport* = 14
|
||||||
|
X_XDGAInstallColormap* = 15
|
||||||
|
X_XDGASelectInput* = 16
|
||||||
|
X_XDGAFillRectangle* = 17
|
||||||
|
X_XDGACopyArea* = 18
|
||||||
|
X_XDGACopyTransparentArea* = 19
|
||||||
|
X_XDGAGetViewportStatus* = 20
|
||||||
|
X_XDGASync* = 21
|
||||||
|
X_XDGAOpenFramebuffer* = 22
|
||||||
|
X_XDGACloseFramebuffer* = 23
|
||||||
|
X_XDGASetClientVersion* = 24
|
||||||
|
X_XDGAChangePixmapMode* = 25
|
||||||
|
X_XDGACreateColormap* = 26
|
||||||
|
XDGAConcurrentAccess* = 0x00000001
|
||||||
|
XDGASolidFillRect* = 0x00000002
|
||||||
|
XDGABlitRect* = 0x00000004
|
||||||
|
XDGABlitTransRect* = 0x00000008
|
||||||
|
XDGAPixmap* = 0x00000010
|
||||||
|
XDGAInterlaced* = 0x00010000
|
||||||
|
XDGADoublescan* = 0x00020000
|
||||||
|
XDGAFlipImmediate* = 0x00000001
|
||||||
|
XDGAFlipRetrace* = 0x00000002
|
||||||
|
XDGANeedRoot* = 0x00000001
|
||||||
|
XF86DGANumberEvents* = 7
|
||||||
|
XDGAPixmapModeLarge* = 0
|
||||||
|
XDGAPixmapModeSmall* = 1
|
||||||
|
XF86DGAClientNotLocal* = 0
|
||||||
|
XF86DGANoDirectVideoMode* = 1
|
||||||
|
XF86DGAScreenNotActive* = 2
|
||||||
|
XF86DGADirectNotActivated* = 3
|
||||||
|
XF86DGAOperationNotSupported* = 4
|
||||||
|
XF86DGANumberErrors* = (XF86DGAOperationNotSupported + 1)
|
||||||
|
|
||||||
|
type
|
||||||
|
PXDGAMode* = ptr TXDGAMode
|
||||||
|
TXDGAMode*{.final.} = object
|
||||||
|
num*: cint # A unique identifier for the mode (num > 0)
|
||||||
|
name*: cstring # name of mode given in the XF86Config
|
||||||
|
verticalRefresh*: cfloat
|
||||||
|
flags*: cint # DGA_CONCURRENT_ACCESS, etc...
|
||||||
|
imageWidth*: cint # linear accessible portion (pixels)
|
||||||
|
imageHeight*: cint
|
||||||
|
pixmapWidth*: cint # Xlib accessible portion (pixels)
|
||||||
|
pixmapHeight*: cint # both fields ignored if no concurrent access
|
||||||
|
bytesPerScanline*: cint
|
||||||
|
byteOrder*: cint # MSBFirst, LSBFirst
|
||||||
|
depth*: cint
|
||||||
|
bitsPerPixel*: cint
|
||||||
|
redMask*: culong
|
||||||
|
greenMask*: culong
|
||||||
|
blueMask*: culong
|
||||||
|
visualClass*: cshort
|
||||||
|
viewportWidth*: cint
|
||||||
|
viewportHeight*: cint
|
||||||
|
xViewportStep*: cint # viewport position granularity
|
||||||
|
yViewportStep*: cint
|
||||||
|
maxViewportX*: cint # max viewport origin
|
||||||
|
maxViewportY*: cint
|
||||||
|
viewportFlags*: cint # types of page flipping possible
|
||||||
|
reserved1*: cint
|
||||||
|
reserved2*: cint
|
||||||
|
|
||||||
|
PXDGADevice* = ptr TXDGADevice
|
||||||
|
TXDGADevice*{.final.} = object
|
||||||
|
mode*: TXDGAMode
|
||||||
|
data*: Pcuchar
|
||||||
|
pixmap*: TPixmap
|
||||||
|
|
||||||
|
PXDGAButtonEvent* = ptr TXDGAButtonEvent
|
||||||
|
TXDGAButtonEvent*{.final.} = object
|
||||||
|
theType*: cint
|
||||||
|
serial*: culong
|
||||||
|
display*: PDisplay
|
||||||
|
screen*: cint
|
||||||
|
time*: TTime
|
||||||
|
state*: cuint
|
||||||
|
button*: cuint
|
||||||
|
|
||||||
|
PXDGAKeyEvent* = ptr TXDGAKeyEvent
|
||||||
|
TXDGAKeyEvent*{.final.} = object
|
||||||
|
theType*: cint
|
||||||
|
serial*: culong
|
||||||
|
display*: PDisplay
|
||||||
|
screen*: cint
|
||||||
|
time*: TTime
|
||||||
|
state*: cuint
|
||||||
|
keycode*: cuint
|
||||||
|
|
||||||
|
PXDGAMotionEvent* = ptr TXDGAMotionEvent
|
||||||
|
TXDGAMotionEvent*{.final.} = object
|
||||||
|
theType*: cint
|
||||||
|
serial*: culong
|
||||||
|
display*: PDisplay
|
||||||
|
screen*: cint
|
||||||
|
time*: TTime
|
||||||
|
state*: cuint
|
||||||
|
dx*: cint
|
||||||
|
dy*: cint
|
||||||
|
|
||||||
|
PXDGAEvent* = ptr TXDGAEvent
|
||||||
|
TXDGAEvent*{.final.} = object
|
||||||
|
pad*: array[0..23, clong] # sorry you have to cast if you want access
|
||||||
|
#Case LongInt Of
|
||||||
|
# 0 : (_type : cint);
|
||||||
|
# 1 : (xbutton : TXDGAButtonEvent);
|
||||||
|
# 2 : (xkey : TXDGAKeyEvent);
|
||||||
|
# 3 : (xmotion : TXDGAMotionEvent);
|
||||||
|
# 4 : (pad : Array[0..23] Of clong);
|
||||||
|
|
||||||
|
|
||||||
|
proc XDGAQueryExtension*(dpy: PDisplay, eventBase: Pcint, erroBase: Pcint): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGAQueryVersion*(dpy: PDisplay, majorVersion: Pcint, minorVersion: Pcint): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGAQueryModes*(dpy: PDisplay, screen: cint, num: Pcint): PXDGAMode{.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGASetMode*(dpy: PDisplay, screen: cint, mode: cint): PXDGADevice{.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGAOpenFramebuffer*(dpy: PDisplay, screen: cint): TBool{.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGACloseFramebuffer*(dpy: PDisplay, screen: cint){.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGASetViewport*(dpy: PDisplay, screen: cint, x: cint, y: cint, flags: cint){.
|
||||||
|
CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGAInstallColormap*(dpy: PDisplay, screen: cint, cmap: TColormap){.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGACreateColormap*(dpy: PDisplay, screen: cint, device: PXDGADevice,
|
||||||
|
alloc: cint): TColormap{.CDecl, dynlib: libXxf86dga,
|
||||||
|
importc.}
|
||||||
|
proc XDGASelectInput*(dpy: PDisplay, screen: cint, event_mask: clong){.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGAFillRectangle*(dpy: PDisplay, screen: cint, x: cint, y: cint,
|
||||||
|
width: cuint, height: cuint, color: culong){.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGACopyArea*(dpy: PDisplay, screen: cint, srcx: cint, srcy: cint,
|
||||||
|
width: cuint, height: cuint, dstx: cint, dsty: cint){.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGACopyTransparentArea*(dpy: PDisplay, screen: cint, srcx: cint,
|
||||||
|
srcy: cint, width: cuint, height: cuint,
|
||||||
|
dstx: cint, dsty: cint, key: culong){.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGAGetViewportStatus*(dpy: PDisplay, screen: cint): cint{.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGASync*(dpy: PDisplay, screen: cint){.CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGASetClientVersion*(dpy: PDisplay): TBool{.CDecl, dynlib: libXxf86dga,
|
||||||
|
importc.}
|
||||||
|
proc XDGAChangePixmapMode*(dpy: PDisplay, screen: cint, x: Pcint, y: Pcint,
|
||||||
|
mode: cint){.CDecl, dynlib: libXxf86dga, importc.}
|
||||||
|
proc XDGAKeyEventToXKeyEvent*(dk: PXDGAKeyEvent, xk: PXKeyEvent){.CDecl,
|
||||||
|
dynlib: libXxf86dga, importc.}
|
||||||
|
# implementation
|
||||||
229
lib/wrappers/x11/xf86vmode.nim
Executable file
229
lib/wrappers/x11/xf86vmode.nim
Executable file
|
|
@ -0,0 +1,229 @@
|
||||||
|
# $XFree86: xc/include/extensions/xf86vmode.h,v 3.30 2001/05/07 20:09:50 mvojkovi Exp $
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#Copyright 1995 Kaleb S. KEITHLEY
|
||||||
|
#
|
||||||
|
#Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
#a copy of this software and associated documentation files (the
|
||||||
|
#"Software"), to deal in the Software without restriction, including
|
||||||
|
#without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
#distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
#permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
#the following conditions:
|
||||||
|
#
|
||||||
|
#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 Kaleb S. KEITHLEY 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 Kaleb S. KEITHLEY
|
||||||
|
#shall not be used in advertising or otherwise to promote the sale, use
|
||||||
|
#or other dealings in this Software without prior written authorization
|
||||||
|
#from Kaleb S. KEITHLEY
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# $Xorg: xf86vmode.h,v 1.3 2000/08/18 04:05:46 coskrey Exp $
|
||||||
|
# THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION
|
||||||
|
|
||||||
|
import
|
||||||
|
x, xlib
|
||||||
|
|
||||||
|
const
|
||||||
|
libXxf86vm* = "libXxf86vm.so"
|
||||||
|
|
||||||
|
type
|
||||||
|
PINT32* = ptr int32
|
||||||
|
|
||||||
|
const
|
||||||
|
X_XF86VidModeQueryVersion* = 0
|
||||||
|
X_XF86VidModeGetModeLine* = 1
|
||||||
|
X_XF86VidModeModModeLine* = 2
|
||||||
|
X_XF86VidModeSwitchMode* = 3
|
||||||
|
X_XF86VidModeGetMonitor* = 4
|
||||||
|
X_XF86VidModeLockModeSwitch* = 5
|
||||||
|
X_XF86VidModeGetAllModeLines* = 6
|
||||||
|
X_XF86VidModeAddModeLine* = 7
|
||||||
|
X_XF86VidModeDeleteModeLine* = 8
|
||||||
|
X_XF86VidModeValidateModeLine* = 9
|
||||||
|
X_XF86VidModeSwitchToMode* = 10
|
||||||
|
X_XF86VidModeGetViewPort* = 11
|
||||||
|
X_XF86VidModeSetViewPort* = 12 # new for version 2.x of this extension
|
||||||
|
X_XF86VidModeGetDotClocks* = 13
|
||||||
|
X_XF86VidModeSetClientVersion* = 14
|
||||||
|
X_XF86VidModeSetGamma* = 15
|
||||||
|
X_XF86VidModeGetGamma* = 16
|
||||||
|
X_XF86VidModeGetGammaRamp* = 17
|
||||||
|
X_XF86VidModeSetGammaRamp* = 18
|
||||||
|
X_XF86VidModeGetGammaRampSize* = 19
|
||||||
|
X_XF86VidModeGetPermissions* = 20
|
||||||
|
CLKFLAG_PROGRAMABLE* = 1
|
||||||
|
|
||||||
|
when defined(XF86VIDMODE_EVENTS):
|
||||||
|
const
|
||||||
|
XF86VidModeNotify* = 0
|
||||||
|
XF86VidModeNumberEvents* = (XF86VidModeNotify + 1)
|
||||||
|
XF86VidModeNotifyMask* = 0x00000001
|
||||||
|
XF86VidModeNonEvent* = 0
|
||||||
|
XF86VidModeModeChange* = 1
|
||||||
|
else:
|
||||||
|
const
|
||||||
|
XF86VidModeNumberEvents* = 0
|
||||||
|
const
|
||||||
|
XF86VidModeBadClock* = 0
|
||||||
|
XF86VidModeBadHTimings* = 1
|
||||||
|
XF86VidModeBadVTimings* = 2
|
||||||
|
XF86VidModeModeUnsuitable* = 3
|
||||||
|
XF86VidModeExtensionDisabled* = 4
|
||||||
|
XF86VidModeClientNotLocal* = 5
|
||||||
|
XF86VidModeZoomLocked* = 6
|
||||||
|
XF86VidModeNumberErrors* = (XF86VidModeZoomLocked + 1)
|
||||||
|
XF86VM_READ_PERMISSION* = 1
|
||||||
|
XF86VM_WRITE_PERMISSION* = 2
|
||||||
|
|
||||||
|
type
|
||||||
|
PXF86VidModeModeLine* = ptr TXF86VidModeModeLine
|
||||||
|
TXF86VidModeModeLine*{.final.} = object
|
||||||
|
hdisplay*: cushort
|
||||||
|
hsyncstart*: cushort
|
||||||
|
hsyncend*: cushort
|
||||||
|
htotal*: cushort
|
||||||
|
hskew*: cushort
|
||||||
|
vdisplay*: cushort
|
||||||
|
vsyncstart*: cushort
|
||||||
|
vsyncend*: cushort
|
||||||
|
vtotal*: cushort
|
||||||
|
flags*: cuint
|
||||||
|
privsize*: cint
|
||||||
|
c_private*: PINT32
|
||||||
|
|
||||||
|
PPPXF86VidModeModeInfo* = ptr PPXF86VidModeModeInfo
|
||||||
|
PPXF86VidModeModeInfo* = ptr PXF86VidModeModeInfo
|
||||||
|
PXF86VidModeModeInfo* = ptr TXF86VidModeModeInfo
|
||||||
|
TXF86VidModeModeInfo*{.final.} = object
|
||||||
|
dotclock*: cuint
|
||||||
|
hdisplay*: cushort
|
||||||
|
hsyncstart*: cushort
|
||||||
|
hsyncend*: cushort
|
||||||
|
htotal*: cushort
|
||||||
|
hskew*: cushort
|
||||||
|
vdisplay*: cushort
|
||||||
|
vsyncstart*: cushort
|
||||||
|
vsyncend*: cushort
|
||||||
|
vtotal*: cushort
|
||||||
|
flags*: cuint
|
||||||
|
privsize*: cint
|
||||||
|
c_private*: PINT32
|
||||||
|
|
||||||
|
PXF86VidModeSyncRange* = ptr TXF86VidModeSyncRange
|
||||||
|
TXF86VidModeSyncRange*{.final.} = object
|
||||||
|
hi*: cfloat
|
||||||
|
lo*: cfloat
|
||||||
|
|
||||||
|
PXF86VidModeMonitor* = ptr TXF86VidModeMonitor
|
||||||
|
TXF86VidModeMonitor*{.final.} = object
|
||||||
|
vendor*: cstring
|
||||||
|
model*: cstring
|
||||||
|
EMPTY*: cfloat
|
||||||
|
nhsync*: cuchar
|
||||||
|
hsync*: PXF86VidModeSyncRange
|
||||||
|
nvsync*: cuchar
|
||||||
|
vsync*: PXF86VidModeSyncRange
|
||||||
|
|
||||||
|
PXF86VidModeNotifyEvent* = ptr TXF86VidModeNotifyEvent
|
||||||
|
TXF86VidModeNotifyEvent*{.final.} = object
|
||||||
|
theType*: cint # of event
|
||||||
|
serial*: culong # # of last request processed by server
|
||||||
|
send_event*: TBool # true if this came from a SendEvent req
|
||||||
|
display*: PDisplay # Display the event was read from
|
||||||
|
root*: TWindow # root window of event screen
|
||||||
|
state*: cint # What happened
|
||||||
|
kind*: cint # What happened
|
||||||
|
forced*: TBool # extents of new region
|
||||||
|
time*: TTime # event timestamp
|
||||||
|
|
||||||
|
PXF86VidModeGamma* = ptr TXF86VidModeGamma
|
||||||
|
TXF86VidModeGamma*{.final.} = object
|
||||||
|
red*: cfloat # Red Gamma value
|
||||||
|
green*: cfloat # Green Gamma value
|
||||||
|
blue*: cfloat # Blue Gamma value
|
||||||
|
|
||||||
|
|
||||||
|
when defined(MACROS):
|
||||||
|
proc XF86VidModeSelectNextMode*(disp: PDisplay, scr: cint): TBool
|
||||||
|
proc XF86VidModeSelectPrevMode*(disp: PDisplay, scr: cint): TBool
|
||||||
|
proc XF86VidModeQueryVersion*(dpy: PDisplay, majorVersion: Pcint,
|
||||||
|
minorVersion: Pcint): TBool{.CDecl,
|
||||||
|
dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeQueryExtension*(dpy: PDisplay, event_base: Pcint,
|
||||||
|
error_base: Pcint): TBool{.CDecl,
|
||||||
|
dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeSetClientVersion*(dpy: PDisplay): TBool{.CDecl,
|
||||||
|
dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeGetModeLine*(dpy: PDisplay, screen: cint, dotclock: Pcint,
|
||||||
|
modeline: PXF86VidModeModeLine): TBool{.CDecl,
|
||||||
|
dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeGetAllModeLines*(dpy: PDisplay, screen: cint, modecount: Pcint,
|
||||||
|
modelinesPtr: PPPXF86VidModeModeInfo): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeAddModeLine*(dpy: PDisplay, screen: cint,
|
||||||
|
new_modeline: PXF86VidModeModeInfo,
|
||||||
|
after_modeline: PXF86VidModeModeInfo): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeDeleteModeLine*(dpy: PDisplay, screen: cint,
|
||||||
|
modeline: PXF86VidModeModeInfo): TBool{.CDecl,
|
||||||
|
dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeModModeLine*(dpy: PDisplay, screen: cint,
|
||||||
|
modeline: PXF86VidModeModeLine): TBool{.CDecl,
|
||||||
|
dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeValidateModeLine*(dpy: PDisplay, screen: cint,
|
||||||
|
modeline: PXF86VidModeModeInfo): TStatus{.
|
||||||
|
CDecl, dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeSwitchMode*(dpy: PDisplay, screen: cint, zoom: cint): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeSwitchToMode*(dpy: PDisplay, screen: cint,
|
||||||
|
modeline: PXF86VidModeModeInfo): TBool{.CDecl,
|
||||||
|
dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeLockModeSwitch*(dpy: PDisplay, screen: cint, lock: cint): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeGetMonitor*(dpy: PDisplay, screen: cint,
|
||||||
|
monitor: PXF86VidModeMonitor): TBool{.CDecl,
|
||||||
|
dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeGetViewPort*(dpy: PDisplay, screen: cint, x_return: Pcint,
|
||||||
|
y_return: Pcint): TBool{.CDecl, dynlib: libXxf86vm,
|
||||||
|
importc.}
|
||||||
|
proc XF86VidModeSetViewPort*(dpy: PDisplay, screen: cint, x: cint, y: cint): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeGetDotClocks*(dpy: PDisplay, screen: cint, flags_return: Pcint,
|
||||||
|
number_of_clocks_return: Pcint,
|
||||||
|
max_dot_clock_return: Pcint, clocks_return: PPcint): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeGetGamma*(dpy: PDisplay, screen: cint, Gamma: PXF86VidModeGamma): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeSetGamma*(dpy: PDisplay, screen: cint, Gamma: PXF86VidModeGamma): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeSetGammaRamp*(dpy: PDisplay, screen: cint, size: cint,
|
||||||
|
red_array: Pcushort, green_array: Pcushort,
|
||||||
|
blue_array: Pcushort): TBool{.CDecl,
|
||||||
|
dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeGetGammaRamp*(dpy: PDisplay, screen: cint, size: cint,
|
||||||
|
red_array: Pcushort, green_array: Pcushort,
|
||||||
|
blue_array: Pcushort): TBool{.CDecl,
|
||||||
|
dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeGetGammaRampSize*(dpy: PDisplay, screen: cint, size: Pcint): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86vm, importc.}
|
||||||
|
proc XF86VidModeGetPermissions*(dpy: PDisplay, screen: cint, permissions: Pcint): TBool{.
|
||||||
|
CDecl, dynlib: libXxf86vm, importc.}
|
||||||
|
# implementation
|
||||||
|
|
||||||
|
when defined(MACROS):
|
||||||
|
proc XF86VidModeSelectNextMode(disp: PDisplay, scr: cint): TBool =
|
||||||
|
XF86VidModeSelectNextMode = XF86VidModeSwitchMode(disp, scr, 1)
|
||||||
|
|
||||||
|
proc XF86VidModeSelectPrevMode(disp: PDisplay, scr: cint): TBool =
|
||||||
|
XF86VidModeSelectPrevMode = XF86VidModeSwitchMode(disp, scr, - 1)
|
||||||
307
lib/wrappers/x11/xi.nim
Executable file
307
lib/wrappers/x11/xi.nim
Executable file
|
|
@ -0,0 +1,307 @@
|
||||||
|
#
|
||||||
|
# $Xorg: XI.h,v 1.4 2001/02/09 02:03:23 xorgcvs Exp $
|
||||||
|
#
|
||||||
|
#************************************************************
|
||||||
|
#
|
||||||
|
#Copyright 1989, 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 1989 by Hewlett-Packard Company, Palo Alto, California.
|
||||||
|
#
|
||||||
|
# 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 Hewlett-Packard not be
|
||||||
|
#used in advertising or publicity pertaining to distribution of the
|
||||||
|
#software without specific, written prior permission.
|
||||||
|
#
|
||||||
|
#HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||||
|
#ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||||
|
#HEWLETT-PACKARD 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.
|
||||||
|
#
|
||||||
|
#********************************************************/
|
||||||
|
# $XFree86: xc/include/extensions/XI.h,v 1.5 2001/12/14 19:53:28 dawes Exp $
|
||||||
|
#
|
||||||
|
# Definitions used by the server, library and client
|
||||||
|
#
|
||||||
|
# Pascal Convertion was made by Ido Kannner - kanerido@actcom.net.il
|
||||||
|
#
|
||||||
|
#Histroy:
|
||||||
|
# 2004/10/15 - Fixed a bug of accessing second based records by removing "paced record" and chnaged it to
|
||||||
|
# "reocrd" only.
|
||||||
|
# 2004/10/07 - Removed the "uses X;" line. The unit does not need it.
|
||||||
|
# 2004/10/03 - Conversion from C header to Pascal unit.
|
||||||
|
#
|
||||||
|
|
||||||
|
const
|
||||||
|
sz_xGetExtensionVersionReq* = 8
|
||||||
|
sz_xGetExtensionVersionReply* = 32
|
||||||
|
sz_xListInputDevicesReq* = 4
|
||||||
|
sz_xListInputDevicesReply* = 32
|
||||||
|
sz_xOpenDeviceReq* = 8
|
||||||
|
sz_xOpenDeviceReply* = 32
|
||||||
|
sz_xCloseDeviceReq* = 8
|
||||||
|
sz_xSetDeviceModeReq* = 8
|
||||||
|
sz_xSetDeviceModeReply* = 32
|
||||||
|
sz_xSelectExtensionEventReq* = 12
|
||||||
|
sz_xGetSelectedExtensionEventsReq* = 8
|
||||||
|
sz_xGetSelectedExtensionEventsReply* = 32
|
||||||
|
sz_xChangeDeviceDontPropagateListReq* = 12
|
||||||
|
sz_xGetDeviceDontPropagateListReq* = 8
|
||||||
|
sz_xGetDeviceDontPropagateListReply* = 32
|
||||||
|
sz_xGetDeviceMotionEventsReq* = 16
|
||||||
|
sz_xGetDeviceMotionEventsReply* = 32
|
||||||
|
sz_xChangeKeyboardDeviceReq* = 8
|
||||||
|
sz_xChangeKeyboardDeviceReply* = 32
|
||||||
|
sz_xChangePointerDeviceReq* = 8
|
||||||
|
sz_xChangePointerDeviceReply* = 32
|
||||||
|
sz_xGrabDeviceReq* = 20
|
||||||
|
sz_xGrabDeviceReply* = 32
|
||||||
|
sz_xUngrabDeviceReq* = 12
|
||||||
|
sz_xGrabDeviceKeyReq* = 20
|
||||||
|
sz_xGrabDeviceKeyReply* = 32
|
||||||
|
sz_xUngrabDeviceKeyReq* = 16
|
||||||
|
sz_xGrabDeviceButtonReq* = 20
|
||||||
|
sz_xGrabDeviceButtonReply* = 32
|
||||||
|
sz_xUngrabDeviceButtonReq* = 16
|
||||||
|
sz_xAllowDeviceEventsReq* = 12
|
||||||
|
sz_xGetDeviceFocusReq* = 8
|
||||||
|
sz_xGetDeviceFocusReply* = 32
|
||||||
|
sz_xSetDeviceFocusReq* = 16
|
||||||
|
sz_xGetFeedbackControlReq* = 8
|
||||||
|
sz_xGetFeedbackControlReply* = 32
|
||||||
|
sz_xChangeFeedbackControlReq* = 12
|
||||||
|
sz_xGetDeviceKeyMappingReq* = 8
|
||||||
|
sz_xGetDeviceKeyMappingReply* = 32
|
||||||
|
sz_xChangeDeviceKeyMappingReq* = 8
|
||||||
|
sz_xGetDeviceModifierMappingReq* = 8
|
||||||
|
sz_xSetDeviceModifierMappingReq* = 8
|
||||||
|
sz_xSetDeviceModifierMappingReply* = 32
|
||||||
|
sz_xGetDeviceButtonMappingReq* = 8
|
||||||
|
sz_xGetDeviceButtonMappingReply* = 32
|
||||||
|
sz_xSetDeviceButtonMappingReq* = 8
|
||||||
|
sz_xSetDeviceButtonMappingReply* = 32
|
||||||
|
sz_xQueryDeviceStateReq* = 8
|
||||||
|
sz_xQueryDeviceStateReply* = 32
|
||||||
|
sz_xSendExtensionEventReq* = 16
|
||||||
|
sz_xDeviceBellReq* = 8
|
||||||
|
sz_xSetDeviceValuatorsReq* = 8
|
||||||
|
sz_xSetDeviceValuatorsReply* = 32
|
||||||
|
sz_xGetDeviceControlReq* = 8
|
||||||
|
sz_xGetDeviceControlReply* = 32
|
||||||
|
sz_xChangeDeviceControlReq* = 8
|
||||||
|
sz_xChangeDeviceControlReply* = 32
|
||||||
|
|
||||||
|
const
|
||||||
|
INAME* = "XInputExtension"
|
||||||
|
|
||||||
|
const
|
||||||
|
XI_KEYBOARD* = "KEYBOARD"
|
||||||
|
XI_MOUSE* = "MOUSE"
|
||||||
|
XI_TABLET* = "TABLET"
|
||||||
|
XI_TOUCHSCREEN* = "TOUCHSCREEN"
|
||||||
|
XI_TOUCHPAD* = "TOUCHPAD"
|
||||||
|
XI_BARCODE* = "BARCODE"
|
||||||
|
XI_BUTTONBOX* = "BUTTONBOX"
|
||||||
|
XI_KNOB_BOX* = "KNOB_BOX"
|
||||||
|
XI_ONE_KNOB* = "ONE_KNOB"
|
||||||
|
XI_NINE_KNOB* = "NINE_KNOB"
|
||||||
|
XI_TRACKBALL* = "TRACKBALL"
|
||||||
|
XI_QUADRATURE* = "QUADRATURE"
|
||||||
|
XI_ID_MODULE* = "ID_MODULE"
|
||||||
|
XI_SPACEBALL* = "SPACEBALL"
|
||||||
|
XI_DATAGLOVE* = "DATAGLOVE"
|
||||||
|
XI_EYETRACKER* = "EYETRACKER"
|
||||||
|
XI_CURSORKEYS* = "CURSORKEYS"
|
||||||
|
XI_FOOTMOUSE* = "FOOTMOUSE"
|
||||||
|
|
||||||
|
const
|
||||||
|
Dont_Check* = 0
|
||||||
|
XInput_Initial_Release* = 1
|
||||||
|
XInput_Add_XDeviceBell* = 2
|
||||||
|
XInput_Add_XSetDeviceValuators* = 3
|
||||||
|
XInput_Add_XChangeDeviceControl* = 4
|
||||||
|
|
||||||
|
const
|
||||||
|
XI_Absent* = 0
|
||||||
|
XI_Present* = 1
|
||||||
|
|
||||||
|
const
|
||||||
|
XI_Initial_Release_Major* = 1
|
||||||
|
XI_Initial_Release_Minor* = 0
|
||||||
|
|
||||||
|
const
|
||||||
|
XI_Add_XDeviceBell_Major* = 1
|
||||||
|
XI_Add_XDeviceBell_Minor* = 1
|
||||||
|
|
||||||
|
const
|
||||||
|
XI_Add_XSetDeviceValuators_Major* = 1
|
||||||
|
XI_Add_XSetDeviceValuators_Minor* = 2
|
||||||
|
|
||||||
|
const
|
||||||
|
XI_Add_XChangeDeviceControl_Major* = 1
|
||||||
|
XI_Add_XChangeDeviceControl_Minor* = 3
|
||||||
|
|
||||||
|
const
|
||||||
|
DEVICE_RESOLUTION* = 1
|
||||||
|
|
||||||
|
const
|
||||||
|
NoSuchExtension* = 1
|
||||||
|
|
||||||
|
const
|
||||||
|
COUNT* = 0
|
||||||
|
CREATE* = 1
|
||||||
|
|
||||||
|
const
|
||||||
|
NewPointer* = 0
|
||||||
|
NewKeyboard* = 1
|
||||||
|
|
||||||
|
const
|
||||||
|
XPOINTER* = 0
|
||||||
|
XKEYBOARD* = 1
|
||||||
|
|
||||||
|
const
|
||||||
|
UseXKeyboard* = 0x000000FF
|
||||||
|
|
||||||
|
const
|
||||||
|
IsXPointer* = 0
|
||||||
|
IsXKeyboard* = 1
|
||||||
|
IsXExtensionDevice* = 2
|
||||||
|
|
||||||
|
const
|
||||||
|
AsyncThisDevice* = 0
|
||||||
|
SyncThisDevice* = 1
|
||||||
|
ReplayThisDevice* = 2
|
||||||
|
AsyncOtherDevices* = 3
|
||||||
|
AsyncAll* = 4
|
||||||
|
SyncAll* = 5
|
||||||
|
|
||||||
|
const
|
||||||
|
FollowKeyboard* = 3
|
||||||
|
RevertToFollowKeyboard* = 3
|
||||||
|
|
||||||
|
const
|
||||||
|
DvAccelNum* = int(1) shl 0
|
||||||
|
DvAccelDenom* = int(1) shl 1
|
||||||
|
DvThreshold* = int(1) shl 2
|
||||||
|
|
||||||
|
const
|
||||||
|
DvKeyClickPercent* = int(1) shl 0
|
||||||
|
DvPercent* = int(1) shl 1
|
||||||
|
DvPitch* = int(1) shl 2
|
||||||
|
DvDuration* = int(1) shl 3
|
||||||
|
DvLed* = int(1) shl 4
|
||||||
|
DvLedMode* = int(1) shl 5
|
||||||
|
DvKey* = int(1) shl 6
|
||||||
|
DvAutoRepeatMode* = 1 shl 7
|
||||||
|
|
||||||
|
const
|
||||||
|
DvString* = int(1) shl 0
|
||||||
|
|
||||||
|
const
|
||||||
|
DvInteger* = int(1) shl 0
|
||||||
|
|
||||||
|
const
|
||||||
|
DeviceMode* = int(1) shl 0
|
||||||
|
Relative* = 0
|
||||||
|
Absolute* = 1 # Merged from Metrolink tree for XINPUT stuff
|
||||||
|
TS_Raw* = 57
|
||||||
|
TS_Scaled* = 58
|
||||||
|
SendCoreEvents* = 59
|
||||||
|
DontSendCoreEvents* = 60 # End of merged section
|
||||||
|
|
||||||
|
const
|
||||||
|
ProximityState* = int(1) shl 1
|
||||||
|
InProximity* = int(0) shl 1
|
||||||
|
OutOfProximity* = int(1) shl 1
|
||||||
|
|
||||||
|
const
|
||||||
|
AddToList* = 0
|
||||||
|
DeleteFromList* = 1
|
||||||
|
|
||||||
|
const
|
||||||
|
KeyClass* = 0
|
||||||
|
ButtonClass* = 1
|
||||||
|
ValuatorClass* = 2
|
||||||
|
FeedbackClass* = 3
|
||||||
|
ProximityClass* = 4
|
||||||
|
FocusClass* = 5
|
||||||
|
OtherClass* = 6
|
||||||
|
|
||||||
|
const
|
||||||
|
KbdFeedbackClass* = 0
|
||||||
|
PtrFeedbackClass* = 1
|
||||||
|
StringFeedbackClass* = 2
|
||||||
|
IntegerFeedbackClass* = 3
|
||||||
|
LedFeedbackClass* = 4
|
||||||
|
BellFeedbackClass* = 5
|
||||||
|
|
||||||
|
const
|
||||||
|
devicePointerMotionHint* = 0
|
||||||
|
deviceButton1Motion* = 1
|
||||||
|
deviceButton2Motion* = 2
|
||||||
|
deviceButton3Motion* = 3
|
||||||
|
deviceButton4Motion* = 4
|
||||||
|
deviceButton5Motion* = 5
|
||||||
|
deviceButtonMotion* = 6
|
||||||
|
deviceButtonGrab* = 7
|
||||||
|
deviceOwnerGrabButton* = 8
|
||||||
|
noExtensionEvent* = 9
|
||||||
|
|
||||||
|
const
|
||||||
|
XI_BadDevice* = 0
|
||||||
|
XI_BadEvent* = 1
|
||||||
|
XI_BadMode* = 2
|
||||||
|
XI_DeviceBusy* = 3
|
||||||
|
XI_BadClass* = 4 # Make XEventClass be a CARD32 for 64 bit servers. Don't affect client
|
||||||
|
# definition of XEventClass since that would be a library interface change.
|
||||||
|
# See the top of X.h for more _XSERVER64 magic.
|
||||||
|
#
|
||||||
|
|
||||||
|
when defined(XSERVER64):
|
||||||
|
type
|
||||||
|
XEventClass* = CARD32
|
||||||
|
else:
|
||||||
|
type
|
||||||
|
XEventClass* = int32
|
||||||
|
#******************************************************************
|
||||||
|
# *
|
||||||
|
# * Extension version structure.
|
||||||
|
# *
|
||||||
|
#
|
||||||
|
|
||||||
|
type
|
||||||
|
PXExtensionVersion* = ptr TXExtensionVersion
|
||||||
|
TXExtensionVersion*{.final.} = object
|
||||||
|
present*: int16
|
||||||
|
major_version*: int16
|
||||||
|
minor_version*: int16
|
||||||
|
|
||||||
|
|
||||||
|
# implementation
|
||||||
25
lib/wrappers/x11/xinerama.nim
Executable file
25
lib/wrappers/x11/xinerama.nim
Executable file
|
|
@ -0,0 +1,25 @@
|
||||||
|
# Converted from X11/Xinerama.h
|
||||||
|
import
|
||||||
|
xlib
|
||||||
|
|
||||||
|
const
|
||||||
|
xineramaLib = "libXinerama.so"
|
||||||
|
|
||||||
|
type
|
||||||
|
PXineramaScreenInfo* = ptr TXineramaScreenInfo
|
||||||
|
TXineramaScreenInfo*{.final.} = object
|
||||||
|
screen_number*: cint
|
||||||
|
x_org*: int16
|
||||||
|
y_org*: int16
|
||||||
|
width*: int16
|
||||||
|
height*: int16
|
||||||
|
|
||||||
|
|
||||||
|
proc XineramaQueryExtension*(dpy: PDisplay, event_base: Pcint, error_base: Pcint): TBool{.
|
||||||
|
cdecl, dynlib: xineramaLib, importc.}
|
||||||
|
proc XineramaQueryVersion*(dpy: PDisplay, major: Pcint, minor: Pcint): TStatus{.
|
||||||
|
cdecl, dynlib: xineramaLib, importc.}
|
||||||
|
proc XineramaIsActive*(dpy: PDisplay): TBool{.cdecl, dynlib: xineramaLib, importc.}
|
||||||
|
proc XineramaQueryScreens*(dpy: PDisplay, number: Pcint): PXineramaScreenInfo{.
|
||||||
|
cdecl, dynlib: xineramaLib, importc.}
|
||||||
|
|
||||||
2409
lib/wrappers/x11/xkb.nim
Executable file
2409
lib/wrappers/x11/xkb.nim
Executable file
File diff suppressed because it is too large
Load diff
699
lib/wrappers/x11/xkblib.nim
Executable file
699
lib/wrappers/x11/xkblib.nim
Executable file
|
|
@ -0,0 +1,699 @@
|
||||||
|
# $Xorg: XKBlib.h,v 1.6 2000/08/17 19:45:03 cpqbld Exp $
|
||||||
|
#************************************************************
|
||||||
|
#Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
|
||||||
|
#
|
||||||
|
#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 Silicon Graphics not be
|
||||||
|
#used in advertising or publicity pertaining to distribution
|
||||||
|
#of the software without specific prior written permission.
|
||||||
|
#Silicon Graphics makes no representation about the suitability
|
||||||
|
#of this software for any purpose. It is provided "as is"
|
||||||
|
#without any express or implied warranty.
|
||||||
|
#
|
||||||
|
#SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||||
|
#SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
|
#AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
||||||
|
#GRAPHICS 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.
|
||||||
|
#
|
||||||
|
#********************************************************/
|
||||||
|
# $XFree86: xc/lib/X11/XKBlib.h,v 3.3 2001/08/01 00:44:38 tsi Exp $
|
||||||
|
#
|
||||||
|
# Pascal Convertion was made by Ido Kannner - kanerido@actcom.net.il
|
||||||
|
#
|
||||||
|
#Thanks:
|
||||||
|
# I want to thanks to oliebol for putting up with all of the problems that was found
|
||||||
|
# while translating this code. ;)
|
||||||
|
#
|
||||||
|
# I want to thanks #fpc channel in freenode irc, for helping me, and to put up with my
|
||||||
|
# wierd questions ;)
|
||||||
|
#
|
||||||
|
# Thanks for mmc in #xlib on freenode irc And so for the channel itself for the helping me to
|
||||||
|
# understanding some of the problems I had converting this headers and pointing me to resources
|
||||||
|
# that helped translating this headers.
|
||||||
|
#
|
||||||
|
# Ido
|
||||||
|
#
|
||||||
|
#History:
|
||||||
|
# 2004/10/15 - Fixed a bug of accessing second based records by removing "paced record" and
|
||||||
|
# chnaged it to "reocrd" only.
|
||||||
|
# 2004/10/10 - Added to TXkbGetAtomNameFunc and TXkbInternAtomFunc the cdecl call.
|
||||||
|
# 2004/10/06 - 09 - Convertion `from` the c header of XKBlib.h
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
import
|
||||||
|
X, Xlib, XKB
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbAnyEvent* = ptr TXkbAnyEvent
|
||||||
|
TXkbAnyEvent*{.final.} = object
|
||||||
|
theType*: int16 # XkbAnyEvent
|
||||||
|
serial*: int32 # # of last req processed by server
|
||||||
|
send_event*: bool # is this `from` a SendEvent request?
|
||||||
|
display*: PDisplay # Display the event was read `from`
|
||||||
|
time*: TTime # milliseconds;
|
||||||
|
xkb_type*: int16 # XKB event minor code
|
||||||
|
device*: int16 # device ID
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbNewKeyboardNotifyEvent* = ptr TXkbNewKeyboardNotifyEvent
|
||||||
|
TXkbNewKeyboardNotifyEvent*{.final.} = object
|
||||||
|
theType*: int16 # XkbAnyEvent
|
||||||
|
serial*: int32 # of last req processed by server
|
||||||
|
send_event*: bool # is this `from` a SendEvent request?
|
||||||
|
display*: PDisplay # Display the event was read `from`
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
xkb_type*: int16 # XkbNewKeyboardNotify
|
||||||
|
device*: int16 # device ID
|
||||||
|
old_device*: int16 # device ID of previous keyboard
|
||||||
|
min_key_code*: int16 # minimum key code
|
||||||
|
max_key_code*: int16 # maximum key code
|
||||||
|
old_min_key_code*: int16 # min key code of previous kbd
|
||||||
|
old_max_key_code*: int16 # max key code of previous kbd
|
||||||
|
changed*: int16 # changed aspects of the keyboard
|
||||||
|
req_major*: int8 # major and minor opcode of req
|
||||||
|
req_minor*: int8 # that caused change, if applicable
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbMapNotifyEvent* = ptr TXkbMapNotifyEvent
|
||||||
|
TXkbMapNotifyEvent*{.final.} = object
|
||||||
|
theType*: int16 # XkbAnyEvent
|
||||||
|
serial*: int32 # of last req processed by server
|
||||||
|
send_event*: bool # is this `from` a SendEvent request
|
||||||
|
display*: PDisplay # Display the event was read `from`
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
xkb_type*: int16 # XkbMapNotify
|
||||||
|
device*: int16 # device ID
|
||||||
|
changed*: int16 # fields which have been changed
|
||||||
|
flags*: int16 # reserved
|
||||||
|
first_type*: int16 # first changed key type
|
||||||
|
num_types*: int16 # number of changed key types
|
||||||
|
min_key_code*: TKeyCode
|
||||||
|
max_key_code*: TKeyCode
|
||||||
|
first_key_sym*: TKeyCode
|
||||||
|
first_key_act*: TKeyCode
|
||||||
|
first_key_behavior*: TKeyCode
|
||||||
|
first_key_explicit*: TKeyCode
|
||||||
|
first_modmap_key*: TKeyCode
|
||||||
|
first_vmodmap_key*: TKeyCode
|
||||||
|
num_key_syms*: int16
|
||||||
|
num_key_acts*: int16
|
||||||
|
num_key_behaviors*: int16
|
||||||
|
num_key_explicit*: int16
|
||||||
|
num_modmap_keys*: int16
|
||||||
|
num_vmodmap_keys*: int16
|
||||||
|
vmods*: int16 # mask of changed virtual mods
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbStateNotifyEvent* = ptr TXkbStateNotifyEvent
|
||||||
|
TXkbStateNotifyEvent*{.final.} = object
|
||||||
|
theType*: int16 # XkbAnyEvent
|
||||||
|
serial*: int32 # # of last req processed by server
|
||||||
|
send_event*: bool # is this `from` a SendEvent request?
|
||||||
|
display*: PDisplay # Display the event was read `from`
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
xkb_type*: int16 # XkbStateNotify
|
||||||
|
device*: int16 # device ID
|
||||||
|
changed*: int16 # mask of changed state components
|
||||||
|
group*: int16 # keyboard group
|
||||||
|
base_group*: int16 # base keyboard group
|
||||||
|
latched_group*: int16 # latched keyboard group
|
||||||
|
locked_group*: int16 # locked keyboard group
|
||||||
|
mods*: int16 # modifier state
|
||||||
|
base_mods*: int16 # base modifier state
|
||||||
|
latched_mods*: int16 # latched modifiers
|
||||||
|
locked_mods*: int16 # locked modifiers
|
||||||
|
compat_state*: int16 # compatibility state
|
||||||
|
grab_mods*: int8 # mods used for grabs
|
||||||
|
compat_grab_mods*: int8 # grab mods for non-XKB clients
|
||||||
|
lookup_mods*: int8 # mods sent to clients
|
||||||
|
compat_lookup_mods*: int8 # mods sent to non-XKB clients
|
||||||
|
ptr_buttons*: int16 # pointer button state
|
||||||
|
keycode*: TKeyCode # keycode that caused the change
|
||||||
|
event_type*: int8 # KeyPress or KeyRelease
|
||||||
|
req_major*: int8 # Major opcode of request
|
||||||
|
req_minor*: int8 # Minor opcode of request
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbControlsNotifyEvent* = ptr TXkbControlsNotifyEvent
|
||||||
|
TXkbControlsNotifyEvent*{.final.} = object
|
||||||
|
theType*: int16 # XkbAnyEvent
|
||||||
|
serial*: int32 # of last req processed by server
|
||||||
|
send_event*: bool # is this `from` a SendEvent request?
|
||||||
|
display*: PDisplay # Display the event was read `from`
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
xkb_type*: int16 # XkbControlsNotify
|
||||||
|
device*: int16 # device ID
|
||||||
|
changed_ctrls*: int16 # controls with changed sub-values
|
||||||
|
enabled_ctrls*: int16 # controls currently enabled
|
||||||
|
enabled_ctrl_changes*: int16 # controls just {en,dis}abled
|
||||||
|
num_groups*: int16 # total groups on keyboard
|
||||||
|
keycode*: TKeyCode # key that caused change or 0
|
||||||
|
event_type*: int8 # type of event that caused change
|
||||||
|
req_major*: int8 # if keycode==0, major and minor
|
||||||
|
req_minor*: int8 # opcode of req that caused change
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbIndicatorNotifyEvent* = ptr TXkbIndicatorNotifyEvent
|
||||||
|
TXkbIndicatorNotifyEvent*{.final.} = object
|
||||||
|
theType*: int16 # XkbAnyEvent
|
||||||
|
serial*: int32 # of last req processed by server
|
||||||
|
send_event*: bool # is this `from` a SendEvent request?
|
||||||
|
display*: PDisplay # Display the event was read `from`
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
xkb_type*: int16 # XkbIndicatorNotify
|
||||||
|
device*: int16 # device
|
||||||
|
changed*: int16 # indicators with new state or map
|
||||||
|
state*: int16 # current state of all indicators
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbNamesNotifyEvent* = ptr TXkbNamesNotifyEvent
|
||||||
|
TXkbNamesNotifyEvent*{.final.} = object
|
||||||
|
theType*: int16 # XkbAnyEvent
|
||||||
|
serial*: int32 # of last req processed by server
|
||||||
|
send_event*: bool # is this `from` a SendEvent request?
|
||||||
|
display*: PDisplay # Display the event was read `from`
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
xkb_type*: int16 # XkbNamesNotify
|
||||||
|
device*: int16 # device ID
|
||||||
|
changed*: int32 # names that have changed
|
||||||
|
first_type*: int16 # first key type with new name
|
||||||
|
num_types*: int16 # number of key types with new names
|
||||||
|
first_lvl*: int16 # first key type new new level names
|
||||||
|
num_lvls*: int16 # # of key types w/new level names
|
||||||
|
num_aliases*: int16 # total number of key aliases
|
||||||
|
num_radio_groups*: int16 # total number of radio groups
|
||||||
|
changed_vmods*: int16 # virtual modifiers with new names
|
||||||
|
changed_groups*: int16 # groups with new names
|
||||||
|
changed_indicators*: int16 # indicators with new names
|
||||||
|
first_key*: int16 # first key with new name
|
||||||
|
num_keys*: int16 # number of keys with new names
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbCompatMapNotifyEvent* = ptr TXkbCompatMapNotifyEvent
|
||||||
|
TXkbCompatMapNotifyEvent*{.final.} = object
|
||||||
|
theType*: int16 # XkbAnyEvent
|
||||||
|
serial*: int32 # of last req processed by server
|
||||||
|
send_event*: bool # is this `from` a SendEvent request?
|
||||||
|
display*: PDisplay # Display the event was read `from`
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
xkb_type*: int16 # XkbCompatMapNotify
|
||||||
|
device*: int16 # device ID
|
||||||
|
changed_groups*: int16 # groups with new compat maps
|
||||||
|
first_si*: int16 # first new symbol interp
|
||||||
|
num_si*: int16 # number of new symbol interps
|
||||||
|
num_total_si*: int16 # total # of symbol interps
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbBellNotifyEvent* = ptr TXkbBellNotifyEvent
|
||||||
|
TXkbBellNotifyEvent*{.final.} = object
|
||||||
|
theType*: int16 # XkbAnyEvent
|
||||||
|
serial*: int32 # of last req processed by server
|
||||||
|
send_event*: bool # is this `from` a SendEvent request?
|
||||||
|
display*: PDisplay # Display the event was read `from`
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
xkb_type*: int16 # XkbBellNotify
|
||||||
|
device*: int16 # device ID
|
||||||
|
percent*: int16 # requested volume as a % of maximum
|
||||||
|
pitch*: int16 # requested pitch in Hz
|
||||||
|
duration*: int16 # requested duration in useconds
|
||||||
|
bell_class*: int16 # (input extension) feedback class
|
||||||
|
bell_id*: int16 # (input extension) ID of feedback
|
||||||
|
name*: TAtom # "name" of requested bell
|
||||||
|
window*: TWindow # window associated with event
|
||||||
|
event_only*: bool # "event only" requested
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbActionMessageEvent* = ptr TXkbActionMessageEvent
|
||||||
|
TXkbActionMessageEvent*{.final.} = object
|
||||||
|
theType*: int16 # XkbAnyEvent
|
||||||
|
serial*: int32 # of last req processed by server
|
||||||
|
send_event*: bool # is this `from` a SendEvent request?
|
||||||
|
display*: PDisplay # Display the event was read `from`
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
xkb_type*: int16 # XkbActionMessage
|
||||||
|
device*: int16 # device ID
|
||||||
|
keycode*: TKeyCode # key that generated the event
|
||||||
|
press*: bool # true if act caused by key press
|
||||||
|
key_event_follows*: bool # true if key event also generated
|
||||||
|
group*: int16 # effective group
|
||||||
|
mods*: int16 # effective mods
|
||||||
|
message*: array[0..XkbActionMessageLength, Char] # message -- leave space for NUL
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbAccessXNotifyEvent* = ptr TXkbAccessXNotifyEvent
|
||||||
|
TXkbAccessXNotifyEvent*{.final.} = object
|
||||||
|
theType*: int16 # XkbAnyEvent
|
||||||
|
serial*: int32 # of last req processed by server
|
||||||
|
send_event*: bool # is this `from` a SendEvent request?
|
||||||
|
display*: PDisplay # Display the event was read `from`
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
xkb_type*: int16 # XkbAccessXNotify
|
||||||
|
device*: int16 # device ID
|
||||||
|
detail*: int16 # XkbAXN_*
|
||||||
|
keycode*: int16 # key of event
|
||||||
|
sk_delay*: int16 # current slow keys delay
|
||||||
|
debounce_delay*: int16 # current debounce delay
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbExtensionDeviceNotifyEvent* = ptr TXkbExtensionDeviceNotifyEvent
|
||||||
|
TXkbExtensionDeviceNotifyEvent*{.final.} = object
|
||||||
|
theType*: int16 # XkbAnyEvent
|
||||||
|
serial*: int32 # of last req processed by server
|
||||||
|
send_event*: bool # is this `from` a SendEvent request?
|
||||||
|
display*: PDisplay # Display the event was read `from`
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
xkb_type*: int16 # XkbExtensionDeviceNotify
|
||||||
|
device*: int16 # device ID
|
||||||
|
reason*: int16 # reason for the event
|
||||||
|
supported*: int16 # mask of supported features
|
||||||
|
unsupported*: int16 # mask of unsupported features
|
||||||
|
# that some app tried to use
|
||||||
|
first_btn*: int16 # first button that changed
|
||||||
|
num_btns*: int16 # range of buttons changed
|
||||||
|
leds_defined*: int16 # indicators with names or maps
|
||||||
|
led_state*: int16 # current state of the indicators
|
||||||
|
led_class*: int16 # feedback class for led changes
|
||||||
|
led_id*: int16 # feedback id for led changes
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbEvent* = ptr TXkbEvent
|
||||||
|
TXkbEvent*{.final.} = object
|
||||||
|
theType*: int16
|
||||||
|
any*: TXkbAnyEvent
|
||||||
|
new_kbd*: TXkbNewKeyboardNotifyEvent
|
||||||
|
map*: TXkbMapNotifyEvent
|
||||||
|
state*: TXkbStateNotifyEvent
|
||||||
|
ctrls*: TXkbControlsNotifyEvent
|
||||||
|
indicators*: TXkbIndicatorNotifyEvent
|
||||||
|
names*: TXkbNamesNotifyEvent
|
||||||
|
compat*: TXkbCompatMapNotifyEvent
|
||||||
|
bell*: TXkbBellNotifyEvent
|
||||||
|
message*: TXkbActionMessageEvent
|
||||||
|
accessx*: TXkbAccessXNotifyEvent
|
||||||
|
device*: TXkbExtensionDeviceNotifyEvent
|
||||||
|
core*: TXEvent
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXkbKbdDpyStatePtr* = ptr TXkbKbdDpyStateRec
|
||||||
|
TXkbKbdDpyStateRec*{.final.} = object # XkbOpenDisplay error codes
|
||||||
|
|
||||||
|
const
|
||||||
|
XkbOD_Success* = 0
|
||||||
|
XkbOD_BadLibraryVersion* = 1
|
||||||
|
XkbOD_ConnectionRefused* = 2
|
||||||
|
XkbOD_NonXkbServer* = 3
|
||||||
|
XkbOD_BadServerVersion* = 4 # Values for XlibFlags
|
||||||
|
|
||||||
|
const
|
||||||
|
XkbLC_ForceLatin1Lookup* = 1 shl 0
|
||||||
|
XkbLC_ConsumeLookupMods* = 1 shl 1
|
||||||
|
XkbLC_AlwaysConsumeShiftAndLock* = 1 shl 2
|
||||||
|
XkbLC_IgnoreNewKeyboards* = 1 shl 3
|
||||||
|
XkbLC_ControlFallback* = 1 shl 4
|
||||||
|
XkbLC_ConsumeKeysOnComposeFail* = 1 shl 29
|
||||||
|
XkbLC_ComposeLED* = 1 shl 30
|
||||||
|
XkbLC_BeepOnComposeFail* = 1 shl 31
|
||||||
|
XkbLC_AllComposeControls* = 0xC0000000
|
||||||
|
XkbLC_AllControls* = 0xC000001F
|
||||||
|
|
||||||
|
proc XkbIgnoreExtension*(ignore: bool): bool{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbIgnoreExtension".}
|
||||||
|
proc XkbOpenDisplay*(name: cstring, ev_rtrn, err_rtrn, major_rtrn, minor_rtrn,
|
||||||
|
reason: ptr int16): PDisplay{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbOpenDisplay".}
|
||||||
|
proc XkbQueryExtension*(dpy: PDisplay, opcodeReturn, eventBaseReturn,
|
||||||
|
errorBaseReturn, majorRtrn, minorRtrn: ptr int16): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbQueryExtension".}
|
||||||
|
proc XkbUseExtension*(dpy: PDisplay, major_rtrn, minor_rtrn: ptr int16): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbUseExtension".}
|
||||||
|
proc XkbLibraryVersion*(libMajorRtrn, libMinorRtrn: ptr int16): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbLibraryVersion".}
|
||||||
|
proc XkbSetXlibControls*(dpy: PDisplay, affect, values: int16): int16{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbSetXlibControls".}
|
||||||
|
proc XkbGetXlibControls*(dpy: PDisplay): int16{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbGetXlibControls".}
|
||||||
|
type
|
||||||
|
TXkbInternAtomFunc* = proc (dpy: PDisplay, name: cstring, only_if_exists: bool): TAtom{.
|
||||||
|
cdecl.}
|
||||||
|
|
||||||
|
type
|
||||||
|
TXkbGetAtomNameFunc* = proc (dpy: PDisplay, atom: TAtom): cstring{.cdecl.}
|
||||||
|
|
||||||
|
proc XkbSetAtomFuncs*(getAtom: TXkbInternAtomFunc, getName: TXkbGetAtomNameFunc){.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbSetAtomFuncs".}
|
||||||
|
proc XkbKeycodeToKeysym*(dpy: PDisplay, kc: TKeyCode, group, level: int16): TKeySym{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbKeycodeToKeysym".}
|
||||||
|
proc XkbKeysymToModifiers*(dpy: PDisplay, ks: TKeySym): int16{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbKeysymToModifiers".}
|
||||||
|
proc XkbLookupKeySym*(dpy: PDisplay, keycode: TKeyCode,
|
||||||
|
modifiers, modifiers_return: int16, keysym_return: PKeySym): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbLookupKeySym".}
|
||||||
|
proc XkbLookupKeyBinding*(dpy: PDisplay, sym_rtrn: TKeySym, mods: int16,
|
||||||
|
buffer: cstring, nbytes: int16, extra_rtrn: ptr int16): int16{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbLookupKeyBinding".}
|
||||||
|
proc XkbTranslateKeyCode*(xkb: PXkbDescPtr, keycode: TKeyCode,
|
||||||
|
modifiers, modifiers_return: int16,
|
||||||
|
keysym_return: PKeySym): bool{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbTranslateKeyCode".}
|
||||||
|
proc XkbTranslateKeySym*(dpy: PDisplay, sym_return: TKeySym, modifiers: int16,
|
||||||
|
buffer: cstring, nbytes: int16, extra_rtrn: ptr int16): int16{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbTranslateKeySym".}
|
||||||
|
proc XkbSetAutoRepeatRate*(dpy: PDisplay, deviceSpec, delay, interval: int16): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbSetAutoRepeatRate".}
|
||||||
|
proc XkbGetAutoRepeatRate*(dpy: PDisplay, deviceSpec: int16,
|
||||||
|
delayRtrn, intervalRtrn: PWord): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbGetAutoRepeatRate".}
|
||||||
|
proc XkbChangeEnabledControls*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbChangeEnabledControls".}
|
||||||
|
proc XkbDeviceBell*(dpy: PDisplay, win: TWindow,
|
||||||
|
deviceSpec, bellClass, bellID, percent: int16, name: TAtom): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbDeviceBell".}
|
||||||
|
proc XkbForceDeviceBell*(dpy: PDisplay,
|
||||||
|
deviceSpec, bellClass, bellID, percent: int16): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbForceDeviceBell".}
|
||||||
|
proc XkbDeviceBellEvent*(dpy: PDisplay, win: TWindow,
|
||||||
|
deviceSpec, bellClass, bellID, percent: int16,
|
||||||
|
name: TAtom): bool{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbDeviceBellEvent".}
|
||||||
|
proc XkbBell*(dpy: PDisplay, win: TWindow, percent: int16, name: TAtom): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbBell".}
|
||||||
|
proc XkbForceBell*(dpy: PDisplay, percent: int16): bool{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbForceBell".}
|
||||||
|
proc XkbBellEvent*(dpy: PDisplay, win: TWindow, percent: int16, name: TAtom): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbBellEvent".}
|
||||||
|
proc XkbSelectEvents*(dpy: PDisplay, deviceID, affect, values: int16): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbSelectEvents".}
|
||||||
|
proc XkbSelectEventDetails*(dpy: PDisplay, deviceID, eventType: int16,
|
||||||
|
affect, details: int32): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbSelectEventDetails".}
|
||||||
|
proc XkbNoteMapChanges*(old: PXkbMapChangesPtr, new: PXkbMapNotifyEvent,
|
||||||
|
wanted: int16){.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbNoteMapChanges".}
|
||||||
|
proc XkbNoteNameChanges*(old: PXkbNameChangesPtr, new: PXkbNamesNotifyEvent,
|
||||||
|
wanted: int16){.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbNoteNameChanges".}
|
||||||
|
proc XkbGetIndicatorState*(dpy: PDisplay, deviceSpec: int16, pStateRtrn: PWord): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetIndicatorState".}
|
||||||
|
proc XkbGetDeviceIndicatorState*(dpy: PDisplay,
|
||||||
|
deviceSpec, ledClass, ledID: int16,
|
||||||
|
pStateRtrn: PWord): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbGetDeviceIndicatorState".}
|
||||||
|
proc XkbGetIndicatorMap*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetIndicatorMap".}
|
||||||
|
proc XkbSetIndicatorMap*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbSetIndicatorMap".}
|
||||||
|
proc XkbNoteIndicatorMapChanges*(o, n: PXkbIndicatorChangesPtr, w: int16)
|
||||||
|
proc XkbNoteIndicatorStateChanges*(o, n: PXkbIndicatorChangesPtr, w: int16)
|
||||||
|
proc XkbGetIndicatorMapChanges*(d: PDisplay, x: PXkbDescPtr,
|
||||||
|
c: PXkbIndicatorChangesPtr): TStatus
|
||||||
|
proc XkbChangeIndicatorMaps*(d: PDisplay, x: PXkbDescPtr,
|
||||||
|
c: PXkbIndicatorChangesPtr): bool
|
||||||
|
proc XkbGetNamedIndicator*(dpy: PDisplay, name: TAtom, pNdxRtrn: ptr int16,
|
||||||
|
pStateRtrn: ptr bool, pMapRtrn: PXkbIndicatorMapPtr,
|
||||||
|
pRealRtrn: ptr bool): bool{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbGetNamedIndicator".}
|
||||||
|
proc XkbGetNamedDeviceIndicator*(dpy: PDisplay,
|
||||||
|
deviceSpec, ledClass, ledID: int16,
|
||||||
|
name: TAtom, pNdxRtrn: ptr int16,
|
||||||
|
pStateRtrn: ptr bool,
|
||||||
|
pMapRtrn: PXkbIndicatorMapPtr,
|
||||||
|
pRealRtrn: ptr bool): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbGetNamedDeviceIndicator".}
|
||||||
|
proc XkbSetNamedIndicator*(dpy: PDisplay, name: TAtom,
|
||||||
|
changeState, state, createNewMap: bool,
|
||||||
|
pMap: PXkbIndicatorMapPtr): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbSetNamedIndicator".}
|
||||||
|
proc XkbSetNamedDeviceIndicator*(dpy: PDisplay,
|
||||||
|
deviceSpec, ledClass, ledID: int16,
|
||||||
|
name: TAtom,
|
||||||
|
changeState, state, createNewMap: bool,
|
||||||
|
pMap: PXkbIndicatorMapPtr): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbSetNamedDeviceIndicator".}
|
||||||
|
proc XkbLockModifiers*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbLockModifiers".}
|
||||||
|
proc XkbLatchModifiers*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbLatchModifiers".}
|
||||||
|
proc XkbLockGroup*(dpy: PDisplay, deviceSpec, group: int16): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbLockGroup".}
|
||||||
|
proc XkbLatchGroup*(dpy: PDisplay, deviceSpec, group: int16): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbLatchGroup".}
|
||||||
|
proc XkbSetServerInternalMods*(dpy: PDisplay, deviceSpec, affectReal,
|
||||||
|
realValues, affectVirtual, virtualValues: int16): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbSetServerInternalMods".}
|
||||||
|
proc XkbSetIgnoreLockMods*(dpy: PDisplay, deviceSpec, affectReal, realValues,
|
||||||
|
affectVirtual, virtualValues: int16): bool{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbSetIgnoreLockMods".}
|
||||||
|
proc XkbVirtualModsToReal*(dpy: PDisplay, virtual_mask: int16, mask_rtrn: PWord): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbVirtualModsToReal".}
|
||||||
|
proc XkbComputeEffectiveMap*(xkb: PXkbDescPtr, theType: PXkbKeyTypePtr,
|
||||||
|
map_rtrn: PByte): bool{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbComputeEffectiveMap".}
|
||||||
|
proc XkbInitCanonicalKeyTypes*(xkb: PXkbDescPtr, which: int16, keypadVMod: int16): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbInitCanonicalKeyTypes".}
|
||||||
|
proc XkbAllocKeyboard*(): PXkbDescPtr{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbAllocKeyboard".}
|
||||||
|
proc XkbFreeKeyboard*(xkb: PXkbDescPtr, which: int16, freeDesc: bool){.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbFreeKeyboard".}
|
||||||
|
proc XkbAllocClientMap*(xkb: PXkbDescPtr, which, nTypes: int16): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbAllocClientMap".}
|
||||||
|
proc XkbAllocServerMap*(xkb: PXkbDescPtr, which, nActions: int16): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbAllocServerMap".}
|
||||||
|
proc XkbFreeClientMap*(xkb: PXkbDescPtr, what: int16, freeMap: bool){.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbFreeClientMap".}
|
||||||
|
proc XkbFreeServerMap*(xkb: PXkbDescPtr, what: int16, freeMap: bool){.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbFreeServerMap".}
|
||||||
|
proc XkbAddKeyType*(xkb: PXkbDescPtr, name: TAtom, map_count: int16,
|
||||||
|
want_preserve: bool, num_lvls: int16): PXkbKeyTypePtr{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbAddKeyType".}
|
||||||
|
proc XkbAllocIndicatorMaps*(xkb: PXkbDescPtr): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbAllocIndicatorMaps".}
|
||||||
|
proc XkbFreeIndicatorMaps*(xkb: PXkbDescPtr){.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbFreeIndicatorMaps".}
|
||||||
|
proc XkbGetMap*(dpy: PDisplay, which, deviceSpec: int16): PXkbDescPtr{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbGetMap".}
|
||||||
|
proc XkbGetUpdatedMap*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetUpdatedMap".}
|
||||||
|
proc XkbGetMapChanges*(dpy: PDisplay, xkb: PXkbDescPtr,
|
||||||
|
changes: PXkbMapChangesPtr): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbGetMapChanges".}
|
||||||
|
proc XkbRefreshKeyboardMapping*(event: PXkbMapNotifyEvent): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbRefreshKeyboardMapping".}
|
||||||
|
proc XkbGetKeyTypes*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetKeyTypes".}
|
||||||
|
proc XkbGetKeySyms*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetKeySyms".}
|
||||||
|
proc XkbGetKeyActions*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetKeyActions".}
|
||||||
|
proc XkbGetKeyBehaviors*(dpy: PDisplay, firstKey, nKeys: int16,
|
||||||
|
desc: PXkbDescPtr): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbGetKeyBehaviors".}
|
||||||
|
proc XkbGetVirtualMods*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetVirtualMods".}
|
||||||
|
proc XkbGetKeyExplicitComponents*(dpy: PDisplay, firstKey, nKeys: int16,
|
||||||
|
desc: PXkbDescPtr): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbGetKeyExplicitComponents".}
|
||||||
|
proc XkbGetKeyModifierMap*(dpy: PDisplay, firstKey, nKeys: int16,
|
||||||
|
desc: PXkbDescPtr): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbGetKeyModifierMap".}
|
||||||
|
proc XkbAllocControls*(xkb: PXkbDescPtr, which: int16): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbAllocControls".}
|
||||||
|
proc XkbFreeControls*(xkb: PXkbDescPtr, which: int16, freeMap: bool){.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbFreeControls".}
|
||||||
|
proc XkbGetControls*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetControls".}
|
||||||
|
proc XkbSetControls*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbSetControls".}
|
||||||
|
proc XkbNoteControlsChanges*(old: PXkbControlsChangesPtr,
|
||||||
|
new: PXkbControlsNotifyEvent, wanted: int16){.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbNoteControlsChanges".}
|
||||||
|
proc XkbGetControlsChanges*(d: PDisplay, x: PXkbDescPtr,
|
||||||
|
c: PXkbControlsChangesPtr): TStatus
|
||||||
|
proc XkbChangeControls*(d: PDisplay, x: PXkbDescPtr, c: PXkbControlsChangesPtr): bool
|
||||||
|
proc XkbAllocCompatMap*(xkb: PXkbDescPtr, which, nInterpret: int16): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbAllocCompatMap".}
|
||||||
|
proc XkbFreeCompatMap*(xkib: PXkbDescPtr, which: int16, freeMap: bool){.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbFreeCompatMap".}
|
||||||
|
proc XkbGetCompatMap*(dpy: PDisplay, which: int16, xkb: PXkbDescPtr): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetCompatMap".}
|
||||||
|
proc XkbSetCompatMap*(dpy: PDisplay, which: int16, xkb: PXkbDescPtr,
|
||||||
|
updateActions: bool): bool{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbSetCompatMap".}
|
||||||
|
proc XkbAddSymInterpret*(xkb: PXkbDescPtr, si: PXkbSymInterpretPtr,
|
||||||
|
updateMap: bool, changes: PXkbChangesPtr): PXkbSymInterpretPtr{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbAddSymInterpret".}
|
||||||
|
proc XkbAllocNames*(xkb: PXkbDescPtr, which: int16,
|
||||||
|
nTotalRG, nTotalAliases: int16): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbAllocNames".}
|
||||||
|
proc XkbGetNames*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetNames".}
|
||||||
|
proc XkbSetNames*(dpy: PDisplay, which, firstType, nTypes: int16,
|
||||||
|
desc: PXkbDescPtr): bool{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbSetNames".}
|
||||||
|
proc XkbChangeNames*(dpy: PDisplay, xkb: PXkbDescPtr,
|
||||||
|
changes: PXkbNameChangesPtr): bool{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbChangeNames".}
|
||||||
|
proc XkbFreeNames*(xkb: PXkbDescPtr, which: int16, freeMap: bool){.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbFreeNames".}
|
||||||
|
proc XkbGetState*(dpy: PDisplay, deviceSpec: int16, rtrnState: PXkbStatePtr): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetState".}
|
||||||
|
proc XkbSetMap*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbSetMap".}
|
||||||
|
proc XkbChangeMap*(dpy: PDisplay, desc: PXkbDescPtr, changes: PXkbMapChangesPtr): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbChangeMap".}
|
||||||
|
proc XkbSetDetectableAutoRepeat*(dpy: PDisplay, detectable: bool,
|
||||||
|
supported: ptr bool): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbSetDetectableAutoRepeat".}
|
||||||
|
proc XkbGetDetectableAutoRepeat*(dpy: PDisplay, supported: ptr bool): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetDetectableAutoRepeat".}
|
||||||
|
proc XkbSetAutoResetControls*(dpy: PDisplay, changes: int16,
|
||||||
|
auto_ctrls, auto_values: PWord): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbSetAutoResetControls".}
|
||||||
|
proc XkbGetAutoResetControls*(dpy: PDisplay, auto_ctrls, auto_ctrl_values: PWord): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetAutoResetControls".}
|
||||||
|
proc XkbSetPerClientControls*(dpy: PDisplay, change: int16, values: PWord): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbSetPerClientControls".}
|
||||||
|
proc XkbGetPerClientControls*(dpy: PDisplay, ctrls: PWord): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbGetPerClientControls".}
|
||||||
|
proc XkbCopyKeyType*(`from`, into: PXkbKeyTypePtr): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbCopyKeyType".}
|
||||||
|
proc XkbCopyKeyTypes*(`from`, into: PXkbKeyTypePtr, num_types: int16): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbCopyKeyTypes".}
|
||||||
|
proc XkbResizeKeyType*(xkb: PXkbDescPtr, type_ndx, map_count: int16,
|
||||||
|
want_preserve: bool, new_num_lvls: int16): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbResizeKeyType".}
|
||||||
|
proc XkbResizeKeySyms*(desc: PXkbDescPtr, forKey, symsNeeded: int16): PKeySym{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbResizeKeySyms".}
|
||||||
|
proc XkbResizeKeyActions*(desc: PXkbDescPtr, forKey, actsNeeded: int16): PXkbAction{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbResizeKeyActions".}
|
||||||
|
proc XkbChangeTypesOfKey*(xkb: PXkbDescPtr, key, num_groups: int16,
|
||||||
|
groups: int16, newTypes: ptr int16,
|
||||||
|
pChanges: PXkbMapChangesPtr): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbChangeTypesOfKey".}
|
||||||
|
|
||||||
|
proc XkbListComponents*(dpy: PDisplay, deviceSpec: int16,
|
||||||
|
ptrns: PXkbComponentNamesPtr, max_inout: ptr int16): PXkbComponentListPtr{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbListComponents".}
|
||||||
|
proc XkbFreeComponentList*(list: PXkbComponentListPtr){.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbFreeComponentList".}
|
||||||
|
proc XkbGetKeyboard*(dpy: PDisplay, which, deviceSpec: int16): PXkbDescPtr{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetKeyboard".}
|
||||||
|
proc XkbGetKeyboardByName*(dpy: PDisplay, deviceSpec: int16,
|
||||||
|
names: PXkbComponentNamesPtr, want, need: int16,
|
||||||
|
load: bool): PXkbDescPtr{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbGetKeyboardByName".}
|
||||||
|
|
||||||
|
proc XkbKeyTypesForCoreSymbols*(xkb: PXkbDescPtr,
|
||||||
|
map_width: int16, # keyboard device
|
||||||
|
core_syms: PKeySym, # always mapWidth symbols
|
||||||
|
protected: int16, # explicit key types
|
||||||
|
types_inout: ptr int16, # always four type indices
|
||||||
|
xkb_syms_rtrn: PKeySym): int16{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbKeyTypesForCoreSymbols".}
|
||||||
|
# must have enough space
|
||||||
|
proc XkbApplyCompatMapToKey*(xkb: PXkbDescPtr,
|
||||||
|
key: TKeyCode, # key to be updated
|
||||||
|
changes: PXkbChangesPtr): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbApplyCompatMapToKey".}
|
||||||
|
# resulting changes to map
|
||||||
|
proc XkbUpdateMapFromCore*(xkb: PXkbDescPtr,
|
||||||
|
first_key: TKeyCode, # first changed key
|
||||||
|
num_keys,
|
||||||
|
map_width: int16,
|
||||||
|
core_keysyms: PKeySym, # symbols `from` core keymap
|
||||||
|
changes: PXkbChangesPtr): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbUpdateMapFromCore".}
|
||||||
|
|
||||||
|
proc XkbAddDeviceLedInfo*(devi: PXkbDeviceInfoPtr, ledClass, ledId: int16): PXkbDeviceLedInfoPtr{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbAddDeviceLedInfo".}
|
||||||
|
proc XkbResizeDeviceButtonActions*(devi: PXkbDeviceInfoPtr, newTotal: int16): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbResizeDeviceButtonActions".}
|
||||||
|
proc XkbAllocDeviceInfo*(deviceSpec, nButtons, szLeds: int16): PXkbDeviceInfoPtr{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbAllocDeviceInfo".}
|
||||||
|
proc XkbFreeDeviceInfo*(devi: PXkbDeviceInfoPtr, which: int16, freeDevI: bool){.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbFreeDeviceInfo".}
|
||||||
|
proc XkbNoteDeviceChanges*(old: PXkbDeviceChangesPtr,
|
||||||
|
new: PXkbExtensionDeviceNotifyEvent, wanted: int16){.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbNoteDeviceChanges".}
|
||||||
|
proc XkbGetDeviceInfo*(dpy: PDisplay, which, deviceSpec, ledClass, ledID: int16): PXkbDeviceInfoPtr{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbGetDeviceInfo".}
|
||||||
|
proc XkbGetDeviceInfoChanges*(dpy: PDisplay, devi: PXkbDeviceInfoPtr,
|
||||||
|
changes: PXkbDeviceChangesPtr): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbGetDeviceInfoChanges".}
|
||||||
|
proc XkbGetDeviceButtonActions*(dpy: PDisplay, devi: PXkbDeviceInfoPtr,
|
||||||
|
all: bool, first, nBtns: int16): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbGetDeviceButtonActions".}
|
||||||
|
proc XkbGetDeviceLedInfo*(dpy: PDisplay, devi: PXkbDeviceInfoPtr,
|
||||||
|
ledClass, ledId, which: int16): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbGetDeviceLedInfo".}
|
||||||
|
proc XkbSetDeviceInfo*(dpy: PDisplay, which: int16, devi: PXkbDeviceInfoPtr): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbSetDeviceInfo".}
|
||||||
|
proc XkbChangeDeviceInfo*(dpy: PDisplay, desc: PXkbDeviceInfoPtr,
|
||||||
|
changes: PXkbDeviceChangesPtr): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbChangeDeviceInfo".}
|
||||||
|
proc XkbSetDeviceLedInfo*(dpy: PDisplay, devi: PXkbDeviceInfoPtr,
|
||||||
|
ledClass, ledID, which: int16): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbSetDeviceLedInfo".}
|
||||||
|
proc XkbSetDeviceButtonActions*(dpy: PDisplay, devi: PXkbDeviceInfoPtr,
|
||||||
|
first, nBtns: int16): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbSetDeviceButtonActions".}
|
||||||
|
|
||||||
|
proc XkbToControl*(c: int8): int8{.cdecl, dynlib: libX11,
|
||||||
|
importc: "XkbToControl".}
|
||||||
|
|
||||||
|
proc XkbSetDebuggingFlags*(dpy: PDisplay, mask, flags: int16, msg: cstring,
|
||||||
|
ctrls_mask, ctrls, rtrn_flags, rtrn_ctrls: int16): bool{.
|
||||||
|
cdecl, dynlib: libX11, importc: "XkbSetDebuggingFlags".}
|
||||||
|
proc XkbApplyVirtualModChanges*(xkb: PXkbDescPtr, changed: int16,
|
||||||
|
changes: PXkbChangesPtr): bool{.cdecl,
|
||||||
|
dynlib: libX11, importc: "XkbApplyVirtualModChanges".}
|
||||||
|
|
||||||
|
# implementation
|
||||||
|
|
||||||
|
proc XkbNoteIndicatorMapChanges(o, n: PXkbIndicatorChangesPtr, w: int16) =
|
||||||
|
##define XkbNoteIndicatorMapChanges(o,n,w) ((o)->map_changes|=((n)->map_changes&(w)))
|
||||||
|
o.map_changes = o.map_changes or (n.map_changes and w)
|
||||||
|
|
||||||
|
proc XkbNoteIndicatorStateChanges(o, n: PXkbIndicatorChangesPtr, w: int16) =
|
||||||
|
##define XkbNoteIndicatorStateChanges(o,n,w) ((o)->state_changes|=((n)->state_changes&(w)))
|
||||||
|
o.state_changes = o.state_changes or (n.state_changes and (w))
|
||||||
|
|
||||||
|
proc XkbGetIndicatorMapChanges(d: PDisplay, x: PXkbDescPtr,
|
||||||
|
c: PXkbIndicatorChangesPtr): TStatus =
|
||||||
|
##define XkbGetIndicatorMapChanges(d,x,c) (XkbGetIndicatorMap((d),(c)->map_changes,x)
|
||||||
|
Result = XkbGetIndicatorMap(d, c.map_changes, x)
|
||||||
|
|
||||||
|
proc XkbChangeIndicatorMaps(d: PDisplay, x: PXkbDescPtr,
|
||||||
|
c: PXkbIndicatorChangesPtr): bool =
|
||||||
|
##define XkbChangeIndicatorMaps(d,x,c) (XkbSetIndicatorMap((d),(c)->map_changes,x))
|
||||||
|
Result = XkbSetIndicatorMap(d, c.map_changes, x)
|
||||||
|
|
||||||
|
proc XkbGetControlsChanges(d: PDisplay, x: PXkbDescPtr,
|
||||||
|
c: PXkbControlsChangesPtr): TStatus =
|
||||||
|
##define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x)
|
||||||
|
Result = XkbGetControls(d, c.changed_ctrls, x)
|
||||||
|
|
||||||
|
proc XkbChangeControls(d: PDisplay, x: PXkbDescPtr, c: PXkbControlsChangesPtr): bool =
|
||||||
|
##define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x)
|
||||||
|
Result = XkbSetControls(d, c.changed_ctrls, x)
|
||||||
2218
lib/wrappers/x11/xlib.nim
Executable file
2218
lib/wrappers/x11/xlib.nim
Executable file
File diff suppressed because it is too large
Load diff
194
lib/wrappers/x11/xrandr.nim
Executable file
194
lib/wrappers/x11/xrandr.nim
Executable file
|
|
@ -0,0 +1,194 @@
|
||||||
|
#
|
||||||
|
# $XFree86: xc/lib/Xrandr/Xrandr.h,v 1.9 2002/09/29 23:39:44 keithp Exp $
|
||||||
|
#
|
||||||
|
# Copyright (C) 2000 Compaq Computer Corporation, Inc.
|
||||||
|
# Copyright (C) 2002 Hewlett-Packard Company, 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 Compaq not be used in advertising or
|
||||||
|
# publicity pertaining to distribution of the software without specific,
|
||||||
|
# written prior permission. HP makes no representations about the
|
||||||
|
# suitability of this software for any purpose. It is provided "as is"
|
||||||
|
# without express or implied warranty.
|
||||||
|
#
|
||||||
|
# HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL COMPAQ
|
||||||
|
# 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: Jim Gettys, HP Labs, HP.
|
||||||
|
#
|
||||||
|
|
||||||
|
import
|
||||||
|
x, xlib
|
||||||
|
|
||||||
|
const
|
||||||
|
libXrandr* = "libXrandr.so"
|
||||||
|
|
||||||
|
# * $XFree86: xc/include/extensions/randr.h,v 1.4 2001/11/24 07:24:58 keithp Exp $
|
||||||
|
# *
|
||||||
|
# * Copyright (C) 2000, Compaq Computer Corporation,
|
||||||
|
# * Copyright (C) 2002, Hewlett Packard, 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 Compaq or HP not be used in advertising
|
||||||
|
# * or publicity pertaining to distribution of the software without specific,
|
||||||
|
# * written prior permission. HP makes no representations about the
|
||||||
|
# * suitability of this software for any purpose. It is provided "as is"
|
||||||
|
# * without express or implied warranty.
|
||||||
|
# *
|
||||||
|
# * HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
|
||||||
|
# * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL HP
|
||||||
|
# * 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: Jim Gettys, HP Labs, Hewlett-Packard, Inc.
|
||||||
|
# *
|
||||||
|
|
||||||
|
type
|
||||||
|
PRotation* = ptr TRotation
|
||||||
|
TRotation* = cushort
|
||||||
|
PSizeID* = ptr TSizeID
|
||||||
|
TSizeID* = cushort
|
||||||
|
PSubpixelOrder* = ptr TSubpixelOrder
|
||||||
|
TSubpixelOrder* = cushort
|
||||||
|
|
||||||
|
const
|
||||||
|
RANDR_NAME* = "RANDR"
|
||||||
|
RANDR_MAJOR* = 1
|
||||||
|
RANDR_MINOR* = 1
|
||||||
|
RRNumberErrors* = 0
|
||||||
|
RRNumberEvents* = 1
|
||||||
|
constX_RRQueryVersion* = 0 # we skip 1 to make old clients fail pretty immediately
|
||||||
|
X_RROldGetScreenInfo* = 1
|
||||||
|
X_RR1_0SetScreenConfig* = 2 # V1.0 apps share the same set screen config request id
|
||||||
|
constX_RRSetScreenConfig* = 2
|
||||||
|
X_RROldScreenChangeSelectInput* = 3 # 3 used to be ScreenChangeSelectInput; deprecated
|
||||||
|
constX_RRSelectInput* = 4
|
||||||
|
constX_RRGetScreenInfo* = 5 # used in XRRSelectInput
|
||||||
|
RRScreenChangeNotifyMask* = 1 shl 0
|
||||||
|
RRScreenChangeNotify* = 0 # used in the rotation field; rotation and reflection in 0.1 proto.
|
||||||
|
RR_Rotate_0* = 1
|
||||||
|
RR_Rotate_90* = 2
|
||||||
|
RR_Rotate_180* = 4
|
||||||
|
RR_Rotate_270* = 8 # new in 1.0 protocol, to allow reflection of screen
|
||||||
|
RR_Reflect_X* = 16
|
||||||
|
RR_Reflect_Y* = 32
|
||||||
|
RRSetConfigSuccess* = 0
|
||||||
|
RRSetConfigInvalidConfigTime* = 1
|
||||||
|
RRSetConfigInvalidTime* = 2
|
||||||
|
RRSetConfigFailed* = 3
|
||||||
|
|
||||||
|
type
|
||||||
|
PXRRScreenSize* = ptr TXRRScreenSize
|
||||||
|
TXRRScreenSize*{.final.} = object #
|
||||||
|
# Events.
|
||||||
|
#
|
||||||
|
width*, height*: cint
|
||||||
|
mwidth*, mheight*: cint
|
||||||
|
|
||||||
|
TXRRScreenChangeNotifyEvent*{.final.} = object # internal representation is private to the library
|
||||||
|
typ*: cint # event base
|
||||||
|
serial*: culong # # of last request processed by server
|
||||||
|
send_event*: TBool # true if this came from a SendEvent request
|
||||||
|
display*: PDisplay # Display the event was read from
|
||||||
|
window*: TWindow # window which selected for this event
|
||||||
|
root*: TWindow # Root window for changed screen
|
||||||
|
timestamp*: TTime # when the screen change occurred
|
||||||
|
config_timestamp*: TTime # when the last configuration change
|
||||||
|
size_index*: TSizeID
|
||||||
|
subpixel_order*: TSubpixelOrder
|
||||||
|
rotation*: TRotation
|
||||||
|
width*: cint
|
||||||
|
height*: cint
|
||||||
|
mwidth*: cint
|
||||||
|
mheight*: cint
|
||||||
|
|
||||||
|
PXRRScreenConfiguration* = ptr TXRRScreenConfiguration
|
||||||
|
TXRRScreenConfiguration*{.final.} = object
|
||||||
|
|
||||||
|
proc XRRQueryExtension*(dpy: PDisplay, event_basep, error_basep: Pcint): TBool{.
|
||||||
|
cdecl, dynlib: libXrandr, importc.}
|
||||||
|
proc XRRQueryVersion*(dpy: PDisplay, major_versionp: Pcint,
|
||||||
|
minor_versionp: Pcint): TStatus{.cdecl, dynlib: libXrandr,
|
||||||
|
importc.}
|
||||||
|
proc XRRGetScreenInfo*(dpy: PDisplay, draw: TDrawable): PXRRScreenConfiguration{.
|
||||||
|
cdecl, dynlib: libXrandr, importc.}
|
||||||
|
proc XRRFreeScreenConfigInfo*(config: PXRRScreenConfiguration){.cdecl,
|
||||||
|
dynlib: libXrandr, importc.}
|
||||||
|
#
|
||||||
|
# Note that screen configuration changes are only permitted if the client can
|
||||||
|
# prove it has up to date configuration information. We are trying to
|
||||||
|
# insist that it become possible for screens to change dynamically, so
|
||||||
|
# we want to ensure the client knows what it is talking about when requesting
|
||||||
|
# changes.
|
||||||
|
#
|
||||||
|
proc XRRSetScreenConfig*(dpy: PDisplay, config: PXRRScreenConfiguration,
|
||||||
|
draw: TDrawable, size_index: cint, rotation: TRotation,
|
||||||
|
timestamp: TTime): TStatus{.cdecl, dynlib: libXrandr,
|
||||||
|
importc.}
|
||||||
|
# added in v1.1, sorry for the lame name
|
||||||
|
proc XRRSetScreenConfigAndRate*(dpy: PDisplay, config: PXRRScreenConfiguration,
|
||||||
|
draw: TDrawable, size_index: cint,
|
||||||
|
rotation: TRotation, rate: cshort,
|
||||||
|
timestamp: TTime): TStatus{.cdecl,
|
||||||
|
dynlib: libXrandr, importc.}
|
||||||
|
proc XRRConfigRotations*(config: PXRRScreenConfiguration,
|
||||||
|
current_rotation: PRotation): TRotation{.cdecl,
|
||||||
|
dynlib: libXrandr, importc.}
|
||||||
|
proc XRRConfigTimes*(config: PXRRScreenConfiguration, config_timestamp: PTime): TTime{.
|
||||||
|
cdecl, dynlib: libXrandr, importc.}
|
||||||
|
proc XRRConfigSizes*(config: PXRRScreenConfiguration, nsizes: Pcint): PXRRScreenSize{.
|
||||||
|
cdecl, dynlib: libXrandr, importc.}
|
||||||
|
proc XRRConfigRates*(config: PXRRScreenConfiguration, sizeID: cint,
|
||||||
|
nrates: Pcint): ptr int16{.cdecl, dynlib: libXrandr, importc.}
|
||||||
|
proc XRRConfigCurrentConfiguration*(config: PXRRScreenConfiguration,
|
||||||
|
rotation: PRotation): TSizeID{.cdecl,
|
||||||
|
dynlib: libXrandr, importc.}
|
||||||
|
proc XRRConfigCurrentRate*(config: PXRRScreenConfiguration): cshort{.cdecl,
|
||||||
|
dynlib: libXrandr, importc.}
|
||||||
|
proc XRRRootToScreen*(dpy: PDisplay, root: TWindow): cint{.cdecl,
|
||||||
|
dynlib: libXrandr, importc.}
|
||||||
|
#
|
||||||
|
# returns the screen configuration for the specified screen; does a lazy
|
||||||
|
# evalution to delay getting the information, and caches the result.
|
||||||
|
# These routines should be used in preference to XRRGetScreenInfo
|
||||||
|
# to avoid unneeded round trips to the X server. These are new
|
||||||
|
# in protocol version 0.1.
|
||||||
|
#
|
||||||
|
proc XRRScreenConfig*(dpy: PDisplay, screen: cint): PXRRScreenConfiguration{.
|
||||||
|
cdecl, dynlib: libXrandr, importc.}
|
||||||
|
proc XRRConfig*(screen: PScreen): PXRRScreenConfiguration{.cdecl,
|
||||||
|
dynlib: libXrandr, importc.}
|
||||||
|
proc XRRSelectInput*(dpy: PDisplay, window: TWindow, mask: cint){.cdecl,
|
||||||
|
dynlib: libXrandr, importc.}
|
||||||
|
#
|
||||||
|
# the following are always safe to call, even if RandR is not implemented
|
||||||
|
# on a screen
|
||||||
|
#
|
||||||
|
proc XRRRotations*(dpy: PDisplay, screen: cint, current_rotation: PRotation): TRotation{.
|
||||||
|
cdecl, dynlib: libXrandr, importc.}
|
||||||
|
proc XRRSizes*(dpy: PDisplay, screen: cint, nsizes: Pcint): PXRRScreenSize{.
|
||||||
|
cdecl, dynlib: libXrandr, importc.}
|
||||||
|
proc XRRRates*(dpy: PDisplay, screen: cint, sizeID: cint, nrates: Pcint): ptr int16{.
|
||||||
|
cdecl, dynlib: libXrandr, importc.}
|
||||||
|
proc XRRTimes*(dpy: PDisplay, screen: cint, config_timestamp: PTime): TTime{.
|
||||||
|
cdecl, dynlib: libXrandr, importc.}
|
||||||
|
#
|
||||||
|
# intended to take RRScreenChangeNotify, or
|
||||||
|
# ConfigureNotify (on the root window)
|
||||||
|
# returns 1 if it is an event type it understands, 0 if not
|
||||||
|
#
|
||||||
|
proc XRRUpdateConfiguration*(event: PXEvent): cint{.cdecl, dynlib: libXrandr,
|
||||||
|
importc.}
|
||||||
|
# implementation
|
||||||
231
lib/wrappers/x11/xrender.nim
Executable file
231
lib/wrappers/x11/xrender.nim
Executable file
|
|
@ -0,0 +1,231 @@
|
||||||
|
|
||||||
|
import
|
||||||
|
x, xlib
|
||||||
|
|
||||||
|
#const
|
||||||
|
# libX11* = "libX11.so"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Automatically converted by H2Pas 0.99.15 from xrender.h
|
||||||
|
# The following command line parameters were used:
|
||||||
|
# -p
|
||||||
|
# -T
|
||||||
|
# -S
|
||||||
|
# -d
|
||||||
|
# -c
|
||||||
|
# xrender.h
|
||||||
|
#
|
||||||
|
|
||||||
|
type
|
||||||
|
PGlyph* = ptr TGlyph
|
||||||
|
TGlyph* = int32
|
||||||
|
PGlyphSet* = ptr TGlyphSet
|
||||||
|
TGlyphSet* = int32
|
||||||
|
PPicture* = ptr TPicture
|
||||||
|
TPicture* = int32
|
||||||
|
PPictFormat* = ptr TPictFormat
|
||||||
|
TPictFormat* = int32
|
||||||
|
|
||||||
|
const
|
||||||
|
RENDER_NAME* = "RENDER"
|
||||||
|
RENDER_MAJOR* = 0
|
||||||
|
RENDER_MINOR* = 0
|
||||||
|
constX_RenderQueryVersion* = 0
|
||||||
|
X_RenderQueryPictFormats* = 1
|
||||||
|
X_RenderQueryPictIndexValues* = 2
|
||||||
|
X_RenderQueryDithers* = 3
|
||||||
|
constX_RenderCreatePicture* = 4
|
||||||
|
constX_RenderChangePicture* = 5
|
||||||
|
X_RenderSetPictureClipRectangles* = 6
|
||||||
|
constX_RenderFreePicture* = 7
|
||||||
|
constX_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
|
||||||
|
constX_RenderCreateGlyphSet* = 17
|
||||||
|
constX_RenderReferenceGlyphSet* = 18
|
||||||
|
constX_RenderFreeGlyphSet* = 19
|
||||||
|
constX_RenderAddGlyphs* = 20
|
||||||
|
constX_RenderAddGlyphsFromPicture* = 21
|
||||||
|
constX_RenderFreeGlyphs* = 22
|
||||||
|
constX_RenderCompositeGlyphs8* = 23
|
||||||
|
constX_RenderCompositeGlyphs16* = 24
|
||||||
|
constX_RenderCompositeGlyphs32* = 25
|
||||||
|
BadPictFormat* = 0
|
||||||
|
BadPicture* = 1
|
||||||
|
BadPictOp* = 2
|
||||||
|
BadGlyphSet* = 3
|
||||||
|
BadGlyph* = 4
|
||||||
|
RenderNumberErrors* = BadGlyph + 1
|
||||||
|
PictTypeIndexed* = 0
|
||||||
|
PictTypeDirect* = 1
|
||||||
|
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
|
||||||
|
PolyEdgeSharp* = 0
|
||||||
|
PolyEdgeSmooth* = 1
|
||||||
|
PolyModePrecise* = 0
|
||||||
|
PolyModeImprecise* = 1
|
||||||
|
CPRepeat* = 1 shl 0
|
||||||
|
CPAlphaMap* = 1 shl 1
|
||||||
|
CPAlphaXOrigin* = 1 shl 2
|
||||||
|
CPAlphaYOrigin* = 1 shl 3
|
||||||
|
CPClipXOrigin* = 1 shl 4
|
||||||
|
CPClipYOrigin* = 1 shl 5
|
||||||
|
CPClipMask* = 1 shl 6
|
||||||
|
CPGraphicsExposure* = 1 shl 7
|
||||||
|
CPSubwindowMode* = 1 shl 8
|
||||||
|
CPPolyEdge* = 1 shl 9
|
||||||
|
CPPolyMode* = 1 shl 10
|
||||||
|
CPDither* = 1 shl 11
|
||||||
|
CPLastBit* = 11
|
||||||
|
|
||||||
|
type
|
||||||
|
PXRenderDirectFormat* = ptr TXRenderDirectFormat
|
||||||
|
TXRenderDirectFormat*{.final.} = object
|
||||||
|
red*: int16
|
||||||
|
redMask*: int16
|
||||||
|
green*: int16
|
||||||
|
greenMask*: int16
|
||||||
|
blue*: int16
|
||||||
|
blueMask*: int16
|
||||||
|
alpha*: int16
|
||||||
|
alphaMask*: int16
|
||||||
|
|
||||||
|
PXRenderPictFormat* = ptr TXRenderPictFormat
|
||||||
|
TXRenderPictFormat*{.final.} = object
|
||||||
|
id*: TPictFormat
|
||||||
|
thetype*: int32
|
||||||
|
depth*: int32
|
||||||
|
direct*: TXRenderDirectFormat
|
||||||
|
colormap*: TColormap
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
PictFormatID* = 1 shl 0
|
||||||
|
PictFormatType* = 1 shl 1
|
||||||
|
PictFormatDepth* = 1 shl 2
|
||||||
|
PictFormatRed* = 1 shl 3
|
||||||
|
PictFormatRedMask* = 1 shl 4
|
||||||
|
PictFormatGreen* = 1 shl 5
|
||||||
|
PictFormatGreenMask* = 1 shl 6
|
||||||
|
PictFormatBlue* = 1 shl 7
|
||||||
|
PictFormatBlueMask* = 1 shl 8
|
||||||
|
PictFormatAlpha* = 1 shl 9
|
||||||
|
PictFormatAlphaMask* = 1 shl 10
|
||||||
|
PictFormatColormap* = 1 shl 11
|
||||||
|
|
||||||
|
type
|
||||||
|
PXRenderVisual* = ptr TXRenderVisual
|
||||||
|
TXRenderVisual*{.final.} = object
|
||||||
|
visual*: PVisual
|
||||||
|
format*: PXRenderPictFormat
|
||||||
|
|
||||||
|
PXRenderDepth* = ptr TXRenderDepth
|
||||||
|
TXRenderDepth*{.final.} = object
|
||||||
|
depth*: int32
|
||||||
|
nvisuals*: int32
|
||||||
|
visuals*: PXRenderVisual
|
||||||
|
|
||||||
|
PXRenderScreen* = ptr TXRenderScreen
|
||||||
|
TXRenderScreen*{.final.} = object
|
||||||
|
depths*: PXRenderDepth
|
||||||
|
ndepths*: int32
|
||||||
|
fallback*: PXRenderPictFormat
|
||||||
|
|
||||||
|
PXRenderInfo* = ptr TXRenderInfo
|
||||||
|
TXRenderInfo*{.final.} = object
|
||||||
|
format*: PXRenderPictFormat
|
||||||
|
nformat*: int32
|
||||||
|
screen*: PXRenderScreen
|
||||||
|
nscreen*: int32
|
||||||
|
depth*: PXRenderDepth
|
||||||
|
ndepth*: int32
|
||||||
|
visual*: PXRenderVisual
|
||||||
|
nvisual*: int32
|
||||||
|
|
||||||
|
PXRenderPictureAttributes* = ptr TXRenderPictureAttributes
|
||||||
|
TXRenderPictureAttributes*{.final.} = object
|
||||||
|
repeat*: TBool
|
||||||
|
alpha_map*: TPicture
|
||||||
|
alpha_x_origin*: int32
|
||||||
|
alpha_y_origin*: int32
|
||||||
|
clip_x_origin*: int32
|
||||||
|
clip_y_origin*: int32
|
||||||
|
clip_mask*: TPixmap
|
||||||
|
graphics_exposures*: TBool
|
||||||
|
subwindow_mode*: int32
|
||||||
|
poly_edge*: int32
|
||||||
|
poly_mode*: int32
|
||||||
|
dither*: TAtom
|
||||||
|
|
||||||
|
PXGlyphInfo* = ptr TXGlyphInfo
|
||||||
|
TXGlyphInfo*{.final.} = object
|
||||||
|
width*: int16
|
||||||
|
height*: int16
|
||||||
|
x*: int16
|
||||||
|
y*: int16
|
||||||
|
xOff*: int16
|
||||||
|
yOff*: int16
|
||||||
|
|
||||||
|
|
||||||
|
proc XRenderQueryExtension*(dpy: PDisplay, event_basep: ptr int32,
|
||||||
|
error_basep: ptr int32): TBool{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XRenderQueryVersion*(dpy: PDisplay, major_versionp: ptr int32,
|
||||||
|
minor_versionp: ptr int32): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XRenderQueryFormats*(dpy: PDisplay): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XRenderFindVisualFormat*(dpy: PDisplay, visual: PVisual): PXRenderPictFormat{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XRenderFindFormat*(dpy: PDisplay, mask: int32,
|
||||||
|
`template`: PXRenderPictFormat, count: int32): PXRenderPictFormat{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XRenderCreatePicture*(dpy: PDisplay, drawable: TDrawable,
|
||||||
|
format: PXRenderPictFormat, valuemask: int32,
|
||||||
|
attributes: PXRenderPictureAttributes): TPicture{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XRenderChangePicture*(dpy: PDisplay, picture: TPicture, valuemask: int32,
|
||||||
|
attributes: PXRenderPictureAttributes){.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XRenderFreePicture*(dpy: PDisplay, picture: TPicture){.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XRenderComposite*(dpy: PDisplay, op: int32, src: TPicture, mask: TPicture,
|
||||||
|
dst: TPicture, src_x: int32, src_y: int32, mask_x: int32,
|
||||||
|
mask_y: int32, dst_x: int32, dst_y: int32, width: int32,
|
||||||
|
height: int32){.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XRenderCreateGlyphSet*(dpy: PDisplay, format: PXRenderPictFormat): TGlyphSet{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XRenderReferenceGlyphSet*(dpy: PDisplay, existing: TGlyphSet): TGlyphSet{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XRenderFreeGlyphSet*(dpy: PDisplay, glyphset: TGlyphSet){.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XRenderAddGlyphs*(dpy: PDisplay, glyphset: TGlyphSet, gids: PGlyph,
|
||||||
|
glyphs: PXGlyphInfo, nglyphs: int32, images: cstring,
|
||||||
|
nbyte_images: int32){.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XRenderFreeGlyphs*(dpy: PDisplay, glyphset: TGlyphSet, gids: PGlyph,
|
||||||
|
nglyphs: int32){.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XRenderCompositeString8*(dpy: PDisplay, op: int32, src: TPicture,
|
||||||
|
dst: TPicture, maskFormat: PXRenderPictFormat,
|
||||||
|
glyphset: TGlyphSet, xSrc: int32, ySrc: int32,
|
||||||
|
xDst: int32, yDst: int32, str: cstring,
|
||||||
|
nchar: int32){.cdecl, dynlib: libX11, importc.}
|
||||||
|
# implementation
|
||||||
200
lib/wrappers/x11/xresource.nim
Executable file
200
lib/wrappers/x11/xresource.nim
Executable file
|
|
@ -0,0 +1,200 @@
|
||||||
|
|
||||||
|
import
|
||||||
|
x, xlib
|
||||||
|
|
||||||
|
#const
|
||||||
|
# libX11* = "libX11.so"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Automatically converted by H2Pas 0.99.15 from xresource.h
|
||||||
|
# The following command line parameters were used:
|
||||||
|
# -p
|
||||||
|
# -T
|
||||||
|
# -S
|
||||||
|
# -d
|
||||||
|
# -c
|
||||||
|
# xresource.h
|
||||||
|
#
|
||||||
|
|
||||||
|
proc Xpermalloc*(para1: int32): cstring{.cdecl, dynlib: libX11, importc.}
|
||||||
|
type
|
||||||
|
PXrmQuark* = ptr TXrmQuark
|
||||||
|
TXrmQuark* = int32
|
||||||
|
TXrmQuarkList* = PXrmQuark
|
||||||
|
PXrmQuarkList* = ptr TXrmQuarkList
|
||||||
|
|
||||||
|
proc NULLQUARK*(): TXrmQuark
|
||||||
|
type
|
||||||
|
PXrmString* = ptr TXrmString
|
||||||
|
TXrmString* = ptr char
|
||||||
|
|
||||||
|
proc NULLSTRING*(): TXrmString
|
||||||
|
proc XrmStringToQuark*(para1: cstring): TXrmQuark{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XrmPermStringToQuark*(para1: cstring): TXrmQuark{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XrmQuarkToString*(para1: TXrmQuark): TXrmString{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XrmUniqueQuark*(): TXrmQuark{.cdecl, dynlib: libX11, importc.}
|
||||||
|
when defined(MACROS):
|
||||||
|
proc XrmStringsEqual*(a1, a2: cstring): bool
|
||||||
|
type
|
||||||
|
PXrmBinding* = ptr TXrmBinding
|
||||||
|
TXrmBinding* = enum
|
||||||
|
XrmBindTightly, XrmBindLoosely
|
||||||
|
TXrmBindingList* = PXrmBinding
|
||||||
|
PXrmBindingList* = ptr TXrmBindingList
|
||||||
|
|
||||||
|
proc XrmStringToQuarkList*(para1: cstring, para2: TXrmQuarkList){.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XrmStringToBindingQuarkList*(para1: cstring, para2: TXrmBindingList,
|
||||||
|
para3: TXrmQuarkList){.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
type
|
||||||
|
PXrmName* = ptr TXrmName
|
||||||
|
TXrmName* = TXrmQuark
|
||||||
|
PXrmNameList* = ptr TXrmNameList
|
||||||
|
TXrmNameList* = TXrmQuarkList
|
||||||
|
|
||||||
|
when defined(MACROS):
|
||||||
|
proc XrmNameToString*(name: int32): TXrmString
|
||||||
|
proc XrmStringToName*(str: cstring): int32
|
||||||
|
proc XrmStringToNameList*(str: cstring, name: PXrmQuark)
|
||||||
|
type
|
||||||
|
PXrmClass* = ptr TXrmClass
|
||||||
|
TXrmClass* = TXrmQuark
|
||||||
|
PXrmClassList* = ptr TXrmClassList
|
||||||
|
TXrmClassList* = TXrmQuarkList
|
||||||
|
|
||||||
|
when defined(MACROS):
|
||||||
|
proc XrmClassToString*(c_class: int32): TXrmString
|
||||||
|
proc XrmStringToClass*(c_class: cstring): int32
|
||||||
|
proc XrmStringToClassList*(str: cstring, c_class: PXrmQuark)
|
||||||
|
type
|
||||||
|
PXrmRepresentation* = ptr TXrmRepresentation
|
||||||
|
TXrmRepresentation* = TXrmQuark
|
||||||
|
|
||||||
|
when defined(MACROS):
|
||||||
|
proc XrmStringToRepresentation*(str: cstring): int32
|
||||||
|
proc XrmRepresentationToString*(thetype: int32): TXrmString
|
||||||
|
type
|
||||||
|
PXrmValue* = ptr TXrmValue
|
||||||
|
TXrmValue*{.final.} = object
|
||||||
|
size*: int32
|
||||||
|
address*: TXPointer
|
||||||
|
|
||||||
|
TXrmValuePtr* = PXrmValue
|
||||||
|
PXrmValuePtr* = ptr TXrmValuePtr
|
||||||
|
PXrmHashBucketRec* = ptr TXrmHashBucketRec
|
||||||
|
TXrmHashBucketRec*{.final.} = object
|
||||||
|
TXrmHashBucket* = PXrmHashBucketRec
|
||||||
|
PXrmHashBucket* = ptr TXrmHashBucket
|
||||||
|
PXrmHashTable* = ptr TXrmHashTable
|
||||||
|
TXrmHashTable* = ptr TXrmHashBucket
|
||||||
|
TXrmDatabase* = PXrmHashBucketRec
|
||||||
|
PXrmDatabase* = ptr TXrmDatabase
|
||||||
|
|
||||||
|
proc XrmDestroyDatabase*(para1: TXrmDatabase){.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XrmQPutResource*(para1: PXrmDatabase, para2: TXrmBindingList,
|
||||||
|
para3: TXrmQuarkList, para4: TXrmRepresentation,
|
||||||
|
para5: PXrmValue){.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XrmPutResource*(para1: PXrmDatabase, para2: cstring, para3: cstring,
|
||||||
|
para4: PXrmValue){.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XrmQPutStringResource*(para1: PXrmDatabase, para2: TXrmBindingList,
|
||||||
|
para3: TXrmQuarkList, para4: cstring){.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XrmPutStringResource*(para1: PXrmDatabase, para2: cstring, para3: cstring){.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XrmPutLineResource*(para1: PXrmDatabase, para2: cstring){.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XrmQGetResource*(para1: TXrmDatabase, para2: TXrmNameList,
|
||||||
|
para3: TXrmClassList, para4: PXrmRepresentation,
|
||||||
|
para5: PXrmValue): TBool{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XrmGetResource*(para1: TXrmDatabase, para2: cstring, para3: cstring,
|
||||||
|
para4: PPchar, para5: PXrmValue): TBool{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
# There is no definition of TXrmSearchList
|
||||||
|
#function XrmQGetSearchList(para1:TXrmDatabase; para2:TXrmNameList; para3:TXrmClassList; para4:TXrmSearchList; para5:longint):TBool;cdecl;external libX11;
|
||||||
|
#function XrmQGetSearchResource(para1:TXrmSearchList; para2:TXrmName; para3:TXrmClass; para4:PXrmRepresentation; para5:PXrmValue):TBool;cdecl;external libX11;
|
||||||
|
proc XrmSetDatabase*(para1: PDisplay, para2: TXrmDatabase){.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XrmGetDatabase*(para1: PDisplay): TXrmDatabase{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XrmGetFileDatabase*(para1: cstring): TXrmDatabase{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XrmCombineFileDatabase*(para1: cstring, para2: PXrmDatabase, para3: TBool): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XrmGetStringDatabase*(para1: cstring): TXrmDatabase{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XrmPutFileDatabase*(para1: TXrmDatabase, para2: cstring){.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XrmMergeDatabases*(para1: TXrmDatabase, para2: PXrmDatabase){.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XrmCombineDatabase*(para1: TXrmDatabase, para2: PXrmDatabase, para3: TBool){.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
const
|
||||||
|
XrmEnumAllLevels* = 0
|
||||||
|
XrmEnumOneLevel* = 1
|
||||||
|
|
||||||
|
type
|
||||||
|
funcbool* = proc (): TBool
|
||||||
|
|
||||||
|
proc XrmEnumerateDatabase*(para1: TXrmDatabase, para2: TXrmNameList,
|
||||||
|
para3: TXrmClassList, para4: int32, para5: funcbool,
|
||||||
|
para6: TXPointer): TBool{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XrmLocaleOfDatabase*(para1: TXrmDatabase): cstring{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
type
|
||||||
|
PXrmOptionKind* = ptr TXrmOptionKind
|
||||||
|
TXrmOptionKind* = enum
|
||||||
|
XrmoptionNoArg, XrmoptionIsArg, XrmoptionStickyArg, XrmoptionSepArg,
|
||||||
|
XrmoptionResArg, XrmoptionSkipArg, XrmoptionSkipLine, XrmoptionSkipNArgs
|
||||||
|
PXrmOptionDescRec* = ptr TXrmOptionDescRec
|
||||||
|
TXrmOptionDescRec*{.final.} = object
|
||||||
|
option*: cstring
|
||||||
|
specifier*: cstring
|
||||||
|
argKind*: TXrmOptionKind
|
||||||
|
value*: TXPointer
|
||||||
|
|
||||||
|
TXrmOptionDescList* = PXrmOptionDescRec
|
||||||
|
PXrmOptionDescList* = ptr TXrmOptionDescList
|
||||||
|
|
||||||
|
proc XrmParseCommand*(para1: PXrmDatabase, para2: TXrmOptionDescList,
|
||||||
|
para3: int32, para4: cstring, para5: ptr int32,
|
||||||
|
para6: PPchar){.cdecl, dynlib: libX11, importc.}
|
||||||
|
# implementation
|
||||||
|
|
||||||
|
proc NULLQUARK(): TXrmQuark =
|
||||||
|
result = TXrmQuark(0)
|
||||||
|
|
||||||
|
proc NULLSTRING(): TXrmString =
|
||||||
|
result = nil
|
||||||
|
|
||||||
|
when defined(MACROS):
|
||||||
|
proc XrmStringsEqual(a1, a2: cstring): bool =
|
||||||
|
result = (strcomp(a1, a2)) == 0
|
||||||
|
|
||||||
|
proc XrmNameToString(name: int32): TXrmString =
|
||||||
|
result = XrmQuarkToString(name)
|
||||||
|
|
||||||
|
proc XrmStringToName(str: cstring): int32 =
|
||||||
|
result = XrmStringToQuark(str)
|
||||||
|
|
||||||
|
proc XrmStringToNameList(str: cstring, name: PXrmQuark) =
|
||||||
|
XrmStringToQuarkList(str, name)
|
||||||
|
|
||||||
|
proc XrmClassToString(c_class: int32): TXrmString =
|
||||||
|
result = XrmQuarkToString(c_class)
|
||||||
|
|
||||||
|
proc XrmStringToClass(c_class: cstring): int32 =
|
||||||
|
result = XrmStringToQuark(c_class)
|
||||||
|
|
||||||
|
proc XrmStringToClassList(str: cstring, c_class: PXrmQuark) =
|
||||||
|
XrmStringToQuarkList(str, c_class)
|
||||||
|
|
||||||
|
proc XrmStringToRepresentation(str: cstring): int32 =
|
||||||
|
result = XrmStringToQuark(str)
|
||||||
|
|
||||||
|
proc XrmRepresentationToString(thetype: int32): TXrmString =
|
||||||
|
result = XrmQuarkToString(thetype)
|
||||||
77
lib/wrappers/x11/xshm.nim
Executable file
77
lib/wrappers/x11/xshm.nim
Executable file
|
|
@ -0,0 +1,77 @@
|
||||||
|
|
||||||
|
import
|
||||||
|
x, xlib
|
||||||
|
|
||||||
|
#const
|
||||||
|
# libX11* = "libX11.so"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Automatically converted by H2Pas 0.99.15 from xshm.h
|
||||||
|
# The following command line parameters were used:
|
||||||
|
# -p
|
||||||
|
# -T
|
||||||
|
# -S
|
||||||
|
# -d
|
||||||
|
# -c
|
||||||
|
# xshm.h
|
||||||
|
#
|
||||||
|
|
||||||
|
const
|
||||||
|
constX_ShmQueryVersion* = 0
|
||||||
|
constX_ShmAttach* = 1
|
||||||
|
constX_ShmDetach* = 2
|
||||||
|
constX_ShmPutImage* = 3
|
||||||
|
constX_ShmGetImage* = 4
|
||||||
|
constX_ShmCreatePixmap* = 5
|
||||||
|
ShmCompletion* = 0
|
||||||
|
ShmNumberEvents* = ShmCompletion + 1
|
||||||
|
BadShmSeg* = 0
|
||||||
|
ShmNumberErrors* = BadShmSeg + 1
|
||||||
|
|
||||||
|
type
|
||||||
|
PShmSeg* = ptr TShmSeg
|
||||||
|
TShmSeg* = culong
|
||||||
|
PXShmCompletionEvent* = ptr TXShmCompletionEvent
|
||||||
|
TXShmCompletionEvent*{.final.} = object
|
||||||
|
theType*: cint
|
||||||
|
serial*: culong
|
||||||
|
send_event*: TBool
|
||||||
|
display*: PDisplay
|
||||||
|
drawable*: TDrawable
|
||||||
|
major_code*: cint
|
||||||
|
minor_code*: cint
|
||||||
|
shmseg*: TShmSeg
|
||||||
|
offset*: culong
|
||||||
|
|
||||||
|
PXShmSegmentInfo* = ptr TXShmSegmentInfo
|
||||||
|
TXShmSegmentInfo*{.final.} = object
|
||||||
|
shmseg*: TShmSeg
|
||||||
|
shmid*: cint
|
||||||
|
shmaddr*: cstring
|
||||||
|
readOnly*: TBool
|
||||||
|
|
||||||
|
|
||||||
|
proc XShmQueryExtension*(para1: PDisplay): TBool{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XShmGetEventBase*(para1: PDisplay): cint{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XShmQueryVersion*(para1: PDisplay, para2: Pcint, para3: Pcint, para4: PBool): TBool{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XShmPixmapFormat*(para1: PDisplay): cint{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XShmAttach*(para1: PDisplay, para2: PXShmSegmentInfo): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XShmDetach*(para1: PDisplay, para2: PXShmSegmentInfo): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XShmPutImage*(para1: PDisplay, para2: TDrawable, para3: TGC,
|
||||||
|
para4: PXImage, para5: cint, para6: cint, para7: cint,
|
||||||
|
para8: cint, para9: cuint, para10: cuint, para11: TBool): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XShmGetImage*(para1: PDisplay, para2: TDrawable, para3: PXImage,
|
||||||
|
para4: cint, para5: cint, para6: culong): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XShmCreateImage*(para1: PDisplay, para2: PVisual, para3: cuint,
|
||||||
|
para4: cint, para5: cstring, para6: PXShmSegmentInfo,
|
||||||
|
para7: cuint, para8: cuint): PXImage{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XShmCreatePixmap*(para1: PDisplay, para2: TDrawable, para3: cstring,
|
||||||
|
para4: PXShmSegmentInfo, para5: cuint, para6: cuint,
|
||||||
|
para7: cuint): TPixmap{.cdecl, dynlib: libX11, importc.}
|
||||||
|
# implementation
|
||||||
412
lib/wrappers/x11/xutil.nim
Executable file
412
lib/wrappers/x11/xutil.nim
Executable file
|
|
@ -0,0 +1,412 @@
|
||||||
|
|
||||||
|
import
|
||||||
|
x, xlib, keysym
|
||||||
|
|
||||||
|
#const
|
||||||
|
# libX11* = "libX11.so"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Automatically converted by H2Pas 0.99.15 from xutil.h
|
||||||
|
# The following command line parameters were used:
|
||||||
|
# -p
|
||||||
|
# -T
|
||||||
|
# -S
|
||||||
|
# -d
|
||||||
|
# -c
|
||||||
|
# xutil.h
|
||||||
|
#
|
||||||
|
|
||||||
|
const
|
||||||
|
NoValue* = 0x00000000
|
||||||
|
XValue* = 0x00000001
|
||||||
|
YValue* = 0x00000002
|
||||||
|
WidthValue* = 0x00000004
|
||||||
|
HeightValue* = 0x00000008
|
||||||
|
AllValues* = 0x0000000F
|
||||||
|
XNegative* = 0x00000010
|
||||||
|
YNegative* = 0x00000020
|
||||||
|
|
||||||
|
type
|
||||||
|
TCPoint*{.final.} = object
|
||||||
|
x*: cint
|
||||||
|
y*: cint
|
||||||
|
|
||||||
|
PXSizeHints* = ptr TXSizeHints
|
||||||
|
TXSizeHints*{.final.} = object
|
||||||
|
flags*: clong
|
||||||
|
x*, y*: cint
|
||||||
|
width*, height*: cint
|
||||||
|
min_width*, min_height*: cint
|
||||||
|
max_width*, max_height*: cint
|
||||||
|
width_inc*, height_inc*: cint
|
||||||
|
min_aspect*, max_aspect*: TCPoint
|
||||||
|
base_width*, base_height*: cint
|
||||||
|
win_gravity*: cint
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
USPosition* = 1 shl 0
|
||||||
|
USSize* = 1 shl 1
|
||||||
|
PPosition* = 1 shl 2
|
||||||
|
PSize* = 1 shl 3
|
||||||
|
PMinSize* = 1 shl 4
|
||||||
|
PMaxSize* = 1 shl 5
|
||||||
|
PResizeInc* = 1 shl 6
|
||||||
|
PAspect* = 1 shl 7
|
||||||
|
PBaseSize* = 1 shl 8
|
||||||
|
PWinGravity* = 1 shl 9
|
||||||
|
PAllHints* = PPosition or PSize or PMinSize or PMaxSize or PResizeInc or
|
||||||
|
PAspect
|
||||||
|
|
||||||
|
type
|
||||||
|
PXWMHints* = ptr TXWMHints
|
||||||
|
TXWMHints*{.final.} = object
|
||||||
|
flags*: clong
|
||||||
|
input*: TBool
|
||||||
|
initial_state*: cint
|
||||||
|
icon_pixmap*: TPixmap
|
||||||
|
icon_window*: TWindow
|
||||||
|
icon_x*, icon_y*: cint
|
||||||
|
icon_mask*: TPixmap
|
||||||
|
window_group*: TXID
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
InputHint* = 1 shl 0
|
||||||
|
StateHint* = 1 shl 1
|
||||||
|
IconPixmapHint* = 1 shl 2
|
||||||
|
IconWindowHint* = 1 shl 3
|
||||||
|
IconPositionHint* = 1 shl 4
|
||||||
|
IconMaskHint* = 1 shl 5
|
||||||
|
WindowGroupHint* = 1 shl 6
|
||||||
|
AllHints* = InputHint or StateHint or IconPixmapHint or IconWindowHint or
|
||||||
|
IconPositionHint or IconMaskHint or WindowGroupHint
|
||||||
|
XUrgencyHint* = 1 shl 8
|
||||||
|
WithdrawnState* = 0
|
||||||
|
NormalState* = 1
|
||||||
|
IconicState* = 3
|
||||||
|
DontCareState* = 0
|
||||||
|
ZoomState* = 2
|
||||||
|
InactiveState* = 4
|
||||||
|
|
||||||
|
type
|
||||||
|
PXTextProperty* = ptr TXTextProperty
|
||||||
|
TXTextProperty*{.final.} = object
|
||||||
|
value*: pcuchar
|
||||||
|
encoding*: TAtom
|
||||||
|
format*: cint
|
||||||
|
nitems*: culong
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
XNoMemory* = - 1
|
||||||
|
XLocaleNotSupported* = - 2
|
||||||
|
XConverterNotFound* = - 3
|
||||||
|
|
||||||
|
type
|
||||||
|
PXICCEncodingStyle* = ptr TXICCEncodingStyle
|
||||||
|
TXICCEncodingStyle* = enum
|
||||||
|
XStringStyle, XCompoundTextStyle, XTextStyle, XStdICCTextStyle,
|
||||||
|
XUTF8StringStyle
|
||||||
|
PPXIconSize* = ptr PXIconSize
|
||||||
|
PXIconSize* = ptr TXIconSize
|
||||||
|
TXIconSize*{.final.} = object
|
||||||
|
min_width*, min_height*: cint
|
||||||
|
max_width*, max_height*: cint
|
||||||
|
width_inc*, height_inc*: cint
|
||||||
|
|
||||||
|
PXClassHint* = ptr TXClassHint
|
||||||
|
TXClassHint*{.final.} = object
|
||||||
|
res_name*: cstring
|
||||||
|
res_class*: cstring
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXComposeStatus* = ptr TXComposeStatus
|
||||||
|
TXComposeStatus*{.final.} = object
|
||||||
|
compose_ptr*: TXPointer
|
||||||
|
chars_matched*: cint
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
|
PXRegion* = ptr TXRegion
|
||||||
|
TXRegion*{.final.} = object
|
||||||
|
TRegion* = PXRegion
|
||||||
|
PRegion* = ptr TRegion
|
||||||
|
|
||||||
|
const
|
||||||
|
RectangleOut* = 0
|
||||||
|
RectangleIn* = 1
|
||||||
|
RectanglePart* = 2
|
||||||
|
|
||||||
|
type
|
||||||
|
PXVisualInfo* = ptr TXVisualInfo
|
||||||
|
TXVisualInfo*{.final.} = object
|
||||||
|
visual*: PVisual
|
||||||
|
visualid*: TVisualID
|
||||||
|
screen*: cint
|
||||||
|
depth*: cint
|
||||||
|
class*: cint
|
||||||
|
red_mask*: culong
|
||||||
|
green_mask*: culong
|
||||||
|
blue_mask*: culong
|
||||||
|
colormap_size*: cint
|
||||||
|
bits_per_rgb*: cint
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
VisualNoMask* = 0x00000000
|
||||||
|
VisualIDMask* = 0x00000001
|
||||||
|
VisualScreenMask* = 0x00000002
|
||||||
|
VisualDepthMask* = 0x00000004
|
||||||
|
VisualClassMask* = 0x00000008
|
||||||
|
VisualRedMaskMask* = 0x00000010
|
||||||
|
VisualGreenMaskMask* = 0x00000020
|
||||||
|
VisualBlueMaskMask* = 0x00000040
|
||||||
|
VisualColormapSizeMask* = 0x00000080
|
||||||
|
VisualBitsPerRGBMask* = 0x00000100
|
||||||
|
VisualAllMask* = 0x000001FF
|
||||||
|
|
||||||
|
type
|
||||||
|
PPXStandardColormap* = ptr PXStandardColormap
|
||||||
|
PXStandardColormap* = ptr TXStandardColormap
|
||||||
|
TXStandardColormap*{.final.} = object
|
||||||
|
colormap*: TColormap
|
||||||
|
red_max*: culong
|
||||||
|
red_mult*: culong
|
||||||
|
green_max*: culong
|
||||||
|
green_mult*: culong
|
||||||
|
blue_max*: culong
|
||||||
|
blue_mult*: culong
|
||||||
|
base_pixel*: culong
|
||||||
|
visualid*: TVisualID
|
||||||
|
killid*: TXID
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
BitmapSuccess* = 0
|
||||||
|
BitmapOpenFailed* = 1
|
||||||
|
BitmapFileInvalid* = 2
|
||||||
|
BitmapNoMemory* = 3
|
||||||
|
XCSUCCESS* = 0
|
||||||
|
XCNOMEM* = 1
|
||||||
|
XCNOENT* = 2
|
||||||
|
ReleaseByFreeingColormap*: TXID = TXID(1)
|
||||||
|
|
||||||
|
type
|
||||||
|
PXContext* = ptr TXContext
|
||||||
|
TXContext* = cint
|
||||||
|
|
||||||
|
proc XAllocClassHint*(): PXClassHint{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XAllocIconSize*(): PXIconSize{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XAllocSizeHints*(): PXSizeHints{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XAllocStandardColormap*(): PXStandardColormap{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XAllocWMHints*(): PXWMHints{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XClipBox*(para1: TRegion, para2: PXRectangle): cint{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XCreateRegion*(): TRegion{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XDefaultString*(): cstring{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XDeleteContext*(para1: PDisplay, para2: TXID, para3: TXContext): cint{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XDestroyRegion*(para1: TRegion): cint{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XEmptyRegion*(para1: TRegion): cint{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XEqualRegion*(para1: TRegion, para2: TRegion): cint{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XFindContext*(para1: PDisplay, para2: TXID, para3: TXContext,
|
||||||
|
para4: PXPointer): cint{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetClassHint*(para1: PDisplay, para2: TWindow, para3: PXClassHint): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetIconSizes*(para1: PDisplay, para2: TWindow, para3: PPXIconSize,
|
||||||
|
para4: Pcint): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetNormalHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetRGBColormaps*(para1: PDisplay, para2: TWindow,
|
||||||
|
para3: PPXStandardColormap, para4: Pcint, para5: TAtom): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetSizeHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints,
|
||||||
|
para4: TAtom): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetStandardColormap*(para1: PDisplay, para2: TWindow,
|
||||||
|
para3: PXStandardColormap, para4: TAtom): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetTextProperty*(para1: PDisplay, para2: TWindow, para3: PXTextProperty,
|
||||||
|
para4: TAtom): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetVisualInfo*(para1: PDisplay, para2: clong, para3: PXVisualInfo,
|
||||||
|
para4: Pcint): PXVisualInfo{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetWMClientMachine*(para1: PDisplay, para2: TWindow, para3: PXTextProperty): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetWMHints*(para1: PDisplay, para2: TWindow): PXWMHints{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XGetWMIconName*(para1: PDisplay, para2: TWindow, para3: PXTextProperty): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetWMName*(para1: PDisplay, para2: TWindow, para3: PXTextProperty): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetWMNormalHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints,
|
||||||
|
para4: ptr int): TStatus{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XGetWMSizeHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints,
|
||||||
|
para4: ptr int, para5: TAtom): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XGetZoomHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints): TStatus{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XIntersectRegion*(para1: TRegion, para2: TRegion, para3: TRegion): cint{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XConvertCase*(para1: TKeySym, para2: PKeySym, para3: PKeySym){.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XLookupString*(para1: PXKeyEvent, para2: cstring, para3: cint,
|
||||||
|
para4: PKeySym, para5: PXComposeStatus): cint{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XMatchVisualInfo*(para1: PDisplay, para2: cint, para3: cint, para4: cint,
|
||||||
|
para5: PXVisualInfo): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XOffsetRegion*(para1: TRegion, para2: cint, para3: cint): cint{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XPointInRegion*(para1: TRegion, para2: cint, para3: cint): TBool{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XPolygonRegion*(para1: PXPoint, para2: cint, para3: cint): TRegion{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XRectInRegion*(para1: TRegion, para2: cint, para3: cint, para4: cuint,
|
||||||
|
para5: cuint): cint{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSaveContext*(para1: PDisplay, para2: TXID, para3: TXContext,
|
||||||
|
para4: cstring): cint{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetClassHint*(para1: PDisplay, para2: TWindow, para3: PXClassHint): cint{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetIconSizes*(para1: PDisplay, para2: TWindow, para3: PXIconSize,
|
||||||
|
para4: cint): cint{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetNormalHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints): cint{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetRGBColormaps*(para1: PDisplay, para2: TWindow,
|
||||||
|
para3: PXStandardColormap, para4: cint, para5: TAtom){.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetSizeHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints,
|
||||||
|
para4: TAtom): cint{.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetStandardProperties*(para1: PDisplay, para2: TWindow, para3: cstring,
|
||||||
|
para4: cstring, para5: TPixmap, para6: PPchar,
|
||||||
|
para7: cint, para8: PXSizeHints): cint{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XSetTextProperty*(para1: PDisplay, para2: TWindow, para3: PXTextProperty,
|
||||||
|
para4: TAtom){.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetWMClientMachine*(para1: PDisplay, para2: TWindow, para3: PXTextProperty){.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetWMHints*(para1: PDisplay, para2: TWindow, para3: PXWMHints): cint{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetWMIconName*(para1: PDisplay, para2: TWindow, para3: PXTextProperty){.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetWMName*(para1: PDisplay, para2: TWindow, para3: PXTextProperty){.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XSetWMNormalHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints){.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetWMProperties*(para1: PDisplay, para2: TWindow, para3: PXTextProperty,
|
||||||
|
para4: PXTextProperty, para5: PPchar, para6: cint,
|
||||||
|
para7: PXSizeHints, para8: PXWMHints, para9: PXClassHint){.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XmbSetWMProperties*(para1: PDisplay, para2: TWindow, para3: cstring,
|
||||||
|
para4: cstring, para5: PPchar, para6: cint,
|
||||||
|
para7: PXSizeHints, para8: PXWMHints,
|
||||||
|
para9: PXClassHint){.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc Xutf8SetWMProperties*(para1: PDisplay, para2: TWindow, para3: cstring,
|
||||||
|
para4: cstring, para5: PPchar, para6: cint,
|
||||||
|
para7: PXSizeHints, para8: PXWMHints,
|
||||||
|
para9: PXClassHint){.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetWMSizeHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints,
|
||||||
|
para4: TAtom){.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XSetRegion*(para1: PDisplay, para2: TGC, para3: TRegion): cint{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XSetStandardColormap*(para1: PDisplay, para2: TWindow,
|
||||||
|
para3: PXStandardColormap, para4: TAtom){.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XSetZoomHints*(para1: PDisplay, para2: TWindow, para3: PXSizeHints): cint{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XShrinkRegion*(para1: TRegion, para2: cint, para3: cint): cint{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XStringListToTextProperty*(para1: PPchar, para2: cint,
|
||||||
|
para3: PXTextProperty): TStatus{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XSubtractRegion*(para1: TRegion, para2: TRegion, para3: TRegion): cint{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XmbTextListToTextProperty*(para1: PDisplay, para2: PPchar, para3: cint,
|
||||||
|
para4: TXICCEncodingStyle, para5: PXTextProperty): cint{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XwcTextListToTextProperty*(para1: PDisplay, para2: ptr ptr int16, para3: cint,
|
||||||
|
para4: TXICCEncodingStyle, para5: PXTextProperty): cint{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc Xutf8TextListToTextProperty*(para1: PDisplay, para2: PPchar, para3: cint,
|
||||||
|
para4: TXICCEncodingStyle,
|
||||||
|
para5: PXTextProperty): cint{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XwcFreeStringList*(para1: ptr ptr int16){.cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XTextPropertyToStringList*(para1: PXTextProperty, para2: PPPchar,
|
||||||
|
para3: Pcint): TStatus{.cdecl, dynlib: libX11,
|
||||||
|
importc.}
|
||||||
|
proc XmbTextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty,
|
||||||
|
para3: PPPchar, para4: Pcint): cint{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XwcTextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty,
|
||||||
|
para3: ptr ptr ptr int16, para4: Pcint): cint{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc Xutf8TextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty,
|
||||||
|
para3: PPPchar, para4: Pcint): cint{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XUnionRectWithRegion*(para1: PXRectangle, para2: TRegion, para3: TRegion): cint{.
|
||||||
|
cdecl, dynlib: libX11, importc.}
|
||||||
|
proc XUnionRegion*(para1: TRegion, para2: TRegion, para3: TRegion): cint{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XWMGeometry*(para1: PDisplay, para2: cint, para3: cstring, para4: cstring,
|
||||||
|
para5: cuint, para6: PXSizeHints, para7: Pcint, para8: Pcint,
|
||||||
|
para9: Pcint, para10: Pcint, para11: Pcint): cint{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
proc XXorRegion*(para1: TRegion, para2: TRegion, para3: TRegion): cint{.cdecl,
|
||||||
|
dynlib: libX11, importc.}
|
||||||
|
when defined(MACROS):
|
||||||
|
proc XDestroyImage*(ximage: PXImage): cint
|
||||||
|
proc XGetPixel*(ximage: PXImage, x, y: cint): culong
|
||||||
|
proc XPutPixel*(ximage: PXImage, x, y: cint, pixel: culong): cint
|
||||||
|
proc XSubImage*(ximage: PXImage, x, y: cint, width, height: cuint): PXImage
|
||||||
|
proc XAddPixel*(ximage: PXImage, value: clong): cint
|
||||||
|
proc IsKeypadKey*(keysym: TKeySym): bool
|
||||||
|
proc IsPrivateKeypadKey*(keysym: TKeySym): bool
|
||||||
|
proc IsCursorKey*(keysym: TKeySym): bool
|
||||||
|
proc IsPFKey*(keysym: TKeySym): bool
|
||||||
|
proc IsFunctionKey*(keysym: TKeySym): bool
|
||||||
|
proc IsMiscFunctionKey*(keysym: TKeySym): bool
|
||||||
|
proc IsModifierKey*(keysym: TKeySym): bool
|
||||||
|
#function XUniqueContext : TXContext;
|
||||||
|
#function XStringToContext(_string : Pchar) : TXContext;
|
||||||
|
# implementation
|
||||||
|
|
||||||
|
when defined(MACROS):
|
||||||
|
proc XDestroyImage(ximage: PXImage): cint =
|
||||||
|
XDestroyImage = ximage^ .f.destroy_image(ximage)
|
||||||
|
|
||||||
|
proc XGetPixel(ximage: PXImage, x, y: cint): culong =
|
||||||
|
XGetPixel = ximage^ .f.get_pixel(ximage, x, y)
|
||||||
|
|
||||||
|
proc XPutPixel(ximage: PXImage, x, y: cint, pixel: culong): cint =
|
||||||
|
XPutPixel = ximage^ .f.put_pixel(ximage, x, y, pixel)
|
||||||
|
|
||||||
|
proc XSubImage(ximage: PXImage, x, y: cint, width, height: cuint): PXImage =
|
||||||
|
XSubImage = ximage^ .f.sub_image(ximage, x, y, width, height)
|
||||||
|
|
||||||
|
proc XAddPixel(ximage: PXImage, value: clong): cint =
|
||||||
|
XAddPixel = ximage^ .f.add_pixel(ximage, value)
|
||||||
|
|
||||||
|
proc IsKeypadKey(keysym: TKeySym): bool =
|
||||||
|
IsKeypadKey = (keysym >= XK_KP_Space) and (keysym <= XK_KP_Equal)
|
||||||
|
|
||||||
|
proc IsPrivateKeypadKey(keysym: TKeySym): bool =
|
||||||
|
IsPrivateKeypadKey = (keysym >= 0x11000000) and (keysym <= 0x1100FFFF)
|
||||||
|
|
||||||
|
proc IsCursorKey(keysym: TKeySym): bool =
|
||||||
|
IsCursorKey = (keysym >= XK_Home) and (keysym < XK_Select)
|
||||||
|
|
||||||
|
proc IsPFKey(keysym: TKeySym): bool =
|
||||||
|
IsPFKey = (keysym >= XK_KP_F1) and (keysym <= XK_KP_F4)
|
||||||
|
|
||||||
|
proc IsFunctionKey(keysym: TKeySym): bool =
|
||||||
|
IsFunctionKey = (keysym >= XK_F1) and (keysym <= XK_F35)
|
||||||
|
|
||||||
|
proc IsMiscFunctionKey(keysym: TKeySym): bool =
|
||||||
|
IsMiscFunctionKey = (keysym >= XK_Select) and (keysym <= XK_Break)
|
||||||
|
|
||||||
|
proc IsModifierKey(keysym: TKeySym): bool =
|
||||||
|
IsModifierKey = ((keysym >= XK_Shift_L) And (keysym <= XK_Hyper_R)) Or
|
||||||
|
(keysym == XK_Mode_switch) Or (keysym == XK_Num_Lock)
|
||||||
84
lib/wrappers/x11/xv.nim
Executable file
84
lib/wrappers/x11/xv.nim
Executable file
|
|
@ -0,0 +1,84 @@
|
||||||
|
#***********************************************************
|
||||||
|
#Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
|
||||||
|
#and the Massachusetts Institute of Technology, Cambridge, 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 names of Digital or MIT 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.
|
||||||
|
#
|
||||||
|
#******************************************************************
|
||||||
|
# $XFree86: xc/include/extensions/Xv.h,v 1.3 1999/05/23 06:33:22 dawes Exp $
|
||||||
|
|
||||||
|
import
|
||||||
|
x
|
||||||
|
|
||||||
|
const
|
||||||
|
XvName* = "libXVideo.so"
|
||||||
|
XvVersion* = 2
|
||||||
|
XvRevision* = 2 # Symbols
|
||||||
|
|
||||||
|
type
|
||||||
|
TXvPortID* = TXID
|
||||||
|
TXvEncodingID* = TXID
|
||||||
|
|
||||||
|
const
|
||||||
|
XvNone* = 0
|
||||||
|
XvInput* = 0
|
||||||
|
XvOutput* = 1
|
||||||
|
XvInputMask* = 1 shl XvInput
|
||||||
|
XvOutputMask* = 1 shl XvOutput
|
||||||
|
XvVideoMask* = 0x00000004
|
||||||
|
XvStillMask* = 0x00000008
|
||||||
|
XvImageMask* = 0x00000010 # These two are not client viewable
|
||||||
|
XvPixmapMask* = 0x00010000
|
||||||
|
XvWindowMask* = 0x00020000
|
||||||
|
XvGettable* = 0x00000001
|
||||||
|
XvSettable* = 0x00000002
|
||||||
|
XvRGB* = 0
|
||||||
|
XvYUV* = 1
|
||||||
|
XvPacked* = 0
|
||||||
|
XvPlanar* = 1
|
||||||
|
XvTopToBottom* = 0
|
||||||
|
XvBottomToTop* = 1 # Events
|
||||||
|
XvVideoNotify* = 0
|
||||||
|
XvPortNotify* = 1
|
||||||
|
XvNumEvents* = 2 # Video Notify Reasons
|
||||||
|
XvStarted* = 0
|
||||||
|
XvStopped* = 1
|
||||||
|
XvBusy* = 2
|
||||||
|
XvPreempted* = 3
|
||||||
|
XvHardError* = 4
|
||||||
|
XvLastReason* = 4
|
||||||
|
XvNumReasons* = XvLastReason + 1
|
||||||
|
XvStartedMask* = 1 shl XvStarted
|
||||||
|
XvStoppedMask* = 1 shl XvStopped
|
||||||
|
XvBusyMask* = 1 shl XvBusy
|
||||||
|
XvPreemptedMask* = 1 shl XvPreempted
|
||||||
|
XvHardErrorMask* = 1 shl XvHardError
|
||||||
|
XvAnyReasonMask* = (1 shl XvNumReasons) - 1
|
||||||
|
XvNoReasonMask* = 0 # Errors
|
||||||
|
XvBadPort* = 0
|
||||||
|
XvBadEncoding* = 1
|
||||||
|
XvBadControl* = 2
|
||||||
|
XvNumErrors* = 3 # Status
|
||||||
|
XvBadExtension* = 1
|
||||||
|
XvAlreadyGrabbed* = 2
|
||||||
|
XvInvalidTime* = 3
|
||||||
|
XvBadReply* = 4
|
||||||
|
XvBadAlloc* = 5
|
||||||
|
|
||||||
|
# implementation
|
||||||
234
lib/wrappers/x11/xvlib.nim
Executable file
234
lib/wrappers/x11/xvlib.nim
Executable file
|
|
@ -0,0 +1,234 @@
|
||||||
|
#***********************************************************
|
||||||
|
#Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
|
||||||
|
#and the Massachusetts Institute of Technology, Cambridge, 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 names of Digital or MIT 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.
|
||||||
|
#
|
||||||
|
#******************************************************************
|
||||||
|
# $XFree86: xc/include/extensions/Xvlib.h,v 1.3 1999/12/11 19:28:48 mvojkovi Exp $
|
||||||
|
#*
|
||||||
|
#** File:
|
||||||
|
#**
|
||||||
|
#** Xvlib.h --- Xv library public header file
|
||||||
|
#**
|
||||||
|
#** Author:
|
||||||
|
#**
|
||||||
|
#** David Carver (Digital Workstation Engineering/Project Athena)
|
||||||
|
#**
|
||||||
|
#** Revisions:
|
||||||
|
#**
|
||||||
|
#** 26.06.91 Carver
|
||||||
|
#** - changed XvFreeAdaptors to XvFreeAdaptorInfo
|
||||||
|
#** - changed XvFreeEncodings to XvFreeEncodingInfo
|
||||||
|
#**
|
||||||
|
#** 11.06.91 Carver
|
||||||
|
#** - changed SetPortControl to SetPortAttribute
|
||||||
|
#** - changed GetPortControl to GetPortAttribute
|
||||||
|
#** - changed QueryBestSize
|
||||||
|
#**
|
||||||
|
#** 05.15.91 Carver
|
||||||
|
#** - version 2.0 upgrade
|
||||||
|
#**
|
||||||
|
#** 01.24.91 Carver
|
||||||
|
#** - version 1.4 upgrade
|
||||||
|
#**
|
||||||
|
#*
|
||||||
|
|
||||||
|
import
|
||||||
|
x, xlib, xshm, xv
|
||||||
|
|
||||||
|
const
|
||||||
|
libXv* = "libXv.so"
|
||||||
|
|
||||||
|
type
|
||||||
|
PXvRational* = ptr TXvRational
|
||||||
|
TXvRational*{.final.} = object
|
||||||
|
numerator*: cint
|
||||||
|
denominator*: cint
|
||||||
|
|
||||||
|
PXvAttribute* = ptr TXvAttribute
|
||||||
|
TXvAttribute*{.final.} = object
|
||||||
|
flags*: cint # XvGettable, XvSettable
|
||||||
|
min_value*: cint
|
||||||
|
max_value*: cint
|
||||||
|
name*: cstring
|
||||||
|
|
||||||
|
PPXvEncodingInfo* = ptr PXvEncodingInfo
|
||||||
|
PXvEncodingInfo* = ptr TXvEncodingInfo
|
||||||
|
TXvEncodingInfo*{.final.} = object
|
||||||
|
encoding_id*: TXvEncodingID
|
||||||
|
name*: cstring
|
||||||
|
width*: culong
|
||||||
|
height*: culong
|
||||||
|
rate*: TXvRational
|
||||||
|
num_encodings*: culong
|
||||||
|
|
||||||
|
PXvFormat* = ptr TXvFormat
|
||||||
|
TXvFormat*{.final.} = object
|
||||||
|
depth*: cchar
|
||||||
|
visual_id*: culong
|
||||||
|
|
||||||
|
PPXvAdaptorInfo* = ptr PXvAdaptorInfo
|
||||||
|
PXvAdaptorInfo* = ptr TXvAdaptorInfo
|
||||||
|
TXvAdaptorInfo*{.final.} = object
|
||||||
|
base_id*: TXvPortID
|
||||||
|
num_ports*: culong
|
||||||
|
thetype*: cchar
|
||||||
|
name*: cstring
|
||||||
|
num_formats*: culong
|
||||||
|
formats*: PXvFormat
|
||||||
|
num_adaptors*: culong
|
||||||
|
|
||||||
|
PXvVideoNotifyEvent* = ptr TXvVideoNotifyEvent
|
||||||
|
TXvVideoNotifyEvent*{.final.} = object
|
||||||
|
theType*: cint
|
||||||
|
serial*: culong # # of last request processed by server
|
||||||
|
send_event*: TBool # true if this came from a SendEvent request
|
||||||
|
display*: PDisplay # Display the event was read from
|
||||||
|
drawable*: TDrawable # drawable
|
||||||
|
reason*: culong # what generated this event
|
||||||
|
port_id*: TXvPortID # what port
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
|
||||||
|
PXvPortNotifyEvent* = ptr TXvPortNotifyEvent
|
||||||
|
TXvPortNotifyEvent*{.final.} = object
|
||||||
|
theType*: cint
|
||||||
|
serial*: culong # # of last request processed by server
|
||||||
|
send_event*: TBool # true if this came from a SendEvent request
|
||||||
|
display*: PDisplay # Display the event was read from
|
||||||
|
port_id*: TXvPortID # what port
|
||||||
|
time*: TTime # milliseconds
|
||||||
|
attribute*: TAtom # atom that identifies attribute
|
||||||
|
value*: clong # value of attribute
|
||||||
|
|
||||||
|
PXvEvent* = ptr TXvEvent
|
||||||
|
TXvEvent*{.final.} = object
|
||||||
|
pad*: array[0..23, clong] #case longint of
|
||||||
|
# 0 : (
|
||||||
|
# theType : cint;
|
||||||
|
# );
|
||||||
|
# 1 : (
|
||||||
|
# xvvideo : TXvVideoNotifyEvent;
|
||||||
|
# );
|
||||||
|
# 2 : (
|
||||||
|
# xvport : TXvPortNotifyEvent;
|
||||||
|
# );
|
||||||
|
# 3 : (
|
||||||
|
#
|
||||||
|
# );
|
||||||
|
|
||||||
|
PXvImageFormatValues* = ptr TXvImageFormatValues
|
||||||
|
TXvImageFormatValues*{.final.} = object
|
||||||
|
id*: cint # Unique descriptor for the format
|
||||||
|
theType*: cint # XvRGB, XvYUV
|
||||||
|
byte_order*: cint # LSBFirst, MSBFirst
|
||||||
|
guid*: array[0..15, cchar] # Globally Unique IDentifier
|
||||||
|
bits_per_pixel*: cint
|
||||||
|
format*: cint # XvPacked, XvPlanar
|
||||||
|
num_planes*: cint # for RGB formats only
|
||||||
|
depth*: cint
|
||||||
|
red_mask*: cuint
|
||||||
|
green_mask*: cuint
|
||||||
|
blue_mask*: cuint # for YUV formats only
|
||||||
|
y_sample_bits*: cuint
|
||||||
|
u_sample_bits*: cuint
|
||||||
|
v_sample_bits*: cuint
|
||||||
|
horz_y_period*: cuint
|
||||||
|
horz_u_period*: cuint
|
||||||
|
horz_v_period*: cuint
|
||||||
|
vert_y_period*: cuint
|
||||||
|
vert_u_period*: cuint
|
||||||
|
vert_v_period*: cuint
|
||||||
|
component_order*: array[0..31, char] # eg. UYVY
|
||||||
|
scanline_order*: cint # XvTopToBottom, XvBottomToTop
|
||||||
|
|
||||||
|
PXvImage* = ptr TXvImage
|
||||||
|
TXvImage*{.final.} = object
|
||||||
|
id*: cint
|
||||||
|
width*, height*: cint
|
||||||
|
data_size*: cint # bytes
|
||||||
|
num_planes*: cint
|
||||||
|
pitches*: pcint # bytes
|
||||||
|
offsets*: pcint # bytes
|
||||||
|
data*: pointer
|
||||||
|
obdata*: TXPointer
|
||||||
|
|
||||||
|
|
||||||
|
proc XvQueryExtension*(display: PDisplay, p_version, p_revision, p_requestBase,
|
||||||
|
p_eventBase, p_errorBase: pcuint): cint{.cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvQueryAdaptors*(display: PDisplay, window: TWindow, p_nAdaptors: pcuint,
|
||||||
|
p_pAdaptors: PPXvAdaptorInfo): cint{.cdecl, dynlib: libXv,
|
||||||
|
importc.}
|
||||||
|
proc XvQueryEncodings*(display: PDisplay, port: TXvPortID, p_nEncoding: pcuint,
|
||||||
|
p_pEncoding: PPXvEncodingInfo): cint{.cdecl,
|
||||||
|
dynlib: libXv, importc.}
|
||||||
|
proc XvPutVideo*(display: PDisplay, port: TXvPortID, d: TDrawable, gc: TGC,
|
||||||
|
vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.
|
||||||
|
cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvPutStill*(display: PDisplay, port: TXvPortID, d: TDrawable, gc: TGC,
|
||||||
|
vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.
|
||||||
|
cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvGetVideo*(display: PDisplay, port: TXvPortID, d: TDrawable, gc: TGC,
|
||||||
|
vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.
|
||||||
|
cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvGetStill*(display: PDisplay, port: TXvPortID, d: TDrawable, gc: TGC,
|
||||||
|
vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{.
|
||||||
|
cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvStopVideo*(display: PDisplay, port: TXvPortID, drawable: TDrawable): cint{.
|
||||||
|
cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvGrabPort*(display: PDisplay, port: TXvPortID, time: TTime): cint{.cdecl,
|
||||||
|
dynlib: libXv, importc.}
|
||||||
|
proc XvUngrabPort*(display: PDisplay, port: TXvPortID, time: TTime): cint{.
|
||||||
|
cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvSelectVideoNotify*(display: PDisplay, drawable: TDrawable, onoff: TBool): cint{.
|
||||||
|
cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvSelectPortNotify*(display: PDisplay, port: TXvPortID, onoff: TBool): cint{.
|
||||||
|
cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvSetPortAttribute*(display: PDisplay, port: TXvPortID, attribute: TAtom,
|
||||||
|
value: cint): cint{.cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvGetPortAttribute*(display: PDisplay, port: TXvPortID, attribute: TAtom,
|
||||||
|
p_value: pcint): cint{.cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvQueryBestSize*(display: PDisplay, port: TXvPortID, motion: TBool,
|
||||||
|
vid_w, vid_h, drw_w, drw_h: cuint,
|
||||||
|
p_actual_width, p_actual_height: pcuint): cint{.cdecl,
|
||||||
|
dynlib: libXv, importc.}
|
||||||
|
proc XvQueryPortAttributes*(display: PDisplay, port: TXvPortID, number: pcint): PXvAttribute{.
|
||||||
|
cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvFreeAdaptorInfo*(adaptors: PXvAdaptorInfo){.cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvFreeEncodingInfo*(encodings: PXvEncodingInfo){.cdecl, dynlib: libXv,
|
||||||
|
importc.}
|
||||||
|
proc XvListImageFormats*(display: PDisplay, port_id: TXvPortID,
|
||||||
|
count_return: pcint): PXvImageFormatValues{.cdecl,
|
||||||
|
dynlib: libXv, importc.}
|
||||||
|
proc XvCreateImage*(display: PDisplay, port: TXvPortID, id: cint, data: pointer,
|
||||||
|
width, height: cint): PXvImage{.cdecl, dynlib: libXv,
|
||||||
|
importc.}
|
||||||
|
proc XvPutImage*(display: PDisplay, id: TXvPortID, d: TDrawable, gc: TGC,
|
||||||
|
image: PXvImage, src_x, src_y: cint, src_w, src_h: cuint,
|
||||||
|
dest_x, dest_y: cint, dest_w, dest_h: cuint): cint{.cdecl,
|
||||||
|
dynlib: libXv, importc.}
|
||||||
|
proc XvShmPutImage*(display: PDisplay, id: TXvPortID, d: TDrawable, gc: TGC,
|
||||||
|
image: PXvImage, src_x, src_y: cint, src_w, src_h: cuint,
|
||||||
|
dest_x, dest_y: cint, dest_w, dest_h: cuint,
|
||||||
|
send_event: TBool): cint{.cdecl, dynlib: libXv, importc.}
|
||||||
|
proc XvShmCreateImage*(display: PDisplay, port: TXvPortID, id: cint,
|
||||||
|
data: pointer, width, height: cint,
|
||||||
|
shminfo: PXShmSegmentInfo): PXvImage{.cdecl,
|
||||||
|
dynlib: libXv, importc.}
|
||||||
|
# implementation
|
||||||
241
lib/wrappers/zip/libzip.nim
Executable file
241
lib/wrappers/zip/libzip.nim
Executable file
|
|
@ -0,0 +1,241 @@
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Nimrod's Runtime Library
|
||||||
|
# (c) Copyright 2008 Andreas Rumpf
|
||||||
|
#
|
||||||
|
# See the file "copying.txt", included in this
|
||||||
|
# distribution, for details about the copyright.
|
||||||
|
#
|
||||||
|
|
||||||
|
## Interface to the `libzip <http://www.nih.at/libzip/index.html>`_ library by
|
||||||
|
## Dieter Baron and Thomas Klausner. However, this does not need any external
|
||||||
|
## library (DLL, lib*.so), as the source for this library is included and
|
||||||
|
## compiled with this interface.
|
||||||
|
|
||||||
|
#
|
||||||
|
# zip.h -- exported declarations.
|
||||||
|
# Copyright (C) 1999-2008 Dieter Baron and Thomas Klausner
|
||||||
|
#
|
||||||
|
# This file is part of libzip, a library to manipulate ZIP archives.
|
||||||
|
# The authors can be contacted at <libzip@nih.at>
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
# 1. Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in
|
||||||
|
# the documentation and/or other materials provided with the
|
||||||
|
# distribution.
|
||||||
|
# 3. The names of the authors may not be used to endorse or promote
|
||||||
|
# products derived from this software without specific prior
|
||||||
|
# written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
|
||||||
|
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
|
||||||
|
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||||
|
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||||
|
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||||
|
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
import times
|
||||||
|
|
||||||
|
{.compile: "libzip_all.c".}
|
||||||
|
when defined(unix):
|
||||||
|
{.passl: "-lz".}
|
||||||
|
|
||||||
|
type
|
||||||
|
Tzip_source_cmd* = int32
|
||||||
|
|
||||||
|
Tzip_source_callback* = proc (state: pointer, data: pointer, length: int,
|
||||||
|
cmd: Tzip_source_cmd): int {.cdecl.}
|
||||||
|
Pzip_stat* = ptr Tzip_stat
|
||||||
|
Tzip_stat* {.final, pure.} = object
|
||||||
|
name*: cstring ## name of the file
|
||||||
|
index*: int32 ## index within archive
|
||||||
|
crc*: int32 ## crc of file data
|
||||||
|
mtime*: TTime ## modification time
|
||||||
|
size*: int ## size of file (uncompressed)
|
||||||
|
comp_size*: int ## size of file (compressed)
|
||||||
|
comp_method*: int16 ## compression method used
|
||||||
|
encryption_method*: int16 ## encryption method used
|
||||||
|
|
||||||
|
Tzip {.final, pure.} = object
|
||||||
|
Tzip_source {.final, pure.} = object
|
||||||
|
Tzip_file {.final, pure.} = object
|
||||||
|
|
||||||
|
Pzip* = ptr Tzip ## represents a zip archive
|
||||||
|
Pzip_file* = ptr Tzip_file ## represents a file within an archive
|
||||||
|
Pzip_source* = ptr Tzip_source ## represents a source for an archive
|
||||||
|
|
||||||
|
|
||||||
|
# flags for zip_name_locate, zip_fopen, zip_stat, ...
|
||||||
|
const
|
||||||
|
ZIP_CREATE* = 1'i32
|
||||||
|
ZIP_EXCL* = 2'i32
|
||||||
|
ZIP_CHECKCONS* = 4'i32
|
||||||
|
ZIP_FL_NOCASE* = 1'i32 ## ignore case on name lookup
|
||||||
|
ZIP_FL_NODIR* = 2'i32 ## ignore directory component
|
||||||
|
ZIP_FL_COMPRESSED* = 4'i32 ## read compressed data
|
||||||
|
ZIP_FL_UNCHANGED* = 8'i32 ## use original data, ignoring changes
|
||||||
|
ZIP_FL_RECOMPRESS* = 16'i32 ## force recompression of data
|
||||||
|
|
||||||
|
const # archive global flags flags
|
||||||
|
ZIP_AFL_TORRENT* = 1'i32 ## torrent zipped
|
||||||
|
|
||||||
|
const # libzip error codes
|
||||||
|
ZIP_ER_OK* = 0'i32 ## N No error
|
||||||
|
ZIP_ER_MULTIDISK* = 1'i32 ## N Multi-disk zip archives not supported
|
||||||
|
ZIP_ER_RENAME* = 2'i32 ## S Renaming temporary file failed
|
||||||
|
ZIP_ER_CLOSE* = 3'i32 ## S Closing zip archive failed
|
||||||
|
ZIP_ER_SEEK* = 4'i32 ## S Seek error
|
||||||
|
ZIP_ER_READ* = 5'i32 ## S Read error
|
||||||
|
ZIP_ER_WRITE* = 6'i32 ## S Write error
|
||||||
|
ZIP_ER_CRC* = 7'i32 ## N CRC error
|
||||||
|
ZIP_ER_ZIPCLOSED* = 8'i32 ## N Containing zip archive was closed
|
||||||
|
ZIP_ER_NOENT* = 9'i32 ## N No such file
|
||||||
|
ZIP_ER_EXISTS* = 10'i32 ## N File already exists
|
||||||
|
ZIP_ER_OPEN* = 11'i32 ## S Can't open file
|
||||||
|
ZIP_ER_TMPOPEN* = 12'i32 ## S Failure to create temporary file
|
||||||
|
ZIP_ER_ZLIB* = 13'i32 ## Z Zlib error
|
||||||
|
ZIP_ER_MEMORY* = 14'i32 ## N Malloc failure
|
||||||
|
ZIP_ER_CHANGED* = 15'i32 ## N Entry has been changed
|
||||||
|
ZIP_ER_COMPNOTSUPP* = 16'i32 ## N Compression method not supported
|
||||||
|
ZIP_ER_EOF* = 17'i32 ## N Premature EOF
|
||||||
|
ZIP_ER_INVAL* = 18'i32 ## N Invalid argument
|
||||||
|
ZIP_ER_NOZIP* = 19'i32 ## N Not a zip archive
|
||||||
|
ZIP_ER_INTERNAL* = 20'i32 ## N Internal error
|
||||||
|
ZIP_ER_INCONS* = 21'i32 ## N Zip archive inconsistent
|
||||||
|
ZIP_ER_REMOVE* = 22'i32 ## S Can't remove file
|
||||||
|
ZIP_ER_DELETED* = 23'i32 ## N Entry has been deleted
|
||||||
|
|
||||||
|
const # type of system error value
|
||||||
|
ZIP_ET_NONE* = 0'i32 ## sys_err unused
|
||||||
|
ZIP_ET_SYS* = 1'i32 ## sys_err is errno
|
||||||
|
ZIP_ET_ZLIB* = 2'i32 ## sys_err is zlib error code
|
||||||
|
|
||||||
|
const # compression methods
|
||||||
|
ZIP_CM_DEFAULT* = -1'i32 ## better of deflate or store
|
||||||
|
ZIP_CM_STORE* = 0'i32 ## stored (uncompressed)
|
||||||
|
ZIP_CM_SHRINK* = 1'i32 ## shrunk
|
||||||
|
ZIP_CM_REDUCE_1* = 2'i32 ## reduced with factor 1
|
||||||
|
ZIP_CM_REDUCE_2* = 3'i32 ## reduced with factor 2
|
||||||
|
ZIP_CM_REDUCE_3* = 4'i32 ## reduced with factor 3
|
||||||
|
ZIP_CM_REDUCE_4* = 5'i32 ## reduced with factor 4
|
||||||
|
ZIP_CM_IMPLODE* = 6'i32 ## imploded
|
||||||
|
## 7 - Reserved for Tokenizing compression algorithm
|
||||||
|
ZIP_CM_DEFLATE* = 8'i32 ## deflated
|
||||||
|
ZIP_CM_DEFLATE64* = 9'i32 ## deflate64
|
||||||
|
ZIP_CM_PKWARE_IMPLODE* = 10'i32 ## PKWARE imploding
|
||||||
|
## 11 - Reserved by PKWARE
|
||||||
|
ZIP_CM_BZIP2* = 12'i32 ## compressed using BZIP2 algorithm
|
||||||
|
## 13 - Reserved by PKWARE
|
||||||
|
ZIP_CM_LZMA* = 14'i32 ## LZMA (EFS)
|
||||||
|
## 15-17 - Reserved by PKWARE
|
||||||
|
ZIP_CM_TERSE* = 18'i32 ## compressed using IBM TERSE (new)
|
||||||
|
ZIP_CM_LZ77* = 19'i32 ## IBM LZ77 z Architecture (PFS)
|
||||||
|
ZIP_CM_WAVPACK* = 97'i32 ## WavPack compressed data
|
||||||
|
ZIP_CM_PPMD* = 98'i32 ## PPMd version I, Rev 1
|
||||||
|
|
||||||
|
const # encryption methods
|
||||||
|
ZIP_EM_NONE* = 0'i32 ## not encrypted
|
||||||
|
ZIP_EM_TRAD_PKWARE* = 1'i32 ## traditional PKWARE encryption
|
||||||
|
|
||||||
|
const
|
||||||
|
ZIP_EM_UNKNOWN* = 0x0000FFFF'i32 ## unknown algorithm
|
||||||
|
|
||||||
|
const
|
||||||
|
ZIP_SOURCE_OPEN* = 0'i32 ## prepare for reading
|
||||||
|
ZIP_SOURCE_READ* = 1'i32 ## read data
|
||||||
|
ZIP_SOURCE_CLOSE* = 2'i32 ## reading is done
|
||||||
|
ZIP_SOURCE_STAT* = 3'i32 ## get meta information
|
||||||
|
ZIP_SOURCE_ERROR* = 4'i32 ## get error information
|
||||||
|
constZIP_SOURCE_FREE* = 5'i32 ## cleanup and free resources
|
||||||
|
|
||||||
|
proc zip_add*(para1: Pzip, para2: cstring, para3: Pzip_source): int32 {.cdecl,
|
||||||
|
importc: "zip_add".}
|
||||||
|
proc zip_add_dir*(para1: Pzip, para2: cstring): int32 {.cdecl,
|
||||||
|
importc: "zip_add_dir".}
|
||||||
|
proc zip_close*(para1: Pzip) {.cdecl, importc: "zip_close".}
|
||||||
|
proc zip_delete*(para1: Pzip, para2: int32): int32 {.cdecl,
|
||||||
|
importc: "zip_delete".}
|
||||||
|
proc zip_error_clear*(para1: Pzip) {.cdecl, importc: "zip_error_clear".}
|
||||||
|
proc zip_error_get*(para1: Pzip, para2: ptr int32, para3: ptr int32) {.cdecl,
|
||||||
|
importc: "zip_error_get".}
|
||||||
|
proc zip_error_get_sys_type*(para1: int32): int32 {.cdecl,
|
||||||
|
importc: "zip_error_get_sys_type".}
|
||||||
|
proc zip_error_to_str*(para1: cstring, para2: int, para3: int32,
|
||||||
|
para4: int32): int32 {.cdecl,
|
||||||
|
importc: "zip_error_to_str".}
|
||||||
|
proc zip_fclose*(para1: Pzip_file) {.cdecl,
|
||||||
|
importc: "zip_fclose".}
|
||||||
|
proc zip_file_error_clear*(para1: Pzip_file) {.cdecl,
|
||||||
|
importc: "zip_file_error_clear".}
|
||||||
|
proc zip_file_error_get*(para1: Pzip_file, para2: ptr int32, para3: ptr int32) {.
|
||||||
|
cdecl, importc: "zip_file_error_get".}
|
||||||
|
proc zip_file_strerror*(para1: Pzip_file): cstring {.cdecl,
|
||||||
|
importc: "zip_file_strerror".}
|
||||||
|
proc zip_fopen*(para1: Pzip, para2: cstring, para3: int32): Pzip_file {.cdecl,
|
||||||
|
importc: "zip_fopen".}
|
||||||
|
proc zip_fopen_index*(para1: Pzip, para2: int32, para3: int32): Pzip_file {.
|
||||||
|
cdecl, importc: "zip_fopen_index".}
|
||||||
|
proc zip_fread*(para1: Pzip_file, para2: pointer, para3: int): int {.
|
||||||
|
cdecl, importc: "zip_fread".}
|
||||||
|
proc zip_get_archive_comment*(para1: Pzip, para2: ptr int32, para3: int32): cstring {.
|
||||||
|
cdecl, importc: "zip_get_archive_comment".}
|
||||||
|
proc zip_get_archive_flag*(para1: Pzip, para2: int32, para3: int32): int32 {.
|
||||||
|
cdecl, importc: "zip_get_archive_flag".}
|
||||||
|
proc zip_get_file_comment*(para1: Pzip, para2: int32, para3: ptr int32,
|
||||||
|
para4: int32): cstring {.cdecl,
|
||||||
|
importc: "zip_get_file_comment".}
|
||||||
|
proc zip_get_name*(para1: Pzip, para2: int32, para3: int32): cstring {.cdecl,
|
||||||
|
importc: "zip_get_name".}
|
||||||
|
proc zip_get_num_files*(para1: Pzip): int32 {.cdecl,
|
||||||
|
importc: "zip_get_num_files".}
|
||||||
|
proc zip_name_locate*(para1: Pzip, para2: cstring, para3: int32): int32 {.cdecl,
|
||||||
|
importc: "zip_name_locate".}
|
||||||
|
proc zip_open*(para1: cstring, para2: int32, para3: ptr int32): Pzip {.cdecl,
|
||||||
|
importc: "zip_open".}
|
||||||
|
proc zip_rename*(para1: Pzip, para2: int32, para3: cstring): int32 {.cdecl,
|
||||||
|
importc: "zip_rename".}
|
||||||
|
proc zip_replace*(para1: Pzip, para2: int32, para3: Pzip_source): int32 {.cdecl,
|
||||||
|
importc: "zip_replace".}
|
||||||
|
proc zip_set_archive_comment*(para1: Pzip, para2: cstring, para3: int32): int32 {.
|
||||||
|
cdecl, importc: "zip_set_archive_comment".}
|
||||||
|
proc zip_set_archive_flag*(para1: Pzip, para2: int32, para3: int32): int32 {.
|
||||||
|
cdecl, importc: "zip_set_archive_flag".}
|
||||||
|
proc zip_set_file_comment*(para1: Pzip, para2: int32, para3: cstring,
|
||||||
|
para4: int32): int32 {.cdecl,
|
||||||
|
importc: "zip_set_file_comment".}
|
||||||
|
proc zip_source_buffer*(para1: Pzip, para2: pointer, para3: int, para4: int32): Pzip_source {.
|
||||||
|
cdecl, importc: "zip_source_buffer".}
|
||||||
|
proc zip_source_file*(para1: Pzip, para2: cstring, para3: int, para4: int): Pzip_source {.
|
||||||
|
cdecl, importc: "zip_source_file".}
|
||||||
|
proc zip_source_filep*(para1: Pzip, para2: TFile, para3: int, para4: int): Pzip_source {.
|
||||||
|
cdecl, importc: "zip_source_filep".}
|
||||||
|
proc zip_source_free*(para1: Pzip_source) {.cdecl,
|
||||||
|
importc: "zip_source_free".}
|
||||||
|
proc zip_source_function*(para1: Pzip, para2: Tzip_source_callback,
|
||||||
|
para3: pointer): Pzip_source {.cdecl,
|
||||||
|
importc: "zip_source_function".}
|
||||||
|
proc zip_source_zip*(para1: Pzip, para2: Pzip, para3: int32, para4: int32,
|
||||||
|
para5: int, para6: int): Pzip_source {.cdecl,
|
||||||
|
importc: "zip_source_zip".}
|
||||||
|
proc zip_stat*(para1: Pzip, para2: cstring, para3: int32, para4: Pzip_stat): int32 {.
|
||||||
|
cdecl, importc: "zip_stat".}
|
||||||
|
proc zip_stat_index*(para1: Pzip, para2: int32, para3: int32, para4: Pzip_stat): int32 {.
|
||||||
|
cdecl, importc: "zip_stat_index".}
|
||||||
|
proc zip_stat_init*(para1: Pzip_stat) {.cdecl, importc: "zip_stat_init".}
|
||||||
|
proc zip_strerror*(para1: Pzip): cstring {.cdecl, importc: "zip_strerror".}
|
||||||
|
proc zip_unchange*(para1: Pzip, para2: int32): int32 {.cdecl,
|
||||||
|
importc: "zip_unchange".}
|
||||||
|
proc zip_unchange_all*(para1: Pzip): int32 {.cdecl, importc: "zip_unchange_all".}
|
||||||
|
proc zip_unchange_archive*(para1: Pzip): int32 {.cdecl,
|
||||||
|
importc: "zip_unchange_archive".}
|
||||||
181
lib/wrappers/zip/zlib.nim
Executable file
181
lib/wrappers/zip/zlib.nim
Executable file
|
|
@ -0,0 +1,181 @@
|
||||||
|
# Converted from Pascal
|
||||||
|
|
||||||
|
## Interface to the zlib http://www.zlib.net/ compression library.
|
||||||
|
|
||||||
|
when defined(windows):
|
||||||
|
const libz = "zlib1.dll"
|
||||||
|
elif defined(macosx):
|
||||||
|
const libz = "libz.dylib"
|
||||||
|
else:
|
||||||
|
const libz = "libz.so"
|
||||||
|
|
||||||
|
type
|
||||||
|
Uint* = int32
|
||||||
|
Ulong* = int
|
||||||
|
Ulongf* = int
|
||||||
|
Pulongf* = ptr Ulongf
|
||||||
|
z_off_t* = int32
|
||||||
|
pbyte* = cstring
|
||||||
|
pbytef* = cstring
|
||||||
|
TAllocfunc* = proc (p: pointer, items: uInt, size: uInt): pointer{.cdecl.}
|
||||||
|
TFreeFunc* = proc (p: pointer, address: pointer){.cdecl.}
|
||||||
|
TInternalState*{.final, pure.} = object
|
||||||
|
PInternalState* = ptr TInternalstate
|
||||||
|
TZStream*{.final, pure.} = object
|
||||||
|
next_in*: pbytef
|
||||||
|
avail_in*: uInt
|
||||||
|
total_in*: uLong
|
||||||
|
next_out*: pbytef
|
||||||
|
avail_out*: uInt
|
||||||
|
total_out*: uLong
|
||||||
|
msg*: pbytef
|
||||||
|
state*: PInternalState
|
||||||
|
zalloc*: TAllocFunc
|
||||||
|
zfree*: TFreeFunc
|
||||||
|
opaque*: pointer
|
||||||
|
data_type*: int32
|
||||||
|
adler*: uLong
|
||||||
|
reserved*: uLong
|
||||||
|
|
||||||
|
TZStreamRec* = TZStream
|
||||||
|
PZstream* = ptr TZStream
|
||||||
|
gzFile* = pointer
|
||||||
|
|
||||||
|
const
|
||||||
|
Z_NO_FLUSH* = 0
|
||||||
|
Z_PARTIAL_FLUSH* = 1
|
||||||
|
Z_SYNC_FLUSH* = 2
|
||||||
|
Z_FULL_FLUSH* = 3
|
||||||
|
Z_FINISH* = 4
|
||||||
|
Z_OK* = 0
|
||||||
|
Z_STREAM_END* = 1
|
||||||
|
Z_NEED_DICT* = 2
|
||||||
|
Z_ERRNO* = -1
|
||||||
|
Z_STREAM_ERROR* = -2
|
||||||
|
Z_DATA_ERROR* = -3
|
||||||
|
Z_MEM_ERROR* = -4
|
||||||
|
Z_BUF_ERROR* = -5
|
||||||
|
Z_VERSION_ERROR* = -6
|
||||||
|
Z_NO_COMPRESSION* = 0
|
||||||
|
Z_BEST_SPEED* = 1
|
||||||
|
Z_BEST_COMPRESSION* = 9
|
||||||
|
Z_DEFAULT_COMPRESSION* = -1
|
||||||
|
Z_FILTERED* = 1
|
||||||
|
Z_HUFFMAN_ONLY* = 2
|
||||||
|
Z_DEFAULT_STRATEGY* = 0
|
||||||
|
Z_BINARY* = 0
|
||||||
|
Z_ASCII* = 1
|
||||||
|
Z_UNKNOWN* = 2
|
||||||
|
Z_DEFLATED* = 8
|
||||||
|
Z_NULL* = 0
|
||||||
|
|
||||||
|
proc zlibVersion*(): cstring{.cdecl, dynlib: libz, importc: "zlibVersion".}
|
||||||
|
proc deflate*(strm: var TZStream, flush: int32): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "deflate".}
|
||||||
|
proc deflateEnd*(strm: var TZStream): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "deflateEnd".}
|
||||||
|
proc inflate*(strm: var TZStream, flush: int32): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "inflate".}
|
||||||
|
proc inflateEnd*(strm: var TZStream): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "inflateEnd".}
|
||||||
|
proc deflateSetDictionary*(strm: var TZStream, dictionary: pbytef,
|
||||||
|
dictLength: uInt): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "deflateSetDictionary".}
|
||||||
|
proc deflateCopy*(dest, source: var TZstream): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "deflateCopy".}
|
||||||
|
proc deflateReset*(strm: var TZStream): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "deflateReset".}
|
||||||
|
proc deflateParams*(strm: var TZStream, level: int32, strategy: int32): int32{.
|
||||||
|
cdecl, dynlib: libz, importc: "deflateParams".}
|
||||||
|
proc inflateSetDictionary*(strm: var TZStream, dictionary: pbytef,
|
||||||
|
dictLength: uInt): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "inflateSetDictionary".}
|
||||||
|
proc inflateSync*(strm: var TZStream): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "inflateSync".}
|
||||||
|
proc inflateReset*(strm: var TZStream): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "inflateReset".}
|
||||||
|
proc compress*(dest: pbytef, destLen: puLongf, source: pbytef, sourceLen: uLong): cint{.
|
||||||
|
cdecl, dynlib: libz, importc: "compress".}
|
||||||
|
proc compress2*(dest: pbytef, destLen: puLongf, source: pbytef,
|
||||||
|
sourceLen: uLong, level: cint): cint{.cdecl, dynlib: libz,
|
||||||
|
importc: "compress2".}
|
||||||
|
proc uncompress*(dest: pbytef, destLen: puLongf, source: pbytef,
|
||||||
|
sourceLen: uLong): cint{.cdecl, dynlib: libz,
|
||||||
|
importc: "uncompress".}
|
||||||
|
proc gzopen*(path: cstring, mode: cstring): gzFile{.cdecl, dynlib: libz,
|
||||||
|
importc: "gzopen".}
|
||||||
|
proc gzdopen*(fd: int32, mode: cstring): gzFile{.cdecl, dynlib: libz,
|
||||||
|
importc: "gzdopen".}
|
||||||
|
proc gzsetparams*(thefile: gzFile, level: int32, strategy: int32): int32{.cdecl,
|
||||||
|
dynlib: libz, importc: "gzsetparams".}
|
||||||
|
proc gzread*(thefile: gzFile, buf: pointer, length: int): int32{.cdecl,
|
||||||
|
dynlib: libz, importc: "gzread".}
|
||||||
|
proc gzwrite*(thefile: gzFile, buf: pointer, length: int): int32{.cdecl,
|
||||||
|
dynlib: libz, importc: "gzwrite".}
|
||||||
|
proc gzprintf*(thefile: gzFile, format: pbytef): int32{.varargs, cdecl,
|
||||||
|
dynlib: libz, importc: "gzprintf".}
|
||||||
|
proc gzputs*(thefile: gzFile, s: pbytef): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "gzputs".}
|
||||||
|
proc gzgets*(thefile: gzFile, buf: pbytef, length: int32): pbytef{.cdecl,
|
||||||
|
dynlib: libz, importc: "gzgets".}
|
||||||
|
proc gzputc*(thefile: gzFile, c: char): char{.cdecl, dynlib: libz,
|
||||||
|
importc: "gzputc".}
|
||||||
|
proc gzgetc*(thefile: gzFile): char{.cdecl, dynlib: libz, importc: "gzgetc".}
|
||||||
|
proc gzflush*(thefile: gzFile, flush: int32): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "gzflush".}
|
||||||
|
proc gzseek*(thefile: gzFile, offset: z_off_t, whence: int32): z_off_t{.cdecl,
|
||||||
|
dynlib: libz, importc: "gzseek".}
|
||||||
|
proc gzrewind*(thefile: gzFile): int32{.cdecl, dynlib: libz, importc: "gzrewind".}
|
||||||
|
proc gztell*(thefile: gzFile): z_off_t{.cdecl, dynlib: libz, importc: "gztell".}
|
||||||
|
proc gzeof*(thefile: gzFile): int {.cdecl, dynlib: libz, importc: "gzeof".}
|
||||||
|
proc gzclose*(thefile: gzFile): int32{.cdecl, dynlib: libz, importc: "gzclose".}
|
||||||
|
proc gzerror*(thefile: gzFile, errnum: var int32): pbytef{.cdecl, dynlib: libz,
|
||||||
|
importc: "gzerror".}
|
||||||
|
proc adler32*(adler: uLong, buf: pbytef, length: uInt): uLong{.cdecl,
|
||||||
|
dynlib: libz, importc: "adler32".}
|
||||||
|
proc crc32*(crc: uLong, buf: pbytef, length: uInt): uLong{.cdecl, dynlib: libz,
|
||||||
|
importc: "crc32".}
|
||||||
|
proc deflateInitu*(strm: var TZStream, level: int32, version: cstring,
|
||||||
|
stream_size: int32): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "deflateInit_".}
|
||||||
|
proc inflateInitu*(strm: var TZStream, version: cstring,
|
||||||
|
stream_size: int32): int32 {.
|
||||||
|
cdecl, dynlib: libz, importc: "inflateInit_".}
|
||||||
|
proc deflateInit*(strm: var TZStream, level: int32): int32
|
||||||
|
proc inflateInit*(strm: var TZStream): int32
|
||||||
|
proc deflateInit2u*(strm: var TZStream, level: int32, `method`: int32,
|
||||||
|
windowBits: int32, memLevel: int32, strategy: int32,
|
||||||
|
version: cstring, stream_size: int32): int32 {.cdecl,
|
||||||
|
dynlib: libz, importc: "deflateInit2_".}
|
||||||
|
proc inflateInit2u*(strm: var TZStream, windowBits: int32, version: cstring,
|
||||||
|
stream_size: int32): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "inflateInit2_".}
|
||||||
|
proc deflateInit2*(strm: var TZStream,
|
||||||
|
level, `method`, windowBits, memLevel,
|
||||||
|
strategy: int32): int32
|
||||||
|
proc inflateInit2*(strm: var TZStream, windowBits: int32): int32
|
||||||
|
proc zError*(err: int32): cstring{.cdecl, dynlib: libz, importc: "zError".}
|
||||||
|
proc inflateSyncPoint*(z: PZstream): int32{.cdecl, dynlib: libz,
|
||||||
|
importc: "inflateSyncPoint".}
|
||||||
|
proc get_crc_table*(): pointer{.cdecl, dynlib: libz, importc: "get_crc_table".}
|
||||||
|
|
||||||
|
proc deflateInit(strm: var TZStream, level: int32): int32 =
|
||||||
|
result = deflateInitu(strm, level, ZLIB_VERSION(), sizeof(TZStream))
|
||||||
|
|
||||||
|
proc inflateInit(strm: var TZStream): int32 =
|
||||||
|
result = inflateInitu(strm, ZLIB_VERSION(), sizeof(TZStream))
|
||||||
|
|
||||||
|
proc deflateInit2(strm: var TZStream,
|
||||||
|
level, `method`, windowBits, memLevel,
|
||||||
|
strategy: int32): int32 =
|
||||||
|
result = deflateInit2u(strm, level, `method`, windowBits, memLevel,
|
||||||
|
strategy, ZLIB_VERSION(), sizeof(TZStream))
|
||||||
|
|
||||||
|
proc inflateInit2(strm: var TZStream, windowBits: int32): int32 =
|
||||||
|
result = inflateInit2u(strm, windowBits, ZLIB_VERSION(), sizeof(TZStream))
|
||||||
|
|
||||||
|
proc zlibAllocMem*(AppData: Pointer, Items, Size: int): Pointer {.cdecl.} =
|
||||||
|
result = Alloc(Items * Size)
|
||||||
|
|
||||||
|
proc zlibFreeMem*(AppData, `Block`: Pointer) {.cdecl.} =
|
||||||
|
dealloc(`Block`)
|
||||||
172
lib/wrappers/zip/zzip.nim
Executable file
172
lib/wrappers/zip/zzip.nim
Executable file
|
|
@ -0,0 +1,172 @@
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Nimrod's Runtime Library
|
||||||
|
# (c) Copyright 2008 Andreas Rumpf
|
||||||
|
#
|
||||||
|
# See the file "copying.txt", included in this
|
||||||
|
# distribution, for details about the copyright.
|
||||||
|
#
|
||||||
|
|
||||||
|
## This module is an interface to the zzip library.
|
||||||
|
|
||||||
|
# Author:
|
||||||
|
# Guido Draheim <guidod@gmx.de>
|
||||||
|
# Tomi Ollila <Tomi.Ollila@iki.fi>
|
||||||
|
# Copyright (c) 1999,2000,2001,2002,2003,2004 Guido Draheim
|
||||||
|
# All rights reserved,
|
||||||
|
# usage allowed under the restrictions of the
|
||||||
|
# Lesser GNU General Public License
|
||||||
|
# or alternatively the restrictions
|
||||||
|
# of the Mozilla Public License 1.1
|
||||||
|
|
||||||
|
when defined(windows):
|
||||||
|
const
|
||||||
|
dllname = "zzip.dll"
|
||||||
|
else:
|
||||||
|
const
|
||||||
|
dllname = "libzzip.so"
|
||||||
|
|
||||||
|
type
|
||||||
|
TZZipError* = int32
|
||||||
|
const
|
||||||
|
ZZIP_ERROR* = -4096'i32
|
||||||
|
ZZIP_NO_ERROR* = 0'i32 # no error, may be used if user sets it.
|
||||||
|
ZZIP_OUTOFMEM* = ZZIP_ERROR - 20'i32 # out of memory
|
||||||
|
ZZIP_DIR_OPEN* = ZZIP_ERROR - 21'i32 # failed to open zipfile, see errno for details
|
||||||
|
ZZIP_DIR_STAT* = ZZIP_ERROR - 22'i32 # failed to fstat zipfile, see errno for details
|
||||||
|
ZZIP_DIR_SEEK* = ZZIP_ERROR - 23'i32 # failed to lseek zipfile, see errno for details
|
||||||
|
ZZIP_DIR_READ* = ZZIP_ERROR - 24'i32 # failed to read zipfile, see errno for details
|
||||||
|
ZZIP_DIR_TOO_SHORT* = ZZIP_ERROR - 25'i32
|
||||||
|
ZZIP_DIR_EDH_MISSING* = ZZIP_ERROR - 26'i32
|
||||||
|
ZZIP_DIRSIZE* = ZZIP_ERROR - 27'i32
|
||||||
|
ZZIP_ENOENT* = ZZIP_ERROR - 28'i32
|
||||||
|
ZZIP_UNSUPP_COMPR* = ZZIP_ERROR - 29'i32
|
||||||
|
ZZIP_CORRUPTED* = ZZIP_ERROR - 31'i32
|
||||||
|
ZZIP_UNDEF* = ZZIP_ERROR - 32'i32
|
||||||
|
ZZIP_DIR_LARGEFILE* = ZZIP_ERROR - 33'i32
|
||||||
|
|
||||||
|
ZZIP_CASELESS* = 1'i32 shl 12'i32
|
||||||
|
ZZIP_NOPATHS* = 1'i32 shl 13'i32
|
||||||
|
ZZIP_PREFERZIP* = 1'i32 shl 14'i32
|
||||||
|
ZZIP_ONLYZIP* = 1'i32 shl 16'i32
|
||||||
|
ZZIP_FACTORY* = 1'i32 shl 17'i32
|
||||||
|
ZZIP_ALLOWREAL* = 1'i32 shl 18'i32
|
||||||
|
ZZIP_THREADED* = 1'i32 shl 19'i32
|
||||||
|
|
||||||
|
type
|
||||||
|
TZZipDir* {.final, pure.} = object
|
||||||
|
TZZipFile* {.final, pure.} = object
|
||||||
|
TZZipPluginIO* {.final, pure.} = object
|
||||||
|
|
||||||
|
TZZipDirent* {.final, pure.} = object
|
||||||
|
d_compr*: int32 ## compression method
|
||||||
|
d_csize*: int32 ## compressed size
|
||||||
|
st_size*: int32 ## file size / decompressed size
|
||||||
|
d_name*: cstring ## file name / strdupped name
|
||||||
|
|
||||||
|
TZZipStat* = TZZipDirent
|
||||||
|
|
||||||
|
proc zzip_strerror*(errcode: int32): cstring {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_strerror".}
|
||||||
|
proc zzip_strerror_of*(dir: ptr TZZipDir): cstring {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_strerror_of".}
|
||||||
|
proc zzip_errno*(errcode: int32): int32 {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_errno".}
|
||||||
|
|
||||||
|
proc zzip_geterror*(dir: ptr TZZipDir): int32 {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_error".}
|
||||||
|
proc zzip_seterror*(dir: ptr TZZipDir, errcode: int32) {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_seterror".}
|
||||||
|
proc zzip_compr_str*(compr: int32): cstring {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_compr_str".}
|
||||||
|
proc zzip_dirhandle*(fp: ptr TZZipFile): ptr TZZipDir {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_dirhandle".}
|
||||||
|
proc zzip_dirfd*(dir: ptr TZZipDir): int32 {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_dirfd".}
|
||||||
|
proc zzip_dir_real*(dir: ptr TZZipDir): int32 {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_dir_real".}
|
||||||
|
proc zzip_file_real*(fp: ptr TZZipFile): int32 {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_file_real".}
|
||||||
|
proc zzip_realdir*(dir: ptr TZZipDir): pointer {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_realdir".}
|
||||||
|
proc zzip_realfd*(fp: ptr TZZipFile): int32 {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_realfd".}
|
||||||
|
|
||||||
|
proc zzip_dir_alloc*(fileext: cstringArray): ptr TZZipDir {.cdecl,
|
||||||
|
dynlib: dllname, importc: "zzip_dir_alloc".}
|
||||||
|
proc zzip_dir_free*(para1: ptr TZZipDir): int32 {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_dir_free".}
|
||||||
|
|
||||||
|
proc zzip_dir_fdopen*(fd: int32, errcode_p: ptr TZZipError): ptr TZZipDir {.cdecl,
|
||||||
|
dynlib: dllname, importc: "zzip_dir_fdopen".}
|
||||||
|
proc zzip_dir_open*(filename: cstring, errcode_p: ptr TZZipError): ptr TZZipDir {.
|
||||||
|
cdecl, dynlib: dllname, importc: "zzip_dir_open".}
|
||||||
|
proc zzip_dir_close*(dir: ptr TZZipDir) {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_dir_close".}
|
||||||
|
proc zzip_dir_read*(dir: ptr TZZipDir, dirent: ptr TZZipDirent): int32 {.cdecl,
|
||||||
|
dynlib: dllname, importc: "zzip_dir_read".}
|
||||||
|
|
||||||
|
proc zzip_opendir*(filename: cstring): ptr TZZipDir {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_opendir".}
|
||||||
|
proc zzip_closedir*(dir: ptr TZZipDir) {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_closedir".}
|
||||||
|
proc zzip_readdir*(dir: ptr TZZipDir): ptr TZZipDirent {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_readdir".}
|
||||||
|
proc zzip_rewinddir*(dir: ptr TZZipDir) {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_rewinddir".}
|
||||||
|
proc zzip_telldir*(dir: ptr TZZipDir): int {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_telldir".}
|
||||||
|
proc zzip_seekdir*(dir: ptr TZZipDir, offset: int) {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_seekdir".}
|
||||||
|
|
||||||
|
proc zzip_file_open*(dir: ptr TZZipDir, name: cstring, flags: int32): ptr TZZipFile {.
|
||||||
|
cdecl, dynlib: dllname, importc: "zzip_file_open".}
|
||||||
|
proc zzip_file_close*(fp: ptr TZZipFile) {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_file_close".}
|
||||||
|
proc zzip_file_read*(fp: ptr TZZipFile, buf: pointer, length: int): int {.
|
||||||
|
cdecl, dynlib: dllname, importc: "zzip_file_read".}
|
||||||
|
proc zzip_open*(name: cstring, flags: int32): ptr TZZipFile {.cdecl,
|
||||||
|
dynlib: dllname, importc: "zzip_open".}
|
||||||
|
proc zzip_close*(fp: ptr TZZipFile) {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_close".}
|
||||||
|
proc zzip_read*(fp: ptr TZZipFile, buf: pointer, length: int): int {.
|
||||||
|
cdecl, dynlib: dllname, importc: "zzip_read".}
|
||||||
|
|
||||||
|
proc zzip_freopen*(name: cstring, mode: cstring, para3: ptr TZZipFile): ptr TZZipFile {.
|
||||||
|
cdecl, dynlib: dllname, importc: "zzip_freopen".}
|
||||||
|
proc zzip_fopen*(name: cstring, mode: cstring): ptr TZZipFile {.cdecl,
|
||||||
|
dynlib: dllname, importc: "zzip_fopen".}
|
||||||
|
proc zzip_fread*(p: pointer, size: int, nmemb: int,
|
||||||
|
file: ptr TZZipFile): int {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_fread".}
|
||||||
|
proc zzip_fclose*(fp: ptr TZZipFile) {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_fclose".}
|
||||||
|
|
||||||
|
proc zzip_rewind*(fp: ptr TZZipFile): int32 {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_rewind".}
|
||||||
|
proc zzip_seek*(fp: ptr TZZipFile, offset: int, whence: int32): int {.
|
||||||
|
cdecl, dynlib: dllname, importc: "zzip_seek".}
|
||||||
|
proc zzip_tell*(fp: ptr TZZipFile): int {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_tell".}
|
||||||
|
|
||||||
|
proc zzip_dir_stat*(dir: ptr TZZipDir, name: cstring, zs: ptr TZZipStat,
|
||||||
|
flags: int32): int32 {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_dir_stat".}
|
||||||
|
proc zzip_file_stat*(fp: ptr TZZipFile, zs: ptr TZZipStat): int32 {.cdecl,
|
||||||
|
dynlib: dllname, importc: "zzip_file_stat".}
|
||||||
|
proc zzip_fstat*(fp: ptr TZZipFile, zs: ptr TZZipStat): int32 {.cdecl, dynlib: dllname,
|
||||||
|
importc: "zzip_fstat".}
|
||||||
|
|
||||||
|
proc zzip_open_shared_io*(stream: ptr TZZipFile, name: cstring,
|
||||||
|
o_flags: int32, o_modes: int32, ext: cstringArray,
|
||||||
|
io: ptr TZZipPluginIO): ptr TZZipFile {.cdecl,
|
||||||
|
dynlib: dllname, importc: "zzip_open_shared_io".}
|
||||||
|
proc zzip_open_ext_io*(name: cstring, o_flags: int32, o_modes: int32,
|
||||||
|
ext: cstringArray, io: ptr TZZipPluginIO): ptr TZZipFile {.
|
||||||
|
cdecl, dynlib: dllname, importc: "zzip_open_ext_io".}
|
||||||
|
proc zzip_opendir_ext_io*(name: cstring, o_modes: int32,
|
||||||
|
ext: cstringArray, io: ptr TZZipPluginIO): ptr TZZipDir {.
|
||||||
|
cdecl, dynlib: dllname, importc: "zzip_opendir_ext_io".}
|
||||||
|
proc zzip_dir_open_ext_io*(filename: cstring, errcode_p: ptr TZZipError,
|
||||||
|
ext: cstringArray, io: ptr TZZipPluginIO): ptr TZZipDir {.
|
||||||
|
cdecl, dynlib: dllname, importc: "zzip_dir_open_ext_io".}
|
||||||
|
|
@ -3,6 +3,7 @@ tadrdisc.nim;15;for a 'var' type a variable needs to be passed
|
||||||
tambsym.nim;6;ambiguous identifier
|
tambsym.nim;6;ambiguous identifier
|
||||||
tambsym2.nim;4;undeclared identifier: 'CreateRGBSurface'
|
tambsym2.nim;4;undeclared identifier: 'CreateRGBSurface'
|
||||||
tambsym3.nim;6;ambiguous identifier
|
tambsym3.nim;6;ambiguous identifier
|
||||||
|
tatomic.nim;2;identifier expected, but found 'atomic'
|
||||||
tbind2.nim;7;ambiguous call
|
tbind2.nim;7;ambiguous call
|
||||||
tbind4.nim;4;instantiation from here
|
tbind4.nim;4;instantiation from here
|
||||||
tblock1.nim;9;undeclared identifier: 'ha'
|
tblock1.nim;9;undeclared identifier: 'ha'
|
||||||
|
|
@ -10,16 +11,16 @@ tconstr1.nim;20;type mismatch
|
||||||
tillrec.nim;8;illegal recursion in type 'TIllegal'
|
tillrec.nim;8;illegal recursion in type 'TIllegal'
|
||||||
tinc.nim;3;to var type a variable needs to be passed
|
tinc.nim;3;to var type a variable needs to be passed
|
||||||
tinout.nim;7;for a 'var' type a variable needs to be passed
|
tinout.nim;7;for a 'var' type a variable needs to be passed
|
||||||
tinvalidnewseq.nim;10;
|
tinvalidnewseq.nim;10;type mismatch: got (array[0..6, string], int)
|
||||||
tinvwhen.nim;6;invalid indentation
|
tinvwhen.nim;6;invalid indentation
|
||||||
titer4.nim;2;iterator within for loop context expected
|
titer4.nim;2;iterator within for loop context expected
|
||||||
tnamspc.nim;5;
|
tnamspc.nim;5;Error: undeclared identifier: 'global'
|
||||||
tnoop.nim;6;expression 'a()' cannot be called
|
tnoop.nim;6;expression 'a()' cannot be called
|
||||||
tnot.nim;9;type mismatch
|
tnot.nim;9;type mismatch
|
||||||
topaque.nim;11;undeclared field: 'buffer'
|
topaque.nim;11;undeclared field: 'buffer'
|
||||||
topena1.nim;4;invalid type
|
topena1.nim;4;invalid type
|
||||||
toverl.nim;6;attempt to redefine 'TNone'
|
toverl.nim;6;attempt to redefine 'TNone'
|
||||||
trawstr.nim;5;
|
trawstr.nim;5;closing " expected
|
||||||
trecinca.nim;3;recursive dependency: 'tests/trecincb.nim'
|
trecinca.nim;3;recursive dependency: 'tests/trecincb.nim'
|
||||||
trecincb.nim;4;recursive dependency: 'tests/trecincb.nim'
|
trecincb.nim;4;recursive dependency: 'tests/trecincb.nim'
|
||||||
treciter.nim;4;recursive dependency: 'myrec'
|
treciter.nim;4;recursive dependency: 'myrec'
|
||||||
|
|
@ -27,7 +28,7 @@ trectype.nim;20;internal error: cannot generate C type for: PA
|
||||||
trefs.nim;15;type mismatch
|
trefs.nim;15;type mismatch
|
||||||
tsidee1.nim;7;'SideEffectLyer' can have side effects
|
tsidee1.nim;7;'SideEffectLyer' can have side effects
|
||||||
tsidee4.nim;10;type mismatch
|
tsidee4.nim;10;type mismatch
|
||||||
tsimtych.nim;5;
|
tsimtych.nim;5;type mismatch: got (bool) but expected 'string'
|
||||||
tstatret.nim;4;statement not allowed after
|
tstatret.nim;4;statement not allowed after
|
||||||
tstmtexp.nim;3;value returned by statement has to be discarded
|
tstmtexp.nim;3;value returned by statement has to be discarded
|
||||||
ttempl2.nim;13;undeclared identifier: 'b'
|
ttempl2.nim;13;undeclared identifier: 'b'
|
||||||
|
|
|
||||||
|
Can't render this file because it contains an unexpected character in line 23 and column 23.
|
|
|
@ -14,6 +14,7 @@ import
|
||||||
|
|
||||||
const
|
const
|
||||||
cmdTemplate = r"nimrod cc --hints:on $# $#"
|
cmdTemplate = r"nimrod cc --hints:on $# $#"
|
||||||
|
resultsFile = "testresults.html"
|
||||||
|
|
||||||
type
|
type
|
||||||
TMsg = tuple[
|
TMsg = tuple[
|
||||||
|
|
@ -25,7 +26,7 @@ type
|
||||||
TResult = tuple[test, expected, given: string, success: bool]
|
TResult = tuple[test, expected, given: string, success: bool]
|
||||||
TResults = object
|
TResults = object
|
||||||
total, passed: int
|
total, passed: int
|
||||||
data: seq[TResult]
|
data: string
|
||||||
|
|
||||||
proc myExec(cmd: string): string =
|
proc myExec(cmd: string): string =
|
||||||
#echo("Executing: " & cmd)
|
#echo("Executing: " & cmd)
|
||||||
|
|
@ -64,7 +65,7 @@ proc callCompiler(filename, options: string): TMsg =
|
||||||
elif s =~ pegSuccess:
|
elif s =~ pegSuccess:
|
||||||
result.err = false
|
result.err = false
|
||||||
|
|
||||||
proc setupCvsParser(cvsFile: string): TCsvParser =
|
proc setupCvsParser(csvFile: string): TCsvParser =
|
||||||
var s = newFileStream(csvFile, fmRead)
|
var s = newFileStream(csvFile, fmRead)
|
||||||
if s == nil: quit("cannot open the file" & csvFile)
|
if s == nil: quit("cannot open the file" & csvFile)
|
||||||
result.open(s, csvFile, separator=';', skipInitialSpace=true)
|
result.open(s, csvFile, separator=';', skipInitialSpace=true)
|
||||||
|
|
@ -84,27 +85,34 @@ proc parseRunData(dir: string): seq[TOutp] =
|
||||||
close(p)
|
close(p)
|
||||||
|
|
||||||
proc findSpec[T](specs: seq[T], filename: string): int =
|
proc findSpec[T](specs: seq[T], filename: string): int =
|
||||||
for s in items(specs):
|
while result < specs.len:
|
||||||
if s.file == filename: return
|
if specs[result].file == filename: return
|
||||||
inc(result)
|
inc(result)
|
||||||
quit("cannot find spec for file: " & filename)
|
quit("cannot find spec for file: " & filename)
|
||||||
|
|
||||||
proc initResults: TResults =
|
proc initResults: TResults =
|
||||||
result.total = 0
|
result.total = 0
|
||||||
result.passed = 0
|
result.passed = 0
|
||||||
result.data = @[]
|
result.data = ""
|
||||||
|
|
||||||
proc colorBool(b: bool): string =
|
proc colorBool(b: bool): string =
|
||||||
if b: result = "<span color:\"green\">yes</span>"
|
if b: result = "<span style=\"color:green\">yes</span>"
|
||||||
else: result = "<span color:\"red\">no</span>"
|
else: result = "<span style=\"color:red\">no</span>"
|
||||||
|
|
||||||
|
const
|
||||||
|
TableHeader = "<table border=\"1\"><tr><td>Test</td><td>Expected</td>" &
|
||||||
|
"<td>Given</td><td>Success</td></tr>\n"
|
||||||
|
TableFooter = "</table>\n"
|
||||||
|
|
||||||
proc `$`(r: TResults): string =
|
proc `$`(r: TResults): string =
|
||||||
result = "<table border=\"1\"><tr><td>Test</td><td>Expected</td>" &
|
result = TableHeader
|
||||||
"<td>Given</td><td>Success</td></tr>\n"
|
result.add(r.data)
|
||||||
for test, expected, given, success in items(r.data):
|
result.add(TableFooter)
|
||||||
result.add("<tr><td>$#</td><td>$#</td><td>$#</td><td>$#</td></tr>\n" % [
|
|
||||||
test, expected, given, success.colorBool])
|
proc addResult(r: var TResults, test, expected, given: string,
|
||||||
result.add("</table>\n")
|
success: bool) =
|
||||||
|
r.data.addf("<tr><td>$#</td><td>$#</td><td>$#</td><td>$#</td></tr>\n", [
|
||||||
|
test, expected, given, success.colorBool])
|
||||||
|
|
||||||
proc listResults(reject, compile, run: TResults) =
|
proc listResults(reject, compile, run: TResults) =
|
||||||
var s = "<html>"
|
var s = "<html>"
|
||||||
|
|
@ -116,20 +124,20 @@ proc listResults(reject, compile, run: TResults) =
|
||||||
s.add($run)
|
s.add($run)
|
||||||
s.add("</html>")
|
s.add("</html>")
|
||||||
var outp: TFile
|
var outp: TFile
|
||||||
if open(outp, "testresults.html", fmWrite):
|
if open(outp, resultsFile, fmWrite):
|
||||||
write(outp, )
|
write(outp, s)
|
||||||
close(outp)
|
close(outp)
|
||||||
|
|
||||||
proc cmpMsgs(r: var TResults, expected, given: TMsg, test: string) =
|
proc cmpMsgs(r: var TResults, expected, given: TMsg, test: string) =
|
||||||
inc(r.total)
|
inc(r.total)
|
||||||
if strip(expected.msg) notin strip(given.msg):
|
if strip(expected.msg) notin strip(given.msg):
|
||||||
r.data.add((test, expected.msg, given.msg, false))
|
r.addResult(test, expected.msg, given.msg, false)
|
||||||
elif expected.file != given.file:
|
elif expected.file != given.file:
|
||||||
r.data.add((test, expected.file, given.file, false))
|
r.addResult(test, expected.file, given.file, false)
|
||||||
elif expected.line != given.line:
|
elif expected.line != given.line:
|
||||||
r.data.add((test, $expected.line, $given.line, false))
|
r.addResult(test, $expected.line, $given.line, false)
|
||||||
else:
|
else:
|
||||||
r.data.add((test, expected.msg, given.msg, true))
|
r.addResult(test, expected.msg, given.msg, true)
|
||||||
inc(r.passed)
|
inc(r.passed)
|
||||||
|
|
||||||
proc reject(r: var TResults, dir, options: string) =
|
proc reject(r: var TResults, dir, options: string) =
|
||||||
|
|
@ -147,7 +155,8 @@ proc compile(r: var TResults, pattern, options: string) =
|
||||||
var t = extractFilename(test)
|
var t = extractFilename(test)
|
||||||
inc(r.total)
|
inc(r.total)
|
||||||
var given = callCompiler(test, options)
|
var given = callCompiler(test, options)
|
||||||
r.data.add((t, "", given.msg, not given.err))
|
echo given.msg, "##", given.err
|
||||||
|
r.addResult(t, "", given.msg, not given.err)
|
||||||
if not given.err: inc(r.passed)
|
if not given.err: inc(r.passed)
|
||||||
|
|
||||||
proc run(r: var TResults, dir, options: string) =
|
proc run(r: var TResults, dir, options: string) =
|
||||||
|
|
@ -157,17 +166,17 @@ proc run(r: var TResults, dir, options: string) =
|
||||||
inc(r.total)
|
inc(r.total)
|
||||||
var given = callCompiler(test, options)
|
var given = callCompiler(test, options)
|
||||||
if given.err:
|
if given.err:
|
||||||
r.data.add((t, "", given.msg, not given.err))
|
r.addResult(t, "", given.msg, not given.err)
|
||||||
else:
|
else:
|
||||||
var exeFile = changeFileExt(test, ExeExt)
|
var exeFile = changeFileExt(test, ExeExt)
|
||||||
var expected = specs[findSpec(specs, t)]
|
var expected = specs[findSpec(specs, t)]
|
||||||
if existsFile(exeFile):
|
if existsFile(exeFile):
|
||||||
var buf = myExec(exeFile)
|
var buf = myExec(exeFile)
|
||||||
var success = strip(buf) == strip(spec.outp)
|
var success = strip(buf) == strip(expected.outp)
|
||||||
if success: inc(r.passed)
|
if success: inc(r.passed)
|
||||||
r.data.add((t, spec.outp, buf, success))
|
r.addResult(t, expected.outp, buf, success)
|
||||||
else:
|
else:
|
||||||
r.data.add((t, spec.outp, "executable not found", false))
|
r.addResult(t, expected.outp, "executable not found", false)
|
||||||
|
|
||||||
var options = ""
|
var options = ""
|
||||||
var rejectRes = initResults()
|
var rejectRes = initResults()
|
||||||
|
|
@ -178,9 +187,10 @@ for i in 1.. paramCount():
|
||||||
add(options, " ")
|
add(options, " ")
|
||||||
add(options, paramStr(i))
|
add(options, paramStr(i))
|
||||||
|
|
||||||
reject(rejectRes, "tests/reject", options)
|
#reject(rejectRes, "tests/reject", options)
|
||||||
compile(compileRes, "tests/accept/compile/t*.nim", options)
|
#compile(compileRes, "tests/accept/compile/t*.nim", options)
|
||||||
compile(compileRes, "examples/*.nim", options)
|
compile(compileRes, "examples/*.nim", options)
|
||||||
compile(compileRes, "examples/gtk/*.nim", options)
|
#compile(compileRes, "examples/gtk/*.nim", options)
|
||||||
run(runRes, "tests/accept/run", options)
|
#run(runRes, "tests/accept/run", options)
|
||||||
|
listResults(rejectRes, compileRes, runRes)
|
||||||
|
openDefaultBrowser(resultsFile)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue