diff -r f1a194c18429 -r b297468551c6 XWorkstation.st --- 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 #include +#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