--- a/XWorkstation.st Fri Feb 25 14:13:21 1994 +0100
+++ b/XWorkstation.st Fri Feb 25 14:14:52 1994 +0100
@@ -37,7 +37,7 @@
this class provides the interface to X11
-$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.11 1994-01-16 03:55:25 claus Exp $
+$Header: /cvs/stx/stx/libview/XWorkstation.st,v 1.12 1994-02-25 13:14:52 claus Exp $
written spring/summer 89 by claus
'!
@@ -51,6 +51,8 @@
#include <X11/Xutil.h>
#include <X11/Xatom.h>
+#define TWOBYTESTRINGS
+
/*
* shape support works; enabled by -DSHAPE in makefile
* see RoundClock and RoundGlobe examples
@@ -182,7 +184,7 @@
/*
* some defines - tired of typing ...
*/
-#ifdef hpux
+#if defined(hpux) && defined(POSITIVE_ADDRESSES)
# define _DisplayVal(o) (Display *)((int)(o) & ~TAG_INT)
# define _WindowVal(o) (Window)((int)(o) & ~TAG_INT)
# define _PixmapVal(o) (Pixmap)((int)(o) & ~TAG_INT)
@@ -692,7 +694,7 @@
Window child_return;
if (_isSmallInteger(windowId)
- && _isPoint(aPoint)) {
+ && __isPoint(aPoint)) {
xp = _point_X(aPoint);
yp = _point_Y(aPoint);
if (_isSmallInteger(xp) && _isSmallInteger(yp)) {
@@ -859,7 +861,7 @@
int b_x_hot, b_y_hot;
int status;
- if (_isString(aString) || _isSymbol(aString)) {
+ if (__isString(aString) || __isSymbol(aString)) {
filename = (char *)_stringVal(aString);
BLOCKINTERRUPTS();
@@ -1352,7 +1354,7 @@
else
iconWindow = (Window)0;
- if (_isString(wlabel) || _isSymbol(wlabel))
+ if (__isString(wlabel) || __isSymbol(wlabel))
windowName = (char *)_stringVal(wlabel);
else
windowName = "";
@@ -1502,8 +1504,8 @@
%{
char *rslt;
- if ((_isString(name) || _isSymbol(name))
- && (_isString(cls) || _isSymbol(cls))) {
+ if ((__isString(name) || __isSymbol(name))
+ && (__isString(cls) || __isSymbol(cls))) {
rslt = XGetDefault(myDpy, (char *)_stringVal(cls),
(char *)_stringVal(name));
RETURN (rslt ? _MKSTRING(rslt, __context) : nil );
@@ -1715,7 +1717,7 @@
XFontStruct *newFont;
- if (_isString(aFontName) || _isSymbol(aFontName)) {
+ if (__isString(aFontName) || __isSymbol(aFontName)) {
newFont = XLoadQueryFont(myDpy, (char *)_stringVal(aFontName));
RETURN ( newFont ? MKOBJ(newFont) : nil );
}
@@ -1815,7 +1817,7 @@
char *cp;
int len, n;
- if ((_isString(aString) || _isSymbol(aString))
+ if ((__isString(aString) || __isSymbol(aString))
&& _isSmallInteger(aFontId)) {
f = _FontVal(aFontId);
n = _stringSize(aString);
@@ -1839,7 +1841,7 @@
char *cp;
int len, n, i1, i2;
- if ((_isString(aString) || _isSymbol(aString))
+ if ((__isString(aString) || __isSymbol(aString))
&& _isSmallInteger(index1)
&& _isSmallInteger(index2)
&& _isSmallInteger(aFontId)) {
@@ -2228,7 +2230,7 @@
[(line at:index) isSeparator] whileTrue:[index := index + 1].
[(line at:index) isDigit] whileTrue:[index := index + 1].
[(line at:index) isSeparator] whileTrue:[index := index + 1].
- colorName := line copyFrom:index to:(line size).
+ colorName := line copyFrom:index.
((colorName occurrencesOf:(Character space)) == 0) ifTrue:[
list add:colorName
]
@@ -2269,7 +2271,7 @@
if (_isSmallInteger(aPercentage)) {
RETURN ( _MKSMALLINT(0xFFFF * _intVal(aPercentage) / 100) );
}
- if (_isFloat(aPercentage)) {
+ if (__isFloat(aPercentage)) {
RETURN ( _MKSMALLINT(0xFFFF * (int)(_floatVal(aPercentage)) / 100) );
}
%}
@@ -2317,7 +2319,7 @@
XColor scolor, ecolor;
int screen =_intVal(_INST(screen));
- if (_isString(aString) || _isSymbol(aString)) {
+ if (__isString(aString) || __isSymbol(aString)) {
colorname = (char *)_stringVal(aString);
if (!XParseColor(dpy, DefaultColormap(dpy, screen),
@@ -2371,19 +2373,19 @@
if (_isSmallInteger(redVal))
r = 0xFFFF * _intVal(redVal) / 100;
- else if (_isFloat(redVal))
+ else if (__isFloat(redVal))
r = 0xFFFF * (int)(_floatVal(redVal)) / 100;
else ok = 0;
if (_isSmallInteger(greenVal))
g = 0xFFFF * _intVal(greenVal) / 100;
- else if (_isFloat(greenVal))
+ else if (__isFloat(greenVal))
g = 0xFFFF * (int)(_floatVal(greenVal)) / 100;
else ok = 0;
if (_isSmallInteger(blueVal))
b = 0xFFFF * _intVal(blueVal) / 100;
- else if (_isFloat(blueVal))
+ else if (__isFloat(blueVal))
b = 0xFFFF * (int)(_floatVal(blueVal)) / 100;
else ok = 0;
@@ -2414,7 +2416,7 @@
double fr, fg, fb;
double floor();
- if (_isString(colorName) || _isSymbol(colorName)) {
+ if (__isString(colorName) || __isSymbol(colorName)) {
if (XParseColor(dpy, DefaultColormap(dpy, screen), (char *)_stringVal(colorName),
&color)) {
/* scale to 0..100 and round to the first decimal */
@@ -2651,7 +2653,7 @@
%{ /* NOCONTEXT */
if (_isSmallInteger(aWindowId)
- && (_isString(aString) || _isSymbol(aString))) {
+ && (__isString(aString) || __isSymbol(aString))) {
XStoreName(myDpy, _WindowVal(aWindowId), (char *)_stringVal(aString));
RETURN ( self );
}
@@ -2666,7 +2668,7 @@
%{ /* NOCONTEXT */
if (_isSmallInteger(aWindowId)
- && (_isString(aString) || _isSymbol(aString))) {
+ && (__isString(aString) || __isSymbol(aString))) {
XSetIconName(myDpy, _WindowVal(aWindowId), (char *)_stringVal(aString));
RETURN ( self );
}
@@ -2808,7 +2810,7 @@
else
iconWindow = (Window)0;
- if (_isString(wlabel) || _isSymbol(wlabel))
+ if (__isString(wlabel) || __isSymbol(wlabel))
windowName = (char *)_stringVal(wlabel);
else
windowName = "";
@@ -3442,7 +3444,7 @@
if (_isSmallInteger(aGCId) && _isSmallInteger(aDrawableId)
&& _isSmallInteger(x) && _isSmallInteger(y)) {
- if (_isString(aString) || _isSymbol(aString)) {
+ if (__isString(aString) || __isSymbol(aString)) {
cp = _stringVal(aString);
n = _stringSize(aString);
if (n > 1000) n = 1000;
@@ -3452,7 +3454,7 @@
#ifdef TWOBYTESTRINGS
if (_Class(aString) == TwoByteString) {
cp = _stringVal(aString);
- n = _stringSize(aString) / 2;
+ n = _byteArraySize(aString) / 2;
if (n > 1000) n = 1000;
XDrawString16(myDpy, win, gc, _intVal(x), _intVal(y), (char *)cp, n);
RETURN ( self );
@@ -3479,7 +3481,7 @@
if (_isSmallInteger(aGCId) && _isSmallInteger(aDrawableId)
&& _isSmallInteger(x) && _isSmallInteger(y)) {
- if (_isString(aString) || _isSymbol(aString)) {
+ if (__isString(aString) || __isSymbol(aString)) {
cp = _stringVal(aString);
n = _stringSize(aString);
if (n > 1000) n = 1000;
@@ -3489,7 +3491,7 @@
#ifdef TWOBYTESTRINGS
if (_Class(aString) == TwoByteString) {
cp = _stringVal(aString);
- n = _stringSize(aString) / 2;
+ n = _byteArraySize(aString) / 2;
if (n > 1000) n = 1000;
XDrawString16(myDpy, win, gc, _intVal(x), _intVal(y), (char *)cp, n);
RETURN ( self );
@@ -3517,7 +3519,7 @@
if (_isSmallInteger(aGCId) && _isSmallInteger(aDrawableId)
&& _isSmallInteger(index1) && _isSmallInteger(index2)
&& _isSmallInteger(x) && _isSmallInteger(y)) {
- if (_isString(aString) || _isSymbol(aString)) {
+ if (__isString(aString) || __isSymbol(aString)) {
i1 = _intVal(index1) - 1;
i2 = _intVal(index2) - 1;
n = _stringSize(aString);
@@ -3534,7 +3536,7 @@
if (_Class(aString) == TwoByteString) {
i1 = _intVal(index1) - 1;
i2 = _intVal(index2) - 1;
- n = _stringSize(aString) / 2;
+ n = _byteArraySize(aString) / 2;
cp = _stringVal(aString);
if ((i1 >= 0) && (i2 >= i1) && (i2 < n)) {
cp += (i1 * 2);
@@ -3567,7 +3569,7 @@
if (_isSmallInteger(aGCId) && _isSmallInteger(aDrawableId)
&& _isSmallInteger(index1) && _isSmallInteger(index2)
&& _isSmallInteger(x) && _isSmallInteger(y)) {
- if (_isString(aString) || _isSymbol(aString)) {
+ if (__isString(aString) || __isSymbol(aString)) {
i1 = _intVal(index1) - 1;
i2 = _intVal(index2) - 1;
n = _stringSize(aString);
@@ -3616,7 +3618,7 @@
if (_isSmallInteger(aGCId) && _isSmallInteger(aDrawableId)
&& _isSmallInteger(x) && _isSmallInteger(y)) {
- if (_isString(aString) || _isSymbol(aString)) {
+ if (__isString(aString) || __isSymbol(aString)) {
cp = _stringVal(aString);
n = _stringSize(aString);
if (n > 1000) n = 1000;
@@ -3653,7 +3655,7 @@
if (_isSmallInteger(aGCId) && _isSmallInteger(aDrawableId)
&& _isSmallInteger(x) && _isSmallInteger(y)) {
- if (_isString(aString) || _isSymbol(aString)) {
+ if (__isString(aString) || __isSymbol(aString)) {
cp = _stringVal(aString);
n = _stringSize(aString);
if (n > 1000) n = 1000;
@@ -3691,7 +3693,7 @@
if (_isSmallInteger(aGCId) && _isSmallInteger(aDrawableId)
&& _isSmallInteger(index1) && _isSmallInteger(index2)
&& _isSmallInteger(x) && _isSmallInteger(y)) {
- if (_isString(aString) || _isSymbol(aString)) {
+ if (__isString(aString) || __isSymbol(aString)) {
i1 = _intVal(index1) - 1;
i2 = _intVal(index2) - 1;
n = _stringSize(aString);
@@ -3741,7 +3743,7 @@
if (_isSmallInteger(aGCId) && _isSmallInteger(aDrawableId)
&& _isSmallInteger(index1) && _isSmallInteger(index2)
&& _isSmallInteger(x) && _isSmallInteger(y)) {
- if (_isString(aString) || _isSymbol(aString)) {
+ if (__isString(aString) || __isSymbol(aString)) {
i1 = _intVal(index1) - 1;
i2 = _intVal(index2) - 1;
n = _stringSize(aString);
@@ -3933,7 +3935,7 @@
for (i=0; i<num; i++) {
point = _AT_(aPolygon COMMA_CON, _MKSMALLINT(i+1));
- if (! _isPoint(point)) goto fail;
+ if (! __isPoint(point)) goto fail;
x = _point_X(point);
y = _point_Y(point);
if (! _isSmallInteger(x) || ! _isSmallInteger(y))
@@ -4052,13 +4054,13 @@
if (_isSmallInteger(startAngle))
angle1 = _intVal(startAngle) * 64;
- else if (_isFloat(startAngle)) {
+ else if (__isFloat(startAngle)) {
f = _floatVal(startAngle);
angle1 = f * 64;
}
if (_isSmallInteger(angle))
angle2 = _intVal(angle) * 64;
- else if (_isFloat(angle)) {
+ else if (__isFloat(angle)) {
f = _floatVal(angle);
angle2 = f * 64;
}
@@ -4094,13 +4096,13 @@
if (_isSmallInteger(startAngle))
angle1 = _intVal(startAngle) * 64;
- else if (_isFloat(startAngle)) {
+ else if (__isFloat(startAngle)) {
f = _floatVal(startAngle);
angle1 = f * 64;
}
if (_isSmallInteger(angle))
angle2 = _intVal(angle) * 64;
- else if (_isFloat(angle)) {
+ else if (__isFloat(angle)) {
f = _floatVal(angle);
angle2 = f * 64;
}
@@ -4180,7 +4182,7 @@
points = qPoints;
for (i=0; i<num; i++) {
point = _AT_(aPolygon COMMA_CON, _MKSMALLINT(i+1));
- if (! _isPoint(point)) goto fail;
+ if (! __isPoint(point)) goto fail;
x = _point_X(point);
y = _point_Y(point);
if (! _isSmallInteger(x) || ! _isSmallInteger(y))