XGraphicsContext.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 26 Dec 2014 22:46:49 +0100
branchdelegated_gc_jv
changeset 6726 9f16fe1701f5
child 6727 f3449322bf47
permissions -rw-r--r--
XGraphicsContext made public to allow subclassing and extending
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6726
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:libview' }"
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
DeviceGraphicsContext subclass:#XGraphicsContext
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
	instanceVariableNames:'xftDrawId'
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'Interface-Graphics'
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
!XGraphicsContext methodsFor:'accessing'!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
xftDrawId
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
    ^ xftDrawId
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
xftDrawId:anXftDrawHandle
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
    xftDrawId := anXftDrawHandle.
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
    "Modified (format): / 23-06-2014 / 21:28:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
! !
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
!XGraphicsContext methodsFor:'displaying'!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
displayString:aString x:x y:y opaque:opaque
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    "draw a string - if opaque is false, draw foreground only; otherwise, draw both
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
     foreground and background characters.
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
     If the coordinates are not integers, an error is triggered."
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    <context: #return>
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    |displayId|
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    device flushIfAppropriate.
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
    displayId := device displayIdOrErrorIfBroken.
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
%{
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
#if 0
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    GC gc;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    Window win;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
    char *cp;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    int n;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
    OBJ cls;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
#   define NLOCALBUFFER 200
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
    XChar2b xlatebuffer[NLOCALBUFFER];
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    int nInstBytes;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    if (displayId != nil
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
     && __isExternalAddress(__INST(gcId))
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
     && __isExternalAddress(__INST(drawableId))
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
     && __isNonNilObject(aString)
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
     && __bothSmallInteger(x, y)) {
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
	int lMax = __intVal(@global(XWorkstation:MaxStringLength));
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
	Display *dpy = __DisplayVal(displayId);
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
	gc = __GCVal(__INST(gcId));
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
	win = __WindowVal(__INST(drawableId));
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
	cp = (char *) __stringVal(aString);
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
	if (__isStringLike(aString)) {
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
	    n = __stringSize(aString);
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
	    if (n > lMax) n = lMax;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
	    ENTER_XLIB();
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
	    if (opaque == true)
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
		XDrawImageString(dpy, win, gc, __intVal(x), __intVal(y), cp, n);
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
	    else
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
		XDrawString(dpy, win, gc, __intVal(x), __intVal(y), cp, n);
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
	    LEAVE_XLIB();
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
	    RETURN ( self );
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
	}
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
	cls = __qClass(aString);
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
	nInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(cls)->c_ninstvars));
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
	cp += nInstBytes;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
	if (__isBytes(aString)) {
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
	    n = __byteArraySize(aString) - nInstBytes - 1;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
	    if (n > lMax) n = lMax;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
	    ENTER_XLIB();
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
	    if (opaque == true)
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
		XDrawImageString(dpy, win, gc, __intVal(x), __intVal(y), cp, n);
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
	    else
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
		XDrawString(dpy, win, gc, __intVal(x), __intVal(y), cp, n);
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
	    LEAVE_XLIB();
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
	    RETURN ( self );
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
	}
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
	/* TWOBYTESTRINGS */
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
	if (__isWords(aString)) {
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
	    union {
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
		char b[2];
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
		unsigned short s;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
	    } u;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
	    int i;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
	    XChar2b *cp2;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
	    int mustFree = 0;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
	    n = (__byteArraySize(aString) - nInstBytes) / 2;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
	    if (n > lMax) n = lMax;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
#if defined(MSBFIRST) || defined(__MSBFIRST)
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
	    /*
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
	     * chars already in correct order
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
	     */
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
#else
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
# if ! (defined(LSBFIRST) || defined(__LSBFIRST))
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
	    /*
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
	     * ST/X TwoByteStrings store the asciiValue in native byteOrder;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
	     * X expects them MSB first
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
	     * convert as required
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
	     */
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
	    u.s = 0x1234;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
	    if (u.b[0] != 0x12)
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
# endif
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
	    {
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
		if (n <= NLOCALBUFFER) {
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
		    cp2 = xlatebuffer;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
		} else {
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
		    cp2 = (XChar2b *)(malloc(n * 2));
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
		    mustFree = 1;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
		}
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
		for (i=0; i<n; i++) {
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
		    cp2[i].byte1 = (((XChar2b *)cp)[i]).byte2;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
		    cp2[i].byte2 = (((XChar2b *)cp)[i]).byte1;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
		}
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
		cp = (char *) cp2;
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
	    }
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
#endif
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
	    ENTER_XLIB();
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
	    if (opaque == true)
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
		XDrawImageString16(dpy, win, gc, __intVal(x), __intVal(y), (XChar2b *)cp, n);
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
	    else
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
		XDrawString16(dpy, win, gc, __intVal(x), __intVal(y), (XChar2b *)cp, n);
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
	    LEAVE_XLIB();
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
	    if (mustFree) {
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
		free(cp2);
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
	    }
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
	    RETURN ( self );
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
	}
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
    }
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
#undef NLOCALBUFFER
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
#endif
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
%}.
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
    ^ super displayString:aString x:x y:y opaque:opaque
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
! !
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
!XGraphicsContext methodsFor:'initialization & release'!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
prepareForReinit
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    "kludge - clear drawableId and gcId
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
     needed after snapin"
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
    super prepareForReinit.
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
    xftDrawId := nil.
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
    "Created: / 09-10-2014 / 00:02:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
! !
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   162
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
!XGraphicsContext class methodsFor:'documentation'!
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
version_HG
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
    ^ '$Changeset: <not expanded> $'
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
! !
9f16fe1701f5 XGraphicsContext made public to allow subclassing and extending
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169