Julian Noble
1 year ago
1936 changed files with 21 additions and 678504 deletions
@ -0,0 +1,18 @@
|
||||
$url = "https://www.gitea1.intx.com.au/jn/punkbin/raw/branch/master/win64/tclkit86bi.exe" |
||||
$output = "runtime\tclkit86bi.exe" |
||||
|
||||
if (-not(Test-Path -Path $output -PathType Leaf)) { |
||||
try { |
||||
#Invoke-WebRequest $url -OutFile |
||||
|
||||
Import-Module BitsTransfer |
||||
Start-BitsTransfer -Source $url -Destination $output |
||||
Write-Host "Runtime saved at $output" |
||||
} |
||||
catch { |
||||
throw $_.Exception.Message |
||||
} |
||||
} |
||||
else { |
||||
Write-Host "Runtime already found at $output" |
||||
} |
@ -0,0 +1,3 @@
|
||||
Install a tclkit runtime here by running the appropriate fetchruntime script in ../src |
||||
|
||||
Alternatively the runtime can be downloaded from: https://www.gitea1.intx.com.au/jn/punkbin |
Binary file not shown.
Binary file not shown.
@ -1,127 +0,0 @@
|
||||
proc tclInit {} { |
||||
rename tclInit {} |
||||
|
||||
global auto_path tcl_library tcl_libPath tcl_version tclkit_system_encoding |
||||
|
||||
# find the file to mount. |
||||
set noe $::tcl::kitpath |
||||
# resolve symlinks |
||||
set noe [file dirname [file normalize [file join $noe __dummy__]]] |
||||
set tcl_library [file join $noe lib tcl$tcl_version] |
||||
set tcl_libPath [list $tcl_library [file join $noe lib]] |
||||
|
||||
# get rid of a build residue |
||||
unset -nocomplain ::tclDefaultLibrary |
||||
|
||||
# The following code only gets executed if we don't have our exe |
||||
# already mounted. This should only happen once per thread. |
||||
# We could use [vfs::filesystem info], but that would require |
||||
# loading vfs into every interp. |
||||
if {![file isdirectory $noe]} { |
||||
load {} vfs |
||||
|
||||
# lookup and emulate "source" of lib/vfs1*/{vfs*.tcl,mk4vfs.tcl} |
||||
if {[llength [info command mk::file]]} { |
||||
set driver mk4 |
||||
|
||||
# must use raw Metakit calls because VFS is not yet in place |
||||
set d [mk::select exe.dirs parent 0 name lib] |
||||
set d [mk::select exe.dirs parent $d -glob name vfs1*] |
||||
|
||||
foreach x {vfsUtils vfslib mk4vfs} { |
||||
set n [mk::select exe.dirs!$d.files name $x.tcl] |
||||
if {[llength $n] != 1} { error "$x: cannot find startup script"} |
||||
|
||||
set s [mk::get exe.dirs!$d.files!$n contents] |
||||
catch {set s [zlib decompress $s]} |
||||
uplevel #0 $s |
||||
} |
||||
|
||||
# use on-the-fly decompression, if mk4vfs understands that |
||||
# Note: 8.6 core zlib does not support this for mk4vfs |
||||
if {![package vsatisfies [package require Tcl] 8.6]} { |
||||
set mk4vfs::zstreamed 1 |
||||
} |
||||
} else { |
||||
set driver mkcl |
||||
|
||||
# use raw Vlerq calls if Mk4tcl is not available |
||||
# $::vlerq::starkit_root is set in the init script in kitInit.c |
||||
set rootv [vlerq get $::vlerq::starkit_root 0 dirs] |
||||
set dname [vlerq get $rootv * name] |
||||
set prows [vlerq get $rootv * parent] |
||||
foreach r [lsearch -int -all $prows 0] { |
||||
if {[lindex $dname $r] eq "lib"} break |
||||
} |
||||
|
||||
# glob for a subdir in "lib", then source the specified file inside it |
||||
foreach {d f} { |
||||
vfs1* vfsUtils.tcl vfs1* vfslib.tcl vqtcl4* mkclvfs.tcl |
||||
} { |
||||
foreach z [lsearch -int -all $prows $r] { |
||||
if {[string match $d [lindex $dname $z]]} break |
||||
} |
||||
|
||||
set files [vlerq get $rootv $z files] |
||||
set names [vlerq get $files * name] |
||||
|
||||
set n [lsearch $names $f] |
||||
if {$n < 0} { error "$d/$f: cannot find startup script"} |
||||
|
||||
set s [vlerq get $files $n contents] |
||||
catch {set s [zlib decompress $s]} |
||||
uplevel #0 $s |
||||
} |
||||
|
||||
# hack the mkcl info so it will know this mount point as "exe" |
||||
set vfs::mkcl::v::rootv(exe) $rootv |
||||
set vfs::mkcl::v::dname(exe) $dname |
||||
set vfs::mkcl::v::prows(exe) $prows |
||||
} |
||||
|
||||
# mount the executable, i.e. make all runtime files available |
||||
vfs::filesystem mount $noe [list ::vfs::${driver}::handler exe] |
||||
|
||||
# alter path to find encodings |
||||
if {[info tclversion] eq "8.4"} { |
||||
load {} pwb |
||||
librarypath [info library] |
||||
} else { |
||||
encoding dirs [list [file join [info library] encoding]] ;# TIP 258 |
||||
} |
||||
# if the C code passed us a system encoding, apply it here. |
||||
if {[info exists tclkit_system_encoding]} { |
||||
# It is possible the chosen encoding is unavailable in which case |
||||
# we will be left with 'identity' to be handled below. |
||||
catch {encoding system $tclkit_system_encoding} |
||||
unset tclkit_system_encoding |
||||
} |
||||
# fix system encoding, if it wasn't properly set up (200207.004 bug) |
||||
if {[encoding system] eq "identity"} { |
||||
switch $::tcl_platform(platform) { |
||||
windows { encoding system cp1252 } |
||||
macintosh { encoding system macRoman } |
||||
default { encoding system iso8859-1 } |
||||
} |
||||
} |
||||
|
||||
# now remount the executable with the correct encoding |
||||
vfs::filesystem unmount $noe |
||||
set noe $::tcl::kitpath |
||||
# resolve symlinks |
||||
set noe [file dirname [file normalize [file join $noe __dummy__]]] |
||||
|
||||
set tcl_library [file join $noe lib tcl$tcl_version] |
||||
set tcl_libPath [list $tcl_library [file join $noe lib]] |
||||
vfs::filesystem mount $noe [list ::vfs::${driver}::handler exe] |
||||
} |
||||
|
||||
# load config settings file if present |
||||
namespace eval ::vfs { variable tclkit_version 1 } |
||||
catch { uplevel #0 [list source [file join $noe config.tcl]] } |
||||
|
||||
uplevel #0 [list source [file join $tcl_library init.tcl]] |
||||
|
||||
# reset auto_path, so that init.tcl's search outside of tclkit is cancelled |
||||
set auto_path $tcl_libPath |
||||
} |
Binary file not shown.
@ -1,333 +0,0 @@
|
||||
# |
||||
# Ffidl interface to Tcl8.2 |
||||
# |
||||
# Run time support for Ffidl. |
||||
# |
||||
# NOTE: Remember to update FFIDLRT_VERSION in configure.ac when changing this |
||||
# version number. |
||||
package provide Ffidlrt 0.4 |
||||
package require Ffidl |
||||
|
||||
namespace eval ::ffidl:: {} |
||||
|
||||
proc ::ffidl::find-pkg-lib {pkg} { |
||||
package require $pkg |
||||
foreach i [::info loaded {}] { |
||||
foreach {l p} $i {} |
||||
if {$p eq "$pkg"} { |
||||
return $l |
||||
} |
||||
} |
||||
# ignore errors when running under pkg_mkIndex: |
||||
if {![llength [info commands __package_orig]] } { |
||||
return -code error "Library for package $pkg not found" |
||||
} |
||||
} |
||||
|
||||
namespace eval ::ffidl:: { |
||||
set ffidl_lib [find-pkg-lib Ffidl] |
||||
array set libs [list ffidl [list $ffidl_lib] ffidl_test [list $ffidl_lib]] |
||||
unset ffidl_lib |
||||
|
||||
# 'libs' array is used by the ::ffidl::find-lib |
||||
# abstraction to store the resolved lib paths |
||||
# |
||||
# 'types' and 'typedefs' arrays are used by the ::ffidl::find-type |
||||
# abstraction to store resolved system types |
||||
# and whether they have already been defined |
||||
# with ::ffidl::typedef |
||||
array set typedefs {} |
||||
switch -exact $tcl_platform(platform) { |
||||
unix { |
||||
switch -glob $tcl_platform(os) { |
||||
Darwin { |
||||
array set libs { |
||||
c System.framework/System |
||||
m System.framework/System |
||||
gdbm {} |
||||
gmp {} |
||||
mathswig libmathswig0.5.dylib |
||||
} |
||||
array set types { |
||||
size_t {{unsigned long}} |
||||
clock_t {{unsigned long}} |
||||
time_t long |
||||
timeval {uint32 uint32} |
||||
} |
||||
} |
||||
Linux { |
||||
if {$tcl_platform(wordSize) == 8} { |
||||
if {$tcl_platform(machine) eq "alpha"} { |
||||
array set libs { |
||||
c /lib/libc.so.6.1 |
||||
m /lib/libm.so.6.1 |
||||
gdbm /usr/lib/libgdbm.so |
||||
gmp {/usr/local/lib/libgmp.so /usr/lib/libgmp.so.2} |
||||
mathswig libmathswig0.5.so |
||||
} |
||||
array set types { |
||||
size_t long |
||||
clock_t long |
||||
time_t long |
||||
timeval {time_t time_t} |
||||
} |
||||
} else { |
||||
array set libs { |
||||
c { |
||||
/lib64/libc.so.6 |
||||
/lib/x86_64-linux-gnu/libc.so.6 |
||||
} |
||||
m { |
||||
/lib64/libm.so.6 |
||||
/lib/x86_64-linux-gnu/libm.so.6 |
||||
} |
||||
gdbm { |
||||
/usr/lib64/libgdbm.so |
||||
/usr/lib/x86_64-linux-gnu/libgdbm.so |
||||
} |
||||
gmp { |
||||
/usr/lib/x86_64-linux-gnu/libgmp.so |
||||
/usr/local/lib64/libgmp.so |
||||
/usr/lib64/libgmp.so.2 |
||||
} |
||||
mathswig libmathswig0.5.so |
||||
} |
||||
array set types { |
||||
size_t long |
||||
clock_t long |
||||
time_t long |
||||
timeval {time_t time_t} |
||||
} |
||||
} |
||||
} else { |
||||
array set libs { |
||||
c { |
||||
/lib/libc.so.6 |
||||
/lib/i386-linux-gnu/libc.so.6 |
||||
} |
||||
m { |
||||
/lib/libm.so.6 |
||||
/lib/i386-linux-gnu/libm.so.6 |
||||
} |
||||
gdbm { |
||||
/usr/lib/libgdbm.so |
||||
/usr/lib/i386-linux-gnu/libgdbm.so.3 |
||||
} |
||||
gmp { |
||||
/usr/lib/i386-linux-gnu/libgmp.so.2 |
||||
/usr/local/lib/libgmp.so |
||||
/usr/lib/libgmp.so.2 |
||||
} |
||||
mathswig libmathswig0.5.so |
||||
} |
||||
array set types { |
||||
size_t int |
||||
clock_t long |
||||
time_t long |
||||
timeval {time_t time_t} |
||||
} |
||||
} |
||||
} |
||||
*BSD { |
||||
array set libs { |
||||
c {/usr/lib/libc.so /usr/lib/libc.so.30.1} |
||||
m {/usr/lib/libm.so /usr/lib/libm.so.1.0} |
||||
gdbm libgdbm.so |
||||
gmp libgmp.so |
||||
mathswig libmathswig0.5.so |
||||
} |
||||
array set types { |
||||
size_t int |
||||
clock_t long |
||||
time_t long |
||||
timeval {time_t time_t} |
||||
} |
||||
} |
||||
default { |
||||
array set libs { |
||||
c /lib/libc.so |
||||
m /lib/libm.so |
||||
gdbm libgdbm.so |
||||
gmp libgmp.so |
||||
mathswig libmathswig0.5.so |
||||
} |
||||
array set types { |
||||
size_t int |
||||
clock_t long |
||||
time_t long |
||||
timeval {time_t time_t} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
windows { |
||||
# |
||||
# found libraries |
||||
# this array is used by the ::ffidl::find-lib |
||||
# abstraction to store the resolved lib paths |
||||
# |
||||
# CHANGE - put your resolved lib paths here |
||||
# |
||||
array set libs { |
||||
c msvcrt.dll |
||||
m msvcrt.dll |
||||
gdbm {} |
||||
gmp gmp202.dll |
||||
mathswig mathswig05.dll |
||||
} |
||||
# |
||||
# found types |
||||
# these arrays are used by the ::ffidl::find-type |
||||
# abstraction to store resolved system types |
||||
# and whether they have already been defined |
||||
# with ::ffidl::typedef |
||||
# |
||||
# CHANGE - put your resolved system types here |
||||
# |
||||
array set types { |
||||
size_t int |
||||
clock_t long |
||||
time_t long |
||||
timeval {time_t time_t} |
||||
} |
||||
array set typedefs { |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
# |
||||
# find a shared library given a root name |
||||
# this is an abstraction in search of a |
||||
# solution. |
||||
# |
||||
# currently wired for my linux box |
||||
# |
||||
proc ::ffidl::find-lib {root} { |
||||
upvar \#0 ::ffidl::libs libs |
||||
if { ! [::info exists libs($root)] || [llength libs($root)] == 0} { |
||||
error "::ffidl::find-lib $root - no mapping defined for $root" |
||||
} |
||||
if {[llength $libs($root)] > 1} { |
||||
foreach l $libs($root) { |
||||
if {[file exists $l]} { |
||||
set libs($root) $l |
||||
break |
||||
} |
||||
} |
||||
} |
||||
lindex $libs($root) 0 |
||||
} |
||||
|
||||
# |
||||
# find a typedef for a standard type |
||||
# and define it with ::ffidl::typedef |
||||
# if not already done |
||||
# |
||||
# currently wired for my linux box |
||||
# |
||||
proc ::ffidl::find-type {type} { |
||||
upvar \#0 ::ffidl::types types |
||||
upvar \#0 ::ffidl::typedefs typedefs |
||||
if { ! [::info exists types($type)]} { |
||||
error "::ffidl::find-type $type - no mapping defined for $type" |
||||
} |
||||
if { ! [::info exists typedefs($type)]} { |
||||
eval ::ffidl::typedef $type $types($type) |
||||
set typedefs($type) 1 |
||||
} |
||||
} |
||||
|
||||
# |
||||
# get the address of the string rep of a Tcl_Obj |
||||
# get the address of the unicode rep of a Tcl_Obj |
||||
# get the address of the bytearray rep of a Tcl_Obj |
||||
# |
||||
# CAUTION - anything which alters the Tcl_Obj may |
||||
# invalidate the results of this function. Use |
||||
# only in circumstances where the Tcl_Obj will not |
||||
# be modified in any way. |
||||
# |
||||
# CAUTION - the memory pointed to by the addresses |
||||
# returned by ::ffidl::get-string and ::ffidl::get-unicode |
||||
# is managed by Tcl, the contents should never be |
||||
# modified. |
||||
# |
||||
# The memory pointed to by ::ffidl::get-bytearray may |
||||
# be modified if care is taken to respect its size, |
||||
# and if shared references to the bytearray object |
||||
# are known to be compatible with the modification. |
||||
# |
||||
|
||||
::ffidl::callout ::ffidl::get-string {pointer-obj} pointer [::ffidl::stubsymbol tcl stubs 340]; #Tcl_GetString |
||||
::ffidl::callout ::ffidl::get-unicode {pointer-obj} pointer [::ffidl::stubsymbol tcl stubs 382]; #Tcl_GetUnicode |
||||
::ffidl::callout ::ffidl::get-bytearray-from-obj {pointer-obj pointer-var} pointer [::ffidl::stubsymbol tcl stubs 33]; #Tcl_GetByteArrayFromObj |
||||
|
||||
proc ::ffidl::get-bytearray {obj} { |
||||
set len [binary format [::ffidl::info format int] 0] |
||||
::ffidl::get-bytearray-from-obj $obj len |
||||
} |
||||
|
||||
# |
||||
# create a new string Tcl_Obj |
||||
# create a new unicode Tcl_Obj |
||||
# create a new bytearray Tcl_Obj |
||||
# |
||||
# I'm not sure if these are actually useful |
||||
# |
||||
|
||||
::ffidl::callout ::ffidl::new-string {pointer int} pointer-obj [::ffidl::stubsymbol tcl stubs 56]; #Tcl_NewStringObj |
||||
::ffidl::callout ::ffidl::new-unicode {pointer int} pointer-obj [::ffidl::stubsymbol tcl stubs 378]; #Tcl_NewUnicodeObj |
||||
::ffidl::callout ::ffidl::new-bytearray {pointer int} pointer-obj [::ffidl::stubsymbol tcl stubs 50]; #Tcl_NewByteArrayObj |
||||
|
||||
::ffidl::find-type size_t |
||||
if {1} { |
||||
# Tcl's allocator: malloc, free, realloc. |
||||
::ffidl::callout ::ffidl::malloc {unsigned} pointer [::ffidl::stubsymbol tcl stubs 3]; #Tcl_Alloc |
||||
::ffidl::callout ::ffidl::realloc {pointer unsigned} pointer [::ffidl::stubsymbol tcl stubs 5]; #Tcl_Realloc |
||||
::ffidl::callout ::ffidl::free {pointer} void [::ffidl::stubsymbol tcl stubs 4]; #Tcl_Free |
||||
} else { |
||||
# access the standard allocator: malloc, free, realloc. |
||||
::ffidl::callout ::ffidl::malloc {size_t} pointer [::ffidl::symbol [::ffidl::find-lib c] malloc] |
||||
::ffidl::callout ::ffidl::realloc {pointer size_t} pointer [::ffidl::symbol [::ffidl::find-lib c] realloc] |
||||
::ffidl::callout ::ffidl::free {pointer} void [::ffidl::symbol [::ffidl::find-lib c] free] |
||||
} |
||||
|
||||
# |
||||
# Copy some memory at some location into a Tcl bytearray. |
||||
# |
||||
# Needless to say, this can be very hazardous to your |
||||
# program's health if things aren't sized correctly. |
||||
# |
||||
::ffidl::callout ::ffidl::memcpy {pointer-var pointer size_t} pointer [::ffidl::symbol [::ffidl::find-lib ffidl] ffidl_copy_bytes]; |
||||
|
||||
# |
||||
# Regular memcpy working on pointers. ::ffidl::memcpy kept as is for compatibilitiy. |
||||
# |
||||
::ffidl::callout ::ffidl::memcpy2 {pointer pointer size_t} pointer [::ffidl::symbol [::ffidl::find-lib ffidl] ffidl_copy_bytes]; |
||||
|
||||
# |
||||
# Create a Tcl bytearray with a copy of the contents some memory location. |
||||
# |
||||
proc ::ffidl::peek {address nbytes} { |
||||
set dst [binary format x$nbytes] |
||||
::ffidl::memcpy dst $address $nbytes |
||||
set dst |
||||
} |
||||
|
||||
# |
||||
# Copy the contents of a Tcl bytearray to some memory location. |
||||
# |
||||
proc ::ffidl::poke {dst src} { |
||||
set n [string length $bytes]; |
||||
set src [::ffidl::get-bytearray $bytes]; |
||||
::ffidl::memcpy2 $dst $src $n; |
||||
} |
||||
|
||||
# |
||||
# convert raw pointers, as integers, into Tcl_Obj's |
||||
# |
||||
::ffidl::callout ::ffidl::pointer-into-string {pointer} pointer-utf8 [::ffidl::symbol [::ffidl::find-lib ffidl] ffidl_pointer_pun] |
||||
::ffidl::callout ::ffidl::pointer-into-unicode {pointer} pointer-utf16 [::ffidl::symbol [::ffidl::find-lib ffidl] ffidl_pointer_pun] |
||||
# ::ffidl::pointer-into-bytearray is deprecated. Use ::ffidl::peek instead. |
||||
interp alias {} ::ffidl::pointer-into-bytearray {} ::ffidl::peek; |
@ -1,12 +0,0 @@
|
||||
# Tcl package index file, version 1.1 |
||||
# This file is generated by the "pkg_mkIndex" command |
||||
# and sourced either when an application starts up or |
||||
# by a "package unknown" script. It invokes the |
||||
# "package ifneeded" command to set up package-related |
||||
# information so that packages will be loaded automatically |
||||
# in response to "package require" commands. When this |
||||
# script is sourced, the variable $dir must contain the |
||||
# full path name of this file's directory. |
||||
|
||||
package ifneeded Ffidl 0.9.0 [list load [file join $dir Ffidl090.dll]] |
||||
package ifneeded Ffidlrt 0.4 [list source [file join $dir ffidlrt.tcl]] |
Binary file not shown.
Binary file not shown.
@ -1,2 +0,0 @@
|
||||
package ifneeded Memchan 2.3 \ |
||||
[list load [file join $dir Memchan23.dll]] |
Binary file not shown.
Binary file not shown.
@ -1,2 +0,0 @@
|
||||
package ifneeded Trf 2.1.4 \ |
||||
[list load [file join $dir Trf214.dll]] |
@ -1,29 +0,0 @@
|
||||
# |
||||
# Tcl package index file - generated from pkgIndex.tcl.in |
||||
# |
||||
|
||||
package ifneeded cffi 1.2.0 \ |
||||
[list apply [list {dir} { |
||||
set dllname "tclcffi120.dll" |
||||
set package "cffi" |
||||
set package_ns ::$package |
||||
|
||||
# First try to load from current directory. If that fails, try from |
||||
# arch-specific subdirectories |
||||
set path [file join $dir $dllname] |
||||
if {[catch {uplevel #0 [list load $path $package]}]} { |
||||
package require platform |
||||
foreach platform [platform::patterns [platform::identify]] { |
||||
if {$platform eq "tcl"} continue |
||||
set path [file join $dir $platform $dllname] |
||||
if {![catch {uplevel #0 [list load $path $package]}]} { |
||||
break |
||||
} |
||||
} |
||||
} |
||||
if {[namespace exists $package_ns]} { |
||||
# Load was successful |
||||
set ${package_ns}::dll_path $path |
||||
set ${package_ns}::package_dir $dir |
||||
} |
||||
}] $dir] |
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -1,2 +0,0 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.6]} {return} |
||||
package ifneeded critcl::app 3.2 [list source [file join $dir critcl.tcl]] |
@ -1,134 +0,0 @@
|
||||
# |
||||
# Critcl - build C extensions on-the-fly |
||||
# |
||||
# Copyright (c) 2001-2007 Jean-Claude Wippler |
||||
# Copyright (c) 2002-2007 Steve Landers |
||||
# |
||||
# See http://wiki.tcl.tk/critcl |
||||
# |
||||
# This is the Critcl runtime that loads the appropriate |
||||
# shared library when a package is requested |
||||
# |
||||
|
||||
namespace eval ::critcl::runtime {} |
||||
|
||||
proc ::critcl::runtime::loadlib {dir package version libname initfun tsrc mapping args} { |
||||
# XXX At least parts of this can be done by the package generator, |
||||
# XXX like listing the Tcl files to source. The glob here allows |
||||
# XXX code-injection after-the-fact, by simply adding a .tcl in |
||||
# XXX the proper place. |
||||
set path [file join $dir [MapPlatform $mapping]] |
||||
set ext [info sharedlibextension] |
||||
set lib [file join $path $libname$ext] |
||||
set provide [list] |
||||
|
||||
# Now the runtime equivalent of a series of 'preFetch' commands. |
||||
if {[llength $args]} { |
||||
set preload [file join $path preload$ext] |
||||
foreach p $args { |
||||
set prelib [file join $path $p$ext] |
||||
if {[file readable $preload] && [file readable $prelib]} { |
||||
lappend provide [list load $preload];# XXX Move this out of the loop, do only once. |
||||
lappend provide [list ::critcl::runtime::preload $prelib] |
||||
} |
||||
} |
||||
} |
||||
|
||||
lappend provide [list load $lib $initfun] |
||||
foreach t $tsrc { |
||||
lappend loadcmd "::critcl::runtime::Fetch \$dir [list $t]" |
||||
} |
||||
lappend provide "package provide $package $version" |
||||
package ifneeded $package $version [join $provide "\n"] |
||||
return |
||||
} |
||||
|
||||
proc ::critcl::runtime::preFetch {path ext dll} { |
||||
set preload [file join $path preload$ext] |
||||
if {![file readable $preload]} return |
||||
|
||||
set prelib [file join $path $dll$ext] |
||||
if {![file readable $prelib]} return |
||||
|
||||
load $preload ; # Defines next command. |
||||
::critcl::runtime::preload $prelib |
||||
return |
||||
} |
||||
|
||||
proc ::critcl::runtime::Fetch {dir t} { |
||||
# The 'Ignore' disables compile & run functionality. |
||||
|
||||
# Background: If the regular critcl package is already loaded, and |
||||
# this prebuilt package uses its defining .tcl file also as a |
||||
# 'tsources' then critcl might try to collect data and build it |
||||
# because of the calls to its API, despite the necessary binaries |
||||
# already being present, just not in the critcl cache. That is |
||||
# redundant in the best case, and fails in the worst case (no |
||||
# compiler), preventing the use o a perfectly fine package. The |
||||
# 'ignore' call now tells critcl that it should ignore any calls |
||||
# made to it by the sourced files, and thus avoids that trouble. |
||||
|
||||
# The other case, the regular critcl package getting loaded after |
||||
# this prebuilt package is irrelevant. At that point the tsources |
||||
# were already run, and used the dummy procedures defined in the |
||||
# critcl-rt.tcl, which ignore the calls by definition. |
||||
|
||||
set t [file join $dir tcl $t] |
||||
::critcl::Ignore $t |
||||
uplevel #0 [list source $t] |
||||
return |
||||
} |
||||
|
||||
proc ::critcl::runtime::precopy {dll} { |
||||
# This command is only used on Windows when preloading out of a |
||||
# VFS that doesn't support direct loading (usually, a Starkit) |
||||
# - we preserve the dll name so that dependencies are satisfied |
||||
# - The critcl::runtime::preload command is defined in the supporting |
||||
# "preload" package, implemented in "critcl/lib/critcl/critcl_c/preload.c" |
||||
|
||||
global env |
||||
if {[info exists env(TEMP)]} { |
||||
set dir $env(TEMP) |
||||
} elseif {[info exists env(TMP)]} { |
||||
set dir $env(TMP) |
||||
} elseif {[info exists ~]} { |
||||
set dir ~ |
||||
} else { |
||||
set dir . |
||||
} |
||||
set dir [file join $dir TCL[pid]] |
||||
set i 0 |
||||
while {[file exists $dir]} { |
||||
append dir [incr i] |
||||
} |
||||
set new [file join $dir [file tail $dll]] |
||||
file mkdir $dir |
||||
file copy $dll $new |
||||
return $new |
||||
} |
||||
|
||||
proc ::critcl::runtime::MapPlatform {{mapping {}}} { |
||||
# A sibling of critcl::platform that applies the platform mapping |
||||
|
||||
set platform [::platform::generic] |
||||
set version $::tcl_platform(osVersion) |
||||
if {[string match "macosx-*" $platform]} { |
||||
# "normalize" the osVersion to match OSX release numbers |
||||
set v [split $version .] |
||||
set v1 [lindex $v 0] |
||||
set v2 [lindex $v 1] |
||||
incr v1 -4 |
||||
set version 10.$v1.$v2 |
||||
} else { |
||||
# Strip trailing non-version info |
||||
regsub -- {-.*$} $version {} version |
||||
} |
||||
foreach {config map} $mapping { |
||||
if {![string match $config $platform]} continue |
||||
set minver [lindex $map 1] |
||||
if {[package vcompare $version $minver] < 0} continue |
||||
set platform [lindex $map 0] |
||||
break |
||||
} |
||||
return $platform |
||||
} |
@ -1,188 +0,0 @@
|
||||
## -*- tcl -*- Critcl configuration file |
||||
# # ## ### ##### ######## ############# ##################### |
||||
## For |
||||
# @@PNAME@@ @@PMAJORV@@.@@PMINORV@@ |
||||
# |
||||
# Copyright (c) @@YEAR@@ @@PORG@@ |
||||
# |
||||
# Generated by @@CRITCL@@ |
||||
# At @@NOW@@ |
||||
|
||||
# This specific file gets filled by the TEA configure(.in) with the |
||||
# compiler information it found when run, and the accompanying |
||||
# Makefile(.in) uses it to overide critcl's default configuration |
||||
# settings. In this way we manage to get a proper TEA setup of flags |
||||
# and such, bypassing all of critcl's own selection logic. critcl is |
||||
# essentially 'just' used as a custom compiler driver, whereas a |
||||
# standard TEA Makefile would have all the relevant commands listed |
||||
# explicitly in its rules. |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## First, keep the GCC specific defaults. |
||||
|
||||
compile gcc -c -fPIC |
||||
version gcc -v |
||||
link gcc -shared |
||||
include -I |
||||
preproc_define gcc -E -dM |
||||
preproc_enum gcc -E |
||||
tclstubs -DUSE_TCL_STUBS |
||||
tkstubs -DUSE_TK_STUBS |
||||
debug_memory -DTCL_MEM_DEBUG |
||||
debug_symbols -g |
||||
object .o |
||||
output -o [list $outfile] |
||||
ldoutput |
||||
link_debug |
||||
link_release |
||||
link_preload --unresolved-symbols=ignore-in-shared-libs |
||||
strip -Wl,-s |
||||
optimize -O2 |
||||
noassert -DNDEBUG |
||||
threadflags -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 \ |
||||
-DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_READDIR_R=1 \ |
||||
-DTCL_THREADS=1 |
||||
|
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Second, define settings based on the system information found by |
||||
## configure(.in), converted into something usable by critcl. See the |
||||
## section below for the raw settings. |
||||
|
||||
TEA platform @CRITCL_PLATFORM@ |
||||
TEA compile @CRITCL_CC@ |
||||
TEA version @CRITCL_VERSION@ |
||||
TEA link @CRITCL_LINK@ |
||||
TEA preproc_define @CRITCL_CPP_DEFINE@ |
||||
TEA preproc_enum @CRITCL_CPP_ENUM@ |
||||
TEA debug_symbols @CFLAGS_DEBUG@ |
||||
TEA object .@OBJEXT@ |
||||
TEA output @CRITCL_CC_OUTPUT@ |
||||
TEA ldoutput @CRITCL_LD_OUTPUT@ |
||||
TEA link_debug @CRITCL_LD_DBG@ |
||||
TEA link_release @CRITCL_LD_REL@ |
||||
TEA link_preload --unresolved-symbols=ignore-in-shared-libs |
||||
TEA strip |
||||
TEA optimize @CFLAGS_OPTIMIZE@ |
||||
|
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Third, the exact raw settings generated by configure(.in), |
||||
## as found in build_dir/config.status. To help debugging the |
||||
## munging, when its wrong. |
||||
## |
||||
## The lines marked with ** are those which are of especially high |
||||
## interest. |
||||
|
||||
#** CC = (@CC@) |
||||
#** CFLAGS = (@CFLAGS@) |
||||
#** CFLAGS_DEBUG = (@CFLAGS_DEBUG@) |
||||
#** CFLAGS_OPTIMIZE = (@CFLAGS_OPTIMIZE@) |
||||
#** CFLAGS_WARNING = (@CFLAGS_WARNING@) |
||||
#** CPP = (@CPP@) |
||||
#** CPPFLAGS = (@CPPFLAGS@) |
||||
#** DEFS = (@DEFS@) |
||||
#** LDFLAGS = (@LDFLAGS@) |
||||
#** LDFLAGS_DEFAULT = (@LDFLAGS_DEFAULT@) |
||||
#** LIBS = (@LIBS@) |
||||
#** MAKE_LIB = (@MAKE_LIB@) |
||||
#** MAKE_SHARED_LIB = (@MAKE_SHARED_LIB@) |
||||
#** MAKE_STATIC_LIB = (@MAKE_STATIC_LIB@) |
||||
#** MAKE_STUB_LIB = (@MAKE_STUB_LIB@) |
||||
#** MATH_LIBS = (@MATH_LIBS@) |
||||
#** OBJEXT = (@OBJEXT@) |
||||
#** SHLIB_CFLAGS = (@SHLIB_CFLAGS@) |
||||
#** SHLIB_LD = (@SHLIB_LD@) |
||||
#** SHLIB_LD_LIBS = (@SHLIB_LD_LIBS@) |
||||
#** SHLIB_SUFFIX = (@SHLIB_SUFFIX@) |
||||
#** STLIB_LD = (@STLIB_LD@) |
||||
#** TCL_EXTRA_CFLAGS = (@TCL_EXTRA_CFLAGS@) |
||||
#** TCL_INCLUDES = (@TCL_INCLUDES@) |
||||
#** TCL_LD_FLAGS = (@TCL_LD_FLAGS@) |
||||
#** TCL_LIBS = (@TCL_LIBS@) |
||||
#** TCL_SHLIB_LD_LIBS = (@TCL_SHLIB_LD_LIBS@) |
||||
#** TCL_THREADS = (@TCL_THREADS@) |
||||
|
||||
# AR = (@AR@) |
||||
# CELIB_DIR = (@CELIB_DIR@) |
||||
# CFLAGS_DEFAULT = (@CFLAGS_DEFAULT@) |
||||
# CLEANFILES = (@CLEANFILES@) |
||||
# CYGPATH = (@CYGPATH@) |
||||
# ECHO_C = (@ECHO_C@) |
||||
# ECHO_N = (@ECHO_N@) |
||||
# ECHO_T = (@ECHO_T@) |
||||
# EGREP = (@EGREP@) |
||||
# EXEEXT = (@EXEEXT@) |
||||
# GREP = (@GREP@) |
||||
# INSTALL_DATA = (@INSTALL_DATA@) |
||||
# INSTALL_PROGRAM = (@INSTALL_PROGRAM@) |
||||
# INSTALL_SCRIPT = (@INSTALL_SCRIPT@) |
||||
# LD_LIBRARY_PATH_VAR = (@LD_LIBRARY_PATH_VAR@) |
||||
# LIBOBJS = (@LIBOBJS@) |
||||
# LTLIBOBJS = (@LTLIBOBJS@) |
||||
# PACKAGE_BUGREPORT = (@PACKAGE_BUGREPORT@) |
||||
# PACKAGE_NAME = (@PACKAGE_NAME@) |
||||
# PACKAGE_STRING = (@PACKAGE_STRING@) |
||||
# PACKAGE_TARNAME = (@PACKAGE_TARNAME@) |
||||
# PACKAGE_VERSION = (@PACKAGE_VERSION@) |
||||
# PATH_SEPARATOR = (@PATH_SEPARATOR@) |
||||
# PKG_CFLAGS = (@PKG_CFLAGS@) |
||||
# PKG_HEADERS = (@PKG_HEADERS@) |
||||
# PKG_INCLUDES = (@PKG_INCLUDES@) |
||||
# PKG_LIBS = (@PKG_LIBS@) |
||||
# PKG_LIB_FILE = (@PKG_LIB_FILE@) |
||||
# PKG_OBJECTS = (@PKG_OBJECTS@) |
||||
# PKG_SOURCES = (@PKG_SOURCES@) |
||||
# PKG_STUB_LIB_FILE = (@PKG_STUB_LIB_FILE@) |
||||
# PKG_STUB_OBJECTS = (@PKG_STUB_OBJECTS@) |
||||
# PKG_STUB_SOURCES = (@PKG_STUB_SOURCES@) |
||||
# PKG_TCL_SOURCES = (@PKG_TCL_SOURCES@) |
||||
# RANLIB = (@RANLIB@) |
||||
# RANLIB_STUB = (@RANLIB_STUB@) |
||||
# SET_MAKE = (@SET_MAKE@) |
||||
# SHARED_BUILD = (@SHARED_BUILD@) |
||||
# SHELL = (@SHELL@) |
||||
# TCLSH_PROG = (@TCLSH_PROG@) |
||||
# TCL_BIN_DIR = (@TCL_BIN_DIR@) |
||||
# TCL_DBGX = (@TCL_DBGX@) |
||||
# TCL_DEFS = (@TCL_DEFS@) |
||||
# TCL_LIB_FILE = (@TCL_LIB_FILE@) |
||||
# TCL_LIB_FLAG = (@TCL_LIB_FLAG@) |
||||
# TCL_LIB_SPEC = (@TCL_LIB_SPEC@) |
||||
# TCL_PATCH_LEVEL = (@TCL_PATCH_LEVEL@) |
||||
# TCL_SRC_DIR = (@TCL_SRC_DIR@) |
||||
# TCL_STUB_LIB_FILE = (@TCL_STUB_LIB_FILE@) |
||||
# TCL_STUB_LIB_FLAG = (@TCL_STUB_LIB_FLAG@) |
||||
# TCL_STUB_LIB_SPEC = (@TCL_STUB_LIB_SPEC@) |
||||
# TCL_VERSION = (@TCL_VERSION@) |
||||
# VC_MANIFEST_EMBED_DLL = (@VC_MANIFEST_EMBED_DLL@) |
||||
# VC_MANIFEST_EMBED_EXE = (@VC_MANIFEST_EMBED_EXE@) |
||||
|
||||
# ac_ct_CC = (@ac_ct_CC@) |
||||
# bindir = (@bindir@) |
||||
# build_alias = (@build_alias@) |
||||
# datadir = (@datadir@) |
||||
# datarootdir = (@datarootdir@) |
||||
# docdir = (@docdir@) |
||||
# dvidir = (@dvidir@) |
||||
# exec_prefix = (@exec_prefix@) |
||||
# host_alias = (@host_alias@) |
||||
# htmldir = (@htmldir@) |
||||
# includedir = (@includedir@) |
||||
# infodir = (@infodir@) |
||||
# libdir = (@libdir@) |
||||
# libexecdir = (@libexecdir@) |
||||
# localedir = (@localedir@) |
||||
# localstatedir = (@localstatedir@) |
||||
# mandir = (@mandir@) |
||||
# oldincludedir = (@oldincludedir@) |
||||
# pdfdir = (@pdfdir@) |
||||
# prefix = (@prefix@) |
||||
# program_transform_name = (@program_transform_name@) |
||||
# psdir = (@psdir@) |
||||
# sbindir = (@sbindir@) |
||||
# sharedstatedir = (@sharedstatedir@) |
||||
# sysconfdir = (@sysconfdir@) |
||||
# target_alias = (@target_alias@) |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
@ -1,145 +0,0 @@
|
||||
# Makefile.in --
|
||||
#
|
||||
# This file is a Makefile for "@@PNAME@@ @@PMAJORV@@.@@PMINORV@@". If this
|
||||
# is "Makefile.in" then it is a template for a Makefile; to generate
|
||||
# the actual Makefile, run "./configure", which is a configuration script
|
||||
# generated by the "autoconf" program (constructs like "@foo@" will get
|
||||
# replaced in the actual Makefile.
|
||||
#
|
||||
# Copyright (c) @@YEAR@@ @@PORG@@
|
||||
#
|
||||
# Generated by @@CRITCL@@
|
||||
# At @@NOW@@
|
||||
#
|
||||
# See the file "license.terms" for information on usage and redistribution
|
||||
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
|
||||
#========================================================================
|
||||
# Nothing of the variables below this line need to be changed. Please
|
||||
# check the TARGETS section below to make sure the make targets are
|
||||
# correct.
|
||||
#========================================================================
|
||||
|
||||
SHELL = @SHELL@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
libdir = @libdir@
|
||||
mandir = @mandir@
|
||||
bindir = @bindir@
|
||||
|
||||
sbindir = @sbindir@
|
||||
libexecdir = @libexecdir@
|
||||
datarootdir = @datarootdir@
|
||||
datadir = @datadir@
|
||||
sysconfdir = @sysconfdir@
|
||||
sharedir = @sharedstatedir@
|
||||
statedir = @localstatedir@
|
||||
includedir = @includedir@
|
||||
oldincludedir = @oldincludedir@
|
||||
|
||||
DESTDIR =
|
||||
pkglibdir = $(libdir)/@PACKAGE_NAME@@PACKAGE_VERSION@
|
||||
top_builddir = .
|
||||
|
||||
PACKAGE = @PACKAGE_NAME@
|
||||
VERSION = @PACKAGE_VERSION@
|
||||
CYGPATH = @CYGPATH@
|
||||
|
||||
TCLSH_PROG = @TCLSH_PROG@
|
||||
CRITCL = `$(CYGPATH) $(srcdir)/critcl/main.tcl`
|
||||
|
||||
CONFIG_CLEAN_FILES =
|
||||
@@API@@ |
||||
@@UCONFIG@@ |
||||
#========================================================================
|
||||
# PKG_TCL_SOURCES identifies Tcl runtime files that are associated with
|
||||
# this package that need to be installed, if any.
|
||||
#========================================================================
|
||||
|
||||
PKG_TCL_SOURCES = @@PFILES@@
|
||||
|
||||
#========================================================================
|
||||
# Start of user-definable TARGETS section
|
||||
#========================================================================
|
||||
|
||||
all: |
||||
@echo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
@echo Please run '"make install"' to build and install the package.
|
||||
@echo Critcl has no separate build-step.
|
||||
|
||||
doc: |
||||
@echo No documentation to build.
|
||||
|
||||
install: |
||||
@echo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ; \
|
||||
cat $(top_builddir)/Config | grep -v '^#' ; \
|
||||
echo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ; \
|
||||
rm -rf $(top_builddir)/results-tea ; \
|
||||
$(TCLSH_PROG) $(CRITCL) \
|
||||
-I $(prefix)/include \
|
||||
-I $(exec_prefix)/include \
|
||||
-I $(includedir)@@APIUSE@@ \
|
||||
@@UCONFIGUSE@@ \
|
||||
-keep -cache $(top_builddir)/results-tea \
|
||||
-target TEA -config $(top_builddir)/Config \
|
||||
-libdir $(DESTDIR)$(libdir) \
|
||||
-includedir $(DESTDIR)$(includedir) \
|
||||
-pkg $(PACKAGE)$(VERSION) \
|
||||
$(PKG_TCL_SOURCES) ; \
|
||||
echo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ; \
|
||||
cat $(top_builddir)/results-tea/*.log
|
||||
echo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ; \
|
||||
|
||||
install-auto: show-auto |
||||
@rm -rf $(top_builddir)/results-auto ; \
|
||||
$(TCLSH_PROG) $(CRITCL) \
|
||||
-I $(prefix)/include \
|
||||
-I $(exec_prefix)/include \
|
||||
-I $(includedir)@@APIUSE@@ \
|
||||
@@UCONFIGUSE@@ \
|
||||
-keep -cache $(top_builddir)/results-auto \
|
||||
-libdir $(DESTDIR)$(libdir) \
|
||||
-includedir $(DESTDIR)$(includedir) \
|
||||
-pkg $(PACKAGE)$(VERSION) \
|
||||
$(PKG_TCL_SOURCES) ; \
|
||||
echo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ; \
|
||||
cat $(top_builddir)/results-auto/*.log
|
||||
echo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ; \
|
||||
|
||||
install-doc: |
||||
@echo No documentation to install.
|
||||
|
||||
show: |
||||
@$(TCLSH_PROG) $(CRITCL) \
|
||||
-keep -cache $(top_builddir)/results-tea \
|
||||
-target TEA -config $(top_builddir)/Config \
|
||||
-libdir $(DESTDIR)$(libdir) \
|
||||
-pkg -show
|
||||
|
||||
show-auto: |
||||
@$(TCLSH_PROG) $(CRITCL) \
|
||||
-keep -cache $(top_builddir)/results-auto \
|
||||
-libdir $(DESTDIR)$(libdir) \
|
||||
-pkg -show
|
||||
|
||||
clean: |
||||
rm -rf doc *-doc
|
||||
|
||||
distclean: clean |
||||
-rm -f Makefile $(CONFIG_CLEAN_FILES)
|
||||
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
||||
-rm -f config.status
|
||||
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status |
||||
cd $(top_builddir) \
|
||||
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
|
||||
.PHONY: all binaries clean depend distclean doc install installdirs libraries test |
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT: |
@ -1,180 +0,0 @@
|
||||
# |
||||
# Include the TEA standard macro set |
||||
# |
||||
|
||||
builtin(include,tclconfig/tcl.m4) |
||||
|
||||
# |
||||
# Add here whatever m4 macros you want to define for your package |
||||
# |
||||
|
||||
#------------------------------------------------------------------------ |
||||
# CRITCL_TEA_PUBLIC_PACKAGE_HEADERS -- |
||||
# |
||||
# Locate the installed public FOO header files |
||||
# |
||||
# Arguments: |
||||
# Name of the package to search headers for. |
||||
# |
||||
# Requires: |
||||
# CYGPATH must be set |
||||
# |
||||
# Results: |
||||
# |
||||
# Adds a --with-[$1]-include switch to configure. |
||||
# Result is cached. |
||||
# |
||||
# Substs the following vars: |
||||
# CRITCL_API_$1_INCLUDE |
||||
#------------------------------------------------------------------------ |
||||
|
||||
AC_DEFUN([CRITCL_TEA_PUBLIC_PACKAGE_HEADERS],[ |
||||
# CRITCL_TEA_PUBLIC_PACKAGE_HEADERS: $1 |
||||
AC_MSG_CHECKING([for $1 public headers]) |
||||
AC_ARG_WITH([$1-include], [ --with-$1-include directory containing the public $1 header files], [with_$1_include=${withval}]) |
||||
AC_CACHE_VAL(ac_cv_c_$1_header, [ |
||||
# Use the value from --with-$1-include, if it was given |
||||
|
||||
if test x"[$]{with_$1_include}" != x ; then |
||||
if test -f "[$]{with_$1_include}/$1Decls.h" ; then |
||||
ac_cv_c_$1_header=[$]{with_$1_include} |
||||
else |
||||
AC_MSG_ERROR([[$]{with_$1_include} directory does not contain $1Decls.h]) |
||||
fi |
||||
else |
||||
list="" |
||||
if test "`uname -s`" = "Darwin"; then |
||||
# If $1 was built as a framework, attempt to use |
||||
# the framework's Headers directory |
||||
case [$]{$1_DEFS} in |
||||
*$1_FRAMEWORK*) |
||||
list="`ls -d [$]{$1_BIN_DIR}/Headers 2>/dev/null`" |
||||
;; |
||||
esac |
||||
fi |
||||
|
||||
# Check order: pkg --prefix location, Tcl's --prefix location, |
||||
# relative to directory of $1Config.sh. |
||||
|
||||
eval "temp_includedir=[$]{includedir}" |
||||
list="[$]list \ |
||||
`ls -d [$]{temp_includedir} 2>/dev/null` \ |
||||
`ls -d [$]{$1_PREFIX}/include 2>/dev/null` \ |
||||
`ls -d [$]{$1_BIN_DIR}/../include 2>/dev/null` \ |
||||
`ls -d ${TCL_PREFIX}/include 2>/dev/null` \ |
||||
`ls -d ${TCL_BIN_DIR}/../include 2>/dev/null`" |
||||
|
||||
if test "[$]{TEA_PLATFORM}" != "windows" -o "[$]GCC" = "yes"; then |
||||
list="[$]list /usr/local/include /usr/include" |
||||
if test x"[$]{$1_INCLUDE_SPEC}" != x ; then |
||||
d=`echo "[$]{$1_INCLUDE_SPEC}" | sed -e 's/^-I//'` |
||||
list="[$]list `ls -d ${d} 2>/dev/null`" |
||||
fi |
||||
fi |
||||
for i in [$]list ; do |
||||
if test -f "[$]i/$1/$1Decls.h" ; then |
||||
ac_cv_c_$1_header=[$]i |
||||
break |
||||
fi |
||||
done |
||||
fi |
||||
]) |
||||
|
||||
# Print a message based on how we determined the include path |
||||
if test x"[$]{ac_cv_c_$1_header}" = x ; then |
||||
AC_MSG_ERROR([$1Decls.h not found. Please specify its location with --with-$1-include]) |
||||
else |
||||
AC_MSG_RESULT([[$]{ac_cv_c_$1_header}]) |
||||
fi |
||||
|
||||
# Convert to a native path and substitute into the transfer variable. |
||||
# NOTE: Anything going into actual TEA would have to use A TEA_xx |
||||
# transfer variable, instead of critcl. |
||||
INCLUDE_DIR_NATIVE=`[$]{CYGPATH} [$]{ac_cv_c_$1_header}` |
||||
CRITCL_API_$1_INCLUDE="\"[$]{INCLUDE_DIR_NATIVE}\"" |
||||
AC_SUBST([CRITCL_API_$1_INCLUDE]) |
||||
]) |
||||
|
||||
#------------------------------------------------------------------------ |
||||
# CRITCL_TEA_WITH_CONFIG -- |
||||
# |
||||
# Declare a --with-FOO option, with default and legal values. |
||||
# |
||||
# Arguments: |
||||
# Name of the option. |
||||
# List of legal values. |
||||
# Default value. |
||||
# Option description. |
||||
# |
||||
# Requires: |
||||
# Results: |
||||
# Adds a --with-[$1] switch to configure. |
||||
# |
||||
# Substs the following vars: |
||||
# CRITCL_UCONFIG_$1 |
||||
#------------------------------------------------------------------------ |
||||
|
||||
AC_DEFUN([CRITCL_TEA_WITH_CONFIG],[ |
||||
# CRITCL_TEA_WITH_CONFIG: $1 |
||||
AC_ARG_WITH([$1], |
||||
AC_HELP_STRING([--with-$1], |
||||
[$4]), |
||||
[with_uc_$1=${withval}]) |
||||
|
||||
# Use default if user did not specify anything. |
||||
if test x"[$]{with_uc_$1}" = x ; then |
||||
with_uc_$1="$3" |
||||
fi |
||||
|
||||
AC_MSG_CHECKING([Validating $1]) |
||||
tcl_ok=no |
||||
for x in $2 |
||||
do |
||||
if test "[$]x" = "[$]with_uc_$1" ; then |
||||
tcl_ok=yes |
||||
break |
||||
fi |
||||
done |
||||
if test "[$]tcl_ok" = "no" ; then |
||||
AC_MSG_ERROR([Illegal value [$]with_uc_$1, expected one of: $2]) |
||||
else |
||||
AC_MSG_RESULT([[$]with_uc_$1]) |
||||
fi |
||||
|
||||
CRITCL_UCONFIG_$1="-with-$1 \"[$]with_uc_$1\"" |
||||
AC_SUBST([CRITCL_UCONFIG_$1]) |
||||
]) |
||||
|
||||
#------------------------------------------------------------------------ |
||||
# CRITCL_TEA_BOOL_CONFIG -- |
||||
# |
||||
# Declare a --disable/enable-FOO option, with default. |
||||
# |
||||
# Arguments: |
||||
# Name of the option. |
||||
# Default value. |
||||
# Option description. |
||||
# |
||||
# Requires: |
||||
# Results: |
||||
# Adds a --enable-[$1] switch to configure. |
||||
# |
||||
# Substs the following vars: |
||||
# CRITCL_UCONFIG_$1 |
||||
#------------------------------------------------------------------------ |
||||
|
||||
AC_DEFUN([CRITCL_TEA_BOOL_CONFIG],[ |
||||
# CRITCL_TEA_BOOL_CONFIG: $1 |
||||
AC_ARG_ENABLE([$1], |
||||
AC_HELP_STRING([--enable-$1],[$3]), |
||||
[bool_uc_$1=${enableval}] |
||||
[bool_uc_$1="$2"]) |
||||
|
||||
if test "bool_uc_$1" = "yes" ; then |
||||
CRITCL_UCONFIG_$1="-enable $1" |
||||
else |
||||
CRITCL_UCONFIG_$1="-disable $1" |
||||
fi |
||||
|
||||
AC_SUBST([CRITCL_UCONFIG_$1]) |
||||
]) |
@ -1,151 +0,0 @@
|
||||
# Configure for |
||||
# @@PNAME@@ @@PMAJORV@@.@@PMINORV@@ |
||||
# |
||||
# Copyright (c) @@YEAR@@ @@PORG@@ |
||||
# |
||||
# Generated by @@CRITCL@@ |
||||
# At @@NOW@@ |
||||
|
||||
AC_INIT([@@PNAME@@],[@@PMAJORV@@.@@PMINORV@@]) |
||||
|
||||
TEA_INIT([3.9]) |
||||
|
||||
AC_CONFIG_AUX_DIR(tclconfig) |
||||
|
||||
#-------------------------------------------------------------------- |
||||
# Configure script for package '@@PNAME@@'. |
||||
# TEA compliant. |
||||
#-------------------------------------------------------------------- |
||||
|
||||
#-------------------------------------------------------------------- |
||||
# Load the tclConfig.sh file |
||||
#-------------------------------------------------------------------- |
||||
|
||||
TEA_PATH_TCLCONFIG |
||||
TEA_LOAD_TCLCONFIG |
||||
|
||||
#----------------------------------------------------------------------- |
||||
## Std TEA setup |
||||
|
||||
TEA_PREFIX |
||||
TEA_SETUP_COMPILER |
||||
TEA_PUBLIC_TCL_HEADERS |
||||
#TEA_PRIVATE_TCL_HEADERS |
||||
TEA_ENABLE_THREADS |
||||
TEA_ENABLE_SHARED |
||||
TEA_CONFIG_CFLAGS |
||||
TEA_ENABLE_SYMBOLS |
||||
AC_DEFINE(USE_TCL_STUBS) |
||||
TEA_MAKE_LIB |
||||
TEA_PROG_TCLSH |
||||
@@API@@ |
||||
@@UCONFIG@@ |
||||
#----------------------------------------------------------------------- |
||||
## Convert the TEA settings determined by the macros in the last |
||||
## section into something critcl can use throughts configuration. |
||||
|
||||
AC_MSG_RESULT([critcl config: derived from core TEA]) |
||||
|
||||
#AC_MSG_RESULT([critcl config: CC............. ${CC}]) |
||||
#AC_MSG_RESULT([critcl config: CFLAGS......... ${CFLAGS}]) |
||||
#AC_MSG_RESULT([critcl config: SHLIB_LD....... ${SHLIB_LD}]) |
||||
#AC_MSG_RESULT([critcl config: LIBS........... ${LIBS}| |
||||
#AC_MSG_RESULT([critcl config: MATH_LIBS...... ${MATH_LIBS}]) |
||||
#AC_MSG_RESULT([critcl config: CFLAGS_DEFAULT. ${CFLAGS_DEFAULT}]) |
||||
#AC_MSG_RESULT([critcl config: CFLAGS_WARNING. ${CFLAGS_WARNING}]) |
||||
#AC_MSG_RESULT([critcl config: SHLIB_CFLAGS... ${SHLIB_CFLAGS}]) |
||||
#AC_MSG_RESULT([critcl config: LDFLAGS_DEFAULT ${LDFLAGS_DEFAULT}]) |
||||
|
||||
#----------------------------------------------------------------------- |
||||
## 1. Basic/foundational translation. |
||||
|
||||
CRITCL_CC="$(eval echo ${CC} -c ${CFLAGS})" |
||||
CRITCL_VERSION="${CC} -v" |
||||
CRITCL_LINK="$(eval echo $(eval echo ${SHLIB_LD} ${LIBS} ${MATH_LIBS}))" |
||||
CRITCL_PLATFORM="$(${TCLSH_PROG} ${srcdir}/critcl/main.tcl -showtarget)" |
||||
CRITCL_LD_DBG="" |
||||
CRITCL_LD_REL="" |
||||
CRITCL_CC_OUTPUT="-o [[list \$outfile]]" |
||||
CRITCL_LD_OUTPUT="" |
||||
|
||||
if test "${GCC}" = "yes" |
||||
then |
||||
CRITCL_CPP_DEFINE="${CPP} -dM" |
||||
else |
||||
CRITCL_CPP_DEFINE="${CPP}" |
||||
|
||||
if test "${TEA_PLATFORM}" = "windows" |
||||
then |
||||
# windows, no gcc => msvc |
||||
CRITCL_CC_OUTPUT="[[list -Fo\$outfile]]" |
||||
CRITCL_LD_OUTPUT="-dll [[list -out:\$outfile]]" |
||||
CRITCL_LD_DBG="-debug:full -debugtype:cv -verbose:lib" |
||||
CRITCL_LD_REL="-release -opt:ref -opt:icf,3 -ws:aggressive -verbose:lib" |
||||
if test "$do64bit" = "no" ; then |
||||
# 32bit |
||||
CRITCL_LD_DBG="$CRITCL_LD_DBG -nodefaultlib:libc" |
||||
fi |
||||
fi |
||||
fi |
||||
CRITCL_CPP_ENUM="${CPP}" |
||||
|
||||
#----------------------------------------------------------------------- |
||||
## 2. Fine tuning the commands, this now is platform specific. |
||||
|
||||
case $(uname -s) in |
||||
Darwin*) |
||||
AC_MSG_RESULT([critcl config: darwin specific tune-up]) |
||||
|
||||
# - Critcl, due to essentially generating its private |
||||
# lib{tcl,tk}stub.a does generate common symbols for the |
||||
# stubs tables. Use of -fno-common then prevents linking the |
||||
# object files. |
||||
# |
||||
# - A version 0.0 as pulled from TEA package version is not |
||||
# liked by the Darwin gcc either (Example: crimp). |
||||
|
||||
CRITCL_CC="$(echo "$CRITCL_CC" |sed -e 's,-fno-common,,g')" |
||||
CRITCL_LINK="$(echo "$CRITCL_LINK"|sed -e 's,-fno-common,,g')" |
||||
CRITCL_LINK="$(echo "$CRITCL_LINK"|sed -e 's,-current_version 0\.0,,g')" |
||||
CRITCL_LINK="$(echo "$CRITCL_LINK"|sed -e 's,-compatibility_version 0\.0,,g')" |
||||
;; |
||||
*) |
||||
;; |
||||
esac |
||||
|
||||
#----------------------------------------------------------------------- |
||||
## Conversion results |
||||
|
||||
AC_MSG_RESULT([critcl config: platform.......... $CRITCL_PLATFORM]) |
||||
AC_MSG_RESULT([critcl config: compile........... $CRITCL_CC]) |
||||
AC_MSG_RESULT([critcl config: link.............. $CRITCL_LINK]) |
||||
AC_MSG_RESULT([critcl config: cpp define........ $CRITCL_CPP_DEFINE]) |
||||
AC_MSG_RESULT([critcl config: cpp enum.......... $CRITCL_CPP_ENUM]) |
||||
AC_MSG_RESULT([critcl config: version inquiry... $CRITCL_VERSION]) |
||||
AC_MSG_RESULT([critcl config: cc output......... $CRITCL_CC_OUTPUT]) |
||||
AC_MSG_RESULT([critcl config: ld output......... $CRITCL_LD_OUTPUT]) |
||||
AC_MSG_RESULT([critcl config: ld debug.......... $CRITCL_LD_DBG]) |
||||
AC_MSG_RESULT([critcl config: ld release........ $CRITCL_LD_REL]) |
||||
|
||||
#----------------------------------------------------------------------- |
||||
|
||||
AC_SUBST(CRITCL_CC) |
||||
AC_SUBST(CRITCL_VERSION) |
||||
AC_SUBST(CRITCL_LINK) |
||||
AC_SUBST(CRITCL_PLATFORM) |
||||
AC_SUBST(CRITCL_CPP_DEFINE) |
||||
AC_SUBST(CRITCL_CPP_ENUM) |
||||
AC_SUBST(CRITCL_CC_OUTPUT) |
||||
AC_SUBST(CRITCL_LD_OUTPUT) |
||||
AC_SUBST(CRITCL_LD_DBG) |
||||
AC_SUBST(CRITCL_LD_REL) |
||||
#AC_SUBST(CRITCL_) |
||||
#AC_SUBST() |
||||
|
||||
#-------------------------------------------------------------------- |
||||
# Finally, substitute all of the various values into the Makefile. |
||||
# You may alternatively have a special pkgIndex.tcl.in or other files |
||||
# which require substituting th AC variables in. Include these here. |
||||
#-------------------------------------------------------------------- |
||||
|
||||
AC_OUTPUT([Makefile Config]) |
@ -1,26 +0,0 @@
|
||||
These files comprise the basic building blocks for a Tcl Extension |
||||
Architecture (TEA) extension. For more information on TEA see: |
||||
|
||||
http://www.tcl.tk/doc/tea/ |
||||
|
||||
This package is part of the Tcl project at SourceForge, and latest |
||||
sources should be available there: |
||||
|
||||
http://tcl.sourceforge.net/ |
||||
|
||||
This package is a freely available open source package. You can do |
||||
virtually anything you like with it, such as modifying it, redistributing |
||||
it, and selling it either in whole or in part. |
||||
|
||||
CONTENTS |
||||
======== |
||||
The following is a short description of the files you will find in |
||||
the sample extension. |
||||
|
||||
README.txt This file |
||||
|
||||
install-sh Program used for copying binaries and script files |
||||
to their install locations. |
||||
|
||||
tcl.m4 Collection of Tcl autoconf macros. Included by a package's |
||||
aclocal.m4 to define TEA_* macros. |
@ -1,119 +0,0 @@
|
||||
#!/bin/sh |
||||
|
||||
# |
||||
# install - install a program, script, or datafile |
||||
# This comes from X11R5; it is not part of GNU. |
||||
# |
||||
# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $ |
||||
# |
||||
# This script is compatible with the BSD install script, but was written |
||||
# from scratch. |
||||
# |
||||
|
||||
|
||||
# set DOITPROG to echo to test this script |
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it. |
||||
doit="${DOITPROG-}" |
||||
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars. |
||||
|
||||
mvprog="${MVPROG-mv}" |
||||
cpprog="${CPPROG-cp}" |
||||
chmodprog="${CHMODPROG-chmod}" |
||||
chownprog="${CHOWNPROG-chown}" |
||||
chgrpprog="${CHGRPPROG-chgrp}" |
||||
stripprog="${STRIPPROG-strip}" |
||||
rmprog="${RMPROG-rm}" |
||||
|
||||
instcmd="$mvprog" |
||||
chmodcmd="" |
||||
chowncmd="" |
||||
chgrpcmd="" |
||||
stripcmd="" |
||||
rmcmd="$rmprog -f" |
||||
mvcmd="$mvprog" |
||||
src="" |
||||
dst="" |
||||
|
||||
while [ x"$1" != x ]; do |
||||
case $1 in |
||||
-c) instcmd="$cpprog" |
||||
shift |
||||
continue;; |
||||
|
||||
-m) chmodcmd="$chmodprog $2" |
||||
shift |
||||
shift |
||||
continue;; |
||||
|
||||
-o) chowncmd="$chownprog $2" |
||||
shift |
||||
shift |
||||
continue;; |
||||
|
||||
-g) chgrpcmd="$chgrpprog $2" |
||||
shift |
||||
shift |
||||
continue;; |
||||
|
||||
-s) stripcmd="$stripprog" |
||||
shift |
||||
continue;; |
||||
|
||||
*) if [ x"$src" = x ] |
||||
then |
||||
src=$1 |
||||
else |
||||
dst=$1 |
||||
fi |
||||
shift |
||||
continue;; |
||||
esac |
||||
done |
||||
|
||||
if [ x"$src" = x ] |
||||
then |
||||
echo "install: no input file specified" |
||||
exit 1 |
||||
fi |
||||
|
||||
if [ x"$dst" = x ] |
||||
then |
||||
echo "install: no destination specified" |
||||
exit 1 |
||||
fi |
||||
|
||||
|
||||
# If destination is a directory, append the input filename; if your system |
||||
# does not like double slashes in filenames, you may need to add some logic |
||||
|
||||
if [ -d $dst ] |
||||
then |
||||
dst="$dst"/`basename $src` |
||||
fi |
||||
|
||||
# Make a temp file name in the proper directory. |
||||
|
||||
dstdir=`dirname $dst` |
||||
dsttmp=$dstdir/#inst.$$# |
||||
|
||||
# Move or copy the file name to the temp name |
||||
|
||||
$doit $instcmd $src $dsttmp |
||||
|
||||
# and set any options; do chmod last to preserve setuid bits |
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; fi |
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; fi |
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; fi |
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; fi |
||||
|
||||
# Now rename the file to the real destination. |
||||
|
||||
$doit $rmcmd $dst |
||||
$doit $mvcmd $dsttmp $dst |
||||
|
||||
|
||||
exit 0 |
File diff suppressed because it is too large
Load Diff
@ -1,227 +0,0 @@
|
||||
## -*- tcl -*- |
||||
# # ## ### ##### ######## ############# ##################### |
||||
# Pragmas for MetaData Scanner. |
||||
# n/a |
||||
|
||||
# CriTcl Utility Package for bitmap en- and decoder. |
||||
# Based on i-assoc. |
||||
|
||||
package provide critcl::bitmap 1.1 |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Requirements. |
||||
|
||||
package require Tcl 8.6 ; # Min supported version. |
||||
package require critcl 3.2 |
||||
package require critcl::iassoc |
||||
|
||||
namespace eval ::critcl::bitmap {} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Implementation -- API: Embed C Code |
||||
|
||||
proc critcl::bitmap::def {name dict {exclusions {}}} { |
||||
# dict: Tcl symbolic name -> (C bit-mask (1)) |
||||
# |
||||
# (Ad 1) Can be numeric, or symbolic, as long as it is a C int |
||||
# expression in the end. |
||||
# |
||||
# (Ad exclusions) |
||||
# Excluded bit-masks cannot be converted back to Tcl |
||||
# symbols. These are usually masks with multiple bits |
||||
# set. Conversion back delivers the individual elements |
||||
# instead of the combined mask. |
||||
# |
||||
# If no exclusions are specified the generated code is |
||||
# simpler, i.e. not containing anything for dealing with |
||||
# exclusions at runtime. |
||||
|
||||
# For the C level opt array we want the elements sorted alphabetically. |
||||
set symbols [lsort -dict [dict keys $dict]] |
||||
set i 0 |
||||
foreach s $symbols { |
||||
set id($s) $i |
||||
incr i |
||||
} |
||||
set last $i |
||||
|
||||
set hasexcl [llength $exclusions] |
||||
set excl {} |
||||
foreach e $exclusions { |
||||
dict set excl $e . |
||||
} |
||||
|
||||
dict for {sym mask} $dict { |
||||
set receivable [expr {![dict exists $excl $mask]}] |
||||
|
||||
set map [list @ID@ $id($sym) @SYM@ $sym @MASK@ $mask @RECV@ $receivable] |
||||
|
||||
if {$hasexcl} { |
||||
append init \n[critcl::at::here!][string map $map { |
||||
data->c [@ID@] = "@SYM@"; |
||||
data->mask [@ID@] = @MASK@; |
||||
data->recv [@ID@] = @RECV@; |
||||
data->tcl [@ID@] = Tcl_NewStringObj ("@SYM@", -1); |
||||
Tcl_IncrRefCount (data->tcl [@ID@]); |
||||
}] |
||||
} else { |
||||
append init \n[critcl::at::here!][string map $map { |
||||
data->c [@ID@] = "@SYM@"; |
||||
data->mask [@ID@] = @MASK@; |
||||
data->tcl [@ID@] = Tcl_NewStringObj ("@SYM@", -1); |
||||
Tcl_IncrRefCount (data->tcl [@ID@]); |
||||
}] |
||||
} |
||||
|
||||
append final \n[critcl::at::here!][string map $map { |
||||
Tcl_DecrRefCount (data->tcl [@ID@]); |
||||
}] |
||||
} |
||||
append init \n " data->c \[$last\] = NULL;" |
||||
|
||||
lappend map @NAME@ $name |
||||
lappend map @UNAME@ [string toupper $name] |
||||
lappend map @LAST@ $last |
||||
|
||||
# I. Generate a header file for inclusion by other parts of the |
||||
# package, i.e. csources. Include the header here as well, for |
||||
# the following blocks of code. |
||||
# |
||||
# Declaration of the en- and decoder functions. |
||||
|
||||
critcl::include [critcl::make ${name}.h \n[critcl::at::here!][string map $map { |
||||
#ifndef @NAME@_HEADER |
||||
#define @NAME@_HEADER |
||||
|
||||
/* Encode a flag list into the corresponding bitset */ |
||||
extern int |
||||
@NAME@_encode (Tcl_Interp* interp, |
||||
Tcl_Obj* flags, |
||||
int* result); |
||||
|
||||
/* Decode a bitset into the corresponding flag list */ |
||||
extern Tcl_Obj* |
||||
@NAME@_decode (Tcl_Interp* interp, |
||||
int mask); |
||||
|
||||
#endif |
||||
}]] |
||||
|
||||
# II: Generate the interp association holding the various |
||||
# conversion maps. |
||||
|
||||
if {$hasexcl} { |
||||
critcl::iassoc def ${name}_iassoc {} \n[critcl::at::here!][string map $map { |
||||
const char* c [@LAST@+1]; /* Bit name, C string */ |
||||
Tcl_Obj* tcl [@LAST@]; /* Bit name, Tcl_Obj*, sharable */ |
||||
int mask [@LAST@]; /* Bit mask */ |
||||
int recv [@LAST@]; /* Flag, true for receivable event */ |
||||
}] $init $final |
||||
} else { |
||||
critcl::iassoc def ${name}_iassoc {} \n[critcl::at::here!][string map $map { |
||||
const char* c [@LAST@+1]; /* Bit name, C string */ |
||||
Tcl_Obj* tcl [@LAST@]; /* Bit name, Tcl_Obj*, sharable */ |
||||
int mask [@LAST@]; /* Bit mask */ |
||||
}] $init $final |
||||
} |
||||
|
||||
# III: Generate encoder function: Conversion of list of flag names |
||||
# into corresponding bitset. |
||||
|
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
int |
||||
@NAME@_encode (Tcl_Interp* interp, |
||||
Tcl_Obj* flags, |
||||
int* result) |
||||
{ |
||||
@NAME@_iassoc_data context = @NAME@_iassoc (interp); |
||||
int mask, lc, i, id; |
||||
Tcl_Obj** lv; |
||||
|
||||
if (Tcl_ListObjGetElements (interp, flags, &lc, &lv) != TCL_OK) { |
||||
return TCL_ERROR; |
||||
} |
||||
|
||||
mask = 0; |
||||
for (i = 0; i < lc; i++) { |
||||
if (Tcl_GetIndexFromObj (interp, lv[i], context->c, "@NAME@", 0, |
||||
&id) != TCL_OK) { |
||||
Tcl_SetErrorCode (interp, "@UNAME@", "FLAG", NULL); |
||||
return TCL_ERROR; |
||||
} |
||||
mask |= context->mask [id]; |
||||
} |
||||
|
||||
*result = mask; |
||||
return TCL_OK; |
||||
} |
||||
}] |
||||
|
||||
# IV: Generate decoder function: Convert bitset into the |
||||
# corresponding list of flag names. |
||||
|
||||
if {$hasexcl} { |
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
Tcl_Obj* |
||||
@NAME@_decode (Tcl_Interp* interp, int mask) |
||||
{ |
||||
int i; |
||||
@NAME@_iassoc_data context = @NAME@_iassoc (interp); |
||||
Tcl_Obj* res = Tcl_NewListObj (0, NULL); |
||||
|
||||
for (i = 0; i < @LAST@; i++) { |
||||
if (!context->recv[i]) continue; |
||||
if (!(mask & context->mask[i])) continue; |
||||
(void) Tcl_ListObjAppendElement (interp, res, context->tcl [i]); |
||||
} |
||||
return res; |
||||
} |
||||
}] |
||||
} else { |
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
Tcl_Obj* |
||||
@NAME@_decode (Tcl_Interp* interp, int mask) |
||||
{ |
||||
int i; |
||||
@NAME@_iassoc_data context = @NAME@_iassoc (interp); |
||||
Tcl_Obj* res = Tcl_NewListObj (0, NULL); |
||||
|
||||
for (i = 0; i < @LAST@; i++) { |
||||
if (!(mask & context->mask[i])) continue; |
||||
(void) Tcl_ListObjAppendElement (interp, res, context->tcl [i]); |
||||
} |
||||
return res; |
||||
} |
||||
}] |
||||
} |
||||
|
||||
# V. Define convenient argument- and result-type definitions |
||||
# wrapping the de- and encoder functions for use by cprocs. |
||||
|
||||
critcl::argtype $name \n[critcl::at::here!][string map $map { |
||||
if (@NAME@_encode (interp, @@, &@A) != TCL_OK) return TCL_ERROR; |
||||
}] int int |
||||
|
||||
critcl::resulttype $name \n[critcl::at::here!][string map $map { |
||||
/* @NAME@_decode result is 0-refcount */ |
||||
Tcl_SetObjResult (interp, @NAME@_decode (interp, rv)); |
||||
return TCL_OK; |
||||
}] int |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Export API |
||||
|
||||
namespace eval ::critcl::bitmap { |
||||
namespace export def |
||||
catch { namespace ensemble create } |
||||
} |
||||
|
||||
namespace eval ::critcl { |
||||
namespace export bitmap |
||||
catch { namespace ensemble create } |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Ready |
||||
return |
@ -1,2 +0,0 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.6]} {return} |
||||
package ifneeded critcl::bitmap 1.1 [list source [file join $dir bitmap.tcl]] |
File diff suppressed because it is too large
Load Diff
@ -1,2 +0,0 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.6]} {return} |
||||
package ifneeded critcl::class 1.2 [list source [file join $dir class.tcl]] |
@ -1,69 +0,0 @@
|
||||
## -*- tcl -*- |
||||
# # ## ### ##### ######## ############# ##################### |
||||
# Pragmas for MetaData Scanner. |
||||
# n/a |
||||
|
||||
# CriTcl Utility Commands To Provide Common C-level utility functions. |
||||
# |
||||
# Copyright (c) 2017-2022 Andreas Kupries <andreas_kupries@users.sourceforge.net> |
||||
|
||||
package provide critcl::cutil 0.3 |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Requirements. |
||||
|
||||
package require Tcl 8.6 ; # Min supported version. |
||||
package require critcl 3.2 |
||||
|
||||
namespace eval ::critcl::cutil {} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Implementation -- API: Embed C Code |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
|
||||
proc critcl::cutil::alloc {} { |
||||
variable selfdir |
||||
critcl::cheaders -I$selfdir/allocs |
||||
critcl::include critcl_alloc.h |
||||
return |
||||
} |
||||
|
||||
proc critcl::cutil::assertions {{enable 0}} { |
||||
variable selfdir |
||||
critcl::cheaders -I$selfdir/asserts |
||||
critcl::include critcl_assert.h |
||||
if {!$enable} return |
||||
critcl::cflags -DCRITCL_ASSERT |
||||
return |
||||
} |
||||
|
||||
proc critcl::cutil::tracer {{enable 0}} { |
||||
variable selfdir |
||||
alloc ;# Tracer uses the allocation utilities in its implementation |
||||
critcl::cheaders -I$selfdir/trace |
||||
critcl::include critcl_trace.h |
||||
critcl::csources $selfdir/trace/trace.c |
||||
if {!$enable} return |
||||
critcl::cflags -DCRITCL_TRACER |
||||
return |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## State |
||||
|
||||
namespace eval ::critcl::cutil { |
||||
variable selfdir [file dirname [file normalize [info script]]] |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Export API |
||||
|
||||
namespace eval ::critcl::cutil { |
||||
namespace export alloc assert tracer |
||||
catch { namespace ensemble create } |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Ready |
||||
return |
@ -1,2 +0,0 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.6]} {return} |
||||
package ifneeded critcl::cutil 0.3 [list source [file join $dir cutil.tcl]] |
@ -1,696 +0,0 @@
|
||||
## -*- tcl -*- |
||||
# # ## ### ##### ######## ############# ##################### |
||||
# Pragmas for MetaData Scanner. |
||||
# n/a |
||||
|
||||
# CriTcl Utility Package for en- and decoding an external enum. |
||||
# Based on i-assoc. |
||||
# |
||||
# Copyright (c) 2014-2022 Andreas Kupries <andreas_kupries@users.sourceforge.net> |
||||
|
||||
package provide critcl::emap 1.3 |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Requirements. |
||||
|
||||
package require Tcl 8.6 ; # Min supported version. |
||||
package require critcl 3.1.11 ; # make, include -- dict portability |
||||
package require critcl::iassoc |
||||
|
||||
namespace eval ::critcl::emap {} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Implementation -- API: Embed C Code |
||||
|
||||
proc critcl::emap::def {name dict args} { |
||||
# dict: Tcl symbolic name -> (C int value (1)) |
||||
# |
||||
# (Ad 1) Can be numeric, or symbolic, as long as it is a C int |
||||
# expression in the end. |
||||
|
||||
# args = options. Currently supported: |
||||
# * -nocase : case-insensitive strings on encoding. |
||||
# * -mode : list of use cases, access case: tcl, c (default: tcl) |
||||
|
||||
Options $args |
||||
Index $dict id symbols last |
||||
# symbols :: list of words, lexicographically sorted |
||||
# id :: symbol -> index (sorted) |
||||
# last :: number of symbols |
||||
|
||||
Header $name |
||||
ConstStringTable $name $symbols $dict $nocase $last |
||||
set isdirect [DecideIfDirect $dict min max direct] |
||||
if {$isdirect} { |
||||
DecodeDirect $name $min $max id direct |
||||
} |
||||
Tcl Iassoc $name $symbols $dict $nocase $last |
||||
Tcl EncoderTcl $name $nocase |
||||
Tcl DecoderTcl $name $isdirect $last |
||||
List Decoder+List $name |
||||
Tcl ArgType $name |
||||
Tcl ResultType $name |
||||
C EncoderC $name $nocase $last |
||||
C DecoderC $name $isdirect $last |
||||
return |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Internals |
||||
|
||||
proc critcl::emap::DecoderTcl {name isdirect last} { |
||||
if {$isdirect} { |
||||
DecoderTclDirect $name |
||||
} else { |
||||
DecoderTclSearch $name $last |
||||
} |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::DecoderTclSearch {name last} { |
||||
# Decoder based on linear search. Because we either |
||||
# - see some symbolic values (= do not know actual value) |
||||
# - the direct mapping table would be too large (> 50 entries). |
||||
lappend map @NAME@ $name |
||||
lappend map @UNAME@ [string toupper $name] |
||||
lappend map @LAST@ $last |
||||
|
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
Tcl_Obj* |
||||
@NAME@_decode (Tcl_Interp* interp, int state) |
||||
{ |
||||
/* Decode via linear search */ |
||||
char buf [20]; |
||||
int i; |
||||
@NAME@_iassoc_data context = @NAME@_iassoc (interp); |
||||
|
||||
for (i = 0; i < @LAST@; i++) { |
||||
if (@NAME@_emap_state [i] != state) continue; |
||||
return context->tcl [i]; |
||||
} |
||||
|
||||
sprintf (buf, "%d", state); |
||||
Tcl_AppendResult (interp, "Invalid @NAME@ state code ", buf, NULL); |
||||
Tcl_SetErrorCode (interp, "@UNAME@", "STATE", NULL); |
||||
return NULL; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::DecodeDirect {name min max iv dv} { |
||||
upvar 1 $iv id $dv direct |
||||
# Decoder based on a direct mapping table. We can do this because |
||||
# we found that all the values are pure integers, i.e. we know |
||||
# them in detail, and that the table is not too big (< 50 entries). |
||||
|
||||
lassign [DirectTable $min $max id direct] table size |
||||
|
||||
lappend map @NAME@ $name |
||||
lappend map @DIRECT@ $table |
||||
lappend map @SIZE@ $size |
||||
lappend map @MIN@ $min |
||||
lappend map @MAX@ $max |
||||
lappend map @OFFSET@ [Offset $min] |
||||
|
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
static int @NAME@_direct (int state) |
||||
{ |
||||
static const int direct [@SIZE@] = {@DIRECT@ |
||||
}; |
||||
/* Check limits first */ |
||||
if (state < @MIN@) { return -1; } |
||||
if (state > @MAX@) { return -1; } |
||||
/* Map to string index */ |
||||
return direct [state@OFFSET@]; |
||||
} |
||||
}] |
||||
} |
||||
|
||||
proc critcl::emap::DecoderTclDirect {name} { |
||||
lappend map @NAME@ $name |
||||
lappend map @UNAME@ [string toupper $name] |
||||
|
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
Tcl_Obj* |
||||
@NAME@_decode (Tcl_Interp* interp, int state) |
||||
{ |
||||
/* Decode via direct mapping */ |
||||
char buf [20]; |
||||
int i; |
||||
@NAME@_iassoc_data context = @NAME@_iassoc (interp); |
||||
|
||||
i = @NAME@_direct (state); |
||||
if (i < 0) { goto error; } |
||||
|
||||
/* Return the chosen string */ |
||||
return context->tcl [i]; |
||||
|
||||
error: |
||||
sprintf (buf, "%d", state); |
||||
Tcl_AppendResult (interp, "Invalid @NAME@ state code ", buf, NULL); |
||||
Tcl_SetErrorCode (interp, "@UNAME@", "STATE", NULL); |
||||
return NULL; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::Decoder+List {name} { |
||||
lappend map @NAME@ $name |
||||
lappend map @UNAME@ [string toupper $name] |
||||
|
||||
# Note on perf: O(mc), for m states in the definition, and c |
||||
# states to convert. As the number of declared states is however |
||||
# fixed, and small, we can say O(c) for some larger constant |
||||
# factor. |
||||
|
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
Tcl_Obj* |
||||
@NAME@_decode_list (Tcl_Interp* interp, int c, int* state) |
||||
{ |
||||
int k; |
||||
Tcl_Obj* result = Tcl_NewListObj (0, 0); |
||||
/* Failed to create, abort immediately */ |
||||
if (!result) { |
||||
return result; |
||||
} |
||||
for (k=0; k < c; k++) { |
||||
Tcl_Obj* lit = @NAME@_decode (interp, state[k]); |
||||
if (lit && (TCL_OK == Tcl_ListObjAppendElement (interp, result, lit))) { |
||||
continue; |
||||
} |
||||
/* Failed to translate or append; release and abort */ |
||||
Tcl_DecrRefCount (result); |
||||
return NULL; |
||||
} |
||||
return result; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::DirectTable {min max iv dv} { |
||||
upvar 1 $iv id $dv direct |
||||
|
||||
set table {} |
||||
set fmt %[string length $max]d |
||||
|
||||
for {set i $min} {$i <= $max} {incr i} { |
||||
if {[info exists direct($i)]} { |
||||
set sym [lindex $direct($i) 0] |
||||
set code $id($sym) |
||||
lappend table "$code,\t/* [format $fmt $i] <=> \"$sym\" */" |
||||
} else { |
||||
lappend table "-1," |
||||
} |
||||
} |
||||
|
||||
return [list "\n\t\t [join $table "\n\t\t "]" [llength $table]] |
||||
} |
||||
|
||||
proc critcl::emap::Offset {min} { |
||||
if {$min == 0} { |
||||
return "" |
||||
} elseif {$min < 0} { |
||||
return "+[expr {0-$min}]" |
||||
} else { |
||||
# Note: The 0+... ensures that we get a decimal number. |
||||
return "-[expr {0+$min}]" |
||||
} |
||||
} |
||||
|
||||
proc critcl::emap::DecideIfDirect {dict minv maxv dv} { |
||||
upvar 1 $minv min $maxv max $dv direct |
||||
|
||||
set min {} |
||||
set max {} |
||||
|
||||
dict for {sym value} $dict { |
||||
# Manage a direct mapping table from stati to strings, if we |
||||
# can see the numeric value of all stati. |
||||
if {[string is integer -strict $value]} { |
||||
if {($min eq {}) || ($value < $min)} { set min $value } |
||||
if {($max eq {}) || ($value > $max)} { set max $value } |
||||
lappend direct($value) $sym |
||||
} else { |
||||
return 0 |
||||
} |
||||
} |
||||
|
||||
if {$min eq {}} { return 0 } |
||||
if {$max eq {}} { return 0 } |
||||
if {($max-$min) >= 50} { return 0 } |
||||
return 1 |
||||
} |
||||
|
||||
proc critcl::emap::EncoderTcl {name nocase} { |
||||
if {$nocase} { |
||||
EncoderTclNocase $name |
||||
} else { |
||||
EncoderTclPlain $name |
||||
} |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::EncoderTclPlain {name} { |
||||
lappend map @NAME@ $name |
||||
lappend map @UNAME@ [string toupper $name] |
||||
|
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
int |
||||
@NAME@_encode (Tcl_Interp* interp, |
||||
Tcl_Obj* state, |
||||
int* result) |
||||
{ |
||||
int id, res; |
||||
res = Tcl_GetIndexFromObj (interp, state, @NAME@_emap_cstr, "@NAME@", 0, &id); |
||||
if (res != TCL_OK) { |
||||
Tcl_SetErrorCode (interp, "@UNAME@", "STATE", NULL); |
||||
return TCL_ERROR; |
||||
} |
||||
|
||||
*result = @NAME@_emap_state [id]; |
||||
return TCL_OK; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::EncoderTclNocase {name} { |
||||
lappend map @NAME@ $name |
||||
lappend map @UNAME@ [string toupper $name] |
||||
|
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
int |
||||
@NAME@_encode (Tcl_Interp* interp, |
||||
Tcl_Obj* state, |
||||
int* result) |
||||
{ |
||||
int id, res; |
||||
/* -nocase :: We duplicate the state string, making it unshared, |
||||
* allowing us to convert in place. As the string may change |
||||
* length (shrinking) we have to reset the length after |
||||
* conversion. |
||||
*/ |
||||
state = Tcl_DuplicateObj (state); |
||||
Tcl_SetObjLength(state, Tcl_UtfToLower (Tcl_GetString (state))); |
||||
res = Tcl_GetIndexFromObj (interp, state, @NAME@_emap_cstr, "@NAME@", 0, &id); |
||||
Tcl_DecrRefCount (state); |
||||
if (res != TCL_OK) { |
||||
Tcl_SetErrorCode (interp, "@UNAME@", "STATE", NULL); |
||||
return TCL_ERROR; |
||||
} |
||||
|
||||
*result = @NAME@_emap_state [id]; |
||||
return TCL_OK; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::EncoderC {name nocase last} { |
||||
if {$nocase} { |
||||
EncoderCNocase $name $last |
||||
} else { |
||||
EncoderCPlain $name $last |
||||
} |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::EncoderCPlain {name last} { |
||||
lappend map @NAME@ $name |
||||
lappend map @UNAME@ [string toupper $name] |
||||
lappend map @LAST@ $last |
||||
|
||||
# case-sensitive search |
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
#include <string.h> |
||||
|
||||
int |
||||
@NAME@_encode_cstr (const char* state) |
||||
{ |
||||
int id; |
||||
/* explicit linear search */ |
||||
for (id = 0; id < @LAST@; id++) { |
||||
if (strcmp (state, @NAME@_emap_cstr [id]) != 0) continue; |
||||
return @NAME@_emap_state [id]; |
||||
} |
||||
return -1; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::EncoderCNocase {name last} { |
||||
lappend map @NAME@ $name |
||||
lappend map @UNAME@ [string toupper $name] |
||||
lappend map @LAST@ $last |
||||
|
||||
# case-insensitive search |
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
#include <string.h> |
||||
|
||||
int |
||||
@NAME@_encode_cstr (const char* state) |
||||
{ |
||||
/* -nocase :: We duplicate the state string, allowing us to |
||||
* convert in place. As the string may change length (shrink) |
||||
* we have to re-terminate it after conversion. |
||||
*/ |
||||
int id, slen = 1 + strlen (state); |
||||
char* lower = ckalloc (slen); |
||||
|
||||
memcpy (lower, state, slen); |
||||
lower [Tcl_UtfToLower (lower)] = '\0'; |
||||
|
||||
/* explicit linear search */ |
||||
for (id = 0; id < @LAST@; id++) { |
||||
if (strcmp (lower, @NAME@_emap_cstr [id]) != 0) continue; |
||||
ckfree ((char*) lower); |
||||
return @NAME@_emap_state [id]; |
||||
} |
||||
ckfree ((char*) lower); |
||||
return -1; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::DecoderC {name isdirect last} { |
||||
if {$isdirect} { |
||||
DecoderCDirect $name |
||||
} else { |
||||
DecoderCSearch $name $last |
||||
} |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::DecoderCSearch {name last} { |
||||
# Decoder based on linear search. Because we either |
||||
# - see some symbolic values (= do not know actual value) |
||||
# - the direct mapping table would be too large (> 50 entries). |
||||
lappend map @NAME@ $name |
||||
lappend map @UNAME@ [string toupper $name] |
||||
lappend map @LAST@ $last |
||||
|
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
const char* |
||||
@NAME@_decode_cstr (int state) |
||||
{ |
||||
/* Decode via linear search */ |
||||
int id; |
||||
for (id = 0; id < @LAST@; id++) { |
||||
if (@NAME@_emap_state [id] != state) continue; |
||||
return @NAME@_emap_cstr [id]; |
||||
} |
||||
return NULL; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::DecoderCDirect {name} { |
||||
lappend map @NAME@ $name |
||||
lappend map @UNAME@ [string toupper $name] |
||||
|
||||
critcl::ccode \n[critcl::at::here!][string map $map { |
||||
const char* |
||||
@NAME@_decode_cstr (int state) |
||||
{ |
||||
/* Decode via direct mapping */ |
||||
int i = @NAME@_direct (state); |
||||
if (i < 0) { return NULL; } |
||||
/* Return the chosen string */ |
||||
return @NAME@_emap_cstr [i]; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::ResultType {name} { |
||||
lappend map @NAME@ $name |
||||
critcl::resulttype $name \n[critcl::at::here!][string map $map { |
||||
/* @NAME@_decode result is 0-refcount */ |
||||
{ Tcl_Obj* ro = @NAME@_decode (interp, rv); |
||||
if (ro == NULL) { return TCL_ERROR; } |
||||
Tcl_SetObjResult (interp, ro); |
||||
return TCL_OK; } |
||||
}] int |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::ArgType {name} { |
||||
lappend map @NAME@ $name |
||||
critcl::argtype $name \n[critcl::at::here!][string map $map { |
||||
if (@NAME@_encode (interp, @@, &@A) != TCL_OK) return TCL_ERROR; |
||||
}] int int |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::Header {name} { |
||||
# I. Generate a header file for inclusion by other parts of the |
||||
# package, i.e. csources. Include the header here as well, for |
||||
# the following blocks of code. |
||||
# |
||||
# Declaration of the en- and decoder functions. |
||||
upvar 1 mode mode |
||||
append h [HeaderIntro $name] |
||||
append h [Tcl HeaderTcl $name] |
||||
append h [List Header+List $name] |
||||
append h [C HeaderC $name] |
||||
append h [HeaderEnd $name] |
||||
critcl::include [critcl::make ${name}.h $h] |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::HeaderIntro {name} { |
||||
lappend map @NAME@ $name |
||||
return \n[critcl::at::here!][string map $map { |
||||
#ifndef @NAME@_EMAP_HEADER |
||||
#define @NAME@_EMAP_HEADER |
||||
|
||||
#include <tcl.h> |
||||
}] |
||||
} |
||||
|
||||
proc critcl::emap::HeaderEnd {name} { |
||||
lappend map @NAME@ $name |
||||
return [string map $map { |
||||
#endif /* @NAME@_EMAP_HEADER */ |
||||
}] |
||||
} |
||||
|
||||
proc critcl::emap::HeaderTcl {name} { |
||||
lappend map @NAME@ $name |
||||
return \n[critcl::at::here!][string map $map { |
||||
/* "tcl" |
||||
* Encode a Tcl string into the corresponding state code |
||||
* Decode a state into the corresponding Tcl string |
||||
*/ |
||||
extern int @NAME@_encode (Tcl_Interp* interp, Tcl_Obj* state, int* result); |
||||
extern Tcl_Obj* @NAME@_decode (Tcl_Interp* interp, int state); |
||||
}] |
||||
} |
||||
|
||||
proc critcl::emap::Header+List {name} { |
||||
lappend map @NAME@ $name |
||||
return \n[critcl::at::here!][string map $map { |
||||
/* "+list" |
||||
* Decode a set of states into a list of the corresponding Tcl strings |
||||
*/ |
||||
extern Tcl_Obj* @NAME@_decode_list (Tcl_Interp* interp, int c, int* state); |
||||
}] |
||||
} |
||||
|
||||
proc critcl::emap::HeaderC {name} { |
||||
lappend map @NAME@ $name |
||||
return \n[critcl::at::here!][string map $map { |
||||
/* "c" |
||||
* Encode a C string into the corresponding state code |
||||
* Decode a state into the corresponding C string |
||||
*/ |
||||
extern int @NAME@_encode_cstr (const char* state); |
||||
extern const char* @NAME@_decode_cstr (int state); |
||||
}] |
||||
} |
||||
|
||||
proc critcl::emap::Iassoc {name symbols dict nocase last} { |
||||
upvar 1 mode mode |
||||
critcl::iassoc def ${name}_iassoc {} \ |
||||
[IassocStructure $last] \ |
||||
[IassocInit $name $symbols $dict $nocase $last] \ |
||||
[IassocFinal $symbols $dict] |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::IassocStructure {last} { |
||||
lappend map @LAST@ $last |
||||
return \n[critcl::at::here!][string map $map { |
||||
Tcl_Obj* tcl [@LAST@]; /* State name, Tcl_Obj*, sharable */ |
||||
}] |
||||
} |
||||
|
||||
proc critcl::emap::IassocInit {name symbols dict nocase last} { |
||||
set id -1 |
||||
foreach sym $symbols { |
||||
set value [dict get $dict $sym] |
||||
incr id |
||||
if {$nocase} { set sym [string tolower $sym] } |
||||
set map [list @ID@ $id @SYM@ $sym @VALUE@ $value @NAME@ $name] |
||||
|
||||
# iassoc initialization, direct from string, no C level |
||||
append init \n[critcl::at::here!][string map $map { |
||||
data->tcl [@ID@] = Tcl_NewStringObj (@NAME@_emap_cstr[@ID@], -1); |
||||
Tcl_IncrRefCount (data->tcl [@ID@]); |
||||
}] |
||||
} |
||||
return $init |
||||
} |
||||
|
||||
proc critcl::emap::IassocFinal {symbols dict} { |
||||
set id -1 |
||||
foreach sym $symbols { |
||||
incr id |
||||
set map [list @ID@ $id] |
||||
append final \n[critcl::at::here!][string map $map { |
||||
Tcl_DecrRefCount (data->tcl [@ID@]); |
||||
}] |
||||
} |
||||
return $final |
||||
} |
||||
|
||||
proc critcl::emap::ConstStringTable {name symbols dict nocase last} { |
||||
# C level table initialization (constant data) |
||||
foreach sym $symbols { |
||||
set value [dict get $dict $sym] |
||||
if {$nocase} { set sym [string tolower $sym] } |
||||
append ctable "\n\t \"${sym}\"," |
||||
append stable "\n\t ${value}," |
||||
} |
||||
append ctable "\n\t 0" |
||||
set stable [string trimright $stable ,] |
||||
|
||||
lappend map @NAME@ $name |
||||
lappend map @STRINGS@ $ctable |
||||
lappend map @STATES@ $stable |
||||
lappend map @LAST@ $last |
||||
|
||||
critcl::ccode [critcl::at::here!][string map $map { |
||||
/* State names, C string */ |
||||
static const char* @NAME@_emap_cstr [@LAST@+1] = {@STRINGS@ |
||||
}; |
||||
|
||||
/* State codes */ |
||||
static int @NAME@_emap_state [@LAST@] = {@STATES@ |
||||
}; |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::C {args} { |
||||
upvar 1 mode mode |
||||
if {!$mode(c)} return |
||||
return [uplevel 1 $args] |
||||
} |
||||
|
||||
proc critcl::emap::!C {args} { |
||||
upvar 1 mode mode |
||||
if {$mode(c)} return |
||||
return [uplevel 1 $args] |
||||
} |
||||
|
||||
proc critcl::emap::Tcl {args} { |
||||
upvar 1 mode mode |
||||
if {!$mode(tcl)} return |
||||
return [uplevel 1 $args] |
||||
} |
||||
|
||||
proc critcl::emap::!Tcl {args} { |
||||
upvar 1 mode mode |
||||
if {$mode(tcl)} return |
||||
return [uplevel 1 $args] |
||||
} |
||||
|
||||
proc critcl::emap::List {args} { |
||||
upvar 1 mode mode |
||||
if {!$mode(+list)} return |
||||
return [uplevel 1 $args] |
||||
} |
||||
|
||||
proc critcl::emap::!List {args} { |
||||
upvar 1 mode mode |
||||
if {$mode(+list)} return |
||||
return [uplevel 1 $args] |
||||
} |
||||
|
||||
proc critcl::emap::Index {dict iv sv lv} { |
||||
upvar 1 $iv id $sv symbols $lv last |
||||
# For the C level search we want lexicographically sorted elements |
||||
set symbols [lsort -dict [dict keys $dict]] |
||||
set i 0 |
||||
foreach s $symbols { |
||||
set id($s) $i |
||||
incr i |
||||
} |
||||
set last $i |
||||
# id :: symbol -> index (sorted) |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::Options {options} { |
||||
upvar 1 nocase nocase mode mode |
||||
set nocase 0 |
||||
set use tcl |
||||
|
||||
while {[llength $options]} { |
||||
set options [lassign $options o] |
||||
switch -glob -- $o { |
||||
-nocase - |
||||
-nocas - |
||||
-noca - |
||||
-noc - |
||||
-no - |
||||
-n { set nocase 1 } |
||||
-mode - |
||||
-mod - |
||||
-mo - |
||||
-m { set options [lassign $options use] } |
||||
-* - |
||||
default { |
||||
return -code error -errorcode {CRITCL EMAP INVALID-OPTION} \ |
||||
"Expected option -nocase, or -use, got \"$o\"" |
||||
} |
||||
} |
||||
} |
||||
Use $use |
||||
return |
||||
} |
||||
|
||||
proc critcl::emap::Use {use} { |
||||
# Use cases: tcl, c, both |
||||
upvar 1 mode mode |
||||
set uses 0 |
||||
foreach u {c tcl +list} { set mode($u) 0 } |
||||
foreach u $use { set mode($u) 1 ; incr uses } |
||||
if {$mode(+list)} { set mode(tcl) 1 } |
||||
if {$uses} return |
||||
return -code error "Need at least one use case (c, tcl, or +list)" |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Export API |
||||
|
||||
namespace eval ::critcl::emap { |
||||
namespace export def |
||||
catch { namespace ensemble create } |
||||
} |
||||
|
||||
namespace eval ::critcl { |
||||
namespace export emap |
||||
catch { namespace ensemble create } |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Ready |
||||
return |
@ -1,2 +0,0 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.6]} {return} |
||||
package ifneeded critcl::emap 1.3 [list source [file join $dir emap.tcl]] |
@ -1,151 +0,0 @@
|
||||
## -*- tcl -*- |
||||
# # ## ### ##### ######## ############# ##################### |
||||
# Pragmas for MetaData Scanner. |
||||
# n/a |
||||
|
||||
# CriTcl Utility Commands. Generation of functions handling conversion |
||||
# from and to a C enum. Not a full Tcl_ObjType. Based on |
||||
# Tcl_GetIndexFromObj() instead. |
||||
|
||||
package provide critcl::enum 1.2 |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Requirements. |
||||
|
||||
package require Tcl 8.6 ; # Min supported version. |
||||
package require critcl 3.1.11 ; # make, include -- dict portability |
||||
package require critcl::literals 1.1 ; # String pool for conversion to Tcl. |
||||
|
||||
namespace eval ::critcl::enum {} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## API: Generate the declaration and implementation files for the enum. |
||||
|
||||
proc ::critcl::enum::def {name dict {use tcl}} { |
||||
# Arguments are |
||||
# - the C name of the enumeration, and |
||||
# - dict of strings to convert. Key is the symbolic C name, value |
||||
# is the string. Numeric C value is in the order of the strings in |
||||
# the dict, treating it as list for that case. |
||||
# |
||||
# dict: C symbolic name -> Tcl string (Tcl symbolic name). |
||||
|
||||
if {![dict size $dict]} { |
||||
return -code error -errorcode {CRITCL ENUM DEF INVALID} \ |
||||
"Expected an enum definition, got empty string" |
||||
} |
||||
|
||||
set plist 0 |
||||
foreach m $use { |
||||
switch $m { |
||||
tcl {} |
||||
+list { set plist 1 } |
||||
default { |
||||
return -code error -errorcode {CRITCL ENUM DEF MODE INVALID} \ |
||||
"Unknown mode $m, expected one of \"+list\", or \"tcl\"" |
||||
} |
||||
} |
||||
} |
||||
|
||||
critcl::literals::def ${name}_pool $dict $use |
||||
|
||||
# <name>_pool_names = C enum of symbolic names, and implied numeric values. |
||||
# <name>_pool.h = Header |
||||
# <name>_pool ( interp, code ) => Tcl_Obj* :: up-conversion C to Tcl. |
||||
|
||||
# Exporting: |
||||
# Header <name>.h |
||||
# Function <name>_ToObj (interp, code) -> obj |
||||
# Function <name>_ToObjList (interp, count, code*) -> obj (**) |
||||
# Function <name>_GetFromObj (interp, obj, flags, &code) -> Tcl code |
||||
# Enum type <name>_names |
||||
# |
||||
# (**) Mode +list only. |
||||
|
||||
dict for {sym str} $dict { |
||||
lappend table "\t\t\"$str\"," |
||||
} |
||||
|
||||
lappend map @NAME@ $name |
||||
lappend map @TABLE@ \n[join $table \n] |
||||
lappend map @TSIZE@ [llength $table] |
||||
lappend map @TSIZE1@ [expr {1 + [llength $table]}] |
||||
|
||||
if {$plist} { |
||||
lappend map @PLIST@ \ |
||||
"\n #define ${name}_ToObjList(i,c,l) (${name}_pool_list(i,c,l))" |
||||
} else { |
||||
lappend map @PLIST@ "" |
||||
} |
||||
|
||||
critcl::include [critcl::make ${name}.h \n[critcl::at::here!][string map $map { |
||||
#ifndef @NAME@_HEADER |
||||
#define @NAME@_HEADER |
||||
#include <@NAME@_pool.h> |
||||
#include <tcl.h> |
||||
|
||||
typedef @NAME@_pool_names @NAME@; |
||||
#define @NAME@_LAST @NAME@_pool_name_LAST |
||||
|
||||
extern int |
||||
@NAME@_GetFromObj (Tcl_Interp* interp, |
||||
Tcl_Obj* obj, |
||||
int flags, |
||||
int* literal); |
||||
|
||||
#define @NAME@_ToObj(i,l) (@NAME@_pool(i,l))@PLIST@ |
||||
#endif |
||||
}]] |
||||
|
||||
# Create second function, down-conversion Tcl to C. |
||||
|
||||
critcl::ccode [critcl::at::here!][string map $map { |
||||
extern int |
||||
@NAME@_GetFromObj (Tcl_Interp* interp, |
||||
Tcl_Obj* obj, |
||||
int flags, |
||||
int* literal ) |
||||
{ |
||||
static const char* strings[@TSIZE1@] = {@TABLE@ |
||||
NULL |
||||
}; |
||||
|
||||
return Tcl_GetIndexFromObj (interp, obj, strings, |
||||
"@NAME@", |
||||
flags, literal); |
||||
} |
||||
}] |
||||
|
||||
|
||||
# V. Define convenient argument- and result-type definitions |
||||
# wrapping the de- and encoder functions for use by cprocs. |
||||
|
||||
critcl::argtype $name \n[critcl::at::here!][string map $map { |
||||
if (@NAME@_GetFromObj (interp, @@, TCL_EXACT, &@A) != TCL_OK) return TCL_ERROR; |
||||
}] int int |
||||
|
||||
critcl::argtype ${name}-prefix \n[critcl::at::here!][string map $map { |
||||
if (@NAME@_GetFromObj (interp, @@, 0, &@A) != TCL_OK) return TCL_ERROR; |
||||
}] int int |
||||
|
||||
# Use the underlying literal pool directly. |
||||
critcl::resulttype $name = ${name}_pool |
||||
return |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Export API |
||||
|
||||
namespace eval ::critcl::enum { |
||||
namespace export def |
||||
catch { namespace ensemble create } |
||||
} |
||||
|
||||
namespace eval ::critcl { |
||||
namespace export enum |
||||
catch { namespace ensemble create } |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Ready |
||||
return |
@ -1,2 +0,0 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.6]} {return} |
||||
package ifneeded critcl::enum 1.2 [list source [file join $dir enum.tcl]] |
@ -1,182 +0,0 @@
|
||||
## -*- tcl -*- |
||||
# # ## ### ##### ######## ############# ##################### |
||||
# Pragmas for MetaData Scanner. |
||||
# @mdgen OWNER: iassoc.h |
||||
|
||||
# CriTcl Utility Commands. Specification of a C function and structure |
||||
# associated with an interpreter made easy. |
||||
|
||||
package provide critcl::iassoc 1.2 |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Requirements. |
||||
|
||||
package require Tcl 8.6 ; # Min supported version. |
||||
package require critcl 3.1.13 ; # Need 'meta?' to get the package name. |
||||
# Need 'Deline' helper. |
||||
package require critcl::util ; # Use the package's Get/Put commands. |
||||
|
||||
namespace eval ::critcl::iassoc {} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## API: Generate the declaration and implementation files for the iassoc. |
||||
|
||||
proc ::critcl::iassoc::def {name arguments struct constructor destructor} { |
||||
critcl::at::caller |
||||
critcl::at::incrt $arguments ; set sloc [critcl::at::get*] |
||||
critcl::at::incrt $struct ; set cloc [critcl::at::get*] |
||||
critcl::at::incrt $constructor ; set dloc [critcl::at::get] |
||||
|
||||
set struct $sloc$struct |
||||
set constructor $cloc$constructor |
||||
set destructor $dloc$destructor |
||||
|
||||
# Arguments: |
||||
# - name of the C function which will provide access to the |
||||
# structure. This name, with a fixed prefix is also used to |
||||
# identify the association within the interpreter, and for |
||||
# the structure's type. |
||||
# |
||||
# - C code declaring the structure's contents. |
||||
# - C code executed to initialize the structure. |
||||
# - C code executed to destroy the structure. |
||||
|
||||
# Note that this is, essentially, a singleton object, without |
||||
# methods. |
||||
|
||||
# Pull the package we are working on out of the system. |
||||
|
||||
set package [critcl::meta? name] |
||||
set qpackage [expr {[string match ::* $package] |
||||
? "$package" |
||||
: "::$package"}] |
||||
lassign [uplevel 1 [list ::critcl::name2c $qpackage]] pns pcns package cpackage |
||||
|
||||
#puts "%%% pNS |$pns|" |
||||
#puts "%%% Pkg |$package|" |
||||
#puts "%%% pCNS |$pcns|" |
||||
#puts "%%% cPkg |$cpackage|" |
||||
#puts "%%% Name |$name|" |
||||
#puts "@@@ <<$data>>" |
||||
|
||||
set stem ${pcns}${cpackage}_iassoc_${name} |
||||
set type ${name}_data |
||||
set label critcl::iassoc/p=$package/a=$name |
||||
|
||||
set anames {} |
||||
if {[llength $arguments]} { |
||||
foreach {t v} $arguments { |
||||
lappend alist "$t $v" |
||||
lappend anames $v |
||||
} |
||||
set arguments ", [join $alist {, }]" |
||||
set anames ", [join $anames {, }]" |
||||
} |
||||
|
||||
lappend map "\t" {} |
||||
lappend map @package@ $package |
||||
lappend map @name@ $name |
||||
lappend map @stem@ $stem |
||||
lappend map @label@ $label |
||||
lappend map @type@ $type |
||||
lappend map @struct@ $struct |
||||
lappend map @argdecls@ $arguments |
||||
lappend map @argnames@ $anames |
||||
lappend map @constructor@ $constructor |
||||
lappend map @destructor@ $destructor |
||||
|
||||
#puts T=[string length $template] |
||||
|
||||
critcl::include [critcl::make ${name}.h \n[critcl::at::here!][string map $map { |
||||
#ifndef @name@_HEADER |
||||
#define @name@_HEADER |
||||
|
||||
#include <tcl.h> |
||||
|
||||
typedef struct @type@__ { |
||||
@struct@ |
||||
} @type@__; |
||||
typedef struct @type@__* @type@; |
||||
|
||||
extern @type@ |
||||
@name@ (Tcl_Interp* interp@argdecls@); |
||||
|
||||
#endif |
||||
}]] |
||||
|
||||
# Note: Making the .c code a `csources` instead of including it |
||||
# directly is a backward incompatible API change (The C code does |
||||
# not see any preceding includes. Which may define things used |
||||
# in/by the user's constructor. Breaks the users of iassoc, like |
||||
# bitmap, emap, etc. -- change defered -- |
||||
critcl::include [critcl::make ${name}.c \n[critcl::at::here!][string map $map { |
||||
/* |
||||
* For package "@package@". |
||||
* Implementation of Tcl Interpreter Association "@name@". |
||||
* |
||||
* Support functions for structure creation and destruction. |
||||
*/ |
||||
|
||||
static void |
||||
@stem@_Release (@type@ data, Tcl_Interp* interp) |
||||
{ |
||||
@destructor@ |
||||
ckfree((char*) data); |
||||
} |
||||
|
||||
static @type@ |
||||
@stem@_Init (Tcl_Interp* interp@argdecls@) |
||||
{ |
||||
@type@ data = (@type@) ckalloc (sizeof (@type@__)); |
||||
|
||||
@constructor@ |
||||
return data; |
||||
|
||||
error: |
||||
ckfree ((char*) data); |
||||
return NULL; |
||||
} |
||||
|
||||
/* |
||||
* Structure accessor, automatically creating it if the |
||||
* interpreter does not have it already, setting it up for |
||||
* destruction on interpreter shutdown. |
||||
*/ |
||||
|
||||
@type@ |
||||
@name@ (Tcl_Interp* interp@argdecls@) |
||||
{ |
||||
#define KEY "@label@" |
||||
|
||||
Tcl_InterpDeleteProc* proc = (Tcl_InterpDeleteProc*) @stem@_Release; |
||||
@type@ data; |
||||
|
||||
data = Tcl_GetAssocData (interp, KEY, &proc); |
||||
if (data) { |
||||
return data; |
||||
} |
||||
|
||||
data = @stem@_Init (interp@argnames@); |
||||
|
||||
if (data) { |
||||
Tcl_SetAssocData (interp, KEY, proc, (ClientData) data); |
||||
} |
||||
|
||||
return data; |
||||
#undef KEY |
||||
} |
||||
}]] |
||||
return |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Export API |
||||
|
||||
namespace eval ::critcl::iassoc { |
||||
namespace export def |
||||
catch { namespace ensemble create } |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Ready |
||||
return |
@ -1,2 +0,0 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.6]} {return} |
||||
package ifneeded critcl::iassoc 1.2 [list source [file join $dir iassoc.tcl]] |
@ -1,330 +0,0 @@
|
||||
## -*- tcl -*- |
||||
# # ## ### ##### ######## ############# ##################### |
||||
# Pragmas for MetaData Scanner. |
||||
# n/a |
||||
|
||||
# CriTcl Utility Package for Shared Tcl_Obj* literals of a package. |
||||
# Based on critcl::iassoc. |
||||
# |
||||
# Copyright (c) 20??-2022 Andreas Kupries <andreas_kupries@users.sourceforge.net> |
||||
|
||||
package provide critcl::literals 1.4 |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Requirements. |
||||
|
||||
package require Tcl 8.6 ; # Min supported version. |
||||
package require critcl 3.1.11 ; # make, include -- dict portability |
||||
package require critcl::iassoc |
||||
|
||||
namespace eval ::critcl::literals {} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Implementation -- API: Embed C Code |
||||
|
||||
proc critcl::literals::def {name dict {use tcl}} { |
||||
# dict :: map (C symbolic name -> string) |
||||
Use $use |
||||
Header $name $dict |
||||
|
||||
C ConstStringTable $name $dict |
||||
C AccessorC $name |
||||
|
||||
Tcl Iassoc $name $dict |
||||
Tcl AccessorTcl $name |
||||
Tcl ResultType $name |
||||
|
||||
+List AccessorTcl+List $name |
||||
return |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Internals |
||||
|
||||
proc critcl::literals::Use {use} { |
||||
# Use cases: tcl, c, both, +list-mode |
||||
upvar 1 mode mode |
||||
set uses 0 |
||||
foreach u {c tcl +list} { set mode($u) 0 } |
||||
foreach u $use { set mode($u) 1 ; incr uses } |
||||
# +list-mode is an extension of tcl mode, thus implies it |
||||
if {$mode(+list)} { set mode(tcl) 1 } |
||||
if {$uses} return |
||||
return -code error "Need at least one use case (c, +list, or tcl)" |
||||
} |
||||
|
||||
proc critcl::literals::ConstStringTable {name dict} { |
||||
# C level table initialization (constant data) |
||||
dict for {sym string} $dict { |
||||
append ctable "\n\t\"${string}\"," |
||||
} |
||||
append ctable "\n\t0" |
||||
|
||||
lappend map @NAME@ $name |
||||
lappend map @STRINGS@ $ctable |
||||
critcl::ccode [critcl::at::here!][string map $map { |
||||
static const char* @NAME@_literal[] = { |
||||
@STRINGS@ |
||||
}; |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::literals::Iassoc {name dict} { |
||||
upvar 1 mode mode |
||||
lappend map @NAME@ $name |
||||
critcl::iassoc def ${name}_iassoc {} \n[critcl::at::here!][string map $map { |
||||
/* Array of the string literals, indexed by the symbolic names */ |
||||
Tcl_Obj* literal [@NAME@_name_LAST]; |
||||
}] [IassocInit $name $dict] [IassocFinal $dict] |
||||
return |
||||
} |
||||
|
||||
proc critcl::literals::IassocFinal {dict} { |
||||
# Finalization code for iassoc structures |
||||
dict for {sym string} $dict { |
||||
append final "\n[critcl::at::here!]\n\tTcl_DecrRefCount (data->literal \[$sym\]);" |
||||
} |
||||
return $final |
||||
} |
||||
|
||||
proc critcl::literals::IassocInit {name dict} { |
||||
# Initialization code for iassoc structures. |
||||
# Details dependent on if C is supported together with Tcl, or not. |
||||
upvar 1 mode mode |
||||
return [C IassocInitWithC $name $dict][!C IassocInitTcl $dict] |
||||
} |
||||
|
||||
proc critcl::literals::IassocInitWithC {name dict} { |
||||
dict for {sym string} $dict { |
||||
set map [list @SYM@ $sym @NAME@ $name] |
||||
append init \n[critcl::at::here!][string map $map { |
||||
data->literal [@SYM@] = Tcl_NewStringObj (@NAME@_literal[@SYM@], -1); |
||||
Tcl_IncrRefCount (data->literal [@SYM@]); |
||||
}] |
||||
} |
||||
return $init |
||||
} |
||||
|
||||
proc critcl::literals::IassocInitTcl {dict} { |
||||
dict for {sym string} $dict { |
||||
set map [list @SYM@ $sym @STR@ $string] |
||||
append init \n[critcl::at::here!][string map $map { |
||||
data->literal [@SYM@] = Tcl_NewStringObj ("@STR@", -1); |
||||
Tcl_IncrRefCount (data->literal [@SYM@]); |
||||
}] |
||||
} |
||||
return $init |
||||
} |
||||
|
||||
proc critcl::literals::Header {name dict} { |
||||
# I. Generate a header file for inclusion by other parts of the |
||||
# package, i.e. csources. Include the header here as well, for |
||||
# the following blocks of code. |
||||
# |
||||
# Declarations of an enum of the symbolic names, plus the |
||||
# accessor function. |
||||
upvar 1 mode mode |
||||
append h [HeaderIntro $name $dict] |
||||
append h [Tcl HeaderTcl $name] |
||||
append h [+List HeaderTcl+List $name] |
||||
append h [C HeaderC $name] |
||||
append h [HeaderEnd $name] |
||||
critcl::include [critcl::make ${name}.h $h] |
||||
return |
||||
} |
||||
|
||||
proc critcl::literals::HeaderIntro {name dict} { |
||||
lappend map @NAME@ $name |
||||
lappend map @CODES@ [join [dict keys $dict] {, }] |
||||
return \n[critcl::at::here!][string map $map { |
||||
#ifndef @NAME@_LITERALS_HEADER |
||||
#define @NAME@_LITERALS_HEADER |
||||
|
||||
#include <tcl.h> |
||||
|
||||
/* Symbolic names for the literals */ |
||||
typedef enum @NAME@_names { |
||||
@CODES@ |
||||
, @NAME@_name_LAST |
||||
} @NAME@_names; |
||||
}] |
||||
} |
||||
|
||||
proc critcl::literals::HeaderEnd {name} { |
||||
lappend map @NAME@ $name |
||||
return [string map $map { |
||||
#endif /* @NAME@_LITERALS_HEADER */ |
||||
}] |
||||
} |
||||
|
||||
proc critcl::literals::HeaderTcl {name} { |
||||
lappend map @NAME@ $name |
||||
return \n[critcl::at::here!][string map $map { |
||||
/* Tcl Accessor function for the literals */ |
||||
extern Tcl_Obj* |
||||
@NAME@ (Tcl_Interp* interp, @NAME@_names literal); |
||||
}] |
||||
} |
||||
|
||||
proc critcl::literals::HeaderTcl+List {name} { |
||||
lappend map @NAME@ $name |
||||
return \n[critcl::at::here!][string map $map { |
||||
/* Tcl "+list" Accessor function for the literals */ |
||||
extern Tcl_Obj* |
||||
@NAME@_list (Tcl_Interp* interp, int c, @NAME@_names* literal); |
||||
}] |
||||
} |
||||
|
||||
proc critcl::literals::HeaderC {name} { |
||||
lappend map @NAME@ $name |
||||
return \n[critcl::at::here!][string map $map { |
||||
/* C Accessor function for the literals */ |
||||
extern const char* @NAME@_cstr (@NAME@_names literal); |
||||
}] |
||||
} |
||||
|
||||
proc critcl::literals::ResultType {name} { |
||||
lappend map @NAME@ $name |
||||
critcl::resulttype $name \n[critcl::at::here!][string map $map { |
||||
/* @NAME@ result is effectively 0-refcount */ |
||||
Tcl_SetObjResult (interp, @NAME@ (interp, rv)); |
||||
return TCL_OK; |
||||
}] int |
||||
} |
||||
|
||||
proc critcl::literals::AccessorTcl {name} { |
||||
lappend map @NAME@ $name |
||||
critcl::ccode [critcl::at::here!][string map $map { |
||||
Tcl_Obj* |
||||
@NAME@ (Tcl_Interp* interp, @NAME@_names literal) |
||||
{ |
||||
if ((literal < 0) || (literal >= @NAME@_name_LAST)) { |
||||
Tcl_Panic ("Bad @NAME@ literal index %d outside [0...%d]", |
||||
literal, @NAME@_name_LAST-1); |
||||
} |
||||
return @NAME@_iassoc (interp)->literal [literal]; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::literals::AccessorTcl+List {name} { |
||||
lappend map @NAME@ $name |
||||
critcl::ccode [critcl::at::here!][string map $map { |
||||
Tcl_Obj* |
||||
@NAME@_list (Tcl_Interp* interp, int c, @NAME@_names* literal) |
||||
{ |
||||
int k; |
||||
for (k=0; k < c; k++) { |
||||
if ((literal[k] < 0) || (literal[k] >= @NAME@_name_LAST)) { |
||||
Tcl_Panic ("Bad @NAME@ literal index %d outside [0...%d]", |
||||
literal[k], @NAME@_name_LAST-1); |
||||
} |
||||
} |
||||
|
||||
Tcl_Obj* result = Tcl_NewListObj (0, 0); |
||||
if (!result) return result; |
||||
|
||||
for (k=0; k < c; k++) { |
||||
if (TCL_OK == Tcl_ListObjAppendElement (interp, result, @NAME@_iassoc (interp)->literal [literal [k]])) |
||||
continue; |
||||
/* Failed to append, release and abort */ |
||||
Tcl_DecrRefCount (result); |
||||
return 0; |
||||
} |
||||
|
||||
return result; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::literals::AccessorC {name} { |
||||
upvar 1 mode mode |
||||
return [Tcl AccessorCWithTcl $name][!Tcl AccessorCRaw $name] |
||||
} |
||||
|
||||
proc critcl::literals::AccessorCWithTcl {name} { |
||||
# C accessor can use Tcl API |
||||
lappend map @NAME@ $name |
||||
critcl::ccode [critcl::at::here!][string map $map { |
||||
const char* |
||||
@NAME@_cstr (@NAME@_names literal) |
||||
{ |
||||
if ((literal < 0) || (literal >= @NAME@_name_LAST)) { |
||||
Tcl_Panic ("Bad @NAME@ literal"); |
||||
} |
||||
return @NAME@_literal [literal]; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::literals::AccessorCRaw {name} { |
||||
# C accessor has only basics |
||||
lappend map @NAME@ $name |
||||
critcl::ccode [critcl::at::here!][string map $map { |
||||
#include <assert.h> |
||||
const char* |
||||
@NAME@_cstr (@NAME@_names literal) |
||||
{ |
||||
assert ((0 <= literal) && (literal < @NAME@_name_LAST)); |
||||
return @NAME@_literal [literal]; |
||||
} |
||||
}] |
||||
return |
||||
} |
||||
|
||||
proc critcl::literals::C {args} { |
||||
upvar 1 mode mode |
||||
if {!$mode(c)} return |
||||
return [uplevel 1 $args] |
||||
} |
||||
|
||||
proc critcl::literals::!C {args} { |
||||
upvar 1 mode mode |
||||
if {$mode(c)} return |
||||
return [uplevel 1 $args] |
||||
} |
||||
|
||||
proc critcl::literals::Tcl {args} { |
||||
upvar 1 mode mode |
||||
if {!$mode(tcl)} return |
||||
return [uplevel 1 $args] |
||||
} |
||||
|
||||
proc critcl::literals::!Tcl {args} { |
||||
upvar 1 mode mode |
||||
if {$mode(tcl)} return |
||||
return [uplevel 1 $args] |
||||
} |
||||
|
||||
proc critcl::literals::+List {args} { |
||||
upvar 1 mode mode |
||||
if {!$mode(+list)} return |
||||
return [uplevel 1 $args] |
||||
} |
||||
|
||||
proc critcl::literals::!+List {args} { |
||||
upvar 1 mode mode |
||||
if {$mode(+list)} return |
||||
return [uplevel 1 $args] |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Export API |
||||
|
||||
namespace eval ::critcl::literals { |
||||
namespace export def |
||||
catch { namespace ensemble create } |
||||
} |
||||
|
||||
namespace eval ::critcl { |
||||
namespace export literals |
||||
catch { namespace ensemble create } |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Ready |
||||
return |
@ -1,2 +0,0 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.6]} {return} |
||||
package ifneeded critcl::literals 1.4 [list source [file join $dir literals.tcl]] |
@ -1,2 +0,0 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.6]} {return} |
||||
package ifneeded critcl::platform 1.1 [list source [file join $dir platform.tcl]] |
@ -1,404 +0,0 @@
|
||||
# -*- tcl -*- |
||||
# ### ### ### ######### ######### ######### |
||||
## Overview |
||||
|
||||
# Heuristics to assemble a platform identifier from publicly available |
||||
# information. The identifier describes the platform of the currently |
||||
# running tcl shell. This is a mixture of the runtime environment and |
||||
# of build-time properties of the executable itself. |
||||
# |
||||
# Examples: |
||||
# <1> A tcl shell executing on a x86_64 processor, but having a |
||||
# wordsize of 4 was compiled for the x86 environment, i.e. 32 |
||||
# bit, and loaded packages have to match that, and not the |
||||
# actual cpu. |
||||
# |
||||
# <2> The hp/solaris 32/64 bit builds of the core cannot be |
||||
# distinguished by looking at tcl_platform. As packages have to |
||||
# match the 32/64 information we have to look in more places. In |
||||
# this case we inspect the executable itself (magic numbers, |
||||
# i.e. fileutil::magic::filetype). |
||||
# |
||||
# The basic information used comes out of the 'os' and 'machine' |
||||
# entries of the 'tcl_platform' array. A number of general and |
||||
# os/machine specific transformation are applied to get a canonical |
||||
# result. |
||||
# |
||||
# General |
||||
# Only the first element of 'os' is used - we don't care whether we |
||||
# are on "Windows NT" or "Windows XP" or whatever. |
||||
# |
||||
# Machine specific |
||||
# % arm* -> arm |
||||
# % sun4* -> sparc |
||||
# % intel -> ix86 |
||||
# % i*86* -> ix86 |
||||
# % Power* -> powerpc |
||||
# % x86_64 + wordSize 4 => x86 code |
||||
# |
||||
# OS specific |
||||
# % AIX are always powerpc machines |
||||
# % HP-UX 9000/800 etc means parisc |
||||
# % linux has to take glibc version into account |
||||
# % sunos -> solaris, and keep version number |
||||
# |
||||
# NOTE: A platform like linux glibc 2.3, which can use glibc 2.2 stuff |
||||
# has to provide all possible allowed platform identifiers when |
||||
# searching search. Ditto a solaris 2.8 platform can use solaris 2.6 |
||||
# packages. Etc. This is handled by the other procedure, see below. |
||||
|
||||
package require Tcl 8.6 |
||||
|
||||
# ### ### ### ######### ######### ######### |
||||
## Requirements |
||||
|
||||
namespace eval ::platform {} |
||||
|
||||
# ### ### ### ######### ######### ######### |
||||
## Implementation |
||||
|
||||
# -- platform::generic |
||||
# |
||||
# Assembles an identifier for the generic platform. It leaves out |
||||
# details like kernel version, libc version, etc. |
||||
|
||||
proc ::platform::generic {} { |
||||
global tcl_platform |
||||
|
||||
set plat [string tolower [lindex $tcl_platform(os) 0]] |
||||
set cpu $tcl_platform(machine) |
||||
|
||||
switch -glob -- $cpu { |
||||
sun4* { |
||||
set cpu sparc |
||||
} |
||||
intel - |
||||
i*86* { |
||||
set cpu ix86 |
||||
} |
||||
x86_64 { |
||||
if {$tcl_platform(wordSize) == 4} { |
||||
# See Example <1> at the top of this file. |
||||
set cpu ix86 |
||||
} |
||||
} |
||||
"Power*" { |
||||
set cpu powerpc |
||||
} |
||||
"arm*" { |
||||
set cpu arm |
||||
} |
||||
ia64 { |
||||
if {$tcl_platform(wordSize) == 4} { |
||||
append cpu _32 |
||||
} |
||||
} |
||||
} |
||||
|
||||
switch -glob -- $plat { |
||||
cygwin* { |
||||
set plat cygwin |
||||
} |
||||
windows { |
||||
if {$tcl_platform(platform) == "unix"} { |
||||
set plat cygwin |
||||
} else { |
||||
set plat win32 |
||||
} |
||||
if {$cpu eq "amd64"} { |
||||
# Do not check wordSize, win32-x64 is an IL32P64 platform. |
||||
set cpu x86_64 |
||||
} |
||||
} |
||||
sunos { |
||||
set plat solaris |
||||
if {[string match "ix86" $cpu]} { |
||||
if {$tcl_platform(wordSize) == 8} { |
||||
set cpu x86_64 |
||||
} |
||||
} elseif {![string match "ia64*" $cpu]} { |
||||
# sparc |
||||
if {$tcl_platform(wordSize) == 8} { |
||||
append cpu 64 |
||||
} |
||||
} |
||||
} |
||||
darwin { |
||||
set plat macosx |
||||
# Correctly identify the cpu when running as a 64bit |
||||
# process on a machine with a 32bit kernel |
||||
if {$cpu eq "ix86"} { |
||||
if {$tcl_platform(wordSize) == 8} { |
||||
set cpu x86_64 |
||||
} |
||||
} |
||||
} |
||||
aix { |
||||
set cpu powerpc |
||||
if {$tcl_platform(wordSize) == 8} { |
||||
append cpu 64 |
||||
} |
||||
} |
||||
hp-ux { |
||||
set plat hpux |
||||
if {![string match "ia64*" $cpu]} { |
||||
set cpu parisc |
||||
if {$tcl_platform(wordSize) == 8} { |
||||
append cpu 64 |
||||
} |
||||
} |
||||
} |
||||
osf1 { |
||||
set plat tru64 |
||||
} |
||||
} |
||||
|
||||
return "${plat}-${cpu}" |
||||
} |
||||
|
||||
# -- platform::identify |
||||
# |
||||
# Assembles an identifier for the exact platform, by extending the |
||||
# generic identifier. I.e. it adds in details like kernel version, |
||||
# libc version, etc., if they are relevant for the loading of |
||||
# packages on the platform. |
||||
|
||||
proc ::platform::identify {} { |
||||
global tcl_platform |
||||
|
||||
set id [generic] |
||||
regexp {^([^-]+)-([^-]+)$} $id -> plat cpu |
||||
|
||||
switch -- $plat { |
||||
freebsd { |
||||
set abi [lindex [split $tcl_platform(osVersion) .] 0] |
||||
append plat $abi |
||||
return "${plat}-${cpu}" |
||||
} |
||||
solaris { |
||||
regsub {^5} $tcl_platform(osVersion) 2 text |
||||
append plat $text |
||||
return "${plat}-${cpu}" |
||||
} |
||||
macosx { |
||||
set major [lindex [split $tcl_platform(osVersion) .] 0] |
||||
if {$major > 8} { |
||||
incr major -4 |
||||
append plat 10.$major |
||||
return "${plat}-${cpu}" |
||||
} |
||||
} |
||||
linux { |
||||
# Look for the libc*.so and determine its version |
||||
# (libc5/6, libc6 further glibc 2.X) |
||||
|
||||
set v unknown |
||||
|
||||
# Determine in which directory to look. /lib, or /lib64. |
||||
# For that we use the tcl_platform(wordSize). |
||||
# |
||||
# We could use the 'cpu' info, per the equivalence below, |
||||
# that however would be restricted to intel. And this may |
||||
# be a arm, mips, etc. system. The wordsize is more |
||||
# fundamental. |
||||
# |
||||
# ix86 <=> (wordSize == 4) <=> 32 bit ==> /lib |
||||
# x86_64 <=> (wordSize == 8) <=> 64 bit ==> /lib64 |
||||
# |
||||
# Do not look into /lib64 even if present, if the cpu |
||||
# doesn't fit. |
||||
|
||||
# TODO: Determine the prefixes (i386, x86_64, ...) for |
||||
# other cpus. The path after the generic one is utterly |
||||
# specific to intel right now. Ok, on Ubuntu, possibly |
||||
# other Debian systems we may apparently be able to query |
||||
# the necessary CPU code. If we can't we simply use the |
||||
# hardwired fallback. |
||||
|
||||
switch -exact -- $tcl_platform(wordSize) { |
||||
4 { |
||||
lappend bases /lib |
||||
if {[catch { |
||||
exec dpkg-architecture -qDEB_HOST_MULTIARCH |
||||
} res]} { |
||||
lappend bases /lib/i386-linux-gnu |
||||
} else { |
||||
# dpkg-arch returns the full tripled, not just cpu. |
||||
lappend bases /lib/$res |
||||
} |
||||
} |
||||
8 { |
||||
lappend bases /lib64 |
||||
if {[catch { |
||||
exec dpkg-architecture -qDEB_HOST_MULTIARCH |
||||
} res]} { |
||||
lappend bases /lib/x86_64-linux-gnu |
||||
} else { |
||||
# dpkg-arch returns the full tripled, not just cpu. |
||||
lappend bases /lib/$res |
||||
} |
||||
} |
||||
default { |
||||
return -code error "Bad wordSize $tcl_platform(wordSize), expected 4 or 8" |
||||
} |
||||
} |
||||
|
||||
foreach base $bases { |
||||
if {[LibcVersion $base -> v]} break |
||||
} |
||||
|
||||
append plat -$v |
||||
return "${plat}-${cpu}" |
||||
} |
||||
} |
||||
|
||||
return $id |
||||
} |
||||
|
||||
proc ::platform::LibcVersion {base _->_ vv} { |
||||
upvar 1 $vv v |
||||
set libclist [lsort [glob -nocomplain -directory $base libc*]] |
||||
|
||||
if {![llength $libclist]} { return 0 } |
||||
|
||||
set libc [lindex $libclist 0] |
||||
|
||||
# Try executing the library first. This should suceed |
||||
# for a glibc library, and return the version |
||||
# information. |
||||
|
||||
if {![catch { |
||||
set vdata [lindex [split [exec $libc] \n] 0] |
||||
}]} { |
||||
regexp {version ([0-9]+(\.[0-9]+)*)} $vdata -> v |
||||
foreach {major minor} [split $v .] break |
||||
set v glibc${major}.${minor} |
||||
return 1 |
||||
} else { |
||||
# We had trouble executing the library. We are now |
||||
# inspecting its name to determine the version |
||||
# number. This code by Larry McVoy. |
||||
|
||||
if {[regexp -- {libc-([0-9]+)\.([0-9]+)} $libc -> major minor]} { |
||||
set v glibc${major}.${minor} |
||||
return 1 |
||||
} |
||||
} |
||||
return 0 |
||||
} |
||||
|
||||
# -- platform::patterns |
||||
# |
||||
# Given an exact platform identifier, i.e. _not_ the generic |
||||
# identifier it assembles a list of exact platform identifier |
||||
# describing platform which should be compatible with the |
||||
# input. |
||||
# |
||||
# I.e. packages for all platforms in the result list should be |
||||
# loadable on the specified platform. |
||||
|
||||
# << Should we add the generic identifier to the list as well ? In |
||||
# general it is not compatible I believe. So better not. In many |
||||
# cases the exact identifier is identical to the generic one |
||||
# anyway. |
||||
# >> |
||||
|
||||
proc ::platform::patterns {id} { |
||||
set res [list $id] |
||||
if {$id eq "tcl"} {return $res} |
||||
|
||||
switch -glob -- $id { |
||||
solaris*-* { |
||||
if {[regexp {solaris([^-]*)-(.*)} $id -> v cpu]} { |
||||
if {$v eq ""} {return $id} |
||||
foreach {major minor} [split $v .] break |
||||
incr minor -1 |
||||
for {set j $minor} {$j >= 6} {incr j -1} { |
||||
lappend res solaris${major}.${j}-${cpu} |
||||
} |
||||
} |
||||
} |
||||
linux*-* { |
||||
if {[regexp {linux-glibc([^-]*)-(.*)} $id -> v cpu]} { |
||||
foreach {major minor} [split $v .] break |
||||
incr minor -1 |
||||
for {set j $minor} {$j >= 0} {incr j -1} { |
||||
lappend res linux-glibc${major}.${j}-${cpu} |
||||
} |
||||
} |
||||
} |
||||
macosx-powerpc { |
||||
lappend res macosx-universal |
||||
} |
||||
macosx-x86_64 { |
||||
lappend res macosx-i386-x86_64 |
||||
} |
||||
macosx-ix86 { |
||||
lappend res macosx-universal macosx-i386-x86_64 |
||||
} |
||||
macosx*-* { |
||||
# 10.5+ |
||||
if {[regexp {macosx([^-]*)-(.*)} $id -> v cpu]} { |
||||
|
||||
switch -exact -- $cpu { |
||||
ix86 { |
||||
lappend alt i386-x86_64 |
||||
lappend alt universal |
||||
} |
||||
x86_64 { lappend alt i386-x86_64 } |
||||
default { set alt {} } |
||||
} |
||||
|
||||
if {$v ne ""} { |
||||
foreach {major minor} [split $v .] break |
||||
|
||||
# Add 10.5 to 10.minor to patterns. |
||||
set res {} |
||||
for {set j $minor} {$j >= 5} {incr j -1} { |
||||
lappend res macosx${major}.${j}-${cpu} |
||||
foreach a $alt { |
||||
lappend res macosx${major}.${j}-$a |
||||
} |
||||
} |
||||
|
||||
# Add unversioned patterns for 10.3/10.4 builds. |
||||
lappend res macosx-${cpu} |
||||
foreach a $alt { |
||||
lappend res macosx-$a |
||||
} |
||||
} else { |
||||
# No version, just do unversioned patterns. |
||||
foreach a $alt { |
||||
lappend res macosx-$a |
||||
} |
||||
} |
||||
} else { |
||||
# no v, no cpu ... nothing |
||||
} |
||||
} |
||||
} |
||||
lappend res tcl ; # Pure tcl packages are always compatible. |
||||
return $res |
||||
} |
||||
|
||||
|
||||
# ### ### ### ######### ######### ######### |
||||
## Ready |
||||
|
||||
package provide critcl::platform 1.1 |
||||
|
||||
# ### ### ### ######### ######### ######### |
||||
## Demo application |
||||
|
||||
if {[info exists argv0] && ($argv0 eq [info script])} { |
||||
puts ==================================== |
||||
parray tcl_platform |
||||
puts ==================================== |
||||
puts Generic\ identification:\ [::platform::generic] |
||||
puts Exact\ identification:\ \ \ [::platform::identify] |
||||
puts ==================================== |
||||
puts Search\ patterns: |
||||
puts *\ [join [::platform::patterns [::platform::identify]] \n*\ ] |
||||
puts ==================================== |
||||
exit 0 |
||||
} |
@ -1,2 +0,0 @@
|
||||
if {![package vsatisfies [package provide Tcl] 8.6]} {return} |
||||
package ifneeded critcl::util 1.2 [list source [file join $dir util.tcl]] |
@ -1,149 +0,0 @@
|
||||
## -*- tcl -*- |
||||
# # ## ### ##### ######## ############# ##################### |
||||
# Pragmas for MetaData Scanner. |
||||
# n/a |
||||
|
||||
# CriTcl Utility Commands. |
||||
|
||||
package provide critcl::util 1.2 |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Requirements. |
||||
|
||||
package require Tcl 8.6 ; # Min supported version. |
||||
package require critcl 3.2 |
||||
|
||||
namespace eval ::critcl::util {} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Implementation -- API: Embed C Code |
||||
|
||||
proc ::critcl::util::locate {label paths {cmd {}}} { |
||||
# Locate a file across set of paths. |
||||
# Relative paths are to "::critcl::Here". |
||||
# Paths are run through subst for dynamic construction. |
||||
# A command prefix can be specified, to further check/process each found path. |
||||
# Result is the found path, as coming from the paths argument. |
||||
# Should go into cheader or similar command. |
||||
# Failure to find is reported via critcl::error |
||||
|
||||
foreach path $paths { |
||||
if {[file pathtype $path] eq "relative"} { |
||||
set fullpath [file normalize [file join [critcl::Here] $path]] |
||||
} else { |
||||
set fullpath $path |
||||
} |
||||
if {![file exists $fullpath]} continue |
||||
if {[llength $cmd] && ![uplevel 1 [linsert $cmd end $fullpath]]} continue |
||||
critcl::msg "${label}: $path" |
||||
return $path |
||||
} |
||||
critcl::error "${label}: not found, searched [linsert [join $paths {, }] end-1 and]" |
||||
return |
||||
} |
||||
|
||||
proc ::critcl::util::checkfun {name {label {}}} { |
||||
variable cftemplate |
||||
if {$label eq {}} { set label "Checking for function '$name'" } |
||||
return [critcl::checklink $label [string map [list @@@ $name] $cftemplate]] |
||||
} |
||||
|
||||
proc ::critcl::util::def {configfile define {value 1}} { |
||||
set result [file join [critcl::cache] [file tail $configfile]] |
||||
|
||||
Put $result "[Get $result]\n\#define $define $value\n" |
||||
return |
||||
} |
||||
|
||||
proc ::critcl::util::undef {configfile define} { |
||||
set result [file join [critcl::cache] [file tail $configfile]] |
||||
|
||||
Put $result "[Get $result]\n\#undef $define\n" |
||||
return |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
|
||||
proc ::critcl::util::Get {path} { |
||||
if {[catch { |
||||
set c [open $path r] |
||||
set d [read $c] |
||||
close $c |
||||
}]} { |
||||
set d {} |
||||
} |
||||
return $d |
||||
} |
||||
|
||||
proc ::critcl::util::Put {path data} { |
||||
# Write changes back, via temp file. Commit via atomic rename. |
||||
set c [open $path.[pid] w] |
||||
puts -nonewline $c $data |
||||
close $c |
||||
file rename -force $path.[pid] $path |
||||
return |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## State |
||||
|
||||
namespace eval ::critcl::util { |
||||
variable cftemplate { |
||||
/* The header <limits.h> may declare @@@. To avoid a clash |
||||
* redefine it to something aside. As an example, gettimeofday() |
||||
* is declared in the <limits.h> provided by HP-UX 11i. Regardless, |
||||
* we pull in a system header defining the __stub macros, and a |
||||
* few prototypes only possibly in conflict with @@@, we hope. |
||||
* As <limits.h> exists even on free-standing compilers its use |
||||
* is preferred when __STDC__ is active. |
||||
*/ |
||||
|
||||
#define @@@ innocuous_@@@ |
||||
#ifdef __STDC__ |
||||
# include <limits.h> |
||||
#else |
||||
# include <assert.h> |
||||
#endif |
||||
#undef @@@ |
||||
|
||||
/* Next up a declaration to override whatever internal prototype |
||||
* was declared by GCC, to prevent an error. As the return type |
||||
* 'int' might match such a GCC builtin, and thus causing the application |
||||
* of the argument prototype despite this we use 'char' instead. |
||||
*/ |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" |
||||
#endif |
||||
char @@@ (); |
||||
|
||||
/* Lastly the GNU libc defines a few special names for its functions, |
||||
* these will always fail with ENONSYS. Further, some functions |
||||
* actually start with __, with the normal name (we are looking for) |
||||
* an alias of it. Regardless, for these we bail. |
||||
*/ |
||||
|
||||
#if defined __stub_@@@ || defined __stub___@@@ |
||||
choke me |
||||
#endif |
||||
|
||||
int main () |
||||
{ |
||||
return @@@ (); |
||||
; |
||||
return 0; |
||||
} |
||||
} |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Export API |
||||
|
||||
namespace eval ::critcl::util { |
||||
namespace export checkfun def undef locate |
||||
catch { namespace ensemble create } |
||||
} |
||||
|
||||
# # ## ### ##### ######## ############# ##################### |
||||
## Ready |
||||
return |
@ -1,537 +0,0 @@
|
||||
# -*- tcl -*- Critcl configuration file |
||||
|
||||
# some defaults - you can override these in the platform specific section |
||||
# but shouldn't need to for typical *nix toolchains using gcc |
||||
# |
||||
# platform sets the platform (defaults to platform::generic) |
||||
# target indicates that this is a cross-compile target, the value is the actual platform code. |
||||
# compile compile a C source file to an object file |
||||
# version print the compiler version number |
||||
# ldout See below |
||||
# link Command to link one or more object files and create a shared library |
||||
# embed_manifest Command to embed a manifest into a DLL. (Win-specific) |
||||
# link_debug See below |
||||
# link_preload Linker flags to use when dependent libraries are pre-loaded. |
||||
# link_release See below |
||||
# preproc_define preprocess C source file (for critcl::cdefines) |
||||
# preproc_enum ditto |
||||
# tclstubs cflag to set USE_TCL_STUBS |
||||
# tkstubs cflag to set USE_TK_STUBS |
||||
# debug_memory cflag to enable memory debugging |
||||
# debug_symbols cflag to add symbols to resulting library |
||||
# object file extension for object files |
||||
# output flags to set output file |
||||
# strip cflag to tell linker to strip symbols |
||||
# optimize cflag to specify optimization level |
||||
# include cflag to add an include directory |
||||
# noassert cflag to turn off assertions in Tcl code |
||||
# threadflags cflags to enable threaded build |
||||
# sharedlibext the platform's file extension for shared libraries |
||||
# |
||||
# (Support for Fortran) |
||||
# fcompile compile a Fortran source file to an object file |
||||
# fversion print the Fortran compiler version number |
||||
# flink link one or more object files and create a shared library, |
||||
# if at least one object file comes from Fortran |
||||
# foutput Fortran flag(s) to set output file |
||||
# finclude Fortran flag to add an include directory |
||||
# fextra_cflags Extra C flags for indicating type of Fortran compiler |
||||
# |
||||
# Any other config options are assumed to refer to Tcl variables and |
||||
# these are set when building so they can be used in the Critcl script. |
||||
# Typically this is used when defining cross-compile environments to set |
||||
# various tcl_platform() values. |
||||
# |
||||
# You can also set Tcl variables to use in "when" options (see the MacOSX |
||||
# section for an example - "set universal ..."). These commands and the |
||||
# "when" commands are run in a separate interpreter. |
||||
# |
||||
# You can also base a build configuration on an existing one by using |
||||
# the "copy" option and then specifically setting the config bits that |
||||
# you want to change. See win32-x86_64-cl for an example. |
||||
|
||||
compile gcc -c -fPIC |
||||
version gcc -v |
||||
link gcc -shared |
||||
include -I |
||||
libinclude -L |
||||
preproc_define gcc -E -dM |
||||
preproc_enum gcc -E |
||||
tclstubs -DUSE_TCL_STUBS |
||||
tkstubs -DUSE_TK_STUBS |
||||
debug_memory -DTCL_MEM_DEBUG |
||||
debug_symbols -g |
||||
object .o |
||||
output -o [list $outfile] |
||||
embed_manifest |
||||
ldoutput |
||||
link_debug |
||||
link_release |
||||
link_preload --unresolved-symbols=ignore-in-shared-libs |
||||
link_rpath -Wl,-rpath,@ |
||||
strip -Wl,-s |
||||
optimize -O2 |
||||
noassert -DNDEBUG |
||||
threadflags -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 \ |
||||
-DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_READDIR_R=1 \ |
||||
-DTCL_THREADS=1 |
||||
|
||||
# platform specific stuff follows |
||||
|
||||
# OSX - check if universal binaries supported by the installed toolchain |
||||
|
||||
if {[string match macosx-* $platform]} { |
||||
if {[info exists ::env(SDKROOT)] && $::env(SDKROOT) ne ""} { |
||||
set SDKROOT $::env(SDKROOT) |
||||
} else { |
||||
# look for an SDK supporting universal binaries |
||||
set pos [string length MacOSX] |
||||
set sdklist {} |
||||
set base /Developer |
||||
catch {set base [exec xcode-select -print-path]} |
||||
foreach dir [glob -nocomplain -tails \ |
||||
-directory $base/SDKs MacOSX*] { |
||||
set ver [string trimright \ |
||||
[file rootname [string range $dir $pos end]] u] |
||||
if {"$ver" != "" && [package vcompare $ver 10.4] >= 0} { |
||||
# 10.4 is earliest supporting universal that we support |
||||
set path($ver) $dir |
||||
lappend sdklist $ver |
||||
} |
||||
} |
||||
if {[llength $sdklist]} { |
||||
set ver [lindex [lsort -command "package vcompare" $sdklist] 0] |
||||
set SDKROOT $base/SDKs/$path($ver) |
||||
} else { |
||||
set SDKROOT "" |
||||
} |
||||
} |
||||
if {$SDKROOT ne ""} { |
||||
# get the SDKsettings for the min OSX value supported |
||||
set info "" |
||||
if [catch { |
||||
set info [exec defaults read $SDKROOT/SDKSettings buildSettings] |
||||
}] { |
||||
catch { |
||||
set info [exec defaults read $SDKROOT/SDKSettings DefaultProperties \ |
||||
-dict MACOSX_DEPLOYMENT_TARGET] |
||||
} |
||||
} |
||||
if {$info eq ""} { |
||||
puts stderr "SDKROOT isn't configured correctly on this host" |
||||
puts stderr "current setting $SDKROOT needs updating" |
||||
exit 1 |
||||
} |
||||
set info [string trim $info] |
||||
regsub -all {[\n"\;=\{\}]+} $info "" info ;#" help emacs hilighting |
||||
regsub -all {\s+} $info " " info |
||||
set osxmin [lindex $info 1] |
||||
} else { |
||||
# use the current platform |
||||
foreach {v1 v2 v3} [split $::tcl_platform(osVersion) .] break |
||||
incr v1 -4 |
||||
set osxmin 10.$v1.$v2 |
||||
# do we actually need to check if universal is supported, given the |
||||
# gcc check below will do it for us? |
||||
# set info [exec lipo -info /usr/lib/libSystem.dylib] |
||||
# set plats [split [string trim [lindex [split $info :] 2]]] |
||||
} |
||||
if {[info exists ::env(osxmin)] && $::env(osxmin) ne ""} { |
||||
set osxmin $::env(osxmin) |
||||
} |
||||
set universal 0 |
||||
catch { |
||||
set ppc [expr {[exec gcc -v -arch ppc > /dev/null 2>@stdout] eq ""}] |
||||
set ppc64 [expr {[exec gcc -v -arch ppc64 > /dev/null 2>@stdout] eq ""}] |
||||
set i386 [expr {[exec gcc -v -arch i386 > /dev/null 2>@stdout] eq ""}] |
||||
set x86_64 [expr {[exec gcc -v -arch x86_64 > /dev/null 2>@stdout] eq ""}] |
||||
} |
||||
} |
||||
|
||||
# Note: The result of 'platform::generic' is used to restrict which of |
||||
# the following blocks will be considered. |
||||
|
||||
# Note 2: The platform declarations are required to set up a proper |
||||
# mapping in pkgIndex.tcl of a -pkg. |
||||
|
||||
# default on OSX ppc is universal containing ppc and x86 32 bit |
||||
macosx-powerpc when $ppc |
||||
macosx-powerpc compile gcc -c -arch ppc \ |
||||
-isysroot $SDKROOT \ |
||||
-mmacosx-version-min=$osxmin |
||||
macosx-powerpc link gcc -bundle -arch ppc \ |
||||
-isysroot $SDKROOT \ |
||||
-mmacosx-version-min=$osxmin |
||||
macosx-powerpc link_preload -undefined dynamic_lookup -mmacosx-version-min=10.3 |
||||
macosx-powerpc strip |
||||
|
||||
# default on OSX intel is universal containing x86 32 and 64 bit |
||||
macosx-ix86 when $i386 && $x86_64 |
||||
macosx-ix86 compile gcc -c -arch i386 -arch x86_64 \ |
||||
-isysroot $SDKROOT \ |
||||
-mmacosx-version-min=$osxmin |
||||
macosx-ix86 link gcc -bundle -arch i386 -arch x86_64 \ |
||||
-isysroot $SDKROOT \ |
||||
-mmacosx-version-min=$osxmin |
||||
macosx-ix86 link_preload -undefined dynamic_lookup -mmacosx-version-min=10.3 |
||||
macosx-ix86 strip |
||||
macosx-ix86 platform macosx-ix86 $osxmin \ |
||||
macosx-ix86 \ |
||||
macosx-x86_64 |
||||
|
||||
# target for most common architectures |
||||
macosx-most when $ppc && $i386 && $x86_64 |
||||
macosx-most compile gcc -c -arch i386 -arch x86_64 -arch ppc \ |
||||
-isysroot $SDKROOT \ |
||||
-mmacosx-version-min=$osxmin |
||||
macosx-most link gcc -bundle -arch i386 -arch x86_64 -arch ppc \ |
||||
-isysroot $SDKROOT \ |
||||
-mmacosx-version-min=$osxmin |
||||
macosx-most link_preload -undefined dynamic_lookup -mmacosx-version-min=10.3 |
||||
macosx-most strip |
||||
macosx-most platform macosx-most $osxmin \ |
||||
macosx-powerpc \ |
||||
macosx-ix86 \ |
||||
macosx-x86_64 |
||||
|
||||
# target for old universal, ppc and x86 32. |
||||
macosx-universal when $ppc && $i386 |
||||
macosx-universal compile gcc -c -arch i386 -arch ppc \ |
||||
-isysroot $SDKROOT \ |
||||
-mmacosx-version-min=$osxmin |
||||
macosx-universal link gcc -bundle -arch i386 -arch ppc \ |
||||
-isysroot $SDKROOT \ |
||||
-mmacosx-version-min=$osxmin |
||||
macosx-universal link_preload -undefined dynamic_lookup -mmacosx-version-min=10.3 |
||||
macosx-universal strip |
||||
macosx-universal platform macosx-universal $osxmin \ |
||||
macosx-powerpc \ |
||||
macosx-ix86 |
||||
|
||||
# target for all architectures |
||||
macosx-all when $ppc && $ppc64 && $i386 && $x86_64 |
||||
macosx-all compile gcc -c -arch i386 -arch x86_64 -arch ppc -arch ppc64 \ |
||||
-isysroot $SDKROOT \ |
||||
-mmacosx-version-min=$osxmin |
||||
macosx-all link gcc -bundle -arch i386 -arch x86_64 -arch ppc -arch ppc64 \ |
||||
-isysroot $SDKROOT \ |
||||
-mmacosx-version-min=$osxmin |
||||
macosx-all link_preload -undefined dynamic_lookup -mmacosx-version-min=10.3 |
||||
macosx-all strip |
||||
macosx-all platform macosx-all $osxmin \ |
||||
macosx-powerpc \ |
||||
macosx-powerpc64 \ |
||||
macosx-ix86 \ |
||||
macosx-x86_64 |
||||
|
||||
# OSX ppc 32 bit |
||||
macosx-ppc32 when $ppc |
||||
macosx-ppc32 compile gcc -c -arch ppc |
||||
macosx-ppc32 link gcc -bundle -arch ppc |
||||
macosx-ppc32 link_preload -undefined dynamic_lookup |
||||
macosx-ppc32 strip |
||||
macosx-ppc32 platform macosx-powerpc |
||||
|
||||
# OSX ppc 64 bit |
||||
macosx-ppc64 when $ppc64 |
||||
macosx-ppc64 compile gcc -c -arch ppc64 |
||||
macosx-ppc64 link gcc -bundle -arch ppc64 |
||||
macosx-ppc64 link_preload -undefined dynamic_lookup |
||||
macosx-ppc64 strip |
||||
macosx-ppc64 platform macosx-powerpc64 |
||||
|
||||
# OSX x86 32 bit |
||||
macosx-x86_32 when $i386 |
||||
macosx-x86_32 compile gcc -c -arch i386 |
||||
macosx-x86_32 link gcc -bundle -arch i386 |
||||
macosx-x86_32 link_preload -undefined dynamic_lookup |
||||
macosx-x86_32 strip |
||||
macosx-x86_32 platform macosx-ix86 |
||||
|
||||
# OSX x86 64 bit |
||||
macosx-x86_64 when $x86_64 |
||||
macosx-x86_64 compile gcc -c -arch x86_64 |
||||
macosx-x86_64 link gcc -bundle -arch x86_64 |
||||
macosx-x86_64 link_preload -undefined dynamic_lookup |
||||
macosx-x86_64 strip |
||||
macosx-x86_64 platform macosx-x86_64 |
||||
|
||||
# Linux - 32 bit or 64 bit build - select using "-target" if you don't |
||||
# want the platform default (32 on 32, 64 on 64). This requires |
||||
# some work to detect the cpu class in use and then set a platform |
||||
# with the proper variant name. |
||||
|
||||
if {[string match linux-* $platform]} { |
||||
# platform = os-cpu(-compiler) |
||||
set cpu [lindex [split $platform -] 1] |
||||
|
||||
switch -- $cpu { |
||||
x86_64 - ix86 { |
||||
set cpu32 ix86 |
||||
set cpu64 x86_64 |
||||
} |
||||
* { |
||||
#error "Unknown architecture" |
||||
set cpu32 unknown32fixme_$cpu |
||||
set cpu64 unknown64fixme_$cpu |
||||
} |
||||
} |
||||
} |
||||
|
||||
linux-32-* compile gcc -c -m32 |
||||
linux-32-* link gcc -shared -m32 |
||||
linux-32-* platform linux-$cpu32 |
||||
|
||||
linux-64-* compile gcc -c -m64 |
||||
linux-64-* link gcc -shared -m64 |
||||
linux-64-* platform linux-$cpu64 |
||||
|
||||
# Windows - Check if bufferoverflowU.lib is required, or not. We |
||||
# assume that "requiredness" coincides with "presence". IOW, if the |
||||
# library is present in the LIB search paths, then it is required. |
||||
# This should be ok, for linking to it when it is present but not |
||||
# required, should do no harm. |
||||
|
||||
set msvc 0 |
||||
if {[string match win32-* $platform]} { |
||||
set cl [file nativename [lindex [auto_execok cl] 0]] |
||||
if {$cl ne ""} { |
||||
set msvc 1 |
||||
|
||||
set msvcbufferoverflowlib "" |
||||
foreach p [split $::env(LIB) \;] { |
||||
if {[llength [glob -nocomplain -directory $p bufferoverflowu.lib]]} { |
||||
set msvcbufferoverflowlib bufferoverflowU.lib |
||||
break |
||||
} |
||||
} |
||||
|
||||
set tmpfile $::env(TMP)/[pid].txt |
||||
catch { exec $cl 2> $tmpfile > NUL: } msg |
||||
#puts "M $msg" |
||||
set chan [open $tmpfile r] |
||||
set output [read $chan] |
||||
#puts "O $output" |
||||
close $chan |
||||
file delete $tmpfile |
||||
|
||||
regexp {Version ([0-9.]*)} $output -> msvcversion |
||||
#puts V=$msvcversion |
||||
if {[package vcompare $msvcversion 15.00.30729.01] >= 0} { |
||||
# VC9 or higher. -debug:full is not supported anymore. |
||||
# VC9 - warning, VC10 - error |
||||
set msvclinkdebug -debug |
||||
# Enable local stack checks for buffer overflow |
||||
set msvcstackchecks -GS |
||||
# -GZ deprecated in favor of -RTC1 |
||||
set msvcdebugchecks -RTC1 |
||||
set msvclinkglobaloptimize -ltcg |
||||
} else { |
||||
set msvclinkdebug -debug:full |
||||
set msvcdebugchecks -GZ |
||||
set msvcstackchecks "" |
||||
set msvclinkglobaloptimize "" |
||||
} |
||||
|
||||
if {[package vcompare $msvcversion 14] >= 0} { |
||||
# -Op not supported or needed. Use -fp instead to match Tcl |
||||
set msvcfpopt -fp:strict |
||||
set msvclinkworkingset "" |
||||
} else { |
||||
# -Op -> floating point consistency |
||||
set msvcfpopt -Op |
||||
# Working set optimization |
||||
set msvclinkworkingset -ws:aggressive |
||||
} |
||||
} |
||||
} |
||||
|
||||
# Windows - using 32-bit MS VC++ |
||||
# |
||||
# Note: the language option for cl is -TC for c and -TP for c++ or |
||||
# it can treat single files -Tc<filename> |
||||
# |
||||
win32-ix86-cl when $msvc |
||||
win32-ix86-cl compile cl -nologo -c |
||||
win32-ix86-cl link link -nologo |
||||
win32-ix86-cl embed_manifest mt -manifest [list $outfile].manifest -outputresource:[list $outfile]\;2 |
||||
win32-ix86-cl preproc_define cl -nologo -E |
||||
win32-ix86-cl preproc_enum cl -nologo -E |
||||
win32-ix86-cl libinclude /LIBPATH: |
||||
win32-ix86-cl object .obj |
||||
win32-ix86-cl debug_symbols -W3 -Od -Zi $msvcstackchecks $msvcdebugchecks -MDd -D_DEBUG $msvcfpopt |
||||
win32-ix86-cl optimize -W3 -O2 -MD $msvcstackchecks $msvcfpopt |
||||
win32-ix86-cl output [list -Fo$outfile] |
||||
win32-ix86-cl ldoutput -dll [list -out:$outfile] |
||||
win32-ix86-cl link_debug $msvclinkdebug -debugtype:cv -verbose:lib -nodefaultlib:libc |
||||
win32-ix86-cl link_release -release -opt:ref -opt:icf,3 $msvclinkworkingset -verbose:lib $msvclinkglobaloptimize |
||||
win32-ix86-cl link_preload |
||||
win32-ix86-cl link_rpath |
||||
win32-ix86-cl strip |
||||
win32-ix86-cl version cl |
||||
win32-ix86-cl platform win32-ix86 |
||||
|
||||
# Windows - using 64-bit MS VC++ |
||||
# |
||||
# Note: the language option for cl is -TC for c and -TP for c++ or |
||||
# it can treat single files -Tc<filename> |
||||
# |
||||
|
||||
win32-x86_64-cl when $msvc |
||||
win32-x86_64-cl copy win32-ix86-cl |
||||
win32-x86_64-cl link_debug $msvclinkdebug -debugtype:cv -verbose:lib $msvcbufferoverflowlib |
||||
win32-x86_64-cl link_release -release -opt:ref -opt:icf,3 $msvclinkworkingset -verbose:lib $msvclinkglobaloptimize $msvcbufferoverflowlib |
||||
win32-x86_64-cl platform win32-x86_64 |
||||
|
||||
# Cross-compile for Windows using Xmingwin |
||||
mingw32 target win32-ix86 |
||||
mingw32 compile gcc -c -nostdlib |
||||
mingw32 link gcc -shared |
||||
mingw32 link_preload |
||||
mingw32 sharedlibext .dll |
||||
mingw32 tcl_platform(byteOrder) littleEndian |
||||
mingw32 tcl_platform(machine) intel |
||||
mingw32 tcl_platform(os) Windows NT |
||||
mingw32 tcl_platform(osVersion) 5.0 |
||||
mingw32 tcl_platform(platform) windows |
||||
mingw32 tcl_platform(wordSize) 4 |
||||
|
||||
# Cross-compile for ARM (n770/Zaurus/etc) using Scratchbox et al |
||||
linux-arm target |
||||
linux-arm sharedlibext .so |
||||
linux-arm tcl_platform(byteOrder) littleEndian |
||||
linux-arm tcl_platform(machine) arm |
||||
linux-arm tcl_platform(os) Linux |
||||
linux-arm tcl_platform(osVersion) 2.6 |
||||
linux-arm tcl_platform(platform) unix |
||||
linux-arm tcl_platform(wordSize) 4 |
||||
|
||||
# hpux itanium, native cc, 32 and 64bit builds. |
||||
# +z <=> -fPIC on hpux. |
||||
# +DD64 invokes the 64bit mode. |
||||
|
||||
hpux-ia64_32-cc compile cc -c +z |
||||
hpux-ia64_32-cc link ld -b |
||||
hpux-ia64_32-cc preproc_define cc -E |
||||
hpux-ia64_32-cc preproc_enum cc -E |
||||
hpux-ia64_32-cc link_preload |
||||
hpux-ia64_32-cc strip |
||||
|
||||
hpux-ia64-cc compile cc -c +z +DD64 |
||||
hpux-ia64-cc link ld -b |
||||
hpux-ia64-cc preproc_define cc -E |
||||
hpux-ia64-cc preproc_enum cc -E |
||||
hpux-ia64-cc link_preload |
||||
hpux-ia64-cc strip |
||||
|
||||
# hpux, itanium, gcc |
||||
# This works only if the -lgcc for 64bit is somewhere reachable. |
||||
# hpux-ia64 gcc -c -fPIC -mlp64 |
||||
|
||||
hpux-parisc-cc compile cc -c +z +DAportable |
||||
hpux-parisc-cc link ld -b |
||||
hpux-parisc-cc preproc_define cc -E |
||||
hpux-parisc-cc preproc_enum cc -E |
||||
hpux-parisc-cc link_preload |
||||
hpux-parisc-cc strip |
||||
|
||||
hpux-parisc64-cc compile cc -c +z +DA2.0W |
||||
hpux-parisc64-cc link ld -b |
||||
hpux-parisc64-cc preproc_define cc -E |
||||
hpux-parisc64-cc preproc_enum cc -E |
||||
hpux-parisc64-cc link_preload |
||||
hpux-parisc64-cc strip |
||||
|
||||
# hpux-parisc, 64bit, gcc |
||||
# |
||||
# For this architecture gcc does not have compiler switches for change |
||||
# between 32/64 results. Rather, gcc has to be built specifically to |
||||
# produce either 32 or 64 bit binaries. And if both results are |
||||
# wanted, it has to be built and installed twice (in different |
||||
# directories). |
||||
# |
||||
# HP provides precompiled binaries of these two variants at |
||||
# http://www.hp.com/go/gcc. Install the desired compiler(s). In case |
||||
# of having both ensure that the desired one is first in the PATH. |
||||
|
||||
# aix, rs6000/powerpc, native cc, 32bit build |
||||
# The link line is pretty much copied from Tcl. |
||||
|
||||
# NOTE: ldAix was copied from Tcl into a directory in the PATH. |
||||
|
||||
# It might make sense to stuff this file into critcl and then copy it |
||||
# out when needed, either into a fixed place, or tempdir. In the |
||||
# latter case the link line needs some way of getting the value |
||||
# substituted into it. I have no idea of the critcl config allows |
||||
# that, and if yes, nor how. |
||||
|
||||
# cc_r = something with thread-enabled. better use it than cc and have |
||||
# things fail. |
||||
|
||||
aix-powerpc-cc compile cc_r -c -O |
||||
aix-powerpc-cc link ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry -lm -lc |
||||
aix-powerpc-cc preproc_define cc -E |
||||
aix-powerpc-cc preproc_enum cc -E |
||||
aix-powerpc-cc link_preload |
||||
aix-powerpc-cc strip |
||||
|
||||
aix-powerpc64-cc compile cc_r -c -O -q64 |
||||
aix-powerpc64-cc link ldAix /bin/ld -b64 -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry -lm -lc |
||||
aix-powerpc64-cc preproc_define cc -E |
||||
aix-powerpc64-cc preproc_enum cc -E |
||||
aix-powerpc64-cc link_preload |
||||
aix-powerpc64-cc strip |
||||
|
||||
aix-powerpc-xlc compile xlc_r -c -O |
||||
aix-powerpc-xlc link ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry -lm -lc |
||||
aix-powerpc-xlc preproc_define xlc -E |
||||
aix-powerpc-xlc preproc_enum xlc -E |
||||
aix-powerpc-xlc link_preload |
||||
aix-powerpc-xlc strip |
||||
|
||||
aix-powerpc64-xlc compile xlc_r -c -O -q64 |
||||
aix-powerpc64-xlc link ldAix /bin/ld -b64 -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry -lm -lc |
||||
aix-powerpc64-xlc preproc_define xlc -E |
||||
aix-powerpc64-xlc preproc_enum xlc -E |
||||
aix-powerpc64-xlc link_preload |
||||
aix-powerpc64-xlc strip |
||||
|
||||
# Solaris, Sparc and Intel platforms, 32 and 64 bit |
||||
|
||||
solaris-x86_64-cc compile cc -m64 -c -KPIC |
||||
solaris-x86_64-cc link /usr/ccs/bin/ld -L/lib/64 -G -lc -lnsl |
||||
solaris-x86_64-cc preproc_define cc -E |
||||
solaris-x86_64-cc preproc_enum cc -E |
||||
solaris-x86_64-cc version cc -V |
||||
solaris-x86_64-cc link_preload |
||||
solaris-x86_64-cc strip |
||||
|
||||
solaris-x86_64-gcc compile gcc -m64 -c -fPIC |
||||
solaris-x86_64-gcc link gcc -m64 -shared |
||||
|
||||
solaris-ix86-cc compile cc -m32 -c -KPIC |
||||
solaris-ix86-cc link /usr/ccs/bin/ld -G -lc -lnsl |
||||
solaris-ix86-cc preproc_define cc -E |
||||
solaris-ix86-cc preproc_enum cc -E |
||||
solaris-ix86-cc version cc -V |
||||
solaris-ix86-cc link_preload |
||||
solaris-ix86-cc strip |
||||
|
||||
solaris-sparc-cc compile cc -KPIC -c |
||||
solaris-sparc-cc link /usr/ccs/bin/ld -G -lc -lnsl |
||||
solaris-sparc-cc preproc_define cc -E |
||||
solaris-sparc-cc preproc_enum cc -E |
||||
solaris-sparc-cc version cc -V |
||||
solaris-sparc-cc link_preload |
||||
solaris-sparc-cc strip |
||||
|
||||
solaris-sparc64-cc compile cc -KPIC -xarch=v9 -c |
||||
solaris-sparc64-cc link /usr/ccs/bin/ld -G -lc -lnsl |
||||
solaris-sparc64-cc preproc_define cc -E |
||||
solaris-sparc64-cc preproc_enum cc -E |
||||
solaris-sparc64-cc version cc -V |
||||
solaris-sparc64-cc link_preload |
||||
solaris-sparc64-cc strip |
||||
|
||||
solaris-sparc64-gcc compile gcc -m64 -c -fPIC -mcpu=v9 |
||||
solaris-sparc64-gcc link gcc -m64 -shared -mcpu=v9 |
File diff suppressed because it is too large
Load Diff
@ -1,5 +0,0 @@
|
||||
static char script\[$count] = { |
||||
$inittext |
||||
}; |
||||
Tcl_SetByteArrayObj(Tcl_GetObjResult(ip), (unsigned char*) script, $count); |
||||
return TCL_OK; |
@ -1,6 +0,0 @@
|
||||
/* Generated by critcl on [clock format [clock seconds]]
|
||||
* source: $file |
||||
* binary: $libfile |
||||
*/ |
||||
$api |
||||
#include "tcl.h" |
@ -1,12 +0,0 @@
|
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
${ext} |
||||
DLLEXPORT int |
||||
${ininame}_Init(Tcl_Interp *interp) |
||||
{ |
||||
#define ip interp |
||||
#if USE_TCL_STUBS |
||||
if (!MyInitTclStubs(interp)) return TCL_ERROR; |
||||
#endif |
@ -1,6 +0,0 @@
|
||||
return TCL_OK; |
||||
#undef ip |
||||
} |
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
@ -1,5 +0,0 @@
|
||||
|
||||
# line 1 "MyInitTkStubs" |
||||
#if USE_TK_STUBS |
||||
if (!MyInitTkStubs(interp)) return TCL_ERROR; |
||||
#endif |
@ -1,169 +0,0 @@
|
||||
/*
|
||||
* pre-load a shared library |
||||
* - for situations where a Tcl package depends on another library |
||||
* - will be superceded by the functionality in TIP #239 |
||||
* - based on tclLoad.c from Tcl 8.4.13 and MyInitTclStubs from Critcl |
||||
*/ |
||||
|
||||
#include "tcl.h" |
||||
|
||||
TclStubs *tclStubsPtr; |
||||
TclPlatStubs *tclPlatStubsPtr; |
||||
struct TclIntStubs *tclIntStubsPtr; |
||||
struct TclIntPlatStubs *tclIntPlatStubsPtr; |
||||
|
||||
static int |
||||
MyInitTclStubs (Tcl_Interp *ip) |
||||
{ |
||||
typedef struct { |
||||
char *result; |
||||
Tcl_FreeProc *freeProc; |
||||
int errorLine; |
||||
TclStubs *stubTable; |
||||
} HeadOfInterp; |
||||
|
||||
HeadOfInterp *hoi = (HeadOfInterp*) ip; |
||||
|
||||
if (hoi->stubTable == NULL || hoi->stubTable->magic != TCL_STUB_MAGIC) { |
||||
ip->result = "This extension requires stubs-support."; |
||||
ip->freeProc = TCL_STATIC; |
||||
return 0; |
||||
} |
||||
|
||||
tclStubsPtr = hoi->stubTable; |
||||
|
||||
if (Tcl_PkgRequire(ip, "Tcl", "8.1", 0) == NULL) { |
||||
tclStubsPtr = NULL; |
||||
return 0; |
||||
} |
||||
|
||||
if (tclStubsPtr->hooks != NULL) { |
||||
tclPlatStubsPtr = tclStubsPtr->hooks->tclPlatStubs; |
||||
tclIntStubsPtr = tclStubsPtr->hooks->tclIntStubs; |
||||
tclIntPlatStubsPtr = tclStubsPtr->hooks->tclIntPlatStubs; |
||||
} |
||||
|
||||
return 1; |
||||
}
|
||||
|
||||
#ifdef WIN32 |
||||
|
||||
#include <windows.h> |
||||
|
||||
typedef struct PreloadInfo { |
||||
Tcl_Obj *dir; |
||||
Tcl_LoadHandle handle; |
||||
} PreloadInfo; |
||||
|
||||
static void |
||||
removeDLLCopy(ClientData clientData) { |
||||
PreloadInfo *preload = (PreloadInfo *) clientData; |
||||
Tcl_Obj *dir = preload->dir; |
||||
Tcl_LoadHandle handle = preload->handle; |
||||
Tcl_Obj *errorPtr; |
||||
|
||||
// no idea why, but we have to call FreeLibrary twice for the subsequent
|
||||
// Tcl_FSRemoveDirectory to work
|
||||
FreeLibrary((HINSTANCE) handle); |
||||
FreeLibrary((HINSTANCE) handle); |
||||
|
||||
if (Tcl_FSRemoveDirectory(dir, 1, &errorPtr) != TCL_OK) { |
||||
fprintf(stderr, "error removing dir = %s\n", Tcl_GetString(errorPtr)); |
||||
} |
||||
} |
||||
|
||||
#endif |
||||
|
||||
TCL_DECLARE_MUTEX(packageMutex) |
||||
|
||||
static int |
||||
Critcl_Preload( |
||||
ClientData dummy, |
||||
Tcl_Interp *interp, |
||||
int objc, |
||||
Tcl_Obj *objv[]) |
||||
{ |
||||
int code; |
||||
Tcl_PackageInitProc *proc1, *proc2; |
||||
Tcl_LoadHandle loadHandle; |
||||
Tcl_FSUnloadFileProc *unLoadProcPtr = NULL; |
||||
Tcl_Filesystem *fsPtr; |
||||
#ifdef WIN32 |
||||
PreloadInfo *preload = NULL; |
||||
#endif |
||||
|
||||
if (objc != 2) { |
||||
Tcl_WrongNumArgs(interp, 1, objv, "fileName"); |
||||
return TCL_ERROR; |
||||
} |
||||
if (Tcl_FSConvertToPathType(interp, objv[1]) != TCL_OK) { |
||||
return TCL_ERROR; |
||||
} |
||||
|
||||
#ifdef WIN32 |
||||
// if the filesystem holding the dll doesn't support direct loading
|
||||
// we need to copy it to a temporary directory and load it from there
|
||||
// - The command "critcl::runtime::precopy" is defined by the support
|
||||
// file "critcl/lib/app-critcl/runtime.tcl". At load time this is
|
||||
// the file "critcl-rt.tcl", sibling to "pkgIndex.tcl".
|
||||
|
||||
if ((fsPtr = Tcl_FSGetFileSystemForPath(objv[1])) != NULL \
|
||||
&& fsPtr->loadFileProc == NULL) { |
||||
int len; |
||||
Tcl_Obj *dirs; |
||||
objv[0] = Tcl_NewStringObj("::critcl::runtime::precopy", -1); |
||||
if ((code = Tcl_EvalObjv(interp, 2, objv, 0)) != TCL_OK) { |
||||
Tcl_SetErrorCode(interp, "could not preload ", |
||||
Tcl_GetString(objv[1]), 0); |
||||
return TCL_ERROR; |
||||
} |
||||
objv[1] = Tcl_GetObjResult(interp); |
||||
Tcl_IncrRefCount(objv[1]); |
||||
dirs = Tcl_FSSplitPath(objv[1], &len); |
||||
preload = (PreloadInfo *) ckalloc(sizeof(PreloadInfo)); |
||||
preload->dir = Tcl_FSJoinPath(dirs, --len); |
||||
Tcl_IncrRefCount(preload->dir); |
||||
} |
||||
#endif |
||||
|
||||
Tcl_MutexLock(&packageMutex); |
||||
code = Tcl_FSLoadFile(interp, objv[1], NULL, NULL, NULL, NULL, |
||||
&loadHandle, &unLoadProcPtr); |
||||
Tcl_MutexUnlock(&packageMutex); |
||||
#ifdef WIN32 |
||||
if (preload) { |
||||
preload->handle = loadHandle; |
||||
Tcl_CreateExitHandler(removeDLLCopy, (ClientData) preload); |
||||
} |
||||
#endif |
||||
return code; |
||||
} |
||||
|
||||
DLLEXPORT int |
||||
Preload_Init(Tcl_Interp *interp) |
||||
{ |
||||
if (!MyInitTclStubs(interp))
|
||||
return TCL_ERROR; |
||||
// The Tcl command can't be "preload" because the Tcl source might
|
||||
// be copied into the target package (so Tcl procs are available)
|
||||
// and we want critcl::runtime::preload to then be a no-op because
|
||||
// the preloading is done from the loadlib command when the target
|
||||
// package is loaded
|
||||
Tcl_CreateObjCommand(interp, "::critcl::runtime::preload", Critcl_Preload, NULL, 0); |
||||
return 0; |
||||
} |
||||
|
||||
DLLEXPORT int |
||||
Preload_SafeInit(Tcl_Interp *interp) |
||||
{ |
||||
if (!MyInitTclStubs(interp))
|
||||
return TCL_ERROR; |
||||
Tcl_CreateObjCommand(interp, "::critcl::runtime::preload", Critcl_Preload, NULL, 0); |
||||
return 0; |
||||
} |
||||
|
||||
DLLEXPORT int |
||||
Preload_Unload(Tcl_Interp *interp) {} |
||||
|
||||
DLLEXPORT int |
||||
Preload_SafeUnload(Tcl_Interp *interp) {} |
@ -1,26 +0,0 @@
|
||||
/*
|
||||
* These macros are used to control whether functions are being declared for |
||||
* import or export. If a function is being declared while it is being built |
||||
* to be included in a shared library, then it should have the DLLEXPORT |
||||
* storage class. If is being declared for use by a module that is going to |
||||
* link against the shared library, then it should have the DLLIMPORT storage |
||||
* class. If the symbol is beind declared for a static build or for use from a |
||||
* stub library, then the storage class should be empty. |
||||
* |
||||
* The convention is that a macro called BUILD_xxxx, where xxxx is the name of |
||||
* a library we are building, is set on the compile line for sources that are |
||||
* to be placed in the library. When this macro is set, the storage class will |
||||
* be set to DLLEXPORT. At the end of the header file, the storage class will |
||||
* be reset to DLLIMPORT. |
||||
*/ |
||||
|
||||
#undef TCL_STORAGE_CLASS |
||||
#ifdef BUILD_@cname@ |
||||
# define TCL_STORAGE_CLASS DLLEXPORT |
||||
#else |
||||
# ifdef USE_@up@_STUBS |
||||
# define TCL_STORAGE_CLASS |
||||
# else |
||||
# define TCL_STORAGE_CLASS DLLIMPORT |
||||
# endif |
||||
#endif |
@ -1,43 +0,0 @@
|
||||
|
||||
#line 1 "MyInitTclStubs" |
||||
|
||||
#if USE_TCL_STUBS |
||||
$stubs |
||||
$platstubs |
||||
const struct TclIntStubs *tclIntStubsPtr; |
||||
const struct TclIntPlatStubs *tclIntPlatStubsPtr; |
||||
|
||||
static int |
||||
MyInitTclStubs (Tcl_Interp *ip) |
||||
{ |
||||
typedef struct { |
||||
char *result; |
||||
Tcl_FreeProc *freeProc; |
||||
int errorLine; |
||||
TclStubs *stubTable; |
||||
} HeadOfInterp; |
||||
|
||||
HeadOfInterp *hoi = (HeadOfInterp*) ip; |
||||
|
||||
if (hoi->stubTable == NULL || hoi->stubTable->magic != TCL_STUB_MAGIC) { |
||||
hoi->result = "This extension requires stubs-support."; |
||||
hoi->freeProc = TCL_STATIC; |
||||
return 0; |
||||
} |
||||
|
||||
tclStubsPtr = hoi->stubTable; |
||||
|
||||
if (Tcl_PkgRequire(ip, "Tcl", "$mintcl", 0) == NULL) { |
||||
tclStubsPtr = NULL; |
||||
return 0; |
||||
} |
||||
|
||||
if (tclStubsPtr->hooks != NULL) { |
||||
tclPlatStubsPtr = tclStubsPtr->hooks->tclPlatStubs; |
||||
tclIntStubsPtr = tclStubsPtr->hooks->tclIntStubs; |
||||
tclIntPlatStubsPtr = tclStubsPtr->hooks->tclIntPlatStubs; |
||||
} |
||||
|
||||
return 1; |
||||
} |
||||
#endif |
@ -1,10 +0,0 @@
|
||||
|
||||
#line 1 "MyInitTclStubs" |
||||
|
||||
#if USE_TCL_STUBS |
||||
static int |
||||
MyInitTclStubs (Tcl_Interp *ip) |
||||
{ |
||||
return 1; |
||||
} |
||||
#endif |
@ -1,677 +0,0 @@
|
||||
/*
|
||||
* $XConsortium: X.h,v 1.66 88/09/06 15:55:56 jim Exp $ |
||||
*/ |
||||
|
||||
/* Definitions for the X window system likely to be used by applications */ |
||||
|
||||
#ifndef X_H |
||||
#define X_H |
||||
|
||||
/***********************************************************
|
||||
Copyright 1987 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. |
||||
|
||||
******************************************************************/ |
||||
#define X_PROTOCOL 11 /* current protocol version */ |
||||
#define X_PROTOCOL_REVISION 0 /* current minor version */ |
||||
|
||||
#if defined(MAC_OSX_TK) |
||||
# define Cursor XCursor |
||||
# define Region XRegion |
||||
#endif |
||||
|
||||
/* Resources */ |
||||
|
||||
#ifdef _WIN64 |
||||
typedef __int64 XID; |
||||
#else |
||||
typedef unsigned long XID; |
||||
#endif |
||||
|
||||
typedef XID Window; |
||||
typedef XID Drawable; |
||||
typedef XID Font; |
||||
typedef XID Pixmap; |
||||
typedef XID Cursor; |
||||
typedef XID Colormap; |
||||
typedef XID GContext; |
||||
typedef XID KeySym; |
||||
|
||||
typedef unsigned long Mask; |
||||
|
||||
typedef unsigned long Atom; |
||||
|
||||
typedef unsigned long VisualID; |
||||
|
||||
typedef unsigned long Time; |
||||
|
||||
typedef unsigned long KeyCode; /* In order to use IME, the Macintosh needs
|
||||
* to pack 3 bytes into the keyCode field in |
||||
* the XEvent. In the real X.h, a KeyCode is |
||||
* defined as a short, which wouldn't be big |
||||
* enough. */ |
||||
|
||||
/*****************************************************************
|
||||
* RESERVED RESOURCE AND CONSTANT DEFINITIONS |
||||
*****************************************************************/ |
||||
|
||||
#define None 0L /* universal null resource or null atom */ |
||||
|
||||
#define ParentRelative 1L /* background pixmap in CreateWindow |
||||
and ChangeWindowAttributes */ |
||||
|
||||
#define CopyFromParent 0L /* border pixmap in CreateWindow |
||||
and ChangeWindowAttributes |
||||
special VisualID and special window |
||||
class passed to CreateWindow */ |
||||
|
||||
#define PointerWindow 0L /* destination window in SendEvent */ |
||||
#define InputFocus 1L /* destination window in SendEvent */ |
||||
|
||||
#define PointerRoot 1L /* focus window in SetInputFocus */ |
||||
|
||||
#define AnyPropertyType 0L /* special Atom, passed to GetProperty */ |
||||
|
||||
#define AnyKey 0L /* special Key Code, passed to GrabKey */ |
||||
|
||||
#define AnyButton 0L /* special Button Code, passed to GrabButton */ |
||||
|
||||
#define AllTemporary 0L /* special Resource ID passed to KillClient */ |
||||
|
||||
#define CurrentTime 0L /* special Time */ |
||||
|
||||
#define NoSymbol 0L /* special KeySym */ |
||||
|
||||
/*****************************************************************
|
||||
* EVENT DEFINITIONS
|
||||
*****************************************************************/ |
||||
|
||||
/* Input Event Masks. Used as event-mask window attribute and as arguments
|
||||
to Grab requests. Not to be confused with event names. */ |
||||
|
||||
#define NoEventMask 0L |
||||
#define KeyPressMask (1L<<0) |
||||
#define KeyReleaseMask (1L<<1) |
||||
#define ButtonPressMask (1L<<2) |
||||
#define ButtonReleaseMask (1L<<3) |
||||
#define EnterWindowMask (1L<<4) |
||||
#define LeaveWindowMask (1L<<5) |
||||
#define PointerMotionMask (1L<<6) |
||||
#define PointerMotionHintMask (1L<<7) |
||||
#define Button1MotionMask (1L<<8) |
||||
#define Button2MotionMask (1L<<9) |
||||
#define Button3MotionMask (1L<<10) |
||||
#define Button4MotionMask (1L<<11) |
||||
#define Button5MotionMask (1L<<12) |
||||
#define ButtonMotionMask (1L<<13) |
||||
#define KeymapStateMask (1L<<14) |
||||
#define ExposureMask (1L<<15) |
||||
#define VisibilityChangeMask (1L<<16) |
||||
#define StructureNotifyMask (1L<<17) |
||||
#define ResizeRedirectMask (1L<<18) |
||||
#define SubstructureNotifyMask (1L<<19) |
||||
#define SubstructureRedirectMask (1L<<20) |
||||
#define FocusChangeMask (1L<<21) |
||||
#define PropertyChangeMask (1L<<22) |
||||
#define ColormapChangeMask (1L<<23) |
||||
#define OwnerGrabButtonMask (1L<<24) |
||||
|
||||
/* Event names. Used in "type" field in XEvent structures. Not to be
|
||||
confused with event masks above. They start from 2 because 0 and 1 |
||||
are reserved in the protocol for errors and replies. */ |
||||
|
||||
#define KeyPress 2 |
||||
#define KeyRelease 3 |
||||
#define ButtonPress 4 |
||||
#define ButtonRelease 5 |
||||
#define MotionNotify 6 |
||||
#define EnterNotify 7 |
||||
#define LeaveNotify 8 |
||||
#define FocusIn 9 |
||||
#define FocusOut 10 |
||||
#define KeymapNotify 11 |
||||
#define Expose 12 |
||||
#define GraphicsExpose 13 |
||||
#define NoExpose 14 |
||||
#define VisibilityNotify 15 |
||||
#define CreateNotify 16 |
||||
#define DestroyNotify 17 |
||||
#define UnmapNotify 18 |
||||
#define MapNotify 19 |
||||
#define MapRequest 20 |
||||
#define ReparentNotify 21 |
||||
#define ConfigureNotify 22 |
||||
#define ConfigureRequest 23 |
||||
#define GravityNotify 24 |
||||
#define ResizeRequest 25 |
||||
#define CirculateNotify 26 |
||||
#define CirculateRequest 27 |
||||
#define PropertyNotify 28 |
||||
#define SelectionClear 29 |
||||
#define SelectionRequest 30 |
||||
#define SelectionNotify 31 |
||||
#define ColormapNotify 32 |
||||
#define ClientMessage 33 |
||||
#define MappingNotify 34 |
||||
#define LASTEvent 35 /* must be bigger than any event # */ |
||||
|
||||
|
||||
/* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer,
|
||||
state in various key-, mouse-, and button-related events. */ |
||||
|
||||
#define ShiftMask (1<<0) |
||||
#define LockMask (1<<1) |
||||
#define ControlMask (1<<2) |
||||
#define Mod1Mask (1<<3) |
||||
#define Mod2Mask (1<<4) |
||||
#define Mod3Mask (1<<5) |
||||
#define Mod4Mask (1<<6) |
||||
#define Mod5Mask (1<<7) |
||||
|
||||
/* modifier names. Used to build a SetModifierMapping request or
|
||||
to read a GetModifierMapping request. These correspond to the |
||||
masks defined above. */ |
||||
#define ShiftMapIndex 0 |
||||
#define LockMapIndex 1 |
||||
#define ControlMapIndex 2 |
||||
#define Mod1MapIndex 3 |
||||
#define Mod2MapIndex 4 |
||||
#define Mod3MapIndex 5 |
||||
#define Mod4MapIndex 6 |
||||
#define Mod5MapIndex 7 |
||||
|
||||
|
||||
/* button masks. Used in same manner as Key masks above. Not to be confused
|
||||
with button names below. */ |
||||
|
||||
#define Button1Mask (1<<8) |
||||
#define Button2Mask (1<<9) |
||||
#define Button3Mask (1<<10) |
||||
#define Button4Mask (1<<11) |
||||
#define Button5Mask (1<<12) |
||||
|
||||
#define AnyModifier (1<<15) /* used in GrabButton, GrabKey */ |
||||
|
||||
|
||||
/* button names. Used as arguments to GrabButton and as detail in ButtonPress
|
||||
and ButtonRelease events. Not to be confused with button masks above. |
||||
Note that 0 is already defined above as "AnyButton". */ |
||||
|
||||
#define Button1 1 |
||||
#define Button2 2 |
||||
#define Button3 3 |
||||
#define Button4 4 |
||||
#define Button5 5 |
||||
|
||||
/* Notify modes */ |
||||
|
||||
#define NotifyNormal 0 |
||||
#define NotifyGrab 1 |
||||
#define NotifyUngrab 2 |
||||
#define NotifyWhileGrabbed 3 |
||||
|
||||
#define NotifyHint 1 /* for MotionNotify events */ |
||||
|
||||
/* Notify detail */ |
||||
|
||||
#define NotifyAncestor 0 |
||||
#define NotifyVirtual 1 |
||||
#define NotifyInferior 2 |
||||
#define NotifyNonlinear 3 |
||||
#define NotifyNonlinearVirtual 4 |
||||
#define NotifyPointer 5 |
||||
#define NotifyPointerRoot 6 |
||||
#define NotifyDetailNone 7 |
||||
|
||||
/* Visibility notify */ |
||||
|
||||
#define VisibilityUnobscured 0 |
||||
#define VisibilityPartiallyObscured 1 |
||||
#define VisibilityFullyObscured 2 |
||||
|
||||
/* Circulation request */ |
||||
|
||||
#define PlaceOnTop 0 |
||||
#define PlaceOnBottom 1 |
||||
|
||||
/* protocol families */ |
||||
|
||||
#define FamilyInternet 0 |
||||
#define FamilyDECnet 1 |
||||
#define FamilyChaos 2 |
||||
|
||||
/* Property notification */ |
||||
|
||||
#define PropertyNewValue 0 |
||||
#define PropertyDelete 1 |
||||
|
||||
/* Color Map notification */ |
||||
|
||||
#define ColormapUninstalled 0 |
||||
#define ColormapInstalled 1 |
||||
|
||||
/* GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes */ |
||||
|
||||
#define GrabModeSync 0 |
||||
#define GrabModeAsync 1 |
||||
|
||||
/* GrabPointer, GrabKeyboard reply status */ |
||||
|
||||
#define GrabSuccess 0 |
||||
#define AlreadyGrabbed 1 |
||||
#define GrabInvalidTime 2 |
||||
#define GrabNotViewable 3 |
||||
#define GrabFrozen 4 |
||||
|
||||
/* AllowEvents modes */ |
||||
|
||||
#define AsyncPointer 0 |
||||
#define SyncPointer 1 |
||||
#define ReplayPointer 2 |
||||
#define AsyncKeyboard 3 |
||||
#define SyncKeyboard 4 |
||||
#define ReplayKeyboard 5 |
||||
#define AsyncBoth 6 |
||||
#define SyncBoth 7 |
||||
|
||||
/* Used in SetInputFocus, GetInputFocus */ |
||||
|
||||
#define RevertToNone (int)None |
||||
#define RevertToPointerRoot (int)PointerRoot |
||||
#define RevertToParent 2 |
||||
|
||||
/*****************************************************************
|
||||
* ERROR CODES
|
||||
*****************************************************************/ |
||||
|
||||
#define Success 0 /* everything's okay */ |
||||
#define BadRequest 1 /* bad request code */ |
||||
#define BadValue 2 /* int parameter out of range */ |
||||
#define BadWindow 3 /* parameter not a Window */ |
||||
#define BadPixmap 4 /* parameter not a Pixmap */ |
||||
#define BadAtom 5 /* parameter not an Atom */ |
||||
#define BadCursor 6 /* parameter not a Cursor */ |
||||
#define BadFont 7 /* parameter not a Font */ |
||||
#define BadMatch 8 /* parameter mismatch */ |
||||
#define BadDrawable 9 /* parameter not a Pixmap or Window */ |
||||
#define BadAccess 10 /* depending on context: |
||||
- key/button already grabbed |
||||
- attempt to free an illegal
|
||||
cmap entry
|
||||
- attempt to store into a read-only
|
||||
color map entry. |
||||
- attempt to modify the access control |
||||
list from other than the local host. |
||||
*/ |
||||
#define BadAlloc 11 /* insufficient resources */ |
||||
#define BadColor 12 /* no such colormap */ |
||||
#define BadGC 13 /* parameter not a GC */ |
||||
#define BadIDChoice 14 /* choice not in range or already used */ |
||||
#define BadName 15 /* font or color name doesn't exist */ |
||||
#define BadLength 16 /* Request length incorrect */ |
||||
#define BadImplementation 17 /* server is defective */ |
||||
|
||||
#define FirstExtensionError 128 |
||||
#define LastExtensionError 255 |
||||
|
||||
/*****************************************************************
|
||||
* WINDOW DEFINITIONS
|
||||
*****************************************************************/ |
||||
|
||||
/* Window classes used by CreateWindow */ |
||||
/* Note that CopyFromParent is already defined as 0 above */ |
||||
|
||||
#define InputOutput 1 |
||||
#define InputOnly 2 |
||||
|
||||
/* Window attributes for CreateWindow and ChangeWindowAttributes */ |
||||
|
||||
#define CWBackPixmap (1L<<0) |
||||
#define CWBackPixel (1L<<1) |
||||
#define CWBorderPixmap (1L<<2) |
||||
#define CWBorderPixel (1L<<3) |
||||
#define CWBitGravity (1L<<4) |
||||
#define CWWinGravity (1L<<5) |
||||
#define CWBackingStore (1L<<6) |
||||
#define CWBackingPlanes (1L<<7) |
||||
#define CWBackingPixel (1L<<8) |
||||
#define CWOverrideRedirect (1L<<9) |
||||
#define CWSaveUnder (1L<<10) |
||||
#define CWEventMask (1L<<11) |
||||
#define CWDontPropagate (1L<<12) |
||||
#define CWColormap (1L<<13) |
||||
#define CWCursor (1L<<14) |
||||
|
||||
/* ConfigureWindow structure */ |
||||
|
||||
#define CWX (1<<0) |
||||
#define CWY (1<<1) |
||||
#define CWWidth (1<<2) |
||||
#define CWHeight (1<<3) |
||||
#define CWBorderWidth (1<<4) |
||||
#define CWSibling (1<<5) |
||||
#define CWStackMode (1<<6) |
||||
|
||||
|
||||
/* Bit Gravity */ |
||||
|
||||
#define ForgetGravity 0 |
||||
#define NorthWestGravity 1 |
||||
#define NorthGravity 2 |
||||
#define NorthEastGravity 3 |
||||
#define WestGravity 4 |
||||
#define CenterGravity 5 |
||||
#define EastGravity 6 |
||||
#define SouthWestGravity 7 |
||||
#define SouthGravity 8 |
||||
#define SouthEastGravity 9 |
||||
#define StaticGravity 10 |
||||
|
||||
/* Window gravity + bit gravity above */ |
||||
|
||||
#define UnmapGravity 0 |
||||
|
||||
/* Used in CreateWindow for backing-store hint */ |
||||
|
||||
#define NotUseful 0 |
||||
#define WhenMapped 1 |
||||
#define Always 2 |
||||
|
||||
/* Used in GetWindowAttributes reply */ |
||||
|
||||
#define IsUnmapped 0 |
||||
#define IsUnviewable 1 |
||||
#define IsViewable 2 |
||||
|
||||
/* Used in ChangeSaveSet */ |
||||
|
||||
#define SetModeInsert 0 |
||||
#define SetModeDelete 1 |
||||
|
||||
/* Used in ChangeCloseDownMode */ |
||||
|
||||
#define DestroyAll 0 |
||||
#define RetainPermanent 1 |
||||
#define RetainTemporary 2 |
||||
|
||||
/* Window stacking method (in configureWindow) */ |
||||
|
||||
#define Above 0 |
||||
#define Below 1 |
||||
#define TopIf 2 |
||||
#define BottomIf 3 |
||||
#define Opposite 4 |
||||
|
||||
/* Circulation direction */ |
||||
|
||||
#define RaiseLowest 0 |
||||
#define LowerHighest 1 |
||||
|
||||
/* Property modes */ |
||||
|
||||
#define PropModeReplace 0 |
||||
#define PropModePrepend 1 |
||||
#define PropModeAppend 2 |
||||
|
||||
/*****************************************************************
|
||||
* GRAPHICS DEFINITIONS |
||||
*****************************************************************/ |
||||
|
||||
/* graphics functions, as in GC.alu */ |
||||
|
||||
#define GXclear 0x0 /* 0 */ |
||||
#define GXand 0x1 /* src AND dst */ |
||||
#define GXandReverse 0x2 /* src AND NOT dst */ |
||||
#define GXcopy 0x3 /* src */ |
||||
#define GXandInverted 0x4 /* NOT src AND dst */ |
||||
#define GXnoop 0x5 /* dst */ |
||||
#define GXxor 0x6 /* src XOR dst */ |
||||
#define GXor 0x7 /* src OR dst */ |
||||
#define GXnor 0x8 /* NOT src AND NOT dst */ |
||||
#define GXequiv 0x9 /* NOT src XOR dst */ |
||||
#define GXinvert 0xa /* NOT dst */ |
||||
#define GXorReverse 0xb /* src OR NOT dst */ |
||||
#define GXcopyInverted 0xc /* NOT src */ |
||||
#define GXorInverted 0xd /* NOT src OR dst */ |
||||
#define GXnand 0xe /* NOT src OR NOT dst */ |
||||
#define GXset 0xf /* 1 */ |
||||
|
||||
/* LineStyle */ |
||||
|
||||
#define LineSolid 0 |
||||
#define LineOnOffDash 1 |
||||
#define LineDoubleDash 2 |
||||
|
||||
/* capStyle */ |
||||
|
||||
#define CapNotLast 0 |
||||
#define CapButt 1 |
||||
#define CapRound 2 |
||||
#define CapProjecting 3 |
||||
|
||||
/* joinStyle */ |
||||
|
||||
#define JoinMiter 0 |
||||
#define JoinRound 1 |
||||
#define JoinBevel 2 |
||||
|
||||
/* fillStyle */ |
||||
|
||||
#define FillSolid 0 |
||||
#define FillTiled 1 |
||||
#define FillStippled 2 |
||||
#define FillOpaqueStippled 3 |
||||
|
||||
/* fillRule */ |
||||
|
||||
#define EvenOddRule 0 |
||||
#define WindingRule 1 |
||||
|
||||
/* subwindow mode */ |
||||
|
||||
#define ClipByChildren 0 |
||||
#define IncludeInferiors 1 |
||||
|
||||
/* SetClipRectangles ordering */ |
||||
|
||||
#define Unsorted 0 |
||||
#define YSorted 1 |
||||
#define YXSorted 2 |
||||
#define YXBanded 3 |
||||
|
||||
/* CoordinateMode for drawing routines */ |
||||
|
||||
#define CoordModeOrigin 0 /* relative to the origin */ |
||||
#define CoordModePrevious 1 /* relative to previous point */ |
||||
|
||||
/* Polygon shapes */ |
||||
|
||||
#define Complex 0 /* paths may intersect */ |
||||
#define Nonconvex 1 /* no paths intersect, but not convex */ |
||||
#define Convex 2 /* wholly convex */ |
||||
|
||||
/* Arc modes for PolyFillArc */ |
||||
|
||||
#define ArcChord 0 /* join endpoints of arc */ |
||||
#define ArcPieSlice 1 /* join endpoints to center of arc */ |
||||
|
||||
/* GC components: masks used in CreateGC, CopyGC, ChangeGC, OR'ed into
|
||||
GC.stateChanges */ |
||||
|
||||
#define GCFunction (1L<<0) |
||||
#define GCPlaneMask (1L<<1) |
||||
#define GCForeground (1L<<2) |
||||
#define GCBackground (1L<<3) |
||||
#define GCLineWidth (1L<<4) |
||||
#define GCLineStyle (1L<<5) |
||||
#define GCCapStyle (1L<<6) |
||||
#define GCJoinStyle (1L<<7) |
||||
#define GCFillStyle (1L<<8) |
||||
#define GCFillRule (1L<<9) |
||||
#define GCTile (1L<<10) |
||||
#define GCStipple (1L<<11) |
||||
#define GCTileStipXOrigin (1L<<12) |
||||
#define GCTileStipYOrigin (1L<<13) |
||||
#define GCFont (1L<<14) |
||||
#define GCSubwindowMode (1L<<15) |
||||
#define GCGraphicsExposures (1L<<16) |
||||
#define GCClipXOrigin (1L<<17) |
||||
#define GCClipYOrigin (1L<<18) |
||||
#define GCClipMask (1L<<19) |
||||
#define GCDashOffset (1L<<20) |
||||
#define GCDashList (1L<<21) |
||||
#define GCArcMode (1L<<22) |
||||
|
||||
#define GCLastBit 22 |
||||
/*****************************************************************
|
||||
* FONTS
|
||||
*****************************************************************/ |
||||
|
||||
/* used in QueryFont -- draw direction */ |
||||
|
||||
#define FontLeftToRight 0 |
||||
#define FontRightToLeft 1 |
||||
|
||||
#define FontChange 255 |
||||
|
||||
/*****************************************************************
|
||||
* IMAGING
|
||||
*****************************************************************/ |
||||
|
||||
/* ImageFormat -- PutImage, GetImage */ |
||||
|
||||
#define XYBitmap 0 /* depth 1, XYFormat */ |
||||
#define XYPixmap 1 /* depth == drawable depth */ |
||||
#define ZPixmap 2 /* depth == drawable depth */ |
||||
|
||||
/*****************************************************************
|
||||
* COLOR MAP STUFF
|
||||
*****************************************************************/ |
||||
|
||||
/* For CreateColormap */ |
||||
|
||||
#define AllocNone 0 /* create map with no entries */ |
||||
#define AllocAll 1 /* allocate entire map writeable */ |
||||
|
||||
|
||||
/* Flags used in StoreNamedColor, StoreColors */ |
||||
|
||||
#define DoRed (1<<0) |
||||
#define DoGreen (1<<1) |
||||
#define DoBlue (1<<2) |
||||
|
||||
/*****************************************************************
|
||||
* CURSOR STUFF |
||||
*****************************************************************/ |
||||
|
||||
/* QueryBestSize Class */ |
||||
|
||||
#define CursorShape 0 /* largest size that can be displayed */ |
||||
#define TileShape 1 /* size tiled fastest */ |
||||
#define StippleShape 2 /* size stippled fastest */ |
||||
|
||||
/*****************************************************************
|
||||
* KEYBOARD/POINTER STUFF |
||||
*****************************************************************/ |
||||
|
||||
#define AutoRepeatModeOff 0 |
||||
#define AutoRepeatModeOn 1 |
||||
#define AutoRepeatModeDefault 2 |
||||
|
||||
#define LedModeOff 0 |
||||
#define LedModeOn 1 |
||||
|
||||
/* masks for ChangeKeyboardControl */ |
||||
|
||||
#define KBKeyClickPercent (1L<<0) |
||||
#define KBBellPercent (1L<<1) |
||||
#define KBBellPitch (1L<<2) |
||||
#define KBBellDuration (1L<<3) |
||||
#define KBLed (1L<<4) |
||||
#define KBLedMode (1L<<5) |
||||
#define KBKey (1L<<6) |
||||
#define KBAutoRepeatMode (1L<<7) |
||||
|
||||
#define MappingSuccess 0 |
||||
#define MappingBusy 1 |
||||
#define MappingFailed 2 |
||||
|
||||
#define MappingModifier 0 |
||||
#define MappingKeyboard 1 |
||||
#define MappingPointer 2 |
||||
|
||||
/*****************************************************************
|
||||
* SCREEN SAVER STUFF
|
||||
*****************************************************************/ |
||||
|
||||
#define DontPreferBlanking 0 |
||||
#define PreferBlanking 1 |
||||
#define DefaultBlanking 2 |
||||
|
||||
#define DisableScreenSaver 0 |
||||
#define DisableScreenInterval 0 |
||||
|
||||
#define DontAllowExposures 0 |
||||
#define AllowExposures 1 |
||||
#define DefaultExposures 2 |
||||
|
||||
/* for ForceScreenSaver */ |
||||
|
||||
#define ScreenSaverReset 0 |
||||
#define ScreenSaverActive 1 |
||||
|
||||
/*****************************************************************
|
||||
* HOSTS AND CONNECTIONS |
||||
*****************************************************************/ |
||||
|
||||
/* for ChangeHosts */ |
||||
|
||||
#define HostInsert 0 |
||||
#define HostDelete 1 |
||||
|
||||
/* for ChangeAccessControl */ |
||||
|
||||
#define EnableAccess 1 |
||||
#define DisableAccess 0 |
||||
|
||||
/* Display classes used in opening the connection
|
||||
* Note that the statically allocated ones are even numbered and the |
||||
* dynamically changeable ones are odd numbered */ |
||||
|
||||
#define StaticGray 0 |
||||
#define GrayScale 1 |
||||
#define StaticColor 2 |
||||
#define PseudoColor 3 |
||||
#define TrueColor 4 |
||||
#define DirectColor 5 |
||||
|
||||
|
||||
/* Byte order used in imageByteOrder and bitmapBitOrder */ |
||||
|
||||
#define LSBFirst 0 |
||||
#define MSBFirst 1 |
||||
|
||||
#if defined(MAC_OSX_TK) |
||||
# undef Cursor |
||||
# undef Region |
||||
#endif |
||||
|
||||
#endif /* X_H */ |
@ -1,79 +0,0 @@
|
||||
#ifndef XATOM_H |
||||
#define XATOM_H 1 |
||||
|
||||
/* THIS IS A GENERATED FILE
|
||||
* |
||||
* Do not change! Changing this file implies a protocol change! |
||||
*/ |
||||
|
||||
#define XA_PRIMARY ((Atom) 1) |
||||
#define XA_SECONDARY ((Atom) 2) |
||||
#define XA_ARC ((Atom) 3) |
||||
#define XA_ATOM ((Atom) 4) |
||||
#define XA_BITMAP ((Atom) 5) |
||||
#define XA_CARDINAL ((Atom) 6) |
||||
#define XA_COLORMAP ((Atom) 7) |
||||
#define XA_CURSOR ((Atom) 8) |
||||
#define XA_CUT_BUFFER0 ((Atom) 9) |
||||
#define XA_CUT_BUFFER1 ((Atom) 10) |
||||
#define XA_CUT_BUFFER2 ((Atom) 11) |
||||
#define XA_CUT_BUFFER3 ((Atom) 12) |
||||
#define XA_CUT_BUFFER4 ((Atom) 13) |
||||
#define XA_CUT_BUFFER5 ((Atom) 14) |
||||
#define XA_CUT_BUFFER6 ((Atom) 15) |
||||
#define XA_CUT_BUFFER7 ((Atom) 16) |
||||
#define XA_DRAWABLE ((Atom) 17) |
||||
#define XA_FONT ((Atom) 18) |
||||
#define XA_INTEGER ((Atom) 19) |
||||
#define XA_PIXMAP ((Atom) 20) |
||||
#define XA_POINT ((Atom) 21) |
||||
#define XA_RECTANGLE ((Atom) 22) |
||||
#define XA_RESOURCE_MANAGER ((Atom) 23) |
||||
#define XA_RGB_COLOR_MAP ((Atom) 24) |
||||
#define XA_RGB_BEST_MAP ((Atom) 25) |
||||
#define XA_RGB_BLUE_MAP ((Atom) 26) |
||||
#define XA_RGB_DEFAULT_MAP ((Atom) 27) |
||||
#define XA_RGB_GRAY_MAP ((Atom) 28) |
||||
#define XA_RGB_GREEN_MAP ((Atom) 29) |
||||
#define XA_RGB_RED_MAP ((Atom) 30) |
||||
#define XA_STRING ((Atom) 31) |
||||
#define XA_VISUALID ((Atom) 32) |
||||
#define XA_WINDOW ((Atom) 33) |
||||
#define XA_WM_COMMAND ((Atom) 34) |
||||
#define XA_WM_HINTS ((Atom) 35) |
||||
#define XA_WM_CLIENT_MACHINE ((Atom) 36) |
||||
#define XA_WM_ICON_NAME ((Atom) 37) |
||||
#define XA_WM_ICON_SIZE ((Atom) 38) |
||||
#define XA_WM_NAME ((Atom) 39) |
||||
#define XA_WM_NORMAL_HINTS ((Atom) 40) |
||||
#define XA_WM_SIZE_HINTS ((Atom) 41) |
||||
#define XA_WM_ZOOM_HINTS ((Atom) 42) |
||||
#define XA_MIN_SPACE ((Atom) 43) |
||||
#define XA_NORM_SPACE ((Atom) 44) |
||||
#define XA_MAX_SPACE ((Atom) 45) |
||||
#define XA_END_SPACE ((Atom) 46) |
||||
#define XA_SUPERSCRIPT_X ((Atom) 47) |
||||
#define XA_SUPERSCRIPT_Y ((Atom) 48) |
||||
#define XA_SUBSCRIPT_X ((Atom) 49) |
||||
#define XA_SUBSCRIPT_Y ((Atom) 50) |
||||
#define XA_UNDERLINE_POSITION ((Atom) 51) |
||||
#define XA_UNDERLINE_THICKNESS ((Atom) 52) |
||||
#define XA_STRIKEOUT_ASCENT ((Atom) 53) |
||||
#define XA_STRIKEOUT_DESCENT ((Atom) 54) |
||||
#define XA_ITALIC_ANGLE ((Atom) 55) |
||||
#define XA_X_HEIGHT ((Atom) 56) |
||||
#define XA_QUAD_WIDTH ((Atom) 57) |
||||
#define XA_WEIGHT ((Atom) 58) |
||||
#define XA_POINT_SIZE ((Atom) 59) |
||||
#define XA_RESOLUTION ((Atom) 60) |
||||
#define XA_COPYRIGHT ((Atom) 61) |
||||
#define XA_NOTICE ((Atom) 62) |
||||
#define XA_FONT_NAME ((Atom) 63) |
||||
#define XA_FAMILY_NAME ((Atom) 64) |
||||
#define XA_FULL_NAME ((Atom) 65) |
||||
#define XA_CAP_HEIGHT ((Atom) 66) |
||||
#define XA_WM_CLASS ((Atom) 67) |
||||
#define XA_WM_TRANSIENT_FOR ((Atom) 68) |
||||
|
||||
#define XA_LAST_PREDEFINED ((Atom) 68) |
||||
#endif /* XATOM_H */ |
@ -1,60 +0,0 @@
|
||||
/* $XConsortium: Xfuncproto.h,v 1.7 91/05/13 20:49:21 rws Exp $ */ |
||||
/*
|
||||
* Copyright 1989, 1991 by the Massachusetts Institute of Technology |
||||
* |
||||
* 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 M.I.T. not be used in advertising |
||||
* or publicity pertaining to distribution of the software without specific,
|
||||
* written prior permission. M.I.T. makes no representations about the
|
||||
* suitability of this software for any purpose. It is provided "as is" |
||||
* without express or implied warranty. |
||||
* |
||||
*/ |
||||
|
||||
/* Definitions to make function prototypes manageable */ |
||||
|
||||
#ifndef _XFUNCPROTO_H_ |
||||
#define _XFUNCPROTO_H_ |
||||
|
||||
#ifndef NeedFunctionPrototypes |
||||
#define NeedFunctionPrototypes 1 |
||||
#endif /* NeedFunctionPrototypes */ |
||||
|
||||
#ifndef NeedVarargsPrototypes |
||||
#define NeedVarargsPrototypes 0 |
||||
#endif /* NeedVarargsPrototypes */ |
||||
|
||||
#if NeedFunctionPrototypes |
||||
|
||||
#ifndef NeedNestedPrototypes |
||||
#define NeedNestedPrototypes 1 |
||||
#endif /* NeedNestedPrototypes */ |
||||
|
||||
#ifndef _Xconst |
||||
#define _Xconst const |
||||
#endif /* _Xconst */ |
||||
|
||||
#ifndef NeedWidePrototypes |
||||
#ifdef NARROWPROTO |
||||
#define NeedWidePrototypes 0 |
||||
#else |
||||
#define NeedWidePrototypes 1 /* default to make interropt. easier */ |
||||
#endif |
||||
#endif /* NeedWidePrototypes */ |
||||
|
||||
#endif /* NeedFunctionPrototypes */ |
||||
|
||||
#ifdef __cplusplus |
||||
#define _XFUNCPROTOBEGIN extern "C" { |
||||
#define _XFUNCPROTOEND } |
||||
#endif |
||||
|
||||
#ifndef _XFUNCPROTOBEGIN |
||||
#define _XFUNCPROTOBEGIN |
||||
#define _XFUNCPROTOEND |
||||
#endif /* _XFUNCPROTOBEGIN */ |
||||
|
||||
#endif /* _XFUNCPROTO_H_ */ |
File diff suppressed because it is too large
Load Diff
@ -1,855 +0,0 @@
|
||||
/* $XConsortium: Xutil.h,v 11.73 91/07/30 16:21:37 rws Exp $ */ |
||||
|
||||
/***********************************************************
|
||||
Copyright 1987 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. |
||||
|
||||
******************************************************************/ |
||||
|
||||
#ifndef _XUTIL_H_ |
||||
#define _XUTIL_H_ |
||||
|
||||
/* You must include <X11/Xlib.h> before including this file */ |
||||
|
||||
#if defined(MAC_OSX_TK) |
||||
# define Region XRegion |
||||
#endif |
||||
|
||||
/*
|
||||
* Bitmask returned by XParseGeometry(). Each bit tells if the corresponding |
||||
* value (x, y, width, height) was found in the parsed string. |
||||
*/ |
||||
#define NoValue 0x0000 |
||||
#define XValue 0x0001 |
||||
#define YValue 0x0002 |
||||
#define WidthValue 0x0004 |
||||
#define HeightValue 0x0008 |
||||
#define AllValues 0x000F |
||||
#define XNegative 0x0010 |
||||
#define YNegative 0x0020 |
||||
|
||||
/*
|
||||
* new version containing base_width, base_height, and win_gravity fields; |
||||
* used with WM_NORMAL_HINTS. |
||||
*/ |
||||
typedef struct { |
||||
long flags; /* marks which fields in this structure are defined */ |
||||
int x, y; /* obsolete for new window mgrs, but clients */ |
||||
int width, height; /* should set so old wm's don't mess up */ |
||||
int min_width, min_height; |
||||
int max_width, max_height; |
||||
int width_inc, height_inc; |
||||
struct { |
||||
int x; /* numerator */ |
||||
int y; /* denominator */ |
||||
} min_aspect, max_aspect; |
||||
int base_width, base_height; /* added by ICCCM version 1 */ |
||||
int win_gravity; /* added by ICCCM version 1 */ |
||||
} XSizeHints; |
||||
|
||||
/*
|
||||
* The next block of definitions are for window manager properties that |
||||
* clients and applications use for communication. |
||||
*/ |
||||
|
||||
/* flags argument in size hints */ |
||||
#define USPosition (1L << 0) /* user specified x, y */ |
||||
#define USSize (1L << 1) /* user specified width, height */ |
||||
|
||||
#define PPosition (1L << 2) /* program specified position */ |
||||
#define PSize (1L << 3) /* program specified size */ |
||||
#define PMinSize (1L << 4) /* program specified minimum size */ |
||||
#define PMaxSize (1L << 5) /* program specified maximum size */ |
||||
#define PResizeInc (1L << 6) /* program specified resize increments */ |
||||
#define PAspect (1L << 7) /* program specified min and max aspect ratios */ |
||||
#define PBaseSize (1L << 8) /* program specified base for incrementing */ |
||||
#define PWinGravity (1L << 9) /* program specified window gravity */ |
||||
|
||||
/* obsolete */ |
||||
#define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect) |
||||
|
||||
|
||||
|
||||
typedef struct { |
||||
long flags; /* marks which fields in this structure are defined */ |
||||
Bool input; /* does this application rely on the window manager to
|
||||
get keyboard input? */ |
||||
int initial_state; /* see below */ |
||||
Pixmap icon_pixmap; /* pixmap to be used as icon */ |
||||
Window icon_window; /* window to be used as icon */ |
||||
int icon_x, icon_y; /* initial position of icon */ |
||||
Pixmap icon_mask; /* icon mask bitmap */ |
||||
XID window_group; /* id of related window group */ |
||||
/* this structure may be extended in the future */ |
||||
} XWMHints; |
||||
|
||||
/* definition for flags of XWMHints */ |
||||
|
||||
#define InputHint (1L << 0) |
||||
#define StateHint (1L << 1) |
||||
#define IconPixmapHint (1L << 2) |
||||
#define IconWindowHint (1L << 3) |
||||
#define IconPositionHint (1L << 4) |
||||
#define IconMaskHint (1L << 5) |
||||
#define WindowGroupHint (1L << 6) |
||||
#define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \ |
||||
IconPositionHint|IconMaskHint|WindowGroupHint) |
||||
|
||||
/* definitions for initial window state */ |
||||
#define WithdrawnState 0 /* for windows that are not mapped */ |
||||
#define NormalState 1 /* most applications want to start this way */ |
||||
#define IconicState 3 /* application wants to start as an icon */ |
||||
|
||||
/*
|
||||
* Obsolete states no longer defined by ICCCM |
||||
*/ |
||||
#define DontCareState 0 /* don't know or care */ |
||||
#define ZoomState 2 /* application wants to start zoomed */ |
||||
#define InactiveState 4 /* application believes it is seldom used; */ |
||||
/* some wm's may put it on inactive menu */ |
||||
|
||||
|
||||
/*
|
||||
* new structure for manipulating TEXT properties; used with WM_NAME,
|
||||
* WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND. |
||||
*/ |
||||
typedef struct { |
||||
unsigned char *value; /* same as Property routines */ |
||||
Atom encoding; /* prop type */ |
||||
int format; /* prop data format: 8, 16, or 32 */ |
||||
unsigned long nitems; /* number of data items in value */ |
||||
} XTextProperty; |
||||
|
||||
#define XNoMemory -1 |
||||
#define XLocaleNotSupported -2 |
||||
#define XConverterNotFound -3 |
||||
|
||||
typedef enum { |
||||
XStringStyle, /* STRING */ |
||||
XCompoundTextStyle, /* COMPOUND_TEXT */ |
||||
XTextStyle, /* text in owner's encoding (current locale)*/ |
||||
XStdICCTextStyle /* STRING, else COMPOUND_TEXT */ |
||||
} XICCEncodingStyle; |
||||
|
||||
typedef struct { |
||||
int min_width, min_height; |
||||
int max_width, max_height; |
||||
int width_inc, height_inc; |
||||
} XIconSize; |
||||
|
||||
typedef struct { |
||||
char *res_name; |
||||
char *res_class; |
||||
} XClassHint; |
||||
|
||||
/*
|
||||
* These macros are used to give some sugar to the image routines so that |
||||
* naive people are more comfortable with them. |
||||
*/ |
||||
#define XDestroyImage(ximage) \ |
||||
((*((ximage)->f.destroy_image))((ximage))) |
||||
#define XGetPixel(ximage, x, y) \ |
||||
((*((ximage)->f.get_pixel))((ximage), (x), (y))) |
||||
#define XPutPixel(ximage, x, y, pixel) \ |
||||
((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel))) |
||||
#define XSubImage(ximage, x, y, width, height) \ |
||||
((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height))) |
||||
#define XAddPixel(ximage, value) \ |
||||
((*((ximage)->f.add_pixel))((ximage), (value))) |
||||
|
||||
/*
|
||||
* Compose sequence status structure, used in calling XLookupString. |
||||
*/ |
||||
typedef struct _XComposeStatus { |
||||
XPointer compose_ptr; /* state table pointer */ |
||||
int chars_matched; /* match state */ |
||||
} XComposeStatus; |
||||
|
||||
/*
|
||||
* Keysym macros, used on Keysyms to test for classes of symbols |
||||
*/ |
||||
#define IsKeypadKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_KP_Space) && ((unsigned)(keysym) <= XK_KP_Equal)) |
||||
|
||||
#define IsCursorKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_Home) && ((unsigned)(keysym) < XK_Select)) |
||||
|
||||
#define IsPFKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_KP_F1) && ((unsigned)(keysym) <= XK_KP_F4)) |
||||
|
||||
#define IsFunctionKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_F1) && ((unsigned)(keysym) <= XK_F35)) |
||||
|
||||
#define IsMiscFunctionKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_Select) && ((unsigned)(keysym) <= XK_Break)) |
||||
|
||||
#define IsModifierKey(keysym) \ |
||||
((((unsigned)(keysym) >= XK_Shift_L) && ((unsigned)(keysym) <= XK_Hyper_R)) \
|
||||
|| ((unsigned)(keysym) == XK_Mode_switch) \
|
||||
|| ((unsigned)(keysym) == XK_Num_Lock)) |
||||
/*
|
||||
* opaque reference to Region data type
|
||||
*/ |
||||
typedef struct _XRegion *Region;
|
||||
|
||||
/* Return values from XRectInRegion() */ |
||||
|
||||
#define RectangleOut 0 |
||||
#define RectangleIn 1 |
||||
#define RectanglePart 2 |
||||
|
||||
|
||||
/*
|
||||
* Information used by the visual utility routines to find desired visual |
||||
* type from the many visuals a display may support. |
||||
*/ |
||||
|
||||
typedef struct { |
||||
Visual *visual; |
||||
VisualID visualid; |
||||
int screen; |
||||
int depth; |
||||
#if defined(__cplusplus) || defined(c_plusplus) |
||||
int c_class; /* C++ */ |
||||
#else |
||||
int class; |
||||
#endif |
||||
unsigned long red_mask; |
||||
unsigned long green_mask; |
||||
unsigned long blue_mask; |
||||
int colormap_size; |
||||
int bits_per_rgb; |
||||
} XVisualInfo; |
||||
|
||||
#define VisualNoMask 0x0 |
||||
#define VisualIDMask 0x1 |
||||
#define VisualScreenMask 0x2 |
||||
#define VisualDepthMask 0x4 |
||||
#define VisualClassMask 0x8 |
||||
#define VisualRedMaskMask 0x10 |
||||
#define VisualGreenMaskMask 0x20 |
||||
#define VisualBlueMaskMask 0x40 |
||||
#define VisualColormapSizeMask 0x80 |
||||
#define VisualBitsPerRGBMask 0x100 |
||||
#define VisualAllMask 0x1FF |
||||
|
||||
/*
|
||||
* This defines a window manager property that clients may use to |
||||
* share standard color maps of type RGB_COLOR_MAP: |
||||
*/ |
||||
typedef struct { |
||||
Colormap colormap; |
||||
unsigned long red_max; |
||||
unsigned long red_mult; |
||||
unsigned long green_max; |
||||
unsigned long green_mult; |
||||
unsigned long blue_max; |
||||
unsigned long blue_mult; |
||||
unsigned long base_pixel; |
||||
VisualID visualid; /* added by ICCCM version 1 */ |
||||
XID killid; /* added by ICCCM version 1 */ |
||||
} XStandardColormap; |
||||
|
||||
#define ReleaseByFreeingColormap ((XID) 1L) /* for killid field above */ |
||||
|
||||
|
||||
/*
|
||||
* return codes for XReadBitmapFile and XWriteBitmapFile |
||||
*/ |
||||
#define BitmapSuccess 0 |
||||
#define BitmapOpenFailed 1 |
||||
#define BitmapFileInvalid 2 |
||||
#define BitmapNoMemory 3 |
||||
|
||||
/****************************************************************
|
||||
* |
||||
* Context Management |
||||
* |
||||
****************************************************************/ |
||||
|
||||
|
||||
/* Associative lookup table return codes */ |
||||
|
||||
#define XCSUCCESS 0 /* No error. */ |
||||
#define XCNOMEM 1 /* Out of memory */ |
||||
#define XCNOENT 2 /* No entry in table */ |
||||
|
||||
typedef int XContext; |
||||
|
||||
#define XUniqueContext() ((XContext) XrmUniqueQuark()) |
||||
#define XStringToContext(string) ((XContext) XrmStringToQuark(string)) |
||||
|
||||
_XFUNCPROTOBEGIN |
||||
|
||||
/* The following declarations are alphabetized. */ |
||||
|
||||
extern XClassHint *XAllocClassHint ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern XIconSize *XAllocIconSize ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern XSizeHints *XAllocSizeHints ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern XStandardColormap *XAllocStandardColormap ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern XWMHints *XAllocWMHints ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern void XClipBox( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
XRectangle* /* rect_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Region XCreateRegion( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern char *XDefaultString( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern int XDeleteContext( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XID /* rid */, |
||||
XContext /* context */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XDestroyRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */ |
||||
#endif |
||||
); |
||||
|
||||
extern Bool XEmptyRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */ |
||||
#endif |
||||
); |
||||
|
||||
extern Bool XEqualRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r1 */, |
||||
Region /* r2 */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XFindContext( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XID /* rid */, |
||||
XContext /* context */, |
||||
XPointer* /* data_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetClassHint( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XClassHint* /* class_hints_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetIconSizes( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XIconSize** /* size_list_return */, |
||||
int* /* count_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetNormalHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetRGBColormaps( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XStandardColormap** /* stdcmap_return */, |
||||
int* /* count_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetSizeHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetStandardColormap( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XStandardColormap* /* colormap_return */, |
||||
Atom /* property */
|
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetTextProperty( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* window */, |
||||
XTextProperty* /* text_prop_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
|
||||
extern Status XGetWMClientMachine( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern XWMHints *XGetWMHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */
|
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetWMIconName( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetWMName( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetWMNormalHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints_return */, |
||||
long* /* supplied_return */
|
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetWMSizeHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints_return */, |
||||
long* /* supplied_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetZoomHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* zhints_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XIntersectRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* sra */, |
||||
Region /* srb */, |
||||
Region /* dr_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XLookupString( |
||||
#if NeedFunctionPrototypes |
||||
XKeyEvent* /* event_struct */, |
||||
char* /* buffer_return */, |
||||
int /* bytes_buffer */, |
||||
KeySym* /* keysym_return */, |
||||
XComposeStatus* /* status_in_out */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XMatchVisualInfo( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
int /* screen */, |
||||
int /* depth */, |
||||
int /* class */, |
||||
XVisualInfo* /* vinfo_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XOffsetRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
int /* dx */, |
||||
int /* dy */ |
||||
#endif |
||||
); |
||||
|
||||
extern Bool XPointInRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
int /* x */, |
||||
int /* y */ |
||||
#endif |
||||
); |
||||
|
||||
extern Region XPolygonRegion( |
||||
#if NeedFunctionPrototypes |
||||
XPoint* /* points */, |
||||
int /* n */, |
||||
int /* fill_rule */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XRectInRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
int /* x */, |
||||
int /* y */, |
||||
unsigned int /* width */, |
||||
unsigned int /* height */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XSaveContext( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XID /* rid */, |
||||
XContext /* context */, |
||||
_Xconst char* /* data */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetClassHint( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XClassHint* /* class_hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetIconSizes( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XIconSize* /* size_list */, |
||||
int /* count */
|
||||
#endif |
||||
); |
||||
|
||||
extern void XSetNormalHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetRGBColormaps( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XStandardColormap* /* stdcmaps */, |
||||
int /* count */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetSizeHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetStandardProperties( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
_Xconst char* /* window_name */, |
||||
_Xconst char* /* icon_name */, |
||||
Pixmap /* icon_pixmap */, |
||||
char** /* argv */, |
||||
int /* argc */, |
||||
XSizeHints* /* hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetTextProperty( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XWMHints* /* wm_hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMIconName( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMName( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMNormalHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMProperties( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* window_name */, |
||||
XTextProperty* /* icon_name */, |
||||
char** /* argv */, |
||||
int /* argc */, |
||||
XSizeHints* /* normal_hints */, |
||||
XWMHints* /* wm_hints */, |
||||
XClassHint* /* class_hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XmbSetWMProperties( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
_Xconst char* /* window_name */, |
||||
_Xconst char* /* icon_name */, |
||||
char** /* argv */, |
||||
int /* argc */, |
||||
XSizeHints* /* normal_hints */, |
||||
XWMHints* /* wm_hints */, |
||||
XClassHint* /* class_hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMSizeHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetRegion( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
GC /* gc */, |
||||
Region /* r */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetStandardColormap( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XStandardColormap* /* colormap */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetZoomHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* zhints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XShrinkRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
int /* dx */, |
||||
int /* dy */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSubtractRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* sra */, |
||||
Region /* srb */, |
||||
Region /* dr_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XmbTextListToTextProperty( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
char** /* list */, |
||||
int /* count */, |
||||
XICCEncodingStyle /* style */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XwcTextListToTextProperty( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
wchar_t** /* list */, |
||||
int /* count */, |
||||
XICCEncodingStyle /* style */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XwcFreeStringList( |
||||
#if NeedFunctionPrototypes |
||||
wchar_t** /* list */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XTextPropertyToStringList( |
||||
#if NeedFunctionPrototypes |
||||
XTextProperty* /* text_prop */, |
||||
char*** /* list_return */, |
||||
int* /* count_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XmbTextPropertyToTextList( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XTextProperty* /* text_prop */, |
||||
char*** /* list_return */, |
||||
int* /* count_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XwcTextPropertyToTextList( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XTextProperty* /* text_prop */, |
||||
wchar_t*** /* list_return */, |
||||
int* /* count_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XUnionRectWithRegion( |
||||
#if NeedFunctionPrototypes |
||||
XRectangle* /* rectangle */, |
||||
Region /* src_region */, |
||||
Region /* dest_region_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XUnionRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* sra */, |
||||
Region /* srb */, |
||||
Region /* dr_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XWMGeometry( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
int /* screen_number */, |
||||
_Xconst char* /* user_geometry */, |
||||
_Xconst char* /* default_geometry */, |
||||
unsigned int /* border_width */, |
||||
XSizeHints* /* hints */, |
||||
int* /* x_return */, |
||||
int* /* y_return */, |
||||
int* /* width_return */, |
||||
int* /* height_return */, |
||||
int* /* gravity_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XXorRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* sra */, |
||||
Region /* srb */, |
||||
Region /* dr_return */ |
||||
#endif |
||||
); |
||||
|
||||
_XFUNCPROTOEND |
||||
|
||||
#if defined(MAC_OSX_TK) |
||||
# undef Region |
||||
#endif |
||||
|
||||
#endif /* _XUTIL_H_ */ |
@ -1,79 +0,0 @@
|
||||
/* $XConsortium: cursorfont.h,v 1.2 88/09/06 16:44:27 jim Exp $ */ |
||||
#define XC_num_glyphs 154 |
||||
#define XC_X_cursor 0 |
||||
#define XC_arrow 2 |
||||
#define XC_based_arrow_down 4 |
||||
#define XC_based_arrow_up 6 |
||||
#define XC_boat 8 |
||||
#define XC_bogosity 10 |
||||
#define XC_bottom_left_corner 12 |
||||
#define XC_bottom_right_corner 14 |
||||
#define XC_bottom_side 16 |
||||
#define XC_bottom_tee 18 |
||||
#define XC_box_spiral 20 |
||||
#define XC_center_ptr 22 |
||||
#define XC_circle 24 |
||||
#define XC_clock 26 |
||||
#define XC_coffee_mug 28 |
||||
#define XC_cross 30 |
||||
#define XC_cross_reverse 32 |
||||
#define XC_crosshair 34 |
||||
#define XC_diamond_cross 36 |
||||
#define XC_dot 38 |
||||
#define XC_dotbox 40 |
||||
#define XC_double_arrow 42 |
||||
#define XC_draft_large 44 |
||||
#define XC_draft_small 46 |
||||
#define XC_draped_box 48 |
||||
#define XC_exchange 50 |
||||
#define XC_fleur 52 |
||||
#define XC_gobbler 54 |
||||
#define XC_gumby 56 |
||||
#define XC_hand1 58 |
||||
#define XC_hand2 60 |
||||
#define XC_heart 62 |
||||
#define XC_icon 64 |
||||
#define XC_iron_cross 66 |
||||
#define XC_left_ptr 68 |
||||
#define XC_left_side 70 |
||||
#define XC_left_tee 72 |
||||
#define XC_leftbutton 74 |
||||
#define XC_ll_angle 76 |
||||
#define XC_lr_angle 78 |
||||
#define XC_man 80 |
||||
#define XC_middlebutton 82 |
||||
#define XC_mouse 84 |
||||
#define XC_pencil 86 |
||||
#define XC_pirate 88 |
||||
#define XC_plus 90 |
||||
#define XC_question_arrow 92 |
||||
#define XC_right_ptr 94 |
||||
#define XC_right_side 96 |
||||
#define XC_right_tee 98 |
||||
#define XC_rightbutton 100 |
||||
#define XC_rtl_logo 102 |
||||
#define XC_sailboat 104 |
||||
#define XC_sb_down_arrow 106 |
||||
#define XC_sb_h_double_arrow 108 |
||||
#define XC_sb_left_arrow 110 |
||||
#define XC_sb_right_arrow 112 |
||||
#define XC_sb_up_arrow 114 |
||||
#define XC_sb_v_double_arrow 116 |
||||
#define XC_shuttle 118 |
||||
#define XC_sizing 120 |
||||
#define XC_spider 122 |
||||
#define XC_spraycan 124 |
||||
#define XC_star 126 |
||||
#define XC_target 128 |
||||
#define XC_tcross 130 |
||||
#define XC_top_left_arrow 132 |
||||
#define XC_top_left_corner 134 |
||||
#define XC_top_right_corner 136 |
||||
#define XC_top_side 138 |
||||
#define XC_top_tee 140 |
||||
#define XC_trek 142 |
||||
#define XC_ul_angle 144 |
||||
#define XC_umbrella 146 |
||||
#define XC_ur_angle 148 |
||||
#define XC_watch 150 |
||||
#define XC_xterm 152 |
@ -1,35 +0,0 @@
|
||||
/* $XConsortium: keysym.h,v 1.13 91/03/13 20:09:49 rws Exp $ */ |
||||
|
||||
/***********************************************************
|
||||
Copyright 1987 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. |
||||
|
||||
******************************************************************/ |
||||
|
||||
/* default keysyms */ |
||||
#define XK_MISCELLANY |
||||
#define XK_LATIN1 |
||||
#define XK_LATIN2 |
||||
#define XK_LATIN3 |
||||
#define XK_LATIN4 |
||||
#define XK_GREEK |
||||
|
||||
#include <X11/keysymdef.h> |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,109 +0,0 @@
|
||||
/*
|
||||
* tclPlatDecls.h -- |
||||
* |
||||
* Declarations of platform specific Tcl APIs. |
||||
* |
||||
* Copyright (c) 1998-1999 by Scriptics Corporation. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
#ifndef _TCLPLATDECLS |
||||
#define _TCLPLATDECLS |
||||
|
||||
/*
|
||||
* TCHAR is needed here for win32, so if it is not defined yet do it here. |
||||
* This way, we don't need to include <tchar.h> just for one define. |
||||
*/ |
||||
#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(_TCHAR_DEFINED) |
||||
# if defined(_UNICODE) |
||||
typedef wchar_t TCHAR; |
||||
# else |
||||
typedef char TCHAR; |
||||
# endif |
||||
# define _TCHAR_DEFINED |
||||
#endif |
||||
|
||||
/* !BEGIN!: Do not edit below this line. */ |
||||
|
||||
/*
|
||||
* Exported function declarations: |
||||
*/ |
||||
|
||||
#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ |
||||
/* 0 */ |
||||
EXTERN TCHAR * Tcl_WinUtfToTChar _ANSI_ARGS_((CONST char *str, |
||||
int len, Tcl_DString *dsPtr)); |
||||
/* 1 */ |
||||
EXTERN char * Tcl_WinTCharToUtf _ANSI_ARGS_((CONST TCHAR *str, |
||||
int len, Tcl_DString *dsPtr)); |
||||
#endif /* WIN */ |
||||
#ifdef MAC_OSX_TCL /* MACOSX */ |
||||
/* 0 */ |
||||
EXTERN int Tcl_MacOSXOpenBundleResources _ANSI_ARGS_(( |
||||
Tcl_Interp *interp, CONST char *bundleName, |
||||
int hasResourceFile, int maxPathLen, |
||||
char *libraryPath)); |
||||
/* 1 */ |
||||
EXTERN int Tcl_MacOSXOpenVersionedBundleResources _ANSI_ARGS_(( |
||||
Tcl_Interp *interp, CONST char *bundleName, |
||||
CONST char *bundleVersion, |
||||
int hasResourceFile, int maxPathLen, |
||||
char *libraryPath)); |
||||
#endif /* MACOSX */ |
||||
|
||||
typedef struct TclPlatStubs { |
||||
int magic; |
||||
struct TclPlatStubHooks *hooks; |
||||
|
||||
#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ |
||||
TCHAR * (*tcl_WinUtfToTChar) _ANSI_ARGS_((CONST char *str, int len, Tcl_DString *dsPtr)); /* 0 */ |
||||
char * (*tcl_WinTCharToUtf) _ANSI_ARGS_((CONST TCHAR *str, int len, Tcl_DString *dsPtr)); /* 1 */ |
||||
#endif /* WIN */ |
||||
#ifdef MAC_OSX_TCL /* MACOSX */ |
||||
int (*tcl_MacOSXOpenBundleResources) _ANSI_ARGS_((Tcl_Interp *interp, CONST char *bundleName, int hasResourceFile, int maxPathLen, char *libraryPath)); /* 0 */ |
||||
int (*tcl_MacOSXOpenVersionedBundleResources) _ANSI_ARGS_((Tcl_Interp *interp, CONST char *bundleName, CONST char *bundleVersion, int hasResourceFile, int maxPathLen, char *libraryPath)); /* 1 */ |
||||
#endif /* MACOSX */ |
||||
} TclPlatStubs; |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
extern TclPlatStubs *tclPlatStubsPtr; |
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) |
||||
|
||||
/*
|
||||
* Inline function declarations: |
||||
*/ |
||||
|
||||
#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ |
||||
#ifndef Tcl_WinUtfToTChar |
||||
#define Tcl_WinUtfToTChar \ |
||||
(tclPlatStubsPtr->tcl_WinUtfToTChar) /* 0 */ |
||||
#endif |
||||
#ifndef Tcl_WinTCharToUtf |
||||
#define Tcl_WinTCharToUtf \ |
||||
(tclPlatStubsPtr->tcl_WinTCharToUtf) /* 1 */ |
||||
#endif |
||||
#endif /* WIN */ |
||||
#ifdef MAC_OSX_TCL /* MACOSX */ |
||||
#ifndef Tcl_MacOSXOpenBundleResources |
||||
#define Tcl_MacOSXOpenBundleResources \ |
||||
(tclPlatStubsPtr->tcl_MacOSXOpenBundleResources) /* 0 */ |
||||
#endif |
||||
#ifndef Tcl_MacOSXOpenVersionedBundleResources |
||||
#define Tcl_MacOSXOpenVersionedBundleResources \ |
||||
(tclPlatStubsPtr->tcl_MacOSXOpenVersionedBundleResources) /* 1 */ |
||||
#endif |
||||
#endif /* MACOSX */ |
||||
|
||||
#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ |
||||
|
||||
/* !END!: Do not edit above this line. */ |
||||
|
||||
#endif /* _TCLPLATDECLS */ |
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,205 +0,0 @@
|
||||
/*
|
||||
* tkPlatDecls.h -- |
||||
* |
||||
* Declarations of functions in the platform-specific public Tcl API. |
||||
* |
||||
* Copyright (c) 1998-1999 by Scriptics Corporation. |
||||
* |
||||
* See the file "license.terms" for information on usage and redistribution |
||||
* of this file, and for a DISCLAIMER OF ALL WARRANTIES. |
||||
*/ |
||||
|
||||
#ifndef _TKPLATDECLS |
||||
#define _TKPLATDECLS |
||||
|
||||
#ifdef BUILD_tk |
||||
#undef TCL_STORAGE_CLASS |
||||
#define TCL_STORAGE_CLASS DLLEXPORT |
||||
#endif |
||||
|
||||
/*
|
||||
* WARNING: This file is automatically generated by the tools/genStubs.tcl |
||||
* script. Any modifications to the function declarations below should be made |
||||
* in the generic/tk.decls script. |
||||
*/ |
||||
|
||||
/* !BEGIN!: Do not edit below this line. */ |
||||
|
||||
/*
|
||||
* Exported function declarations: |
||||
*/ |
||||
|
||||
#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ |
||||
/* 0 */ |
||||
EXTERN Window Tk_AttachHWND _ANSI_ARGS_((Tk_Window tkwin, |
||||
HWND hwnd)); |
||||
/* 1 */ |
||||
EXTERN HINSTANCE Tk_GetHINSTANCE _ANSI_ARGS_((void)); |
||||
/* 2 */ |
||||
EXTERN HWND Tk_GetHWND _ANSI_ARGS_((Window window)); |
||||
/* 3 */ |
||||
EXTERN Tk_Window Tk_HWNDToWindow _ANSI_ARGS_((HWND hwnd)); |
||||
/* 4 */ |
||||
EXTERN void Tk_PointerEvent _ANSI_ARGS_((HWND hwnd, int x, int y)); |
||||
/* 5 */ |
||||
EXTERN int Tk_TranslateWinEvent _ANSI_ARGS_((HWND hwnd, |
||||
UINT message, WPARAM wParam, LPARAM lParam, |
||||
LRESULT *result)); |
||||
#endif /* WIN */ |
||||
#ifdef MAC_OSX_TK /* AQUA */ |
||||
/* 0 */ |
||||
EXTERN void Tk_MacOSXSetEmbedHandler _ANSI_ARGS_(( |
||||
Tk_MacOSXEmbedRegisterWinProc *registerWinProcPtr, |
||||
Tk_MacOSXEmbedGetGrafPortProc *getPortProcPtr, |
||||
Tk_MacOSXEmbedMakeContainerExistProc *containerExistProcPtr, |
||||
Tk_MacOSXEmbedGetClipProc *getClipProc, |
||||
Tk_MacOSXEmbedGetOffsetInParentProc *getOffsetProc)); |
||||
/* 1 */ |
||||
EXTERN void Tk_MacOSXTurnOffMenus _ANSI_ARGS_((void)); |
||||
/* 2 */ |
||||
EXTERN void Tk_MacOSXTkOwnsCursor _ANSI_ARGS_((int tkOwnsIt)); |
||||
/* 3 */ |
||||
EXTERN void TkMacOSXInitMenus _ANSI_ARGS_((Tcl_Interp *interp)); |
||||
/* 4 */ |
||||
EXTERN void TkMacOSXInitAppleEvents _ANSI_ARGS_(( |
||||
Tcl_Interp *interp)); |
||||
/* 5 */ |
||||
EXTERN void TkGenWMConfigureEvent _ANSI_ARGS_((Tk_Window tkwin, |
||||
int x, int y, int width, int height, |
||||
int flags)); |
||||
/* 6 */ |
||||
EXTERN void TkMacOSXInvalClipRgns _ANSI_ARGS_((Tk_Window tkwin)); |
||||
/* 7 */ |
||||
EXTERN GWorldPtr TkMacOSXGetDrawablePort _ANSI_ARGS_(( |
||||
Drawable drawable)); |
||||
/* 8 */ |
||||
EXTERN ControlRef TkMacOSXGetRootControl _ANSI_ARGS_(( |
||||
Drawable drawable)); |
||||
/* 9 */ |
||||
EXTERN void Tk_MacOSXSetupTkNotifier _ANSI_ARGS_((void)); |
||||
/* 10 */ |
||||
EXTERN int Tk_MacOSXIsAppInFront _ANSI_ARGS_((void)); |
||||
#endif /* AQUA */ |
||||
|
||||
typedef struct TkPlatStubs { |
||||
int magic; |
||||
struct TkPlatStubHooks *hooks; |
||||
|
||||
#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ |
||||
Window (*tk_AttachHWND) _ANSI_ARGS_((Tk_Window tkwin, HWND hwnd)); /* 0 */ |
||||
HINSTANCE (*tk_GetHINSTANCE) _ANSI_ARGS_((void)); /* 1 */ |
||||
HWND (*tk_GetHWND) _ANSI_ARGS_((Window window)); /* 2 */ |
||||
Tk_Window (*tk_HWNDToWindow) _ANSI_ARGS_((HWND hwnd)); /* 3 */ |
||||
void (*tk_PointerEvent) _ANSI_ARGS_((HWND hwnd, int x, int y)); /* 4 */ |
||||
int (*tk_TranslateWinEvent) _ANSI_ARGS_((HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT *result)); /* 5 */ |
||||
#endif /* WIN */ |
||||
#ifdef MAC_OSX_TK /* AQUA */ |
||||
void (*tk_MacOSXSetEmbedHandler) _ANSI_ARGS_((Tk_MacOSXEmbedRegisterWinProc *registerWinProcPtr, Tk_MacOSXEmbedGetGrafPortProc *getPortProcPtr, Tk_MacOSXEmbedMakeContainerExistProc *containerExistProcPtr, Tk_MacOSXEmbedGetClipProc *getClipProc, Tk_MacOSXEmbedGetOffsetInParentProc *getOffsetProc)); /* 0 */ |
||||
void (*tk_MacOSXTurnOffMenus) _ANSI_ARGS_((void)); /* 1 */ |
||||
void (*tk_MacOSXTkOwnsCursor) _ANSI_ARGS_((int tkOwnsIt)); /* 2 */ |
||||
void (*tkMacOSXInitMenus) _ANSI_ARGS_((Tcl_Interp *interp)); /* 3 */ |
||||
void (*tkMacOSXInitAppleEvents) _ANSI_ARGS_((Tcl_Interp *interp)); /* 4 */ |
||||
void (*tkGenWMConfigureEvent) _ANSI_ARGS_((Tk_Window tkwin, int x, int y, int width, int height, int flags)); /* 5 */ |
||||
void (*tkMacOSXInvalClipRgns) _ANSI_ARGS_((Tk_Window tkwin)); /* 6 */ |
||||
GWorldPtr (*tkMacOSXGetDrawablePort) _ANSI_ARGS_((Drawable drawable)); /* 7 */ |
||||
ControlRef (*tkMacOSXGetRootControl) _ANSI_ARGS_((Drawable drawable)); /* 8 */ |
||||
void (*tk_MacOSXSetupTkNotifier) _ANSI_ARGS_((void)); /* 9 */ |
||||
int (*tk_MacOSXIsAppInFront) _ANSI_ARGS_((void)); /* 10 */ |
||||
#endif /* AQUA */ |
||||
} TkPlatStubs; |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
extern TkPlatStubs *tkPlatStubsPtr; |
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) |
||||
|
||||
/*
|
||||
* Inline function declarations: |
||||
*/ |
||||
|
||||
#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ |
||||
#ifndef Tk_AttachHWND |
||||
#define Tk_AttachHWND \ |
||||
(tkPlatStubsPtr->tk_AttachHWND) /* 0 */ |
||||
#endif |
||||
#ifndef Tk_GetHINSTANCE |
||||
#define Tk_GetHINSTANCE \ |
||||
(tkPlatStubsPtr->tk_GetHINSTANCE) /* 1 */ |
||||
#endif |
||||
#ifndef Tk_GetHWND |
||||
#define Tk_GetHWND \ |
||||
(tkPlatStubsPtr->tk_GetHWND) /* 2 */ |
||||
#endif |
||||
#ifndef Tk_HWNDToWindow |
||||
#define Tk_HWNDToWindow \ |
||||
(tkPlatStubsPtr->tk_HWNDToWindow) /* 3 */ |
||||
#endif |
||||
#ifndef Tk_PointerEvent |
||||
#define Tk_PointerEvent \ |
||||
(tkPlatStubsPtr->tk_PointerEvent) /* 4 */ |
||||
#endif |
||||
#ifndef Tk_TranslateWinEvent |
||||
#define Tk_TranslateWinEvent \ |
||||
(tkPlatStubsPtr->tk_TranslateWinEvent) /* 5 */ |
||||
#endif |
||||
#endif /* WIN */ |
||||
#ifdef MAC_OSX_TK /* AQUA */ |
||||
#ifndef Tk_MacOSXSetEmbedHandler |
||||
#define Tk_MacOSXSetEmbedHandler \ |
||||
(tkPlatStubsPtr->tk_MacOSXSetEmbedHandler) /* 0 */ |
||||
#endif |
||||
#ifndef Tk_MacOSXTurnOffMenus |
||||
#define Tk_MacOSXTurnOffMenus \ |
||||
(tkPlatStubsPtr->tk_MacOSXTurnOffMenus) /* 1 */ |
||||
#endif |
||||
#ifndef Tk_MacOSXTkOwnsCursor |
||||
#define Tk_MacOSXTkOwnsCursor \ |
||||
(tkPlatStubsPtr->tk_MacOSXTkOwnsCursor) /* 2 */ |
||||
#endif |
||||
#ifndef TkMacOSXInitMenus |
||||
#define TkMacOSXInitMenus \ |
||||
(tkPlatStubsPtr->tkMacOSXInitMenus) /* 3 */ |
||||
#endif |
||||
#ifndef TkMacOSXInitAppleEvents |
||||
#define TkMacOSXInitAppleEvents \ |
||||
(tkPlatStubsPtr->tkMacOSXInitAppleEvents) /* 4 */ |
||||
#endif |
||||
#ifndef TkGenWMConfigureEvent |
||||
#define TkGenWMConfigureEvent \ |
||||
(tkPlatStubsPtr->tkGenWMConfigureEvent) /* 5 */ |
||||
#endif |
||||
#ifndef TkMacOSXInvalClipRgns |
||||
#define TkMacOSXInvalClipRgns \ |
||||
(tkPlatStubsPtr->tkMacOSXInvalClipRgns) /* 6 */ |
||||
#endif |
||||
#ifndef TkMacOSXGetDrawablePort |
||||
#define TkMacOSXGetDrawablePort \ |
||||
(tkPlatStubsPtr->tkMacOSXGetDrawablePort) /* 7 */ |
||||
#endif |
||||
#ifndef TkMacOSXGetRootControl |
||||
#define TkMacOSXGetRootControl \ |
||||
(tkPlatStubsPtr->tkMacOSXGetRootControl) /* 8 */ |
||||
#endif |
||||
#ifndef Tk_MacOSXSetupTkNotifier |
||||
#define Tk_MacOSXSetupTkNotifier \ |
||||
(tkPlatStubsPtr->tk_MacOSXSetupTkNotifier) /* 9 */ |
||||
#endif |
||||
#ifndef Tk_MacOSXIsAppInFront |
||||
#define Tk_MacOSXIsAppInFront \ |
||||
(tkPlatStubsPtr->tk_MacOSXIsAppInFront) /* 10 */ |
||||
#endif |
||||
#endif /* AQUA */ |
||||
|
||||
#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ |
||||
|
||||
/* !END!: Do not edit above this line. */ |
||||
|
||||
#undef TCL_STORAGE_CLASS |
||||
#define TCL_STORAGE_CLASS DLLIMPORT |
||||
|
||||
#endif /* _TKPLATDECLS */ |
@ -1,677 +0,0 @@
|
||||
/*
|
||||
* $XConsortium: X.h,v 1.66 88/09/06 15:55:56 jim Exp $ |
||||
*/ |
||||
|
||||
/* Definitions for the X window system likely to be used by applications */ |
||||
|
||||
#ifndef X_H |
||||
#define X_H |
||||
|
||||
/***********************************************************
|
||||
Copyright 1987 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. |
||||
|
||||
******************************************************************/ |
||||
#define X_PROTOCOL 11 /* current protocol version */ |
||||
#define X_PROTOCOL_REVISION 0 /* current minor version */ |
||||
|
||||
#if defined(MAC_OSX_TK) |
||||
# define Cursor XCursor |
||||
# define Region XRegion |
||||
#endif |
||||
|
||||
/* Resources */ |
||||
|
||||
#ifdef _WIN64 |
||||
typedef __int64 XID; |
||||
#else |
||||
typedef unsigned long XID; |
||||
#endif |
||||
|
||||
typedef XID Window; |
||||
typedef XID Drawable; |
||||
typedef XID Font; |
||||
typedef XID Pixmap; |
||||
typedef XID Cursor; |
||||
typedef XID Colormap; |
||||
typedef XID GContext; |
||||
typedef XID KeySym; |
||||
|
||||
typedef unsigned long Mask; |
||||
|
||||
typedef unsigned long Atom; |
||||
|
||||
typedef unsigned long VisualID; |
||||
|
||||
typedef unsigned long Time; |
||||
|
||||
typedef unsigned long KeyCode; /* In order to use IME, the Macintosh needs
|
||||
* to pack 3 bytes into the keyCode field in |
||||
* the XEvent. In the real X.h, a KeyCode is |
||||
* defined as a short, which wouldn't be big |
||||
* enough. */ |
||||
|
||||
/*****************************************************************
|
||||
* RESERVED RESOURCE AND CONSTANT DEFINITIONS |
||||
*****************************************************************/ |
||||
|
||||
#define None 0L /* universal null resource or null atom */ |
||||
|
||||
#define ParentRelative 1L /* background pixmap in CreateWindow |
||||
and ChangeWindowAttributes */ |
||||
|
||||
#define CopyFromParent 0L /* border pixmap in CreateWindow |
||||
and ChangeWindowAttributes |
||||
special VisualID and special window |
||||
class passed to CreateWindow */ |
||||
|
||||
#define PointerWindow 0L /* destination window in SendEvent */ |
||||
#define InputFocus 1L /* destination window in SendEvent */ |
||||
|
||||
#define PointerRoot 1L /* focus window in SetInputFocus */ |
||||
|
||||
#define AnyPropertyType 0L /* special Atom, passed to GetProperty */ |
||||
|
||||
#define AnyKey 0L /* special Key Code, passed to GrabKey */ |
||||
|
||||
#define AnyButton 0L /* special Button Code, passed to GrabButton */ |
||||
|
||||
#define AllTemporary 0L /* special Resource ID passed to KillClient */ |
||||
|
||||
#define CurrentTime 0L /* special Time */ |
||||
|
||||
#define NoSymbol 0L /* special KeySym */ |
||||
|
||||
/*****************************************************************
|
||||
* EVENT DEFINITIONS |
||||
*****************************************************************/ |
||||
|
||||
/* Input Event Masks. Used as event-mask window attribute and as arguments
|
||||
to Grab requests. Not to be confused with event names. */ |
||||
|
||||
#define NoEventMask 0L |
||||
#define KeyPressMask (1L<<0) |
||||
#define KeyReleaseMask (1L<<1) |
||||
#define ButtonPressMask (1L<<2) |
||||
#define ButtonReleaseMask (1L<<3) |
||||
#define EnterWindowMask (1L<<4) |
||||
#define LeaveWindowMask (1L<<5) |
||||
#define PointerMotionMask (1L<<6) |
||||
#define PointerMotionHintMask (1L<<7) |
||||
#define Button1MotionMask (1L<<8) |
||||
#define Button2MotionMask (1L<<9) |
||||
#define Button3MotionMask (1L<<10) |
||||
#define Button4MotionMask (1L<<11) |
||||
#define Button5MotionMask (1L<<12) |
||||
#define ButtonMotionMask (1L<<13) |
||||
#define KeymapStateMask (1L<<14) |
||||
#define ExposureMask (1L<<15) |
||||
#define VisibilityChangeMask (1L<<16) |
||||
#define StructureNotifyMask (1L<<17) |
||||
#define ResizeRedirectMask (1L<<18) |
||||
#define SubstructureNotifyMask (1L<<19) |
||||
#define SubstructureRedirectMask (1L<<20) |
||||
#define FocusChangeMask (1L<<21) |
||||
#define PropertyChangeMask (1L<<22) |
||||
#define ColormapChangeMask (1L<<23) |
||||
#define OwnerGrabButtonMask (1L<<24) |
||||
|
||||
/* Event names. Used in "type" field in XEvent structures. Not to be
|
||||
confused with event masks above. They start from 2 because 0 and 1 |
||||
are reserved in the protocol for errors and replies. */ |
||||
|
||||
#define KeyPress 2 |
||||
#define KeyRelease 3 |
||||
#define ButtonPress 4 |
||||
#define ButtonRelease 5 |
||||
#define MotionNotify 6 |
||||
#define EnterNotify 7 |
||||
#define LeaveNotify 8 |
||||
#define FocusIn 9 |
||||
#define FocusOut 10 |
||||
#define KeymapNotify 11 |
||||
#define Expose 12 |
||||
#define GraphicsExpose 13 |
||||
#define NoExpose 14 |
||||
#define VisibilityNotify 15 |
||||
#define CreateNotify 16 |
||||
#define DestroyNotify 17 |
||||
#define UnmapNotify 18 |
||||
#define MapNotify 19 |
||||
#define MapRequest 20 |
||||
#define ReparentNotify 21 |
||||
#define ConfigureNotify 22 |
||||
#define ConfigureRequest 23 |
||||
#define GravityNotify 24 |
||||
#define ResizeRequest 25 |
||||
#define CirculateNotify 26 |
||||
#define CirculateRequest 27 |
||||
#define PropertyNotify 28 |
||||
#define SelectionClear 29 |
||||
#define SelectionRequest 30 |
||||
#define SelectionNotify 31 |
||||
#define ColormapNotify 32 |
||||
#define ClientMessage 33 |
||||
#define MappingNotify 34 |
||||
#define LASTEvent 35 /* must be bigger than any event # */ |
||||
|
||||
|
||||
/* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer,
|
||||
state in various key-, mouse-, and button-related events. */ |
||||
|
||||
#define ShiftMask (1<<0) |
||||
#define LockMask (1<<1) |
||||
#define ControlMask (1<<2) |
||||
#define Mod1Mask (1<<3) |
||||
#define Mod2Mask (1<<4) |
||||
#define Mod3Mask (1<<5) |
||||
#define Mod4Mask (1<<6) |
||||
#define Mod5Mask (1<<7) |
||||
|
||||
/* modifier names. Used to build a SetModifierMapping request or
|
||||
to read a GetModifierMapping request. These correspond to the |
||||
masks defined above. */ |
||||
#define ShiftMapIndex 0 |
||||
#define LockMapIndex 1 |
||||
#define ControlMapIndex 2 |
||||
#define Mod1MapIndex 3 |
||||
#define Mod2MapIndex 4 |
||||
#define Mod3MapIndex 5 |
||||
#define Mod4MapIndex 6 |
||||
#define Mod5MapIndex 7 |
||||
|
||||
|
||||
/* button masks. Used in same manner as Key masks above. Not to be confused
|
||||
with button names below. */ |
||||
|
||||
#define Button1Mask (1<<8) |
||||
#define Button2Mask (1<<9) |
||||
#define Button3Mask (1<<10) |
||||
#define Button4Mask (1<<11) |
||||
#define Button5Mask (1<<12) |
||||
|
||||
#define AnyModifier (1<<15) /* used in GrabButton, GrabKey */ |
||||
|
||||
|
||||
/* button names. Used as arguments to GrabButton and as detail in ButtonPress
|
||||
and ButtonRelease events. Not to be confused with button masks above. |
||||
Note that 0 is already defined above as "AnyButton". */ |
||||
|
||||
#define Button1 1 |
||||
#define Button2 2 |
||||
#define Button3 3 |
||||
#define Button4 4 |
||||
#define Button5 5 |
||||
|
||||
/* Notify modes */ |
||||
|
||||
#define NotifyNormal 0 |
||||
#define NotifyGrab 1 |
||||
#define NotifyUngrab 2 |
||||
#define NotifyWhileGrabbed 3 |
||||
|
||||
#define NotifyHint 1 /* for MotionNotify events */ |
||||
|
||||
/* Notify detail */ |
||||
|
||||
#define NotifyAncestor 0 |
||||
#define NotifyVirtual 1 |
||||
#define NotifyInferior 2 |
||||
#define NotifyNonlinear 3 |
||||
#define NotifyNonlinearVirtual 4 |
||||
#define NotifyPointer 5 |
||||
#define NotifyPointerRoot 6 |
||||
#define NotifyDetailNone 7 |
||||
|
||||
/* Visibility notify */ |
||||
|
||||
#define VisibilityUnobscured 0 |
||||
#define VisibilityPartiallyObscured 1 |
||||
#define VisibilityFullyObscured 2 |
||||
|
||||
/* Circulation request */ |
||||
|
||||
#define PlaceOnTop 0 |
||||
#define PlaceOnBottom 1 |
||||
|
||||
/* protocol families */ |
||||
|
||||
#define FamilyInternet 0 |
||||
#define FamilyDECnet 1 |
||||
#define FamilyChaos 2 |
||||
|
||||
/* Property notification */ |
||||
|
||||
#define PropertyNewValue 0 |
||||
#define PropertyDelete 1 |
||||
|
||||
/* Color Map notification */ |
||||
|
||||
#define ColormapUninstalled 0 |
||||
#define ColormapInstalled 1 |
||||
|
||||
/* GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes */ |
||||
|
||||
#define GrabModeSync 0 |
||||
#define GrabModeAsync 1 |
||||
|
||||
/* GrabPointer, GrabKeyboard reply status */ |
||||
|
||||
#define GrabSuccess 0 |
||||
#define AlreadyGrabbed 1 |
||||
#define GrabInvalidTime 2 |
||||
#define GrabNotViewable 3 |
||||
#define GrabFrozen 4 |
||||
|
||||
/* AllowEvents modes */ |
||||
|
||||
#define AsyncPointer 0 |
||||
#define SyncPointer 1 |
||||
#define ReplayPointer 2 |
||||
#define AsyncKeyboard 3 |
||||
#define SyncKeyboard 4 |
||||
#define ReplayKeyboard 5 |
||||
#define AsyncBoth 6 |
||||
#define SyncBoth 7 |
||||
|
||||
/* Used in SetInputFocus, GetInputFocus */ |
||||
|
||||
#define RevertToNone (int)None |
||||
#define RevertToPointerRoot (int)PointerRoot |
||||
#define RevertToParent 2 |
||||
|
||||
/*****************************************************************
|
||||
* ERROR CODES |
||||
*****************************************************************/ |
||||
|
||||
#define Success 0 /* everything's okay */ |
||||
#define BadRequest 1 /* bad request code */ |
||||
#define BadValue 2 /* int parameter out of range */ |
||||
#define BadWindow 3 /* parameter not a Window */ |
||||
#define BadPixmap 4 /* parameter not a Pixmap */ |
||||
#define BadAtom 5 /* parameter not an Atom */ |
||||
#define BadCursor 6 /* parameter not a Cursor */ |
||||
#define BadFont 7 /* parameter not a Font */ |
||||
#define BadMatch 8 /* parameter mismatch */ |
||||
#define BadDrawable 9 /* parameter not a Pixmap or Window */ |
||||
#define BadAccess 10 /* depending on context: |
||||
- key/button already grabbed |
||||
- attempt to free an illegal |
||||
cmap entry |
||||
- attempt to store into a read-only |
||||
color map entry. |
||||
- attempt to modify the access control |
||||
list from other than the local host. |
||||
*/ |
||||
#define BadAlloc 11 /* insufficient resources */ |
||||
#define BadColor 12 /* no such colormap */ |
||||
#define BadGC 13 /* parameter not a GC */ |
||||
#define BadIDChoice 14 /* choice not in range or already used */ |
||||
#define BadName 15 /* font or color name doesn't exist */ |
||||
#define BadLength 16 /* Request length incorrect */ |
||||
#define BadImplementation 17 /* server is defective */ |
||||
|
||||
#define FirstExtensionError 128 |
||||
#define LastExtensionError 255 |
||||
|
||||
/*****************************************************************
|
||||
* WINDOW DEFINITIONS |
||||
*****************************************************************/ |
||||
|
||||
/* Window classes used by CreateWindow */ |
||||
/* Note that CopyFromParent is already defined as 0 above */ |
||||
|
||||
#define InputOutput 1 |
||||
#define InputOnly 2 |
||||
|
||||
/* Window attributes for CreateWindow and ChangeWindowAttributes */ |
||||
|
||||
#define CWBackPixmap (1L<<0) |
||||
#define CWBackPixel (1L<<1) |
||||
#define CWBorderPixmap (1L<<2) |
||||
#define CWBorderPixel (1L<<3) |
||||
#define CWBitGravity (1L<<4) |
||||
#define CWWinGravity (1L<<5) |
||||
#define CWBackingStore (1L<<6) |
||||
#define CWBackingPlanes (1L<<7) |
||||
#define CWBackingPixel (1L<<8) |
||||
#define CWOverrideRedirect (1L<<9) |
||||
#define CWSaveUnder (1L<<10) |
||||
#define CWEventMask (1L<<11) |
||||
#define CWDontPropagate (1L<<12) |
||||
#define CWColormap (1L<<13) |
||||
#define CWCursor (1L<<14) |
||||
|
||||
/* ConfigureWindow structure */ |
||||
|
||||
#define CWX (1<<0) |
||||
#define CWY (1<<1) |
||||
#define CWWidth (1<<2) |
||||
#define CWHeight (1<<3) |
||||
#define CWBorderWidth (1<<4) |
||||
#define CWSibling (1<<5) |
||||
#define CWStackMode (1<<6) |
||||
|
||||
|
||||
/* Bit Gravity */ |
||||
|
||||
#define ForgetGravity 0 |
||||
#define NorthWestGravity 1 |
||||
#define NorthGravity 2 |
||||
#define NorthEastGravity 3 |
||||
#define WestGravity 4 |
||||
#define CenterGravity 5 |
||||
#define EastGravity 6 |
||||
#define SouthWestGravity 7 |
||||
#define SouthGravity 8 |
||||
#define SouthEastGravity 9 |
||||
#define StaticGravity 10 |
||||
|
||||
/* Window gravity + bit gravity above */ |
||||
|
||||
#define UnmapGravity 0 |
||||
|
||||
/* Used in CreateWindow for backing-store hint */ |
||||
|
||||
#define NotUseful 0 |
||||
#define WhenMapped 1 |
||||
#define Always 2 |
||||
|
||||
/* Used in GetWindowAttributes reply */ |
||||
|
||||
#define IsUnmapped 0 |
||||
#define IsUnviewable 1 |
||||
#define IsViewable 2 |
||||
|
||||
/* Used in ChangeSaveSet */ |
||||
|
||||
#define SetModeInsert 0 |
||||
#define SetModeDelete 1 |
||||
|
||||
/* Used in ChangeCloseDownMode */ |
||||
|
||||
#define DestroyAll 0 |
||||
#define RetainPermanent 1 |
||||
#define RetainTemporary 2 |
||||
|
||||
/* Window stacking method (in configureWindow) */ |
||||
|
||||
#define Above 0 |
||||
#define Below 1 |
||||
#define TopIf 2 |
||||
#define BottomIf 3 |
||||
#define Opposite 4 |
||||
|
||||
/* Circulation direction */ |
||||
|
||||
#define RaiseLowest 0 |
||||
#define LowerHighest 1 |
||||
|
||||
/* Property modes */ |
||||
|
||||
#define PropModeReplace 0 |
||||
#define PropModePrepend 1 |
||||
#define PropModeAppend 2 |
||||
|
||||
/*****************************************************************
|
||||
* GRAPHICS DEFINITIONS |
||||
*****************************************************************/ |
||||
|
||||
/* graphics functions, as in GC.alu */ |
||||
|
||||
#define GXclear 0x0 /* 0 */ |
||||
#define GXand 0x1 /* src AND dst */ |
||||
#define GXandReverse 0x2 /* src AND NOT dst */ |
||||
#define GXcopy 0x3 /* src */ |
||||
#define GXandInverted 0x4 /* NOT src AND dst */ |
||||
#define GXnoop 0x5 /* dst */ |
||||
#define GXxor 0x6 /* src XOR dst */ |
||||
#define GXor 0x7 /* src OR dst */ |
||||
#define GXnor 0x8 /* NOT src AND NOT dst */ |
||||
#define GXequiv 0x9 /* NOT src XOR dst */ |
||||
#define GXinvert 0xa /* NOT dst */ |
||||
#define GXorReverse 0xb /* src OR NOT dst */ |
||||
#define GXcopyInverted 0xc /* NOT src */ |
||||
#define GXorInverted 0xd /* NOT src OR dst */ |
||||
#define GXnand 0xe /* NOT src OR NOT dst */ |
||||
#define GXset 0xf /* 1 */ |
||||
|
||||
/* LineStyle */ |
||||
|
||||
#define LineSolid 0 |
||||
#define LineOnOffDash 1 |
||||
#define LineDoubleDash 2 |
||||
|
||||
/* capStyle */ |
||||
|
||||
#define CapNotLast 0 |
||||
#define CapButt 1 |
||||
#define CapRound 2 |
||||
#define CapProjecting 3 |
||||
|
||||
/* joinStyle */ |
||||
|
||||
#define JoinMiter 0 |
||||
#define JoinRound 1 |
||||
#define JoinBevel 2 |
||||
|
||||
/* fillStyle */ |
||||
|
||||
#define FillSolid 0 |
||||
#define FillTiled 1 |
||||
#define FillStippled 2 |
||||
#define FillOpaqueStippled 3 |
||||
|
||||
/* fillRule */ |
||||
|
||||
#define EvenOddRule 0 |
||||
#define WindingRule 1 |
||||
|
||||
/* subwindow mode */ |
||||
|
||||
#define ClipByChildren 0 |
||||
#define IncludeInferiors 1 |
||||
|
||||
/* SetClipRectangles ordering */ |
||||
|
||||
#define Unsorted 0 |
||||
#define YSorted 1 |
||||
#define YXSorted 2 |
||||
#define YXBanded 3 |
||||
|
||||
/* CoordinateMode for drawing routines */ |
||||
|
||||
#define CoordModeOrigin 0 /* relative to the origin */ |
||||
#define CoordModePrevious 1 /* relative to previous point */ |
||||
|
||||
/* Polygon shapes */ |
||||
|
||||
#define Complex 0 /* paths may intersect */ |
||||
#define Nonconvex 1 /* no paths intersect, but not convex */ |
||||
#define Convex 2 /* wholly convex */ |
||||
|
||||
/* Arc modes for PolyFillArc */ |
||||
|
||||
#define ArcChord 0 /* join endpoints of arc */ |
||||
#define ArcPieSlice 1 /* join endpoints to center of arc */ |
||||
|
||||
/* GC components: masks used in CreateGC, CopyGC, ChangeGC, OR'ed into
|
||||
GC.stateChanges */ |
||||
|
||||
#define GCFunction (1L<<0) |
||||
#define GCPlaneMask (1L<<1) |
||||
#define GCForeground (1L<<2) |
||||
#define GCBackground (1L<<3) |
||||
#define GCLineWidth (1L<<4) |
||||
#define GCLineStyle (1L<<5) |
||||
#define GCCapStyle (1L<<6) |
||||
#define GCJoinStyle (1L<<7) |
||||
#define GCFillStyle (1L<<8) |
||||
#define GCFillRule (1L<<9) |
||||
#define GCTile (1L<<10) |
||||
#define GCStipple (1L<<11) |
||||
#define GCTileStipXOrigin (1L<<12) |
||||
#define GCTileStipYOrigin (1L<<13) |
||||
#define GCFont (1L<<14) |
||||
#define GCSubwindowMode (1L<<15) |
||||
#define GCGraphicsExposures (1L<<16) |
||||
#define GCClipXOrigin (1L<<17) |
||||
#define GCClipYOrigin (1L<<18) |
||||
#define GCClipMask (1L<<19) |
||||
#define GCDashOffset (1L<<20) |
||||
#define GCDashList (1L<<21) |
||||
#define GCArcMode (1L<<22) |
||||
|
||||
#define GCLastBit 22 |
||||
/*****************************************************************
|
||||
* FONTS |
||||
*****************************************************************/ |
||||
|
||||
/* used in QueryFont -- draw direction */ |
||||
|
||||
#define FontLeftToRight 0 |
||||
#define FontRightToLeft 1 |
||||
|
||||
#define FontChange 255 |
||||
|
||||
/*****************************************************************
|
||||
* IMAGING |
||||
*****************************************************************/ |
||||
|
||||
/* ImageFormat -- PutImage, GetImage */ |
||||
|
||||
#define XYBitmap 0 /* depth 1, XYFormat */ |
||||
#define XYPixmap 1 /* depth == drawable depth */ |
||||
#define ZPixmap 2 /* depth == drawable depth */ |
||||
|
||||
/*****************************************************************
|
||||
* COLOR MAP STUFF |
||||
*****************************************************************/ |
||||
|
||||
/* For CreateColormap */ |
||||
|
||||
#define AllocNone 0 /* create map with no entries */ |
||||
#define AllocAll 1 /* allocate entire map writeable */ |
||||
|
||||
|
||||
/* Flags used in StoreNamedColor, StoreColors */ |
||||
|
||||
#define DoRed (1<<0) |
||||
#define DoGreen (1<<1) |
||||
#define DoBlue (1<<2) |
||||
|
||||
/*****************************************************************
|
||||
* CURSOR STUFF |
||||
*****************************************************************/ |
||||
|
||||
/* QueryBestSize Class */ |
||||
|
||||
#define CursorShape 0 /* largest size that can be displayed */ |
||||
#define TileShape 1 /* size tiled fastest */ |
||||
#define StippleShape 2 /* size stippled fastest */ |
||||
|
||||
/*****************************************************************
|
||||
* KEYBOARD/POINTER STUFF |
||||
*****************************************************************/ |
||||
|
||||
#define AutoRepeatModeOff 0 |
||||
#define AutoRepeatModeOn 1 |
||||
#define AutoRepeatModeDefault 2 |
||||
|
||||
#define LedModeOff 0 |
||||
#define LedModeOn 1 |
||||
|
||||
/* masks for ChangeKeyboardControl */ |
||||
|
||||
#define KBKeyClickPercent (1L<<0) |
||||
#define KBBellPercent (1L<<1) |
||||
#define KBBellPitch (1L<<2) |
||||
#define KBBellDuration (1L<<3) |
||||
#define KBLed (1L<<4) |
||||
#define KBLedMode (1L<<5) |
||||
#define KBKey (1L<<6) |
||||
#define KBAutoRepeatMode (1L<<7) |
||||
|
||||
#define MappingSuccess 0 |
||||
#define MappingBusy 1 |
||||
#define MappingFailed 2 |
||||
|
||||
#define MappingModifier 0 |
||||
#define MappingKeyboard 1 |
||||
#define MappingPointer 2 |
||||
|
||||
/*****************************************************************
|
||||
* SCREEN SAVER STUFF |
||||
*****************************************************************/ |
||||
|
||||
#define DontPreferBlanking 0 |
||||
#define PreferBlanking 1 |
||||
#define DefaultBlanking 2 |
||||
|
||||
#define DisableScreenSaver 0 |
||||
#define DisableScreenInterval 0 |
||||
|
||||
#define DontAllowExposures 0 |
||||
#define AllowExposures 1 |
||||
#define DefaultExposures 2 |
||||
|
||||
/* for ForceScreenSaver */ |
||||
|
||||
#define ScreenSaverReset 0 |
||||
#define ScreenSaverActive 1 |
||||
|
||||
/*****************************************************************
|
||||
* HOSTS AND CONNECTIONS |
||||
*****************************************************************/ |
||||
|
||||
/* for ChangeHosts */ |
||||
|
||||
#define HostInsert 0 |
||||
#define HostDelete 1 |
||||
|
||||
/* for ChangeAccessControl */ |
||||
|
||||
#define EnableAccess 1 |
||||
#define DisableAccess 0 |
||||
|
||||
/* Display classes used in opening the connection
|
||||
* Note that the statically allocated ones are even numbered and the |
||||
* dynamically changeable ones are odd numbered */ |
||||
|
||||
#define StaticGray 0 |
||||
#define GrayScale 1 |
||||
#define StaticColor 2 |
||||
#define PseudoColor 3 |
||||
#define TrueColor 4 |
||||
#define DirectColor 5 |
||||
|
||||
|
||||
/* Byte order used in imageByteOrder and bitmapBitOrder */ |
||||
|
||||
#define LSBFirst 0 |
||||
#define MSBFirst 1 |
||||
|
||||
#if defined(MAC_OSX_TK) |
||||
# undef Cursor |
||||
# undef Region |
||||
#endif |
||||
|
||||
#endif /* X_H */ |
@ -1,79 +0,0 @@
|
||||
#ifndef XATOM_H |
||||
#define XATOM_H 1 |
||||
|
||||
/* THIS IS A GENERATED FILE
|
||||
* |
||||
* Do not change! Changing this file implies a protocol change! |
||||
*/ |
||||
|
||||
#define XA_PRIMARY ((Atom) 1) |
||||
#define XA_SECONDARY ((Atom) 2) |
||||
#define XA_ARC ((Atom) 3) |
||||
#define XA_ATOM ((Atom) 4) |
||||
#define XA_BITMAP ((Atom) 5) |
||||
#define XA_CARDINAL ((Atom) 6) |
||||
#define XA_COLORMAP ((Atom) 7) |
||||
#define XA_CURSOR ((Atom) 8) |
||||
#define XA_CUT_BUFFER0 ((Atom) 9) |
||||
#define XA_CUT_BUFFER1 ((Atom) 10) |
||||
#define XA_CUT_BUFFER2 ((Atom) 11) |
||||
#define XA_CUT_BUFFER3 ((Atom) 12) |
||||
#define XA_CUT_BUFFER4 ((Atom) 13) |
||||
#define XA_CUT_BUFFER5 ((Atom) 14) |
||||
#define XA_CUT_BUFFER6 ((Atom) 15) |
||||
#define XA_CUT_BUFFER7 ((Atom) 16) |
||||
#define XA_DRAWABLE ((Atom) 17) |
||||
#define XA_FONT ((Atom) 18) |
||||
#define XA_INTEGER ((Atom) 19) |
||||
#define XA_PIXMAP ((Atom) 20) |
||||
#define XA_POINT ((Atom) 21) |
||||
#define XA_RECTANGLE ((Atom) 22) |
||||
#define XA_RESOURCE_MANAGER ((Atom) 23) |
||||
#define XA_RGB_COLOR_MAP ((Atom) 24) |
||||
#define XA_RGB_BEST_MAP ((Atom) 25) |
||||
#define XA_RGB_BLUE_MAP ((Atom) 26) |
||||
#define XA_RGB_DEFAULT_MAP ((Atom) 27) |
||||
#define XA_RGB_GRAY_MAP ((Atom) 28) |
||||
#define XA_RGB_GREEN_MAP ((Atom) 29) |
||||
#define XA_RGB_RED_MAP ((Atom) 30) |
||||
#define XA_STRING ((Atom) 31) |
||||
#define XA_VISUALID ((Atom) 32) |
||||
#define XA_WINDOW ((Atom) 33) |
||||
#define XA_WM_COMMAND ((Atom) 34) |
||||
#define XA_WM_HINTS ((Atom) 35) |
||||
#define XA_WM_CLIENT_MACHINE ((Atom) 36) |
||||
#define XA_WM_ICON_NAME ((Atom) 37) |
||||
#define XA_WM_ICON_SIZE ((Atom) 38) |
||||
#define XA_WM_NAME ((Atom) 39) |
||||
#define XA_WM_NORMAL_HINTS ((Atom) 40) |
||||
#define XA_WM_SIZE_HINTS ((Atom) 41) |
||||
#define XA_WM_ZOOM_HINTS ((Atom) 42) |
||||
#define XA_MIN_SPACE ((Atom) 43) |
||||
#define XA_NORM_SPACE ((Atom) 44) |
||||
#define XA_MAX_SPACE ((Atom) 45) |
||||
#define XA_END_SPACE ((Atom) 46) |
||||
#define XA_SUPERSCRIPT_X ((Atom) 47) |
||||
#define XA_SUPERSCRIPT_Y ((Atom) 48) |
||||
#define XA_SUBSCRIPT_X ((Atom) 49) |
||||
#define XA_SUBSCRIPT_Y ((Atom) 50) |
||||
#define XA_UNDERLINE_POSITION ((Atom) 51) |
||||
#define XA_UNDERLINE_THICKNESS ((Atom) 52) |
||||
#define XA_STRIKEOUT_ASCENT ((Atom) 53) |
||||
#define XA_STRIKEOUT_DESCENT ((Atom) 54) |
||||
#define XA_ITALIC_ANGLE ((Atom) 55) |
||||
#define XA_X_HEIGHT ((Atom) 56) |
||||
#define XA_QUAD_WIDTH ((Atom) 57) |
||||
#define XA_WEIGHT ((Atom) 58) |
||||
#define XA_POINT_SIZE ((Atom) 59) |
||||
#define XA_RESOLUTION ((Atom) 60) |
||||
#define XA_COPYRIGHT ((Atom) 61) |
||||
#define XA_NOTICE ((Atom) 62) |
||||
#define XA_FONT_NAME ((Atom) 63) |
||||
#define XA_FAMILY_NAME ((Atom) 64) |
||||
#define XA_FULL_NAME ((Atom) 65) |
||||
#define XA_CAP_HEIGHT ((Atom) 66) |
||||
#define XA_WM_CLASS ((Atom) 67) |
||||
#define XA_WM_TRANSIENT_FOR ((Atom) 68) |
||||
|
||||
#define XA_LAST_PREDEFINED ((Atom) 68) |
||||
#endif /* XATOM_H */ |
@ -1,60 +0,0 @@
|
||||
/* $XConsortium: Xfuncproto.h,v 1.7 91/05/13 20:49:21 rws Exp $ */ |
||||
/*
|
||||
* Copyright 1989, 1991 by the Massachusetts Institute of Technology |
||||
* |
||||
* 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 M.I.T. not be used in advertising |
||||
* or publicity pertaining to distribution of the software without specific, |
||||
* written prior permission. M.I.T. makes no representations about the |
||||
* suitability of this software for any purpose. It is provided "as is" |
||||
* without express or implied warranty. |
||||
* |
||||
*/ |
||||
|
||||
/* Definitions to make function prototypes manageable */ |
||||
|
||||
#ifndef _XFUNCPROTO_H_ |
||||
#define _XFUNCPROTO_H_ |
||||
|
||||
#ifndef NeedFunctionPrototypes |
||||
#define NeedFunctionPrototypes 1 |
||||
#endif /* NeedFunctionPrototypes */ |
||||
|
||||
#ifndef NeedVarargsPrototypes |
||||
#define NeedVarargsPrototypes 0 |
||||
#endif /* NeedVarargsPrototypes */ |
||||
|
||||
#if NeedFunctionPrototypes |
||||
|
||||
#ifndef NeedNestedPrototypes |
||||
#define NeedNestedPrototypes 1 |
||||
#endif /* NeedNestedPrototypes */ |
||||
|
||||
#ifndef _Xconst |
||||
#define _Xconst const |
||||
#endif /* _Xconst */ |
||||
|
||||
#ifndef NeedWidePrototypes |
||||
#ifdef NARROWPROTO |
||||
#define NeedWidePrototypes 0 |
||||
#else |
||||
#define NeedWidePrototypes 1 /* default to make interropt. easier */ |
||||
#endif |
||||
#endif /* NeedWidePrototypes */ |
||||
|
||||
#endif /* NeedFunctionPrototypes */ |
||||
|
||||
#ifdef __cplusplus |
||||
#define _XFUNCPROTOBEGIN extern "C" { |
||||
#define _XFUNCPROTOEND } |
||||
#endif |
||||
|
||||
#ifndef _XFUNCPROTOBEGIN |
||||
#define _XFUNCPROTOBEGIN |
||||
#define _XFUNCPROTOEND |
||||
#endif /* _XFUNCPROTOBEGIN */ |
||||
|
||||
#endif /* _XFUNCPROTO_H_ */ |
File diff suppressed because it is too large
Load Diff
@ -1,855 +0,0 @@
|
||||
/* $XConsortium: Xutil.h,v 11.73 91/07/30 16:21:37 rws Exp $ */ |
||||
|
||||
/***********************************************************
|
||||
Copyright 1987 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. |
||||
|
||||
******************************************************************/ |
||||
|
||||
#ifndef _XUTIL_H_ |
||||
#define _XUTIL_H_ |
||||
|
||||
/* You must include <X11/Xlib.h> before including this file */ |
||||
|
||||
#if defined(MAC_OSX_TK) |
||||
# define Region XRegion |
||||
#endif |
||||
|
||||
/*
|
||||
* Bitmask returned by XParseGeometry(). Each bit tells if the corresponding |
||||
* value (x, y, width, height) was found in the parsed string. |
||||
*/ |
||||
#define NoValue 0x0000 |
||||
#define XValue 0x0001 |
||||
#define YValue 0x0002 |
||||
#define WidthValue 0x0004 |
||||
#define HeightValue 0x0008 |
||||
#define AllValues 0x000F |
||||
#define XNegative 0x0010 |
||||
#define YNegative 0x0020 |
||||
|
||||
/*
|
||||
* new version containing base_width, base_height, and win_gravity fields; |
||||
* used with WM_NORMAL_HINTS. |
||||
*/ |
||||
typedef struct { |
||||
long flags; /* marks which fields in this structure are defined */ |
||||
int x, y; /* obsolete for new window mgrs, but clients */ |
||||
int width, height; /* should set so old wm's don't mess up */ |
||||
int min_width, min_height; |
||||
int max_width, max_height; |
||||
int width_inc, height_inc; |
||||
struct { |
||||
int x; /* numerator */ |
||||
int y; /* denominator */ |
||||
} min_aspect, max_aspect; |
||||
int base_width, base_height; /* added by ICCCM version 1 */ |
||||
int win_gravity; /* added by ICCCM version 1 */ |
||||
} XSizeHints; |
||||
|
||||
/*
|
||||
* The next block of definitions are for window manager properties that |
||||
* clients and applications use for communication. |
||||
*/ |
||||
|
||||
/* flags argument in size hints */ |
||||
#define USPosition (1L << 0) /* user specified x, y */ |
||||
#define USSize (1L << 1) /* user specified width, height */ |
||||
|
||||
#define PPosition (1L << 2) /* program specified position */ |
||||
#define PSize (1L << 3) /* program specified size */ |
||||
#define PMinSize (1L << 4) /* program specified minimum size */ |
||||
#define PMaxSize (1L << 5) /* program specified maximum size */ |
||||
#define PResizeInc (1L << 6) /* program specified resize increments */ |
||||
#define PAspect (1L << 7) /* program specified min and max aspect ratios */ |
||||
#define PBaseSize (1L << 8) /* program specified base for incrementing */ |
||||
#define PWinGravity (1L << 9) /* program specified window gravity */ |
||||
|
||||
/* obsolete */ |
||||
#define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect) |
||||
|
||||
|
||||
|
||||
typedef struct { |
||||
long flags; /* marks which fields in this structure are defined */ |
||||
Bool input; /* does this application rely on the window manager to
|
||||
get keyboard input? */ |
||||
int initial_state; /* see below */ |
||||
Pixmap icon_pixmap; /* pixmap to be used as icon */ |
||||
Window icon_window; /* window to be used as icon */ |
||||
int icon_x, icon_y; /* initial position of icon */ |
||||
Pixmap icon_mask; /* icon mask bitmap */ |
||||
XID window_group; /* id of related window group */ |
||||
/* this structure may be extended in the future */ |
||||
} XWMHints; |
||||
|
||||
/* definition for flags of XWMHints */ |
||||
|
||||
#define InputHint (1L << 0) |
||||
#define StateHint (1L << 1) |
||||
#define IconPixmapHint (1L << 2) |
||||
#define IconWindowHint (1L << 3) |
||||
#define IconPositionHint (1L << 4) |
||||
#define IconMaskHint (1L << 5) |
||||
#define WindowGroupHint (1L << 6) |
||||
#define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \ |
||||
IconPositionHint|IconMaskHint|WindowGroupHint) |
||||
|
||||
/* definitions for initial window state */ |
||||
#define WithdrawnState 0 /* for windows that are not mapped */ |
||||
#define NormalState 1 /* most applications want to start this way */ |
||||
#define IconicState 3 /* application wants to start as an icon */ |
||||
|
||||
/*
|
||||
* Obsolete states no longer defined by ICCCM |
||||
*/ |
||||
#define DontCareState 0 /* don't know or care */ |
||||
#define ZoomState 2 /* application wants to start zoomed */ |
||||
#define InactiveState 4 /* application believes it is seldom used; */ |
||||
/* some wm's may put it on inactive menu */ |
||||
|
||||
|
||||
/*
|
||||
* new structure for manipulating TEXT properties; used with WM_NAME, |
||||
* WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND. |
||||
*/ |
||||
typedef struct { |
||||
unsigned char *value; /* same as Property routines */ |
||||
Atom encoding; /* prop type */ |
||||
int format; /* prop data format: 8, 16, or 32 */ |
||||
unsigned long nitems; /* number of data items in value */ |
||||
} XTextProperty; |
||||
|
||||
#define XNoMemory -1 |
||||
#define XLocaleNotSupported -2 |
||||
#define XConverterNotFound -3 |
||||
|
||||
typedef enum { |
||||
XStringStyle, /* STRING */ |
||||
XCompoundTextStyle, /* COMPOUND_TEXT */ |
||||
XTextStyle, /* text in owner's encoding (current locale)*/ |
||||
XStdICCTextStyle /* STRING, else COMPOUND_TEXT */ |
||||
} XICCEncodingStyle; |
||||
|
||||
typedef struct { |
||||
int min_width, min_height; |
||||
int max_width, max_height; |
||||
int width_inc, height_inc; |
||||
} XIconSize; |
||||
|
||||
typedef struct { |
||||
char *res_name; |
||||
char *res_class; |
||||
} XClassHint; |
||||
|
||||
/*
|
||||
* These macros are used to give some sugar to the image routines so that |
||||
* naive people are more comfortable with them. |
||||
*/ |
||||
#define XDestroyImage(ximage) \ |
||||
((*((ximage)->f.destroy_image))((ximage))) |
||||
#define XGetPixel(ximage, x, y) \ |
||||
((*((ximage)->f.get_pixel))((ximage), (x), (y))) |
||||
#define XPutPixel(ximage, x, y, pixel) \ |
||||
((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel))) |
||||
#define XSubImage(ximage, x, y, width, height) \ |
||||
((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height))) |
||||
#define XAddPixel(ximage, value) \ |
||||
((*((ximage)->f.add_pixel))((ximage), (value))) |
||||
|
||||
/*
|
||||
* Compose sequence status structure, used in calling XLookupString. |
||||
*/ |
||||
typedef struct _XComposeStatus { |
||||
XPointer compose_ptr; /* state table pointer */ |
||||
int chars_matched; /* match state */ |
||||
} XComposeStatus; |
||||
|
||||
/*
|
||||
* Keysym macros, used on Keysyms to test for classes of symbols |
||||
*/ |
||||
#define IsKeypadKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_KP_Space) && ((unsigned)(keysym) <= XK_KP_Equal)) |
||||
|
||||
#define IsCursorKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_Home) && ((unsigned)(keysym) < XK_Select)) |
||||
|
||||
#define IsPFKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_KP_F1) && ((unsigned)(keysym) <= XK_KP_F4)) |
||||
|
||||
#define IsFunctionKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_F1) && ((unsigned)(keysym) <= XK_F35)) |
||||
|
||||
#define IsMiscFunctionKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_Select) && ((unsigned)(keysym) <= XK_Break)) |
||||
|
||||
#define IsModifierKey(keysym) \ |
||||
((((unsigned)(keysym) >= XK_Shift_L) && ((unsigned)(keysym) <= XK_Hyper_R)) \
|
||||
|| ((unsigned)(keysym) == XK_Mode_switch) \
|
||||
|| ((unsigned)(keysym) == XK_Num_Lock)) |
||||
/*
|
||||
* opaque reference to Region data type |
||||
*/ |
||||
typedef struct _XRegion *Region; |
||||
|
||||
/* Return values from XRectInRegion() */ |
||||
|
||||
#define RectangleOut 0 |
||||
#define RectangleIn 1 |
||||
#define RectanglePart 2 |
||||
|
||||
|
||||
/*
|
||||
* Information used by the visual utility routines to find desired visual |
||||
* type from the many visuals a display may support. |
||||
*/ |
||||
|
||||
typedef struct { |
||||
Visual *visual; |
||||
VisualID visualid; |
||||
int screen; |
||||
int depth; |
||||
#if defined(__cplusplus) || defined(c_plusplus) |
||||
int c_class; /* C++ */ |
||||
#else |
||||
int class; |
||||
#endif |
||||
unsigned long red_mask; |
||||
unsigned long green_mask; |
||||
unsigned long blue_mask; |
||||
int colormap_size; |
||||
int bits_per_rgb; |
||||
} XVisualInfo; |
||||
|
||||
#define VisualNoMask 0x0 |
||||
#define VisualIDMask 0x1 |
||||
#define VisualScreenMask 0x2 |
||||
#define VisualDepthMask 0x4 |
||||
#define VisualClassMask 0x8 |
||||
#define VisualRedMaskMask 0x10 |
||||
#define VisualGreenMaskMask 0x20 |
||||
#define VisualBlueMaskMask 0x40 |
||||
#define VisualColormapSizeMask 0x80 |
||||
#define VisualBitsPerRGBMask 0x100 |
||||
#define VisualAllMask 0x1FF |
||||
|
||||
/*
|
||||
* This defines a window manager property that clients may use to |
||||
* share standard color maps of type RGB_COLOR_MAP: |
||||
*/ |
||||
typedef struct { |
||||
Colormap colormap; |
||||
unsigned long red_max; |
||||
unsigned long red_mult; |
||||
unsigned long green_max; |
||||
unsigned long green_mult; |
||||
unsigned long blue_max; |
||||
unsigned long blue_mult; |
||||
unsigned long base_pixel; |
||||
VisualID visualid; /* added by ICCCM version 1 */ |
||||
XID killid; /* added by ICCCM version 1 */ |
||||
} XStandardColormap; |
||||
|
||||
#define ReleaseByFreeingColormap ((XID) 1L) /* for killid field above */ |
||||
|
||||
|
||||
/*
|
||||
* return codes for XReadBitmapFile and XWriteBitmapFile |
||||
*/ |
||||
#define BitmapSuccess 0 |
||||
#define BitmapOpenFailed 1 |
||||
#define BitmapFileInvalid 2 |
||||
#define BitmapNoMemory 3 |
||||
|
||||
/****************************************************************
|
||||
* |
||||
* Context Management |
||||
* |
||||
****************************************************************/ |
||||
|
||||
|
||||
/* Associative lookup table return codes */ |
||||
|
||||
#define XCSUCCESS 0 /* No error. */ |
||||
#define XCNOMEM 1 /* Out of memory */ |
||||
#define XCNOENT 2 /* No entry in table */ |
||||
|
||||
typedef int XContext; |
||||
|
||||
#define XUniqueContext() ((XContext) XrmUniqueQuark()) |
||||
#define XStringToContext(string) ((XContext) XrmStringToQuark(string)) |
||||
|
||||
_XFUNCPROTOBEGIN |
||||
|
||||
/* The following declarations are alphabetized. */ |
||||
|
||||
extern XClassHint *XAllocClassHint ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern XIconSize *XAllocIconSize ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern XSizeHints *XAllocSizeHints ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern XStandardColormap *XAllocStandardColormap ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern XWMHints *XAllocWMHints ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern void XClipBox( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
XRectangle* /* rect_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Region XCreateRegion( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern char *XDefaultString( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern int XDeleteContext( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XID /* rid */, |
||||
XContext /* context */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XDestroyRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */ |
||||
#endif |
||||
); |
||||
|
||||
extern Bool XEmptyRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */ |
||||
#endif |
||||
); |
||||
|
||||
extern Bool XEqualRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r1 */, |
||||
Region /* r2 */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XFindContext( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XID /* rid */, |
||||
XContext /* context */, |
||||
XPointer* /* data_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetClassHint( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XClassHint* /* class_hints_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetIconSizes( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XIconSize** /* size_list_return */, |
||||
int* /* count_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetNormalHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetRGBColormaps( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XStandardColormap** /* stdcmap_return */, |
||||
int* /* count_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetSizeHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetStandardColormap( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XStandardColormap* /* colormap_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetTextProperty( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* window */, |
||||
XTextProperty* /* text_prop_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
|
||||
extern Status XGetWMClientMachine( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern XWMHints *XGetWMHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetWMIconName( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetWMName( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetWMNormalHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints_return */, |
||||
long* /* supplied_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetWMSizeHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints_return */, |
||||
long* /* supplied_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetZoomHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* zhints_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XIntersectRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* sra */, |
||||
Region /* srb */, |
||||
Region /* dr_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XLookupString( |
||||
#if NeedFunctionPrototypes |
||||
XKeyEvent* /* event_struct */, |
||||
char* /* buffer_return */, |
||||
int /* bytes_buffer */, |
||||
KeySym* /* keysym_return */, |
||||
XComposeStatus* /* status_in_out */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XMatchVisualInfo( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
int /* screen */, |
||||
int /* depth */, |
||||
int /* class */, |
||||
XVisualInfo* /* vinfo_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XOffsetRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
int /* dx */, |
||||
int /* dy */ |
||||
#endif |
||||
); |
||||
|
||||
extern Bool XPointInRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
int /* x */, |
||||
int /* y */ |
||||
#endif |
||||
); |
||||
|
||||
extern Region XPolygonRegion( |
||||
#if NeedFunctionPrototypes |
||||
XPoint* /* points */, |
||||
int /* n */, |
||||
int /* fill_rule */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XRectInRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
int /* x */, |
||||
int /* y */, |
||||
unsigned int /* width */, |
||||
unsigned int /* height */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XSaveContext( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XID /* rid */, |
||||
XContext /* context */, |
||||
_Xconst char* /* data */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetClassHint( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XClassHint* /* class_hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetIconSizes( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XIconSize* /* size_list */, |
||||
int /* count */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetNormalHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetRGBColormaps( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XStandardColormap* /* stdcmaps */, |
||||
int /* count */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetSizeHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetStandardProperties( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
_Xconst char* /* window_name */, |
||||
_Xconst char* /* icon_name */, |
||||
Pixmap /* icon_pixmap */, |
||||
char** /* argv */, |
||||
int /* argc */, |
||||
XSizeHints* /* hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetTextProperty( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XWMHints* /* wm_hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMIconName( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMName( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMNormalHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMProperties( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* window_name */, |
||||
XTextProperty* /* icon_name */, |
||||
char** /* argv */, |
||||
int /* argc */, |
||||
XSizeHints* /* normal_hints */, |
||||
XWMHints* /* wm_hints */, |
||||
XClassHint* /* class_hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XmbSetWMProperties( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
_Xconst char* /* window_name */, |
||||
_Xconst char* /* icon_name */, |
||||
char** /* argv */, |
||||
int /* argc */, |
||||
XSizeHints* /* normal_hints */, |
||||
XWMHints* /* wm_hints */, |
||||
XClassHint* /* class_hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMSizeHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetRegion( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
GC /* gc */, |
||||
Region /* r */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetStandardColormap( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XStandardColormap* /* colormap */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetZoomHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* zhints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XShrinkRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
int /* dx */, |
||||
int /* dy */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSubtractRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* sra */, |
||||
Region /* srb */, |
||||
Region /* dr_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XmbTextListToTextProperty( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
char** /* list */, |
||||
int /* count */, |
||||
XICCEncodingStyle /* style */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XwcTextListToTextProperty( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
wchar_t** /* list */, |
||||
int /* count */, |
||||
XICCEncodingStyle /* style */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XwcFreeStringList( |
||||
#if NeedFunctionPrototypes |
||||
wchar_t** /* list */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XTextPropertyToStringList( |
||||
#if NeedFunctionPrototypes |
||||
XTextProperty* /* text_prop */, |
||||
char*** /* list_return */, |
||||
int* /* count_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XmbTextPropertyToTextList( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XTextProperty* /* text_prop */, |
||||
char*** /* list_return */, |
||||
int* /* count_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XwcTextPropertyToTextList( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XTextProperty* /* text_prop */, |
||||
wchar_t*** /* list_return */, |
||||
int* /* count_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XUnionRectWithRegion( |
||||
#if NeedFunctionPrototypes |
||||
XRectangle* /* rectangle */, |
||||
Region /* src_region */, |
||||
Region /* dest_region_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XUnionRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* sra */, |
||||
Region /* srb */, |
||||
Region /* dr_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XWMGeometry( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
int /* screen_number */, |
||||
_Xconst char* /* user_geometry */, |
||||
_Xconst char* /* default_geometry */, |
||||
unsigned int /* border_width */, |
||||
XSizeHints* /* hints */, |
||||
int* /* x_return */, |
||||
int* /* y_return */, |
||||
int* /* width_return */, |
||||
int* /* height_return */, |
||||
int* /* gravity_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XXorRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* sra */, |
||||
Region /* srb */, |
||||
Region /* dr_return */ |
||||
#endif |
||||
); |
||||
|
||||
_XFUNCPROTOEND |
||||
|
||||
#if defined(MAC_OSX_TK) |
||||
# undef Region |
||||
#endif |
||||
|
||||
#endif /* _XUTIL_H_ */ |
@ -1,79 +0,0 @@
|
||||
/* $XConsortium: cursorfont.h,v 1.2 88/09/06 16:44:27 jim Exp $ */ |
||||
#define XC_num_glyphs 154 |
||||
#define XC_X_cursor 0 |
||||
#define XC_arrow 2 |
||||
#define XC_based_arrow_down 4 |
||||
#define XC_based_arrow_up 6 |
||||
#define XC_boat 8 |
||||
#define XC_bogosity 10 |
||||
#define XC_bottom_left_corner 12 |
||||
#define XC_bottom_right_corner 14 |
||||
#define XC_bottom_side 16 |
||||
#define XC_bottom_tee 18 |
||||
#define XC_box_spiral 20 |
||||
#define XC_center_ptr 22 |
||||
#define XC_circle 24 |
||||
#define XC_clock 26 |
||||
#define XC_coffee_mug 28 |
||||
#define XC_cross 30 |
||||
#define XC_cross_reverse 32 |
||||
#define XC_crosshair 34 |
||||
#define XC_diamond_cross 36 |
||||
#define XC_dot 38 |
||||
#define XC_dotbox 40 |
||||
#define XC_double_arrow 42 |
||||
#define XC_draft_large 44 |
||||
#define XC_draft_small 46 |
||||
#define XC_draped_box 48 |
||||
#define XC_exchange 50 |
||||
#define XC_fleur 52 |
||||
#define XC_gobbler 54 |
||||
#define XC_gumby 56 |
||||
#define XC_hand1 58 |
||||
#define XC_hand2 60 |
||||
#define XC_heart 62 |
||||
#define XC_icon 64 |
||||
#define XC_iron_cross 66 |
||||
#define XC_left_ptr 68 |
||||
#define XC_left_side 70 |
||||
#define XC_left_tee 72 |
||||
#define XC_leftbutton 74 |
||||
#define XC_ll_angle 76 |
||||
#define XC_lr_angle 78 |
||||
#define XC_man 80 |
||||
#define XC_middlebutton 82 |
||||
#define XC_mouse 84 |
||||
#define XC_pencil 86 |
||||
#define XC_pirate 88 |
||||
#define XC_plus 90 |
||||
#define XC_question_arrow 92 |
||||
#define XC_right_ptr 94 |
||||
#define XC_right_side 96 |
||||
#define XC_right_tee 98 |
||||
#define XC_rightbutton 100 |
||||
#define XC_rtl_logo 102 |
||||
#define XC_sailboat 104 |
||||
#define XC_sb_down_arrow 106 |
||||
#define XC_sb_h_double_arrow 108 |
||||
#define XC_sb_left_arrow 110 |
||||
#define XC_sb_right_arrow 112 |
||||
#define XC_sb_up_arrow 114 |
||||
#define XC_sb_v_double_arrow 116 |
||||
#define XC_shuttle 118 |
||||
#define XC_sizing 120 |
||||
#define XC_spider 122 |
||||
#define XC_spraycan 124 |
||||
#define XC_star 126 |
||||
#define XC_target 128 |
||||
#define XC_tcross 130 |
||||
#define XC_top_left_arrow 132 |
||||
#define XC_top_left_corner 134 |
||||
#define XC_top_right_corner 136 |
||||
#define XC_top_side 138 |
||||
#define XC_top_tee 140 |
||||
#define XC_trek 142 |
||||
#define XC_ul_angle 144 |
||||
#define XC_umbrella 146 |
||||
#define XC_ur_angle 148 |
||||
#define XC_watch 150 |
||||
#define XC_xterm 152 |
@ -1,35 +0,0 @@
|
||||
/* $XConsortium: keysym.h,v 1.13 91/03/13 20:09:49 rws Exp $ */ |
||||
|
||||
/***********************************************************
|
||||
Copyright 1987 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. |
||||
|
||||
******************************************************************/ |
||||
|
||||
/* default keysyms */ |
||||
#define XK_MISCELLANY |
||||
#define XK_LATIN1 |
||||
#define XK_LATIN2 |
||||
#define XK_LATIN3 |
||||
#define XK_LATIN4 |
||||
#define XK_GREEK |
||||
|
||||
#include <X11/keysymdef.h> |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,134 +0,0 @@
|
||||
/*
|
||||
* tclPlatDecls.h -- |
||||
* |
||||
* Declarations of platform specific Tcl APIs. |
||||
* |
||||
* Copyright (c) 1998-1999 by Scriptics Corporation. |
||||
* All rights reserved. |
||||
*/ |
||||
|
||||
#ifndef _TCLPLATDECLS |
||||
#define _TCLPLATDECLS |
||||
|
||||
#undef TCL_STORAGE_CLASS |
||||
#ifdef BUILD_tcl |
||||
# define TCL_STORAGE_CLASS DLLEXPORT |
||||
#else |
||||
# ifdef USE_TCL_STUBS |
||||
# define TCL_STORAGE_CLASS |
||||
# else |
||||
# define TCL_STORAGE_CLASS DLLIMPORT |
||||
# endif |
||||
#endif |
||||
|
||||
/*
|
||||
* TCHAR is needed here for win32, so if it is not defined yet do it here. |
||||
* This way, we don't need to include <tchar.h> just for one define. |
||||
*/ |
||||
#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(_TCHAR_DEFINED) |
||||
# if defined(_UNICODE) |
||||
typedef wchar_t TCHAR; |
||||
# else |
||||
typedef char TCHAR; |
||||
# endif |
||||
# define _TCHAR_DEFINED |
||||
#endif |
||||
|
||||
/* !BEGIN!: Do not edit below this line. */ |
||||
|
||||
/*
|
||||
* Exported function declarations: |
||||
*/ |
||||
|
||||
#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ |
||||
#ifndef Tcl_WinUtfToTChar_TCL_DECLARED |
||||
#define Tcl_WinUtfToTChar_TCL_DECLARED |
||||
/* 0 */ |
||||
EXTERN TCHAR * Tcl_WinUtfToTChar(CONST char *str, int len, |
||||
Tcl_DString *dsPtr); |
||||
#endif |
||||
#ifndef Tcl_WinTCharToUtf_TCL_DECLARED |
||||
#define Tcl_WinTCharToUtf_TCL_DECLARED |
||||
/* 1 */ |
||||
EXTERN char * Tcl_WinTCharToUtf(CONST TCHAR *str, int len, |
||||
Tcl_DString *dsPtr); |
||||
#endif |
||||
#endif /* WIN */ |
||||
#ifdef MAC_OSX_TCL /* MACOSX */ |
||||
#ifndef Tcl_MacOSXOpenBundleResources_TCL_DECLARED |
||||
#define Tcl_MacOSXOpenBundleResources_TCL_DECLARED |
||||
/* 0 */ |
||||
EXTERN int Tcl_MacOSXOpenBundleResources(Tcl_Interp *interp, |
||||
CONST char *bundleName, int hasResourceFile, |
||||
int maxPathLen, char *libraryPath); |
||||
#endif |
||||
#ifndef Tcl_MacOSXOpenVersionedBundleResources_TCL_DECLARED |
||||
#define Tcl_MacOSXOpenVersionedBundleResources_TCL_DECLARED |
||||
/* 1 */ |
||||
EXTERN int Tcl_MacOSXOpenVersionedBundleResources( |
||||
Tcl_Interp *interp, CONST char *bundleName, |
||||
CONST char *bundleVersion, |
||||
int hasResourceFile, int maxPathLen, |
||||
char *libraryPath); |
||||
#endif |
||||
#endif /* MACOSX */ |
||||
|
||||
typedef struct TclPlatStubs { |
||||
int magic; |
||||
struct TclPlatStubHooks *hooks; |
||||
|
||||
#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ |
||||
TCHAR * (*tcl_WinUtfToTChar) (CONST char *str, int len, Tcl_DString *dsPtr); /* 0 */ |
||||
char * (*tcl_WinTCharToUtf) (CONST TCHAR *str, int len, Tcl_DString *dsPtr); /* 1 */ |
||||
#endif /* WIN */ |
||||
#ifdef MAC_OSX_TCL /* MACOSX */ |
||||
int (*tcl_MacOSXOpenBundleResources) (Tcl_Interp *interp, CONST char *bundleName, int hasResourceFile, int maxPathLen, char *libraryPath); /* 0 */ |
||||
int (*tcl_MacOSXOpenVersionedBundleResources) (Tcl_Interp *interp, CONST char *bundleName, CONST char *bundleVersion, int hasResourceFile, int maxPathLen, char *libraryPath); /* 1 */ |
||||
#endif /* MACOSX */ |
||||
} TclPlatStubs; |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
extern TclPlatStubs *tclPlatStubsPtr; |
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) |
||||
|
||||
/*
|
||||
* Inline function declarations: |
||||
*/ |
||||
|
||||
#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ |
||||
#ifndef Tcl_WinUtfToTChar |
||||
#define Tcl_WinUtfToTChar \ |
||||
(tclPlatStubsPtr->tcl_WinUtfToTChar) /* 0 */ |
||||
#endif |
||||
#ifndef Tcl_WinTCharToUtf |
||||
#define Tcl_WinTCharToUtf \ |
||||
(tclPlatStubsPtr->tcl_WinTCharToUtf) /* 1 */ |
||||
#endif |
||||
#endif /* WIN */ |
||||
#ifdef MAC_OSX_TCL /* MACOSX */ |
||||
#ifndef Tcl_MacOSXOpenBundleResources |
||||
#define Tcl_MacOSXOpenBundleResources \ |
||||
(tclPlatStubsPtr->tcl_MacOSXOpenBundleResources) /* 0 */ |
||||
#endif |
||||
#ifndef Tcl_MacOSXOpenVersionedBundleResources |
||||
#define Tcl_MacOSXOpenVersionedBundleResources \ |
||||
(tclPlatStubsPtr->tcl_MacOSXOpenVersionedBundleResources) /* 1 */ |
||||
#endif |
||||
#endif /* MACOSX */ |
||||
|
||||
#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */ |
||||
|
||||
/* !END!: Do not edit above this line. */ |
||||
|
||||
#undef TCL_STORAGE_CLASS |
||||
#define TCL_STORAGE_CLASS DLLIMPORT |
||||
|
||||
#endif /* _TCLPLATDECLS */ |
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,253 +0,0 @@
|
||||
/*
|
||||
* tkPlatDecls.h -- |
||||
* |
||||
* Declarations of functions in the platform-specific public Tcl API. |
||||
* |
||||
* Copyright (c) 1998-1999 by Scriptics Corporation. |
||||
* |
||||
* See the file "license.terms" for information on usage and redistribution |
||||
* of this file, and for a DISCLAIMER OF ALL WARRANTIES. |
||||
*/ |
||||
|
||||
#ifndef _TKPLATDECLS |
||||
#define _TKPLATDECLS |
||||
|
||||
#ifdef BUILD_tk |
||||
#undef TCL_STORAGE_CLASS |
||||
#define TCL_STORAGE_CLASS DLLEXPORT |
||||
#endif |
||||
|
||||
/*
|
||||
* WARNING: This file is automatically generated by the tools/genStubs.tcl |
||||
* script. Any modifications to the function declarations below should be made |
||||
* in the generic/tk.decls script. |
||||
*/ |
||||
|
||||
/* !BEGIN!: Do not edit below this line. */ |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/*
|
||||
* Exported function declarations: |
||||
*/ |
||||
|
||||
#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ |
||||
#ifndef Tk_AttachHWND_TCL_DECLARED |
||||
#define Tk_AttachHWND_TCL_DECLARED |
||||
/* 0 */ |
||||
EXTERN Window Tk_AttachHWND(Tk_Window tkwin, HWND hwnd); |
||||
#endif |
||||
#ifndef Tk_GetHINSTANCE_TCL_DECLARED |
||||
#define Tk_GetHINSTANCE_TCL_DECLARED |
||||
/* 1 */ |
||||
EXTERN HINSTANCE Tk_GetHINSTANCE(void); |
||||
#endif |
||||
#ifndef Tk_GetHWND_TCL_DECLARED |
||||
#define Tk_GetHWND_TCL_DECLARED |
||||
/* 2 */ |
||||
EXTERN HWND Tk_GetHWND(Window window); |
||||
#endif |
||||
#ifndef Tk_HWNDToWindow_TCL_DECLARED |
||||
#define Tk_HWNDToWindow_TCL_DECLARED |
||||
/* 3 */ |
||||
EXTERN Tk_Window Tk_HWNDToWindow(HWND hwnd); |
||||
#endif |
||||
#ifndef Tk_PointerEvent_TCL_DECLARED |
||||
#define Tk_PointerEvent_TCL_DECLARED |
||||
/* 4 */ |
||||
EXTERN void Tk_PointerEvent(HWND hwnd, int x, int y); |
||||
#endif |
||||
#ifndef Tk_TranslateWinEvent_TCL_DECLARED |
||||
#define Tk_TranslateWinEvent_TCL_DECLARED |
||||
/* 5 */ |
||||
EXTERN int Tk_TranslateWinEvent(HWND hwnd, UINT message, |
||||
WPARAM wParam, LPARAM lParam, |
||||
LRESULT *result); |
||||
#endif |
||||
#endif /* WIN */ |
||||
#ifdef MAC_OSX_TK /* AQUA */ |
||||
#ifndef Tk_MacOSXSetEmbedHandler_TCL_DECLARED |
||||
#define Tk_MacOSXSetEmbedHandler_TCL_DECLARED |
||||
/* 0 */ |
||||
EXTERN void Tk_MacOSXSetEmbedHandler( |
||||
Tk_MacOSXEmbedRegisterWinProc *registerWinProcPtr, |
||||
Tk_MacOSXEmbedGetGrafPortProc *getPortProcPtr, |
||||
Tk_MacOSXEmbedMakeContainerExistProc *containerExistProcPtr, |
||||
Tk_MacOSXEmbedGetClipProc *getClipProc, |
||||
Tk_MacOSXEmbedGetOffsetInParentProc *getOffsetProc); |
||||
#endif |
||||
#ifndef Tk_MacOSXTurnOffMenus_TCL_DECLARED |
||||
#define Tk_MacOSXTurnOffMenus_TCL_DECLARED |
||||
/* 1 */ |
||||
EXTERN void Tk_MacOSXTurnOffMenus(void); |
||||
#endif |
||||
#ifndef Tk_MacOSXTkOwnsCursor_TCL_DECLARED |
||||
#define Tk_MacOSXTkOwnsCursor_TCL_DECLARED |
||||
/* 2 */ |
||||
EXTERN void Tk_MacOSXTkOwnsCursor(int tkOwnsIt); |
||||
#endif |
||||
#ifndef TkMacOSXInitMenus_TCL_DECLARED |
||||
#define TkMacOSXInitMenus_TCL_DECLARED |
||||
/* 3 */ |
||||
EXTERN void TkMacOSXInitMenus(Tcl_Interp *interp); |
||||
#endif |
||||
#ifndef TkMacOSXInitAppleEvents_TCL_DECLARED |
||||
#define TkMacOSXInitAppleEvents_TCL_DECLARED |
||||
/* 4 */ |
||||
EXTERN void TkMacOSXInitAppleEvents(Tcl_Interp *interp); |
||||
#endif |
||||
#ifndef TkGenWMConfigureEvent_TCL_DECLARED |
||||
#define TkGenWMConfigureEvent_TCL_DECLARED |
||||
/* 5 */ |
||||
EXTERN void TkGenWMConfigureEvent(Tk_Window tkwin, int x, int y, |
||||
int width, int height, int flags); |
||||
#endif |
||||
#ifndef TkMacOSXInvalClipRgns_TCL_DECLARED |
||||
#define TkMacOSXInvalClipRgns_TCL_DECLARED |
||||
/* 6 */ |
||||
EXTERN void TkMacOSXInvalClipRgns(Tk_Window tkwin); |
||||
#endif |
||||
#ifndef TkMacOSXGetDrawablePort_TCL_DECLARED |
||||
#define TkMacOSXGetDrawablePort_TCL_DECLARED |
||||
/* 7 */ |
||||
EXTERN VOID * TkMacOSXGetDrawablePort(Drawable drawable); |
||||
#endif |
||||
#ifndef TkMacOSXGetRootControl_TCL_DECLARED |
||||
#define TkMacOSXGetRootControl_TCL_DECLARED |
||||
/* 8 */ |
||||
EXTERN VOID * TkMacOSXGetRootControl(Drawable drawable); |
||||
#endif |
||||
#ifndef Tk_MacOSXSetupTkNotifier_TCL_DECLARED |
||||
#define Tk_MacOSXSetupTkNotifier_TCL_DECLARED |
||||
/* 9 */ |
||||
EXTERN void Tk_MacOSXSetupTkNotifier(void); |
||||
#endif |
||||
#ifndef Tk_MacOSXIsAppInFront_TCL_DECLARED |
||||
#define Tk_MacOSXIsAppInFront_TCL_DECLARED |
||||
/* 10 */ |
||||
EXTERN int Tk_MacOSXIsAppInFront(void); |
||||
#endif |
||||
#endif /* AQUA */ |
||||
|
||||
typedef struct TkPlatStubs { |
||||
int magic; |
||||
struct TkPlatStubHooks *hooks; |
||||
|
||||
#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ |
||||
Window (*tk_AttachHWND) (Tk_Window tkwin, HWND hwnd); /* 0 */ |
||||
HINSTANCE (*tk_GetHINSTANCE) (void); /* 1 */ |
||||
HWND (*tk_GetHWND) (Window window); /* 2 */ |
||||
Tk_Window (*tk_HWNDToWindow) (HWND hwnd); /* 3 */ |
||||
void (*tk_PointerEvent) (HWND hwnd, int x, int y); /* 4 */ |
||||
int (*tk_TranslateWinEvent) (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT *result); /* 5 */ |
||||
#endif /* WIN */ |
||||
#ifdef MAC_OSX_TK /* AQUA */ |
||||
void (*tk_MacOSXSetEmbedHandler) (Tk_MacOSXEmbedRegisterWinProc *registerWinProcPtr, Tk_MacOSXEmbedGetGrafPortProc *getPortProcPtr, Tk_MacOSXEmbedMakeContainerExistProc *containerExistProcPtr, Tk_MacOSXEmbedGetClipProc *getClipProc, Tk_MacOSXEmbedGetOffsetInParentProc *getOffsetProc); /* 0 */ |
||||
void (*tk_MacOSXTurnOffMenus) (void); /* 1 */ |
||||
void (*tk_MacOSXTkOwnsCursor) (int tkOwnsIt); /* 2 */ |
||||
void (*tkMacOSXInitMenus) (Tcl_Interp *interp); /* 3 */ |
||||
void (*tkMacOSXInitAppleEvents) (Tcl_Interp *interp); /* 4 */ |
||||
void (*tkGenWMConfigureEvent) (Tk_Window tkwin, int x, int y, int width, int height, int flags); /* 5 */ |
||||
void (*tkMacOSXInvalClipRgns) (Tk_Window tkwin); /* 6 */ |
||||
VOID * (*tkMacOSXGetDrawablePort) (Drawable drawable); /* 7 */ |
||||
VOID * (*tkMacOSXGetRootControl) (Drawable drawable); /* 8 */ |
||||
void (*tk_MacOSXSetupTkNotifier) (void); /* 9 */ |
||||
int (*tk_MacOSXIsAppInFront) (void); /* 10 */ |
||||
#endif /* AQUA */ |
||||
} TkPlatStubs; |
||||
|
||||
extern TkPlatStubs *tkPlatStubsPtr; |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#if defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) |
||||
|
||||
/*
|
||||
* Inline function declarations: |
||||
*/ |
||||
|
||||
#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */ |
||||
#ifndef Tk_AttachHWND |
||||
#define Tk_AttachHWND \ |
||||
(tkPlatStubsPtr->tk_AttachHWND) /* 0 */ |
||||
#endif |
||||
#ifndef Tk_GetHINSTANCE |
||||
#define Tk_GetHINSTANCE \ |
||||
(tkPlatStubsPtr->tk_GetHINSTANCE) /* 1 */ |
||||
#endif |
||||
#ifndef Tk_GetHWND |
||||
#define Tk_GetHWND \ |
||||
(tkPlatStubsPtr->tk_GetHWND) /* 2 */ |
||||
#endif |
||||
#ifndef Tk_HWNDToWindow |
||||
#define Tk_HWNDToWindow \ |
||||
(tkPlatStubsPtr->tk_HWNDToWindow) /* 3 */ |
||||
#endif |
||||
#ifndef Tk_PointerEvent |
||||
#define Tk_PointerEvent \ |
||||
(tkPlatStubsPtr->tk_PointerEvent) /* 4 */ |
||||
#endif |
||||
#ifndef Tk_TranslateWinEvent |
||||
#define Tk_TranslateWinEvent \ |
||||
(tkPlatStubsPtr->tk_TranslateWinEvent) /* 5 */ |
||||
#endif |
||||
#endif /* WIN */ |
||||
#ifdef MAC_OSX_TK /* AQUA */ |
||||
#ifndef Tk_MacOSXSetEmbedHandler |
||||
#define Tk_MacOSXSetEmbedHandler \ |
||||
(tkPlatStubsPtr->tk_MacOSXSetEmbedHandler) /* 0 */ |
||||
#endif |
||||
#ifndef Tk_MacOSXTurnOffMenus |
||||
#define Tk_MacOSXTurnOffMenus \ |
||||
(tkPlatStubsPtr->tk_MacOSXTurnOffMenus) /* 1 */ |
||||
#endif |
||||
#ifndef Tk_MacOSXTkOwnsCursor |
||||
#define Tk_MacOSXTkOwnsCursor \ |
||||
(tkPlatStubsPtr->tk_MacOSXTkOwnsCursor) /* 2 */ |
||||
#endif |
||||
#ifndef TkMacOSXInitMenus |
||||
#define TkMacOSXInitMenus \ |
||||
(tkPlatStubsPtr->tkMacOSXInitMenus) /* 3 */ |
||||
#endif |
||||
#ifndef TkMacOSXInitAppleEvents |
||||
#define TkMacOSXInitAppleEvents \ |
||||
(tkPlatStubsPtr->tkMacOSXInitAppleEvents) /* 4 */ |
||||
#endif |
||||
#ifndef TkGenWMConfigureEvent |
||||
#define TkGenWMConfigureEvent \ |
||||
(tkPlatStubsPtr->tkGenWMConfigureEvent) /* 5 */ |
||||
#endif |
||||
#ifndef TkMacOSXInvalClipRgns |
||||
#define TkMacOSXInvalClipRgns \ |
||||
(tkPlatStubsPtr->tkMacOSXInvalClipRgns) /* 6 */ |
||||
#endif |
||||
#ifndef TkMacOSXGetDrawablePort |
||||
#define TkMacOSXGetDrawablePort \ |
||||
(tkPlatStubsPtr->tkMacOSXGetDrawablePort) /* 7 */ |
||||
#endif |
||||
#ifndef TkMacOSXGetRootControl |
||||
#define TkMacOSXGetRootControl \ |
||||
(tkPlatStubsPtr->tkMacOSXGetRootControl) /* 8 */ |
||||
#endif |
||||
#ifndef Tk_MacOSXSetupTkNotifier |
||||
#define Tk_MacOSXSetupTkNotifier \ |
||||
(tkPlatStubsPtr->tk_MacOSXSetupTkNotifier) /* 9 */ |
||||
#endif |
||||
#ifndef Tk_MacOSXIsAppInFront |
||||
#define Tk_MacOSXIsAppInFront \ |
||||
(tkPlatStubsPtr->tk_MacOSXIsAppInFront) /* 10 */ |
||||
#endif |
||||
#endif /* AQUA */ |
||||
|
||||
#endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ |
||||
|
||||
/* !END!: Do not edit above this line. */ |
||||
|
||||
#undef TCL_STORAGE_CLASS |
||||
#define TCL_STORAGE_CLASS DLLIMPORT |
||||
|
||||
#endif /* _TKPLATDECLS */ |
@ -1,677 +0,0 @@
|
||||
/*
|
||||
* $XConsortium: X.h,v 1.66 88/09/06 15:55:56 jim Exp $ |
||||
*/ |
||||
|
||||
/* Definitions for the X window system likely to be used by applications */ |
||||
|
||||
#ifndef X_H |
||||
#define X_H |
||||
|
||||
/***********************************************************
|
||||
Copyright 1987 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. |
||||
|
||||
******************************************************************/ |
||||
#define X_PROTOCOL 11 /* current protocol version */ |
||||
#define X_PROTOCOL_REVISION 0 /* current minor version */ |
||||
|
||||
#if defined(MAC_OSX_TK) |
||||
# define Cursor XCursor |
||||
# define Region XRegion |
||||
#endif |
||||
|
||||
/* Resources */ |
||||
|
||||
#ifdef _WIN64 |
||||
typedef __int64 XID; |
||||
#else |
||||
typedef unsigned long XID; |
||||
#endif |
||||
|
||||
typedef XID Window; |
||||
typedef XID Drawable; |
||||
typedef XID Font; |
||||
typedef XID Pixmap; |
||||
typedef XID Cursor; |
||||
typedef XID Colormap; |
||||
typedef XID GContext; |
||||
typedef XID KeySym; |
||||
|
||||
typedef unsigned long Mask; |
||||
|
||||
typedef unsigned long Atom; |
||||
|
||||
typedef unsigned long VisualID; |
||||
|
||||
typedef unsigned long Time; |
||||
|
||||
typedef unsigned long KeyCode; /* In order to use IME, the Macintosh needs
|
||||
* to pack 3 bytes into the keyCode field in |
||||
* the XEvent. In the real X.h, a KeyCode is |
||||
* defined as a short, which wouldn't be big |
||||
* enough. */ |
||||
|
||||
/*****************************************************************
|
||||
* RESERVED RESOURCE AND CONSTANT DEFINITIONS |
||||
*****************************************************************/ |
||||
|
||||
#define None 0L /* universal null resource or null atom */ |
||||
|
||||
#define ParentRelative 1L /* background pixmap in CreateWindow |
||||
and ChangeWindowAttributes */ |
||||
|
||||
#define CopyFromParent 0L /* border pixmap in CreateWindow |
||||
and ChangeWindowAttributes |
||||
special VisualID and special window |
||||
class passed to CreateWindow */ |
||||
|
||||
#define PointerWindow 0L /* destination window in SendEvent */ |
||||
#define InputFocus 1L /* destination window in SendEvent */ |
||||
|
||||
#define PointerRoot 1L /* focus window in SetInputFocus */ |
||||
|
||||
#define AnyPropertyType 0L /* special Atom, passed to GetProperty */ |
||||
|
||||
#define AnyKey 0L /* special Key Code, passed to GrabKey */ |
||||
|
||||
#define AnyButton 0L /* special Button Code, passed to GrabButton */ |
||||
|
||||
#define AllTemporary 0L /* special Resource ID passed to KillClient */ |
||||
|
||||
#define CurrentTime 0L /* special Time */ |
||||
|
||||
#define NoSymbol 0L /* special KeySym */ |
||||
|
||||
/*****************************************************************
|
||||
* EVENT DEFINITIONS |
||||
*****************************************************************/ |
||||
|
||||
/* Input Event Masks. Used as event-mask window attribute and as arguments
|
||||
to Grab requests. Not to be confused with event names. */ |
||||
|
||||
#define NoEventMask 0L |
||||
#define KeyPressMask (1L<<0) |
||||
#define KeyReleaseMask (1L<<1) |
||||
#define ButtonPressMask (1L<<2) |
||||
#define ButtonReleaseMask (1L<<3) |
||||
#define EnterWindowMask (1L<<4) |
||||
#define LeaveWindowMask (1L<<5) |
||||
#define PointerMotionMask (1L<<6) |
||||
#define PointerMotionHintMask (1L<<7) |
||||
#define Button1MotionMask (1L<<8) |
||||
#define Button2MotionMask (1L<<9) |
||||
#define Button3MotionMask (1L<<10) |
||||
#define Button4MotionMask (1L<<11) |
||||
#define Button5MotionMask (1L<<12) |
||||
#define ButtonMotionMask (1L<<13) |
||||
#define KeymapStateMask (1L<<14) |
||||
#define ExposureMask (1L<<15) |
||||
#define VisibilityChangeMask (1L<<16) |
||||
#define StructureNotifyMask (1L<<17) |
||||
#define ResizeRedirectMask (1L<<18) |
||||
#define SubstructureNotifyMask (1L<<19) |
||||
#define SubstructureRedirectMask (1L<<20) |
||||
#define FocusChangeMask (1L<<21) |
||||
#define PropertyChangeMask (1L<<22) |
||||
#define ColormapChangeMask (1L<<23) |
||||
#define OwnerGrabButtonMask (1L<<24) |
||||
|
||||
/* Event names. Used in "type" field in XEvent structures. Not to be
|
||||
confused with event masks above. They start from 2 because 0 and 1 |
||||
are reserved in the protocol for errors and replies. */ |
||||
|
||||
#define KeyPress 2 |
||||
#define KeyRelease 3 |
||||
#define ButtonPress 4 |
||||
#define ButtonRelease 5 |
||||
#define MotionNotify 6 |
||||
#define EnterNotify 7 |
||||
#define LeaveNotify 8 |
||||
#define FocusIn 9 |
||||
#define FocusOut 10 |
||||
#define KeymapNotify 11 |
||||
#define Expose 12 |
||||
#define GraphicsExpose 13 |
||||
#define NoExpose 14 |
||||
#define VisibilityNotify 15 |
||||
#define CreateNotify 16 |
||||
#define DestroyNotify 17 |
||||
#define UnmapNotify 18 |
||||
#define MapNotify 19 |
||||
#define MapRequest 20 |
||||
#define ReparentNotify 21 |
||||
#define ConfigureNotify 22 |
||||
#define ConfigureRequest 23 |
||||
#define GravityNotify 24 |
||||
#define ResizeRequest 25 |
||||
#define CirculateNotify 26 |
||||
#define CirculateRequest 27 |
||||
#define PropertyNotify 28 |
||||
#define SelectionClear 29 |
||||
#define SelectionRequest 30 |
||||
#define SelectionNotify 31 |
||||
#define ColormapNotify 32 |
||||
#define ClientMessage 33 |
||||
#define MappingNotify 34 |
||||
#define LASTEvent 35 /* must be bigger than any event # */ |
||||
|
||||
|
||||
/* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer,
|
||||
state in various key-, mouse-, and button-related events. */ |
||||
|
||||
#define ShiftMask (1<<0) |
||||
#define LockMask (1<<1) |
||||
#define ControlMask (1<<2) |
||||
#define Mod1Mask (1<<3) |
||||
#define Mod2Mask (1<<4) |
||||
#define Mod3Mask (1<<5) |
||||
#define Mod4Mask (1<<6) |
||||
#define Mod5Mask (1<<7) |
||||
|
||||
/* modifier names. Used to build a SetModifierMapping request or
|
||||
to read a GetModifierMapping request. These correspond to the |
||||
masks defined above. */ |
||||
#define ShiftMapIndex 0 |
||||
#define LockMapIndex 1 |
||||
#define ControlMapIndex 2 |
||||
#define Mod1MapIndex 3 |
||||
#define Mod2MapIndex 4 |
||||
#define Mod3MapIndex 5 |
||||
#define Mod4MapIndex 6 |
||||
#define Mod5MapIndex 7 |
||||
|
||||
|
||||
/* button masks. Used in same manner as Key masks above. Not to be confused
|
||||
with button names below. */ |
||||
|
||||
#define Button1Mask (1<<8) |
||||
#define Button2Mask (1<<9) |
||||
#define Button3Mask (1<<10) |
||||
#define Button4Mask (1<<11) |
||||
#define Button5Mask (1<<12) |
||||
|
||||
#define AnyModifier (1<<15) /* used in GrabButton, GrabKey */ |
||||
|
||||
|
||||
/* button names. Used as arguments to GrabButton and as detail in ButtonPress
|
||||
and ButtonRelease events. Not to be confused with button masks above. |
||||
Note that 0 is already defined above as "AnyButton". */ |
||||
|
||||
#define Button1 1 |
||||
#define Button2 2 |
||||
#define Button3 3 |
||||
#define Button4 4 |
||||
#define Button5 5 |
||||
|
||||
/* Notify modes */ |
||||
|
||||
#define NotifyNormal 0 |
||||
#define NotifyGrab 1 |
||||
#define NotifyUngrab 2 |
||||
#define NotifyWhileGrabbed 3 |
||||
|
||||
#define NotifyHint 1 /* for MotionNotify events */ |
||||
|
||||
/* Notify detail */ |
||||
|
||||
#define NotifyAncestor 0 |
||||
#define NotifyVirtual 1 |
||||
#define NotifyInferior 2 |
||||
#define NotifyNonlinear 3 |
||||
#define NotifyNonlinearVirtual 4 |
||||
#define NotifyPointer 5 |
||||
#define NotifyPointerRoot 6 |
||||
#define NotifyDetailNone 7 |
||||
|
||||
/* Visibility notify */ |
||||
|
||||
#define VisibilityUnobscured 0 |
||||
#define VisibilityPartiallyObscured 1 |
||||
#define VisibilityFullyObscured 2 |
||||
|
||||
/* Circulation request */ |
||||
|
||||
#define PlaceOnTop 0 |
||||
#define PlaceOnBottom 1 |
||||
|
||||
/* protocol families */ |
||||
|
||||
#define FamilyInternet 0 |
||||
#define FamilyDECnet 1 |
||||
#define FamilyChaos 2 |
||||
|
||||
/* Property notification */ |
||||
|
||||
#define PropertyNewValue 0 |
||||
#define PropertyDelete 1 |
||||
|
||||
/* Color Map notification */ |
||||
|
||||
#define ColormapUninstalled 0 |
||||
#define ColormapInstalled 1 |
||||
|
||||
/* GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes */ |
||||
|
||||
#define GrabModeSync 0 |
||||
#define GrabModeAsync 1 |
||||
|
||||
/* GrabPointer, GrabKeyboard reply status */ |
||||
|
||||
#define GrabSuccess 0 |
||||
#define AlreadyGrabbed 1 |
||||
#define GrabInvalidTime 2 |
||||
#define GrabNotViewable 3 |
||||
#define GrabFrozen 4 |
||||
|
||||
/* AllowEvents modes */ |
||||
|
||||
#define AsyncPointer 0 |
||||
#define SyncPointer 1 |
||||
#define ReplayPointer 2 |
||||
#define AsyncKeyboard 3 |
||||
#define SyncKeyboard 4 |
||||
#define ReplayKeyboard 5 |
||||
#define AsyncBoth 6 |
||||
#define SyncBoth 7 |
||||
|
||||
/* Used in SetInputFocus, GetInputFocus */ |
||||
|
||||
#define RevertToNone (int)None |
||||
#define RevertToPointerRoot (int)PointerRoot |
||||
#define RevertToParent 2 |
||||
|
||||
/*****************************************************************
|
||||
* ERROR CODES |
||||
*****************************************************************/ |
||||
|
||||
#define Success 0 /* everything's okay */ |
||||
#define BadRequest 1 /* bad request code */ |
||||
#define BadValue 2 /* int parameter out of range */ |
||||
#define BadWindow 3 /* parameter not a Window */ |
||||
#define BadPixmap 4 /* parameter not a Pixmap */ |
||||
#define BadAtom 5 /* parameter not an Atom */ |
||||
#define BadCursor 6 /* parameter not a Cursor */ |
||||
#define BadFont 7 /* parameter not a Font */ |
||||
#define BadMatch 8 /* parameter mismatch */ |
||||
#define BadDrawable 9 /* parameter not a Pixmap or Window */ |
||||
#define BadAccess 10 /* depending on context: |
||||
- key/button already grabbed |
||||
- attempt to free an illegal |
||||
cmap entry |
||||
- attempt to store into a read-only |
||||
color map entry. |
||||
- attempt to modify the access control |
||||
list from other than the local host. |
||||
*/ |
||||
#define BadAlloc 11 /* insufficient resources */ |
||||
#define BadColor 12 /* no such colormap */ |
||||
#define BadGC 13 /* parameter not a GC */ |
||||
#define BadIDChoice 14 /* choice not in range or already used */ |
||||
#define BadName 15 /* font or color name doesn't exist */ |
||||
#define BadLength 16 /* Request length incorrect */ |
||||
#define BadImplementation 17 /* server is defective */ |
||||
|
||||
#define FirstExtensionError 128 |
||||
#define LastExtensionError 255 |
||||
|
||||
/*****************************************************************
|
||||
* WINDOW DEFINITIONS |
||||
*****************************************************************/ |
||||
|
||||
/* Window classes used by CreateWindow */ |
||||
/* Note that CopyFromParent is already defined as 0 above */ |
||||
|
||||
#define InputOutput 1 |
||||
#define InputOnly 2 |
||||
|
||||
/* Window attributes for CreateWindow and ChangeWindowAttributes */ |
||||
|
||||
#define CWBackPixmap (1L<<0) |
||||
#define CWBackPixel (1L<<1) |
||||
#define CWBorderPixmap (1L<<2) |
||||
#define CWBorderPixel (1L<<3) |
||||
#define CWBitGravity (1L<<4) |
||||
#define CWWinGravity (1L<<5) |
||||
#define CWBackingStore (1L<<6) |
||||
#define CWBackingPlanes (1L<<7) |
||||
#define CWBackingPixel (1L<<8) |
||||
#define CWOverrideRedirect (1L<<9) |
||||
#define CWSaveUnder (1L<<10) |
||||
#define CWEventMask (1L<<11) |
||||
#define CWDontPropagate (1L<<12) |
||||
#define CWColormap (1L<<13) |
||||
#define CWCursor (1L<<14) |
||||
|
||||
/* ConfigureWindow structure */ |
||||
|
||||
#define CWX (1<<0) |
||||
#define CWY (1<<1) |
||||
#define CWWidth (1<<2) |
||||
#define CWHeight (1<<3) |
||||
#define CWBorderWidth (1<<4) |
||||
#define CWSibling (1<<5) |
||||
#define CWStackMode (1<<6) |
||||
|
||||
|
||||
/* Bit Gravity */ |
||||
|
||||
#define ForgetGravity 0 |
||||
#define NorthWestGravity 1 |
||||
#define NorthGravity 2 |
||||
#define NorthEastGravity 3 |
||||
#define WestGravity 4 |
||||
#define CenterGravity 5 |
||||
#define EastGravity 6 |
||||
#define SouthWestGravity 7 |
||||
#define SouthGravity 8 |
||||
#define SouthEastGravity 9 |
||||
#define StaticGravity 10 |
||||
|
||||
/* Window gravity + bit gravity above */ |
||||
|
||||
#define UnmapGravity 0 |
||||
|
||||
/* Used in CreateWindow for backing-store hint */ |
||||
|
||||
#define NotUseful 0 |
||||
#define WhenMapped 1 |
||||
#define Always 2 |
||||
|
||||
/* Used in GetWindowAttributes reply */ |
||||
|
||||
#define IsUnmapped 0 |
||||
#define IsUnviewable 1 |
||||
#define IsViewable 2 |
||||
|
||||
/* Used in ChangeSaveSet */ |
||||
|
||||
#define SetModeInsert 0 |
||||
#define SetModeDelete 1 |
||||
|
||||
/* Used in ChangeCloseDownMode */ |
||||
|
||||
#define DestroyAll 0 |
||||
#define RetainPermanent 1 |
||||
#define RetainTemporary 2 |
||||
|
||||
/* Window stacking method (in configureWindow) */ |
||||
|
||||
#define Above 0 |
||||
#define Below 1 |
||||
#define TopIf 2 |
||||
#define BottomIf 3 |
||||
#define Opposite 4 |
||||
|
||||
/* Circulation direction */ |
||||
|
||||
#define RaiseLowest 0 |
||||
#define LowerHighest 1 |
||||
|
||||
/* Property modes */ |
||||
|
||||
#define PropModeReplace 0 |
||||
#define PropModePrepend 1 |
||||
#define PropModeAppend 2 |
||||
|
||||
/*****************************************************************
|
||||
* GRAPHICS DEFINITIONS |
||||
*****************************************************************/ |
||||
|
||||
/* graphics functions, as in GC.alu */ |
||||
|
||||
#define GXclear 0x0 /* 0 */ |
||||
#define GXand 0x1 /* src AND dst */ |
||||
#define GXandReverse 0x2 /* src AND NOT dst */ |
||||
#define GXcopy 0x3 /* src */ |
||||
#define GXandInverted 0x4 /* NOT src AND dst */ |
||||
#define GXnoop 0x5 /* dst */ |
||||
#define GXxor 0x6 /* src XOR dst */ |
||||
#define GXor 0x7 /* src OR dst */ |
||||
#define GXnor 0x8 /* NOT src AND NOT dst */ |
||||
#define GXequiv 0x9 /* NOT src XOR dst */ |
||||
#define GXinvert 0xa /* NOT dst */ |
||||
#define GXorReverse 0xb /* src OR NOT dst */ |
||||
#define GXcopyInverted 0xc /* NOT src */ |
||||
#define GXorInverted 0xd /* NOT src OR dst */ |
||||
#define GXnand 0xe /* NOT src OR NOT dst */ |
||||
#define GXset 0xf /* 1 */ |
||||
|
||||
/* LineStyle */ |
||||
|
||||
#define LineSolid 0 |
||||
#define LineOnOffDash 1 |
||||
#define LineDoubleDash 2 |
||||
|
||||
/* capStyle */ |
||||
|
||||
#define CapNotLast 0 |
||||
#define CapButt 1 |
||||
#define CapRound 2 |
||||
#define CapProjecting 3 |
||||
|
||||
/* joinStyle */ |
||||
|
||||
#define JoinMiter 0 |
||||
#define JoinRound 1 |
||||
#define JoinBevel 2 |
||||
|
||||
/* fillStyle */ |
||||
|
||||
#define FillSolid 0 |
||||
#define FillTiled 1 |
||||
#define FillStippled 2 |
||||
#define FillOpaqueStippled 3 |
||||
|
||||
/* fillRule */ |
||||
|
||||
#define EvenOddRule 0 |
||||
#define WindingRule 1 |
||||
|
||||
/* subwindow mode */ |
||||
|
||||
#define ClipByChildren 0 |
||||
#define IncludeInferiors 1 |
||||
|
||||
/* SetClipRectangles ordering */ |
||||
|
||||
#define Unsorted 0 |
||||
#define YSorted 1 |
||||
#define YXSorted 2 |
||||
#define YXBanded 3 |
||||
|
||||
/* CoordinateMode for drawing routines */ |
||||
|
||||
#define CoordModeOrigin 0 /* relative to the origin */ |
||||
#define CoordModePrevious 1 /* relative to previous point */ |
||||
|
||||
/* Polygon shapes */ |
||||
|
||||
#define Complex 0 /* paths may intersect */ |
||||
#define Nonconvex 1 /* no paths intersect, but not convex */ |
||||
#define Convex 2 /* wholly convex */ |
||||
|
||||
/* Arc modes for PolyFillArc */ |
||||
|
||||
#define ArcChord 0 /* join endpoints of arc */ |
||||
#define ArcPieSlice 1 /* join endpoints to center of arc */ |
||||
|
||||
/* GC components: masks used in CreateGC, CopyGC, ChangeGC, OR'ed into
|
||||
GC.stateChanges */ |
||||
|
||||
#define GCFunction (1L<<0) |
||||
#define GCPlaneMask (1L<<1) |
||||
#define GCForeground (1L<<2) |
||||
#define GCBackground (1L<<3) |
||||
#define GCLineWidth (1L<<4) |
||||
#define GCLineStyle (1L<<5) |
||||
#define GCCapStyle (1L<<6) |
||||
#define GCJoinStyle (1L<<7) |
||||
#define GCFillStyle (1L<<8) |
||||
#define GCFillRule (1L<<9) |
||||
#define GCTile (1L<<10) |
||||
#define GCStipple (1L<<11) |
||||
#define GCTileStipXOrigin (1L<<12) |
||||
#define GCTileStipYOrigin (1L<<13) |
||||
#define GCFont (1L<<14) |
||||
#define GCSubwindowMode (1L<<15) |
||||
#define GCGraphicsExposures (1L<<16) |
||||
#define GCClipXOrigin (1L<<17) |
||||
#define GCClipYOrigin (1L<<18) |
||||
#define GCClipMask (1L<<19) |
||||
#define GCDashOffset (1L<<20) |
||||
#define GCDashList (1L<<21) |
||||
#define GCArcMode (1L<<22) |
||||
|
||||
#define GCLastBit 22 |
||||
/*****************************************************************
|
||||
* FONTS |
||||
*****************************************************************/ |
||||
|
||||
/* used in QueryFont -- draw direction */ |
||||
|
||||
#define FontLeftToRight 0 |
||||
#define FontRightToLeft 1 |
||||
|
||||
#define FontChange 255 |
||||
|
||||
/*****************************************************************
|
||||
* IMAGING |
||||
*****************************************************************/ |
||||
|
||||
/* ImageFormat -- PutImage, GetImage */ |
||||
|
||||
#define XYBitmap 0 /* depth 1, XYFormat */ |
||||
#define XYPixmap 1 /* depth == drawable depth */ |
||||
#define ZPixmap 2 /* depth == drawable depth */ |
||||
|
||||
/*****************************************************************
|
||||
* COLOR MAP STUFF |
||||
*****************************************************************/ |
||||
|
||||
/* For CreateColormap */ |
||||
|
||||
#define AllocNone 0 /* create map with no entries */ |
||||
#define AllocAll 1 /* allocate entire map writeable */ |
||||
|
||||
|
||||
/* Flags used in StoreNamedColor, StoreColors */ |
||||
|
||||
#define DoRed (1<<0) |
||||
#define DoGreen (1<<1) |
||||
#define DoBlue (1<<2) |
||||
|
||||
/*****************************************************************
|
||||
* CURSOR STUFF |
||||
*****************************************************************/ |
||||
|
||||
/* QueryBestSize Class */ |
||||
|
||||
#define CursorShape 0 /* largest size that can be displayed */ |
||||
#define TileShape 1 /* size tiled fastest */ |
||||
#define StippleShape 2 /* size stippled fastest */ |
||||
|
||||
/*****************************************************************
|
||||
* KEYBOARD/POINTER STUFF |
||||
*****************************************************************/ |
||||
|
||||
#define AutoRepeatModeOff 0 |
||||
#define AutoRepeatModeOn 1 |
||||
#define AutoRepeatModeDefault 2 |
||||
|
||||
#define LedModeOff 0 |
||||
#define LedModeOn 1 |
||||
|
||||
/* masks for ChangeKeyboardControl */ |
||||
|
||||
#define KBKeyClickPercent (1L<<0) |
||||
#define KBBellPercent (1L<<1) |
||||
#define KBBellPitch (1L<<2) |
||||
#define KBBellDuration (1L<<3) |
||||
#define KBLed (1L<<4) |
||||
#define KBLedMode (1L<<5) |
||||
#define KBKey (1L<<6) |
||||
#define KBAutoRepeatMode (1L<<7) |
||||
|
||||
#define MappingSuccess 0 |
||||
#define MappingBusy 1 |
||||
#define MappingFailed 2 |
||||
|
||||
#define MappingModifier 0 |
||||
#define MappingKeyboard 1 |
||||
#define MappingPointer 2 |
||||
|
||||
/*****************************************************************
|
||||
* SCREEN SAVER STUFF |
||||
*****************************************************************/ |
||||
|
||||
#define DontPreferBlanking 0 |
||||
#define PreferBlanking 1 |
||||
#define DefaultBlanking 2 |
||||
|
||||
#define DisableScreenSaver 0 |
||||
#define DisableScreenInterval 0 |
||||
|
||||
#define DontAllowExposures 0 |
||||
#define AllowExposures 1 |
||||
#define DefaultExposures 2 |
||||
|
||||
/* for ForceScreenSaver */ |
||||
|
||||
#define ScreenSaverReset 0 |
||||
#define ScreenSaverActive 1 |
||||
|
||||
/*****************************************************************
|
||||
* HOSTS AND CONNECTIONS |
||||
*****************************************************************/ |
||||
|
||||
/* for ChangeHosts */ |
||||
|
||||
#define HostInsert 0 |
||||
#define HostDelete 1 |
||||
|
||||
/* for ChangeAccessControl */ |
||||
|
||||
#define EnableAccess 1 |
||||
#define DisableAccess 0 |
||||
|
||||
/* Display classes used in opening the connection
|
||||
* Note that the statically allocated ones are even numbered and the |
||||
* dynamically changeable ones are odd numbered */ |
||||
|
||||
#define StaticGray 0 |
||||
#define GrayScale 1 |
||||
#define StaticColor 2 |
||||
#define PseudoColor 3 |
||||
#define TrueColor 4 |
||||
#define DirectColor 5 |
||||
|
||||
|
||||
/* Byte order used in imageByteOrder and bitmapBitOrder */ |
||||
|
||||
#define LSBFirst 0 |
||||
#define MSBFirst 1 |
||||
|
||||
#if defined(MAC_OSX_TK) |
||||
# undef Cursor |
||||
# undef Region |
||||
#endif |
||||
|
||||
#endif /* X_H */ |
@ -1,79 +0,0 @@
|
||||
#ifndef XATOM_H |
||||
#define XATOM_H 1 |
||||
|
||||
/* THIS IS A GENERATED FILE
|
||||
* |
||||
* Do not change! Changing this file implies a protocol change! |
||||
*/ |
||||
|
||||
#define XA_PRIMARY ((Atom) 1) |
||||
#define XA_SECONDARY ((Atom) 2) |
||||
#define XA_ARC ((Atom) 3) |
||||
#define XA_ATOM ((Atom) 4) |
||||
#define XA_BITMAP ((Atom) 5) |
||||
#define XA_CARDINAL ((Atom) 6) |
||||
#define XA_COLORMAP ((Atom) 7) |
||||
#define XA_CURSOR ((Atom) 8) |
||||
#define XA_CUT_BUFFER0 ((Atom) 9) |
||||
#define XA_CUT_BUFFER1 ((Atom) 10) |
||||
#define XA_CUT_BUFFER2 ((Atom) 11) |
||||
#define XA_CUT_BUFFER3 ((Atom) 12) |
||||
#define XA_CUT_BUFFER4 ((Atom) 13) |
||||
#define XA_CUT_BUFFER5 ((Atom) 14) |
||||
#define XA_CUT_BUFFER6 ((Atom) 15) |
||||
#define XA_CUT_BUFFER7 ((Atom) 16) |
||||
#define XA_DRAWABLE ((Atom) 17) |
||||
#define XA_FONT ((Atom) 18) |
||||
#define XA_INTEGER ((Atom) 19) |
||||
#define XA_PIXMAP ((Atom) 20) |
||||
#define XA_POINT ((Atom) 21) |
||||
#define XA_RECTANGLE ((Atom) 22) |
||||
#define XA_RESOURCE_MANAGER ((Atom) 23) |
||||
#define XA_RGB_COLOR_MAP ((Atom) 24) |
||||
#define XA_RGB_BEST_MAP ((Atom) 25) |
||||
#define XA_RGB_BLUE_MAP ((Atom) 26) |
||||
#define XA_RGB_DEFAULT_MAP ((Atom) 27) |
||||
#define XA_RGB_GRAY_MAP ((Atom) 28) |
||||
#define XA_RGB_GREEN_MAP ((Atom) 29) |
||||
#define XA_RGB_RED_MAP ((Atom) 30) |
||||
#define XA_STRING ((Atom) 31) |
||||
#define XA_VISUALID ((Atom) 32) |
||||
#define XA_WINDOW ((Atom) 33) |
||||
#define XA_WM_COMMAND ((Atom) 34) |
||||
#define XA_WM_HINTS ((Atom) 35) |
||||
#define XA_WM_CLIENT_MACHINE ((Atom) 36) |
||||
#define XA_WM_ICON_NAME ((Atom) 37) |
||||
#define XA_WM_ICON_SIZE ((Atom) 38) |
||||
#define XA_WM_NAME ((Atom) 39) |
||||
#define XA_WM_NORMAL_HINTS ((Atom) 40) |
||||
#define XA_WM_SIZE_HINTS ((Atom) 41) |
||||
#define XA_WM_ZOOM_HINTS ((Atom) 42) |
||||
#define XA_MIN_SPACE ((Atom) 43) |
||||
#define XA_NORM_SPACE ((Atom) 44) |
||||
#define XA_MAX_SPACE ((Atom) 45) |
||||
#define XA_END_SPACE ((Atom) 46) |
||||
#define XA_SUPERSCRIPT_X ((Atom) 47) |
||||
#define XA_SUPERSCRIPT_Y ((Atom) 48) |
||||
#define XA_SUBSCRIPT_X ((Atom) 49) |
||||
#define XA_SUBSCRIPT_Y ((Atom) 50) |
||||
#define XA_UNDERLINE_POSITION ((Atom) 51) |
||||
#define XA_UNDERLINE_THICKNESS ((Atom) 52) |
||||
#define XA_STRIKEOUT_ASCENT ((Atom) 53) |
||||
#define XA_STRIKEOUT_DESCENT ((Atom) 54) |
||||
#define XA_ITALIC_ANGLE ((Atom) 55) |
||||
#define XA_X_HEIGHT ((Atom) 56) |
||||
#define XA_QUAD_WIDTH ((Atom) 57) |
||||
#define XA_WEIGHT ((Atom) 58) |
||||
#define XA_POINT_SIZE ((Atom) 59) |
||||
#define XA_RESOLUTION ((Atom) 60) |
||||
#define XA_COPYRIGHT ((Atom) 61) |
||||
#define XA_NOTICE ((Atom) 62) |
||||
#define XA_FONT_NAME ((Atom) 63) |
||||
#define XA_FAMILY_NAME ((Atom) 64) |
||||
#define XA_FULL_NAME ((Atom) 65) |
||||
#define XA_CAP_HEIGHT ((Atom) 66) |
||||
#define XA_WM_CLASS ((Atom) 67) |
||||
#define XA_WM_TRANSIENT_FOR ((Atom) 68) |
||||
|
||||
#define XA_LAST_PREDEFINED ((Atom) 68) |
||||
#endif /* XATOM_H */ |
@ -1,60 +0,0 @@
|
||||
/* $XConsortium: Xfuncproto.h,v 1.7 91/05/13 20:49:21 rws Exp $ */ |
||||
/*
|
||||
* Copyright 1989, 1991 by the Massachusetts Institute of Technology |
||||
* |
||||
* 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 M.I.T. not be used in advertising |
||||
* or publicity pertaining to distribution of the software without specific, |
||||
* written prior permission. M.I.T. makes no representations about the |
||||
* suitability of this software for any purpose. It is provided "as is" |
||||
* without express or implied warranty. |
||||
* |
||||
*/ |
||||
|
||||
/* Definitions to make function prototypes manageable */ |
||||
|
||||
#ifndef _XFUNCPROTO_H_ |
||||
#define _XFUNCPROTO_H_ |
||||
|
||||
#ifndef NeedFunctionPrototypes |
||||
#define NeedFunctionPrototypes 1 |
||||
#endif /* NeedFunctionPrototypes */ |
||||
|
||||
#ifndef NeedVarargsPrototypes |
||||
#define NeedVarargsPrototypes 0 |
||||
#endif /* NeedVarargsPrototypes */ |
||||
|
||||
#if NeedFunctionPrototypes |
||||
|
||||
#ifndef NeedNestedPrototypes |
||||
#define NeedNestedPrototypes 1 |
||||
#endif /* NeedNestedPrototypes */ |
||||
|
||||
#ifndef _Xconst |
||||
#define _Xconst const |
||||
#endif /* _Xconst */ |
||||
|
||||
#ifndef NeedWidePrototypes |
||||
#ifdef NARROWPROTO |
||||
#define NeedWidePrototypes 0 |
||||
#else |
||||
#define NeedWidePrototypes 1 /* default to make interropt. easier */ |
||||
#endif |
||||
#endif /* NeedWidePrototypes */ |
||||
|
||||
#endif /* NeedFunctionPrototypes */ |
||||
|
||||
#ifdef __cplusplus |
||||
#define _XFUNCPROTOBEGIN extern "C" { |
||||
#define _XFUNCPROTOEND } |
||||
#endif |
||||
|
||||
#ifndef _XFUNCPROTOBEGIN |
||||
#define _XFUNCPROTOBEGIN |
||||
#define _XFUNCPROTOEND |
||||
#endif /* _XFUNCPROTOBEGIN */ |
||||
|
||||
#endif /* _XFUNCPROTO_H_ */ |
File diff suppressed because it is too large
Load Diff
@ -1,855 +0,0 @@
|
||||
/* $XConsortium: Xutil.h,v 11.73 91/07/30 16:21:37 rws Exp $ */ |
||||
|
||||
/***********************************************************
|
||||
Copyright 1987 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. |
||||
|
||||
******************************************************************/ |
||||
|
||||
#ifndef _XUTIL_H_ |
||||
#define _XUTIL_H_ |
||||
|
||||
/* You must include <X11/Xlib.h> before including this file */ |
||||
|
||||
#if defined(MAC_OSX_TK) |
||||
# define Region XRegion |
||||
#endif |
||||
|
||||
/*
|
||||
* Bitmask returned by XParseGeometry(). Each bit tells if the corresponding |
||||
* value (x, y, width, height) was found in the parsed string. |
||||
*/ |
||||
#define NoValue 0x0000 |
||||
#define XValue 0x0001 |
||||
#define YValue 0x0002 |
||||
#define WidthValue 0x0004 |
||||
#define HeightValue 0x0008 |
||||
#define AllValues 0x000F |
||||
#define XNegative 0x0010 |
||||
#define YNegative 0x0020 |
||||
|
||||
/*
|
||||
* new version containing base_width, base_height, and win_gravity fields; |
||||
* used with WM_NORMAL_HINTS. |
||||
*/ |
||||
typedef struct { |
||||
long flags; /* marks which fields in this structure are defined */ |
||||
int x, y; /* obsolete for new window mgrs, but clients */ |
||||
int width, height; /* should set so old wm's don't mess up */ |
||||
int min_width, min_height; |
||||
int max_width, max_height; |
||||
int width_inc, height_inc; |
||||
struct { |
||||
int x; /* numerator */ |
||||
int y; /* denominator */ |
||||
} min_aspect, max_aspect; |
||||
int base_width, base_height; /* added by ICCCM version 1 */ |
||||
int win_gravity; /* added by ICCCM version 1 */ |
||||
} XSizeHints; |
||||
|
||||
/*
|
||||
* The next block of definitions are for window manager properties that |
||||
* clients and applications use for communication. |
||||
*/ |
||||
|
||||
/* flags argument in size hints */ |
||||
#define USPosition (1L << 0) /* user specified x, y */ |
||||
#define USSize (1L << 1) /* user specified width, height */ |
||||
|
||||
#define PPosition (1L << 2) /* program specified position */ |
||||
#define PSize (1L << 3) /* program specified size */ |
||||
#define PMinSize (1L << 4) /* program specified minimum size */ |
||||
#define PMaxSize (1L << 5) /* program specified maximum size */ |
||||
#define PResizeInc (1L << 6) /* program specified resize increments */ |
||||
#define PAspect (1L << 7) /* program specified min and max aspect ratios */ |
||||
#define PBaseSize (1L << 8) /* program specified base for incrementing */ |
||||
#define PWinGravity (1L << 9) /* program specified window gravity */ |
||||
|
||||
/* obsolete */ |
||||
#define PAllHints (PPosition|PSize|PMinSize|PMaxSize|PResizeInc|PAspect) |
||||
|
||||
|
||||
|
||||
typedef struct { |
||||
long flags; /* marks which fields in this structure are defined */ |
||||
Bool input; /* does this application rely on the window manager to
|
||||
get keyboard input? */ |
||||
int initial_state; /* see below */ |
||||
Pixmap icon_pixmap; /* pixmap to be used as icon */ |
||||
Window icon_window; /* window to be used as icon */ |
||||
int icon_x, icon_y; /* initial position of icon */ |
||||
Pixmap icon_mask; /* icon mask bitmap */ |
||||
XID window_group; /* id of related window group */ |
||||
/* this structure may be extended in the future */ |
||||
} XWMHints; |
||||
|
||||
/* definition for flags of XWMHints */ |
||||
|
||||
#define InputHint (1L << 0) |
||||
#define StateHint (1L << 1) |
||||
#define IconPixmapHint (1L << 2) |
||||
#define IconWindowHint (1L << 3) |
||||
#define IconPositionHint (1L << 4) |
||||
#define IconMaskHint (1L << 5) |
||||
#define WindowGroupHint (1L << 6) |
||||
#define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint| \ |
||||
IconPositionHint|IconMaskHint|WindowGroupHint) |
||||
|
||||
/* definitions for initial window state */ |
||||
#define WithdrawnState 0 /* for windows that are not mapped */ |
||||
#define NormalState 1 /* most applications want to start this way */ |
||||
#define IconicState 3 /* application wants to start as an icon */ |
||||
|
||||
/*
|
||||
* Obsolete states no longer defined by ICCCM |
||||
*/ |
||||
#define DontCareState 0 /* don't know or care */ |
||||
#define ZoomState 2 /* application wants to start zoomed */ |
||||
#define InactiveState 4 /* application believes it is seldom used; */ |
||||
/* some wm's may put it on inactive menu */ |
||||
|
||||
|
||||
/*
|
||||
* new structure for manipulating TEXT properties; used with WM_NAME, |
||||
* WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND. |
||||
*/ |
||||
typedef struct { |
||||
unsigned char *value; /* same as Property routines */ |
||||
Atom encoding; /* prop type */ |
||||
int format; /* prop data format: 8, 16, or 32 */ |
||||
unsigned long nitems; /* number of data items in value */ |
||||
} XTextProperty; |
||||
|
||||
#define XNoMemory -1 |
||||
#define XLocaleNotSupported -2 |
||||
#define XConverterNotFound -3 |
||||
|
||||
typedef enum { |
||||
XStringStyle, /* STRING */ |
||||
XCompoundTextStyle, /* COMPOUND_TEXT */ |
||||
XTextStyle, /* text in owner's encoding (current locale)*/ |
||||
XStdICCTextStyle /* STRING, else COMPOUND_TEXT */ |
||||
} XICCEncodingStyle; |
||||
|
||||
typedef struct { |
||||
int min_width, min_height; |
||||
int max_width, max_height; |
||||
int width_inc, height_inc; |
||||
} XIconSize; |
||||
|
||||
typedef struct { |
||||
char *res_name; |
||||
char *res_class; |
||||
} XClassHint; |
||||
|
||||
/*
|
||||
* These macros are used to give some sugar to the image routines so that |
||||
* naive people are more comfortable with them. |
||||
*/ |
||||
#define XDestroyImage(ximage) \ |
||||
((*((ximage)->f.destroy_image))((ximage))) |
||||
#define XGetPixel(ximage, x, y) \ |
||||
((*((ximage)->f.get_pixel))((ximage), (x), (y))) |
||||
#define XPutPixel(ximage, x, y, pixel) \ |
||||
((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel))) |
||||
#define XSubImage(ximage, x, y, width, height) \ |
||||
((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height))) |
||||
#define XAddPixel(ximage, value) \ |
||||
((*((ximage)->f.add_pixel))((ximage), (value))) |
||||
|
||||
/*
|
||||
* Compose sequence status structure, used in calling XLookupString. |
||||
*/ |
||||
typedef struct _XComposeStatus { |
||||
XPointer compose_ptr; /* state table pointer */ |
||||
int chars_matched; /* match state */ |
||||
} XComposeStatus; |
||||
|
||||
/*
|
||||
* Keysym macros, used on Keysyms to test for classes of symbols |
||||
*/ |
||||
#define IsKeypadKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_KP_Space) && ((unsigned)(keysym) <= XK_KP_Equal)) |
||||
|
||||
#define IsCursorKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_Home) && ((unsigned)(keysym) < XK_Select)) |
||||
|
||||
#define IsPFKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_KP_F1) && ((unsigned)(keysym) <= XK_KP_F4)) |
||||
|
||||
#define IsFunctionKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_F1) && ((unsigned)(keysym) <= XK_F35)) |
||||
|
||||
#define IsMiscFunctionKey(keysym) \ |
||||
(((unsigned)(keysym) >= XK_Select) && ((unsigned)(keysym) <= XK_Break)) |
||||
|
||||
#define IsModifierKey(keysym) \ |
||||
((((unsigned)(keysym) >= XK_Shift_L) && ((unsigned)(keysym) <= XK_Hyper_R)) \
|
||||
|| ((unsigned)(keysym) == XK_Mode_switch) \
|
||||
|| ((unsigned)(keysym) == XK_Num_Lock)) |
||||
/*
|
||||
* opaque reference to Region data type |
||||
*/ |
||||
typedef struct _XRegion *Region; |
||||
|
||||
/* Return values from XRectInRegion() */ |
||||
|
||||
#define RectangleOut 0 |
||||
#define RectangleIn 1 |
||||
#define RectanglePart 2 |
||||
|
||||
|
||||
/*
|
||||
* Information used by the visual utility routines to find desired visual |
||||
* type from the many visuals a display may support. |
||||
*/ |
||||
|
||||
typedef struct { |
||||
Visual *visual; |
||||
VisualID visualid; |
||||
int screen; |
||||
int depth; |
||||
#if defined(__cplusplus) || defined(c_plusplus) |
||||
int c_class; /* C++ */ |
||||
#else |
||||
int class; |
||||
#endif |
||||
unsigned long red_mask; |
||||
unsigned long green_mask; |
||||
unsigned long blue_mask; |
||||
int colormap_size; |
||||
int bits_per_rgb; |
||||
} XVisualInfo; |
||||
|
||||
#define VisualNoMask 0x0 |
||||
#define VisualIDMask 0x1 |
||||
#define VisualScreenMask 0x2 |
||||
#define VisualDepthMask 0x4 |
||||
#define VisualClassMask 0x8 |
||||
#define VisualRedMaskMask 0x10 |
||||
#define VisualGreenMaskMask 0x20 |
||||
#define VisualBlueMaskMask 0x40 |
||||
#define VisualColormapSizeMask 0x80 |
||||
#define VisualBitsPerRGBMask 0x100 |
||||
#define VisualAllMask 0x1FF |
||||
|
||||
/*
|
||||
* This defines a window manager property that clients may use to |
||||
* share standard color maps of type RGB_COLOR_MAP: |
||||
*/ |
||||
typedef struct { |
||||
Colormap colormap; |
||||
unsigned long red_max; |
||||
unsigned long red_mult; |
||||
unsigned long green_max; |
||||
unsigned long green_mult; |
||||
unsigned long blue_max; |
||||
unsigned long blue_mult; |
||||
unsigned long base_pixel; |
||||
VisualID visualid; /* added by ICCCM version 1 */ |
||||
XID killid; /* added by ICCCM version 1 */ |
||||
} XStandardColormap; |
||||
|
||||
#define ReleaseByFreeingColormap ((XID) 1L) /* for killid field above */ |
||||
|
||||
|
||||
/*
|
||||
* return codes for XReadBitmapFile and XWriteBitmapFile |
||||
*/ |
||||
#define BitmapSuccess 0 |
||||
#define BitmapOpenFailed 1 |
||||
#define BitmapFileInvalid 2 |
||||
#define BitmapNoMemory 3 |
||||
|
||||
/****************************************************************
|
||||
* |
||||
* Context Management |
||||
* |
||||
****************************************************************/ |
||||
|
||||
|
||||
/* Associative lookup table return codes */ |
||||
|
||||
#define XCSUCCESS 0 /* No error. */ |
||||
#define XCNOMEM 1 /* Out of memory */ |
||||
#define XCNOENT 2 /* No entry in table */ |
||||
|
||||
typedef int XContext; |
||||
|
||||
#define XUniqueContext() ((XContext) XrmUniqueQuark()) |
||||
#define XStringToContext(string) ((XContext) XrmStringToQuark(string)) |
||||
|
||||
_XFUNCPROTOBEGIN |
||||
|
||||
/* The following declarations are alphabetized. */ |
||||
|
||||
extern XClassHint *XAllocClassHint ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern XIconSize *XAllocIconSize ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern XSizeHints *XAllocSizeHints ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern XStandardColormap *XAllocStandardColormap ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern XWMHints *XAllocWMHints ( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern void XClipBox( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
XRectangle* /* rect_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Region XCreateRegion( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern char *XDefaultString( |
||||
#if NeedFunctionPrototypes |
||||
void |
||||
#endif |
||||
); |
||||
|
||||
extern int XDeleteContext( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XID /* rid */, |
||||
XContext /* context */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XDestroyRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */ |
||||
#endif |
||||
); |
||||
|
||||
extern Bool XEmptyRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */ |
||||
#endif |
||||
); |
||||
|
||||
extern Bool XEqualRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r1 */, |
||||
Region /* r2 */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XFindContext( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XID /* rid */, |
||||
XContext /* context */, |
||||
XPointer* /* data_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetClassHint( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XClassHint* /* class_hints_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetIconSizes( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XIconSize** /* size_list_return */, |
||||
int* /* count_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetNormalHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetRGBColormaps( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XStandardColormap** /* stdcmap_return */, |
||||
int* /* count_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetSizeHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetStandardColormap( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XStandardColormap* /* colormap_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetTextProperty( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* window */, |
||||
XTextProperty* /* text_prop_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
|
||||
extern Status XGetWMClientMachine( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern XWMHints *XGetWMHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetWMIconName( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetWMName( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetWMNormalHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints_return */, |
||||
long* /* supplied_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetWMSizeHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints_return */, |
||||
long* /* supplied_return */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XGetZoomHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* zhints_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XIntersectRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* sra */, |
||||
Region /* srb */, |
||||
Region /* dr_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XLookupString( |
||||
#if NeedFunctionPrototypes |
||||
XKeyEvent* /* event_struct */, |
||||
char* /* buffer_return */, |
||||
int /* bytes_buffer */, |
||||
KeySym* /* keysym_return */, |
||||
XComposeStatus* /* status_in_out */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XMatchVisualInfo( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
int /* screen */, |
||||
int /* depth */, |
||||
int /* class */, |
||||
XVisualInfo* /* vinfo_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XOffsetRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
int /* dx */, |
||||
int /* dy */ |
||||
#endif |
||||
); |
||||
|
||||
extern Bool XPointInRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
int /* x */, |
||||
int /* y */ |
||||
#endif |
||||
); |
||||
|
||||
extern Region XPolygonRegion( |
||||
#if NeedFunctionPrototypes |
||||
XPoint* /* points */, |
||||
int /* n */, |
||||
int /* fill_rule */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XRectInRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
int /* x */, |
||||
int /* y */, |
||||
unsigned int /* width */, |
||||
unsigned int /* height */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XSaveContext( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XID /* rid */, |
||||
XContext /* context */, |
||||
_Xconst char* /* data */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetClassHint( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XClassHint* /* class_hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetIconSizes( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XIconSize* /* size_list */, |
||||
int /* count */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetNormalHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetRGBColormaps( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XStandardColormap* /* stdcmaps */, |
||||
int /* count */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetSizeHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetStandardProperties( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
_Xconst char* /* window_name */, |
||||
_Xconst char* /* icon_name */, |
||||
Pixmap /* icon_pixmap */, |
||||
char** /* argv */, |
||||
int /* argc */, |
||||
XSizeHints* /* hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetTextProperty( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XWMHints* /* wm_hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMIconName( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMName( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* text_prop */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMNormalHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMProperties( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XTextProperty* /* window_name */, |
||||
XTextProperty* /* icon_name */, |
||||
char** /* argv */, |
||||
int /* argc */, |
||||
XSizeHints* /* normal_hints */, |
||||
XWMHints* /* wm_hints */, |
||||
XClassHint* /* class_hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XmbSetWMProperties( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
_Xconst char* /* window_name */, |
||||
_Xconst char* /* icon_name */, |
||||
char** /* argv */, |
||||
int /* argc */, |
||||
XSizeHints* /* normal_hints */, |
||||
XWMHints* /* wm_hints */, |
||||
XClassHint* /* class_hints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetWMSizeHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* hints */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetRegion( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
GC /* gc */, |
||||
Region /* r */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetStandardColormap( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XStandardColormap* /* colormap */, |
||||
Atom /* property */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSetZoomHints( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
Window /* w */, |
||||
XSizeHints* /* zhints */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XShrinkRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* r */, |
||||
int /* dx */, |
||||
int /* dy */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XSubtractRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* sra */, |
||||
Region /* srb */, |
||||
Region /* dr_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XmbTextListToTextProperty( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
char** /* list */, |
||||
int /* count */, |
||||
XICCEncodingStyle /* style */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XwcTextListToTextProperty( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
wchar_t** /* list */, |
||||
int /* count */, |
||||
XICCEncodingStyle /* style */, |
||||
XTextProperty* /* text_prop_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XwcFreeStringList( |
||||
#if NeedFunctionPrototypes |
||||
wchar_t** /* list */ |
||||
#endif |
||||
); |
||||
|
||||
extern Status XTextPropertyToStringList( |
||||
#if NeedFunctionPrototypes |
||||
XTextProperty* /* text_prop */, |
||||
char*** /* list_return */, |
||||
int* /* count_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XmbTextPropertyToTextList( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XTextProperty* /* text_prop */, |
||||
char*** /* list_return */, |
||||
int* /* count_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XwcTextPropertyToTextList( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
XTextProperty* /* text_prop */, |
||||
wchar_t*** /* list_return */, |
||||
int* /* count_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XUnionRectWithRegion( |
||||
#if NeedFunctionPrototypes |
||||
XRectangle* /* rectangle */, |
||||
Region /* src_region */, |
||||
Region /* dest_region_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XUnionRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* sra */, |
||||
Region /* srb */, |
||||
Region /* dr_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern int XWMGeometry( |
||||
#if NeedFunctionPrototypes |
||||
Display* /* display */, |
||||
int /* screen_number */, |
||||
_Xconst char* /* user_geometry */, |
||||
_Xconst char* /* default_geometry */, |
||||
unsigned int /* border_width */, |
||||
XSizeHints* /* hints */, |
||||
int* /* x_return */, |
||||
int* /* y_return */, |
||||
int* /* width_return */, |
||||
int* /* height_return */, |
||||
int* /* gravity_return */ |
||||
#endif |
||||
); |
||||
|
||||
extern void XXorRegion( |
||||
#if NeedFunctionPrototypes |
||||
Region /* sra */, |
||||
Region /* srb */, |
||||
Region /* dr_return */ |
||||
#endif |
||||
); |
||||
|
||||
_XFUNCPROTOEND |
||||
|
||||
#if defined(MAC_OSX_TK) |
||||
# undef Region |
||||
#endif |
||||
|
||||
#endif /* _XUTIL_H_ */ |
@ -1,79 +0,0 @@
|
||||
/* $XConsortium: cursorfont.h,v 1.2 88/09/06 16:44:27 jim Exp $ */ |
||||
#define XC_num_glyphs 154 |
||||
#define XC_X_cursor 0 |
||||
#define XC_arrow 2 |
||||
#define XC_based_arrow_down 4 |
||||
#define XC_based_arrow_up 6 |
||||
#define XC_boat 8 |
||||
#define XC_bogosity 10 |
||||
#define XC_bottom_left_corner 12 |
||||
#define XC_bottom_right_corner 14 |
||||
#define XC_bottom_side 16 |
||||
#define XC_bottom_tee 18 |
||||
#define XC_box_spiral 20 |
||||
#define XC_center_ptr 22 |
||||
#define XC_circle 24 |
||||
#define XC_clock 26 |
||||
#define XC_coffee_mug 28 |
||||
#define XC_cross 30 |
||||
#define XC_cross_reverse 32 |
||||
#define XC_crosshair 34 |
||||
#define XC_diamond_cross 36 |
||||
#define XC_dot 38 |
||||
#define XC_dotbox 40 |
||||
#define XC_double_arrow 42 |
||||
#define XC_draft_large 44 |
||||
#define XC_draft_small 46 |
||||
#define XC_draped_box 48 |
||||
#define XC_exchange 50 |
||||
#define XC_fleur 52 |
||||
#define XC_gobbler 54 |
||||
#define XC_gumby 56 |
||||
#define XC_hand1 58 |
||||
#define XC_hand2 60 |
||||
#define XC_heart 62 |
||||
#define XC_icon 64 |
||||
#define XC_iron_cross 66 |
||||
#define XC_left_ptr 68 |
||||
#define XC_left_side 70 |
||||
#define XC_left_tee 72 |
||||
#define XC_leftbutton 74 |
||||
#define XC_ll_angle 76 |
||||
#define XC_lr_angle 78 |
||||
#define XC_man 80 |
||||
#define XC_middlebutton 82 |
||||
#define XC_mouse 84 |
||||
#define XC_pencil 86 |
||||
#define XC_pirate 88 |
||||
#define XC_plus 90 |
||||
#define XC_question_arrow 92 |
||||
#define XC_right_ptr 94 |
||||
#define XC_right_side 96 |
||||
#define XC_right_tee 98 |
||||
#define XC_rightbutton 100 |
||||
#define XC_rtl_logo 102 |
||||
#define XC_sailboat 104 |
||||
#define XC_sb_down_arrow 106 |
||||
#define XC_sb_h_double_arrow 108 |
||||
#define XC_sb_left_arrow 110 |
||||
#define XC_sb_right_arrow 112 |
||||
#define XC_sb_up_arrow 114 |
||||
#define XC_sb_v_double_arrow 116 |
||||
#define XC_shuttle 118 |
||||
#define XC_sizing 120 |
||||
#define XC_spider 122 |
||||
#define XC_spraycan 124 |
||||
#define XC_star 126 |
||||
#define XC_target 128 |
||||
#define XC_tcross 130 |
||||
#define XC_top_left_arrow 132 |
||||
#define XC_top_left_corner 134 |
||||
#define XC_top_right_corner 136 |
||||
#define XC_top_side 138 |
||||
#define XC_top_tee 140 |
||||
#define XC_trek 142 |
||||
#define XC_ul_angle 144 |
||||
#define XC_umbrella 146 |
||||
#define XC_ur_angle 148 |
||||
#define XC_watch 150 |
||||
#define XC_xterm 152 |
@ -1,35 +0,0 @@
|
||||
/* $XConsortium: keysym.h,v 1.13 91/03/13 20:09:49 rws Exp $ */ |
||||
|
||||
/***********************************************************
|
||||
Copyright 1987 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. |
||||
|
||||
******************************************************************/ |
||||
|
||||
/* default keysyms */ |
||||
#define XK_MISCELLANY |
||||
#define XK_LATIN1 |
||||
#define XK_LATIN2 |
||||
#define XK_LATIN3 |
||||
#define XK_LATIN4 |
||||
#define XK_GREEK |
||||
|
||||
#include <X11/keysymdef.h> |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue