NeXTWorkstation.st
author Claus Gittinger <cg@exept.de>
Thu, 04 Jan 1996 18:04:17 +0100
changeset 350 ade060e42304
parent 255 953a18706dfc
child 1030 ca9d23090688
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
48194c26a46c Initial revision
claus
parents:
diff changeset
     1
"
6
7ee0cfde237d *** empty log message ***
claus
parents: 5
diff changeset
     2
 COPYRIGHT (c) 1992 by Claus Gittinger
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
     3
	      All Rights Reserved
0
48194c26a46c Initial revision
claus
parents:
diff changeset
     4
48194c26a46c Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
48194c26a46c Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
48194c26a46c Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
48194c26a46c Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
48194c26a46c Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
48194c26a46c Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
48194c26a46c Initial revision
claus
parents:
diff changeset
    11
"
48194c26a46c Initial revision
claus
parents:
diff changeset
    12
48194c26a46c Initial revision
claus
parents:
diff changeset
    13
DeviceWorkstation subclass:#NeXTWorkstation
48194c26a46c Initial revision
claus
parents:
diff changeset
    14
       instanceVariableNames:'screen
48194c26a46c Initial revision
claus
parents:
diff changeset
    15
			      buffered
48194c26a46c Initial revision
claus
parents:
diff changeset
    16
			      knownDrawableIds'
48194c26a46c Initial revision
claus
parents:
diff changeset
    17
       classVariableNames:   ''
48194c26a46c Initial revision
claus
parents:
diff changeset
    18
       poolDictionaries:''
48194c26a46c Initial revision
claus
parents:
diff changeset
    19
       category:'Interface-Graphics'
48194c26a46c Initial revision
claus
parents:
diff changeset
    20
!
48194c26a46c Initial revision
claus
parents:
diff changeset
    21
48194c26a46c Initial revision
claus
parents:
diff changeset
    22
NeXTWorkstation comment:'
48194c26a46c Initial revision
claus
parents:
diff changeset
    23
6
7ee0cfde237d *** empty log message ***
claus
parents: 5
diff changeset
    24
COPYRIGHT (c) 1992 by Claus Gittinger
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
    25
	      All Rights Reserved
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    26
48194c26a46c Initial revision
claus
parents:
diff changeset
    27
this class provides the interface to NeXTStep; since we cannot include
48194c26a46c Initial revision
claus
parents:
diff changeset
    28
objc-code here (due to define conflicts with Class, nil ...) we call
48194c26a46c Initial revision
claus
parents:
diff changeset
    29
helper functions to do the job; the helpers are in ../librun/NXsupport.c
48194c26a46c Initial revision
claus
parents:
diff changeset
    30
48194c26a46c Initial revision
claus
parents:
diff changeset
    31
All non-monochrome stuff is untested (I only have a monochroome station)
48194c26a46c Initial revision
claus
parents:
diff changeset
    32
350
ade060e42304 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
    33
$Header: /cvs/stx/stx/libview/NeXTWorkstation.st,v 1.14 1996-01-04 17:04:10 cg Exp $
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    34
written spring 92 by claus
48194c26a46c Initial revision
claus
parents:
diff changeset
    35
'!
48194c26a46c Initial revision
claus
parents:
diff changeset
    36
193
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
    37
!NeXTWorkstation primitiveDefinitions!
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
    38
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    39
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
    40
48194c26a46c Initial revision
claus
parents:
diff changeset
    41
#include <stdio.h>
48194c26a46c Initial revision
claus
parents:
diff changeset
    42
#include <dpsclient/wraps.h>
48194c26a46c Initial revision
claus
parents:
diff changeset
    43
#include <dpsclient/psops.h>
48194c26a46c Initial revision
claus
parents:
diff changeset
    44
193
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
    45
%}
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
    46
! !
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
    47
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
    48
!NeXTWorkstation primitiveFunctions!
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
    49
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
    50
%{
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    51
/*
48194c26a46c Initial revision
claus
parents:
diff changeset
    52
 * cannot include objc stuff - too many name conflicts
48194c26a46c Initial revision
claus
parents:
diff changeset
    53
 */
48194c26a46c Initial revision
claus
parents:
diff changeset
    54
#define id INT
48194c26a46c Initial revision
claus
parents:
diff changeset
    55
static INT lastDrawable = 0;
48194c26a46c Initial revision
claus
parents:
diff changeset
    56
48194c26a46c Initial revision
claus
parents:
diff changeset
    57
setDrawable(drawableId)
48194c26a46c Initial revision
claus
parents:
diff changeset
    58
    OBJ drawableId;
48194c26a46c Initial revision
claus
parents:
diff changeset
    59
{
48194c26a46c Initial revision
claus
parents:
diff changeset
    60
    id drawable;
48194c26a46c Initial revision
claus
parents:
diff changeset
    61
48194c26a46c Initial revision
claus
parents:
diff changeset
    62
    drawable = (id)(_intVal(drawableId));
48194c26a46c Initial revision
claus
parents:
diff changeset
    63
    if (drawable != lastDrawable) {
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
    64
	if (lastDrawable) {
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    65
	    _objc_unlockFocus(lastDrawable);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
    66
	}
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    67
	_objc_lockFocus(drawable);
48194c26a46c Initial revision
claus
parents:
diff changeset
    68
	lastDrawable = drawable;
48194c26a46c Initial revision
claus
parents:
diff changeset
    69
    }
48194c26a46c Initial revision
claus
parents:
diff changeset
    70
}
48194c26a46c Initial revision
claus
parents:
diff changeset
    71
48194c26a46c Initial revision
claus
parents:
diff changeset
    72
%}
193
Claus Gittinger <cg@exept.de>
parents: 157
diff changeset
    73
! !
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    74
48194c26a46c Initial revision
claus
parents:
diff changeset
    75
!NeXTWorkstation class methodsFor:'initialization'!
48194c26a46c Initial revision
claus
parents:
diff changeset
    76
48194c26a46c Initial revision
claus
parents:
diff changeset
    77
initialize
48194c26a46c Initial revision
claus
parents:
diff changeset
    78
    self initializeDisplayConstants.
48194c26a46c Initial revision
claus
parents:
diff changeset
    79
    self initializeConstants.
48194c26a46c Initial revision
claus
parents:
diff changeset
    80
!
48194c26a46c Initial revision
claus
parents:
diff changeset
    81
48194c26a46c Initial revision
claus
parents:
diff changeset
    82
initializeDisplayConstants
48194c26a46c Initial revision
claus
parents:
diff changeset
    83
    "initialize some common constants"
48194c26a46c Initial revision
claus
parents:
diff changeset
    84
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
    85
48194c26a46c Initial revision
claus
parents:
diff changeset
    86
!NeXTWorkstation methodsFor:'initialize / release'!
48194c26a46c Initial revision
claus
parents:
diff changeset
    87
48194c26a46c Initial revision
claus
parents:
diff changeset
    88
initialize
48194c26a46c Initial revision
claus
parents:
diff changeset
    89
    "{ Symbol: color      }"
48194c26a46c Initial revision
claus
parents:
diff changeset
    90
    "{ Symbol: monochrome }"
48194c26a46c Initial revision
claus
parents:
diff changeset
    91
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
    92
    int depth, width, height;
48194c26a46c Initial revision
claus
parents:
diff changeset
    93
    char *visual;
48194c26a46c Initial revision
claus
parents:
diff changeset
    94
48194c26a46c Initial revision
claus
parents:
diff changeset
    95
    /* do NXApp stuff, get screen infos */
48194c26a46c Initial revision
claus
parents:
diff changeset
    96
    _NX_init(&visual, &depth, &width, &height);
48194c26a46c Initial revision
claus
parents:
diff changeset
    97
48194c26a46c Initial revision
claus
parents:
diff changeset
    98
    _INST(visualType) = _MKSYMBOL(visual, (OBJ *)0, __context);
48194c26a46c Initial revision
claus
parents:
diff changeset
    99
    _INST(depth) = _MKSMALLINT(depth);
48194c26a46c Initial revision
claus
parents:
diff changeset
   100
    _INST(width) = _MKSMALLINT(width);
48194c26a46c Initial revision
claus
parents:
diff changeset
   101
    _INST(height) = _MKSMALLINT(height);
48194c26a46c Initial revision
claus
parents:
diff changeset
   102
48194c26a46c Initial revision
claus
parents:
diff changeset
   103
    _INST(widthMM) = _MKSMALLINT(300);
48194c26a46c Initial revision
claus
parents:
diff changeset
   104
    _INST(heightMM) = _MKSMALLINT(222);
48194c26a46c Initial revision
claus
parents:
diff changeset
   105
48194c26a46c Initial revision
claus
parents:
diff changeset
   106
    if (strcmp(visual, "StaticGray") == 0) {
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   107
	_INST(hasColors) = false;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   108
	_INST(hasGreyscales) = true;
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   109
	_INST(bitsPerRGB) = _MKSMALLINT(2);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   110
	if (depth == 2)
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   111
	    _INST(ncells) = _MKSMALLINT(4);
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   112
	_INST(monitorType) = _monochrome;
48194c26a46c Initial revision
claus
parents:
diff changeset
   113
    } else if (strcmp(visual, "TrueColor") == 0) {
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   114
	_INST(hasColors) = true;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   115
	_INST(hasGreyscales) = true;
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   116
	/*
48194c26a46c Initial revision
claus
parents:
diff changeset
   117
	 * does this exist ?"
48194c26a46c Initial revision
claus
parents:
diff changeset
   118
	 *
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   119
	if (depth == 8) {
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   120
	    _INST(ncells) = _MKSMALLINT(256);
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   121
	}
48194c26a46c Initial revision
claus
parents:
diff changeset
   122
	 *
48194c26a46c Initial revision
claus
parents:
diff changeset
   123
	 */
48194c26a46c Initial revision
claus
parents:
diff changeset
   124
	/* should work for colorStation */
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   125
	if (depth == 12) {
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   126
	    _INST(ncells) = _MKSMALLINT(4096);
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   127
	    _INST(bitsPerRGB) = _MKSMALLINT(4);
48194c26a46c Initial revision
claus
parents:
diff changeset
   128
	}
48194c26a46c Initial revision
claus
parents:
diff changeset
   129
	/* should work for nextDimension */
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   130
	if (depth == 24) {
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   131
	    _INST(ncells) = _MKSMALLINT(4096 * 4096);
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   132
	    _INST(bitsPerRGB) = _MKSMALLINT(8);
48194c26a46c Initial revision
claus
parents:
diff changeset
   133
	}
48194c26a46c Initial revision
claus
parents:
diff changeset
   134
	_INST(monitorType) = _color;
48194c26a46c Initial revision
claus
parents:
diff changeset
   135
    }
48194c26a46c Initial revision
claus
parents:
diff changeset
   136
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   137
.
48194c26a46c Initial revision
claus
parents:
diff changeset
   138
    dispatching := false.
48194c26a46c Initial revision
claus
parents:
diff changeset
   139
    shiftDown := false.
151
claus
parents: 103
diff changeset
   140
    ctrlDown := false.
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   141
    metaDown := false.
48194c26a46c Initial revision
claus
parents:
diff changeset
   142
    altDown := false.
48194c26a46c Initial revision
claus
parents:
diff changeset
   143
    motionEventCompression := true.
48194c26a46c Initial revision
claus
parents:
diff changeset
   144
    buffered := true.
48194c26a46c Initial revision
claus
parents:
diff changeset
   145
    self initializeKeyboardMap
48194c26a46c Initial revision
claus
parents:
diff changeset
   146
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   147
48194c26a46c Initial revision
claus
parents:
diff changeset
   148
close
48194c26a46c Initial revision
claus
parents:
diff changeset
   149
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   150
    _NX_close();
48194c26a46c Initial revision
claus
parents:
diff changeset
   151
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   152
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   153
48194c26a46c Initial revision
claus
parents:
diff changeset
   154
!NeXTWorkstation methodsFor:'private'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   155
48194c26a46c Initial revision
claus
parents:
diff changeset
   156
addKnownView:aView winId:aNumber withId:aDrawableNumber
48194c26a46c Initial revision
claus
parents:
diff changeset
   157
    "add the View aView with Id:aNumber to the list of known views/id's"
48194c26a46c Initial revision
claus
parents:
diff changeset
   158
48194c26a46c Initial revision
claus
parents:
diff changeset
   159
    knownViews isNil ifTrue:[
255
953a18706dfc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
   160
	knownViews := OrderedCollection new:100.
953a18706dfc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
   161
	knownIds := OrderedCollection new:100.
953a18706dfc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
   162
	knownDrawableIds := OrderedCollection new:100
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   163
    ].
48194c26a46c Initial revision
claus
parents:
diff changeset
   164
    knownViews add:aView.
48194c26a46c Initial revision
claus
parents:
diff changeset
   165
    knownIds add:aNumber.
48194c26a46c Initial revision
claus
parents:
diff changeset
   166
    knownDrawableIds add:aDrawableNumber
48194c26a46c Initial revision
claus
parents:
diff changeset
   167
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   168
48194c26a46c Initial revision
claus
parents:
diff changeset
   169
!NeXTWorkstation methodsFor:'misc'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   170
48194c26a46c Initial revision
claus
parents:
diff changeset
   171
lastError
48194c26a46c Initial revision
claus
parents:
diff changeset
   172
    "return the last X-error string - when buffering is on, this may be
48194c26a46c Initial revision
claus
parents:
diff changeset
   173
     an error for a long-ago operation"
48194c26a46c Initial revision
claus
parents:
diff changeset
   174
48194c26a46c Initial revision
claus
parents:
diff changeset
   175
    ^ nil
48194c26a46c Initial revision
claus
parents:
diff changeset
   176
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   177
48194c26a46c Initial revision
claus
parents:
diff changeset
   178
unBuffered
48194c26a46c Initial revision
claus
parents:
diff changeset
   179
    "make all drawing be sent immediately to the display"
48194c26a46c Initial revision
claus
parents:
diff changeset
   180
48194c26a46c Initial revision
claus
parents:
diff changeset
   181
    buffered := false
48194c26a46c Initial revision
claus
parents:
diff changeset
   182
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   183
48194c26a46c Initial revision
claus
parents:
diff changeset
   184
buffered
48194c26a46c Initial revision
claus
parents:
diff changeset
   185
    "buffer drawing - do not send it immediately to the display"
48194c26a46c Initial revision
claus
parents:
diff changeset
   186
48194c26a46c Initial revision
claus
parents:
diff changeset
   187
    buffered := true
48194c26a46c Initial revision
claus
parents:
diff changeset
   188
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   189
48194c26a46c Initial revision
claus
parents:
diff changeset
   190
synchronizeOutput
48194c26a46c Initial revision
claus
parents:
diff changeset
   191
    "send all buffered drawing to the display"
48194c26a46c Initial revision
claus
parents:
diff changeset
   192
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   193
    NXPing();
48194c26a46c Initial revision
claus
parents:
diff changeset
   194
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   195
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   196
103
6156d12a414d *** empty log message ***
claus
parents: 98
diff changeset
   197
!NeXTWorkstation class methodsFor:'queries'!
6156d12a414d *** empty log message ***
claus
parents: 98
diff changeset
   198
6156d12a414d *** empty log message ***
claus
parents: 98
diff changeset
   199
platformName
6156d12a414d *** empty log message ***
claus
parents: 98
diff changeset
   200
    ^ 'NeXTStep'
6156d12a414d *** empty log message ***
claus
parents: 98
diff changeset
   201
! !
6156d12a414d *** empty log message ***
claus
parents: 98
diff changeset
   202
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   203
!NeXTWorkstation methodsFor:'accessing & queries'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   204
48194c26a46c Initial revision
claus
parents:
diff changeset
   205
displayFileDescriptor
48194c26a46c Initial revision
claus
parents:
diff changeset
   206
    "return the displays fileNumber - for select"
48194c26a46c Initial revision
claus
parents:
diff changeset
   207
48194c26a46c Initial revision
claus
parents:
diff changeset
   208
    ^ nil
48194c26a46c Initial revision
claus
parents:
diff changeset
   209
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   210
48194c26a46c Initial revision
claus
parents:
diff changeset
   211
serverVendor
48194c26a46c Initial revision
claus
parents:
diff changeset
   212
    ^ 'NeXT'
48194c26a46c Initial revision
claus
parents:
diff changeset
   213
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   214
48194c26a46c Initial revision
claus
parents:
diff changeset
   215
vendorRelease
48194c26a46c Initial revision
claus
parents:
diff changeset
   216
    ^ 2.1  "this is wrong - should get it from somewhere ..."
48194c26a46c Initial revision
claus
parents:
diff changeset
   217
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   218
48194c26a46c Initial revision
claus
parents:
diff changeset
   219
protocolVersion
48194c26a46c Initial revision
claus
parents:
diff changeset
   220
    ^ self vendorRelease
48194c26a46c Initial revision
claus
parents:
diff changeset
   221
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   222
48194c26a46c Initial revision
claus
parents:
diff changeset
   223
hasShape
48194c26a46c Initial revision
claus
parents:
diff changeset
   224
    "return true, if display supports arbitrary shaped windows.
48194c26a46c Initial revision
claus
parents:
diff changeset
   225
     (actually, DPS does support this - but I currently dont know how)"
48194c26a46c Initial revision
claus
parents:
diff changeset
   226
48194c26a46c Initial revision
claus
parents:
diff changeset
   227
    ^ false
48194c26a46c Initial revision
claus
parents:
diff changeset
   228
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   229
48194c26a46c Initial revision
claus
parents:
diff changeset
   230
hasDPS
48194c26a46c Initial revision
claus
parents:
diff changeset
   231
    "return true, if display supports postscript output into a view"
48194c26a46c Initial revision
claus
parents:
diff changeset
   232
48194c26a46c Initial revision
claus
parents:
diff changeset
   233
    ^ true
48194c26a46c Initial revision
claus
parents:
diff changeset
   234
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   235
48194c26a46c Initial revision
claus
parents:
diff changeset
   236
blackpixel
48194c26a46c Initial revision
claus
parents:
diff changeset
   237
    "return the colorId of black;
48194c26a46c Initial revision
claus
parents:
diff changeset
   238
     for next, we use the color directly"
48194c26a46c Initial revision
claus
parents:
diff changeset
   239
48194c26a46c Initial revision
claus
parents:
diff changeset
   240
    ^ 16r000000
48194c26a46c Initial revision
claus
parents:
diff changeset
   241
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   242
48194c26a46c Initial revision
claus
parents:
diff changeset
   243
whitepixel
48194c26a46c Initial revision
claus
parents:
diff changeset
   244
    "return the colorId of white;
48194c26a46c Initial revision
claus
parents:
diff changeset
   245
     for next, we use the color directly"
48194c26a46c Initial revision
claus
parents:
diff changeset
   246
48194c26a46c Initial revision
claus
parents:
diff changeset
   247
    ^ 16rFFFFFF
48194c26a46c Initial revision
claus
parents:
diff changeset
   248
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   249
48194c26a46c Initial revision
claus
parents:
diff changeset
   250
visualType:aSymbol
48194c26a46c Initial revision
claus
parents:
diff changeset
   251
    ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   252
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   253
48194c26a46c Initial revision
claus
parents:
diff changeset
   254
viewIdFromPoint:aPoint in:windowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   255
    "given a point in rootWindow, return the viewId of the subview of windowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   256
     hit by this coordinate.
48194c26a46c Initial revision
claus
parents:
diff changeset
   257
     return nil if no view was hit.
48194c26a46c Initial revision
claus
parents:
diff changeset
   258
     - use to find window to drop objects after a cross-view drag"
48194c26a46c Initial revision
claus
parents:
diff changeset
   259
48194c26a46c Initial revision
claus
parents:
diff changeset
   260
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   261
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   262
48194c26a46c Initial revision
claus
parents:
diff changeset
   263
translatePoint:aPoint from:windowId1 to:windowId2
48194c26a46c Initial revision
claus
parents:
diff changeset
   264
    "given a point in window1, return the coordinate in window2
48194c26a46c Initial revision
claus
parents:
diff changeset
   265
     - use to xlate points from a window to rootwindow"
48194c26a46c Initial revision
claus
parents:
diff changeset
   266
48194c26a46c Initial revision
claus
parents:
diff changeset
   267
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   268
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   269
48194c26a46c Initial revision
claus
parents:
diff changeset
   270
!NeXTWorkstation methodsFor:'bitmap/window creation'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   271
48194c26a46c Initial revision
claus
parents:
diff changeset
   272
createFaxImageFromArray:data width:w height:h type:type k:k msbFirst:msbFirst
48194c26a46c Initial revision
claus
parents:
diff changeset
   273
    "create a new faxImage in the workstation"
48194c26a46c Initial revision
claus
parents:
diff changeset
   274
48194c26a46c Initial revision
claus
parents:
diff changeset
   275
    ^ nil
48194c26a46c Initial revision
claus
parents:
diff changeset
   276
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   277
48194c26a46c Initial revision
claus
parents:
diff changeset
   278
createBitmapWidth:w height:h
48194c26a46c Initial revision
claus
parents:
diff changeset
   279
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   280
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   281
48194c26a46c Initial revision
claus
parents:
diff changeset
   282
createPixmapWidth:w height:h depth:d
48194c26a46c Initial revision
claus
parents:
diff changeset
   283
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   284
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   285
48194c26a46c Initial revision
claus
parents:
diff changeset
   286
createBitmapFromFile:aString for:aForm
48194c26a46c Initial revision
claus
parents:
diff changeset
   287
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   288
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   289
48194c26a46c Initial revision
claus
parents:
diff changeset
   290
createBitmapFromArray:anArray width:w height:h
48194c26a46c Initial revision
claus
parents:
diff changeset
   291
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   292
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   293
48194c26a46c Initial revision
claus
parents:
diff changeset
   294
createWindowFor:aView left:xpos top:ypos width:wwidth height:wheight
48194c26a46c Initial revision
claus
parents:
diff changeset
   295
48194c26a46c Initial revision
claus
parents:
diff changeset
   296
    |ext minWidth minHeight maxWidth maxHeight 
157
claus
parents: 151
diff changeset
   297
     bWidth bColor viewBg viewBgId wsuperView wsuperViewId 
claus
parents: 151
diff changeset
   298
     wlabel wcursor wcursorId wicon wiconId windowId
claus
parents: 151
diff changeset
   299
     wiconView wiconViewId
69
04d0949dc053 *** empty log message ***
claus
parents: 24
diff changeset
   300
     drawableId|
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   301
48194c26a46c Initial revision
claus
parents:
diff changeset
   302
    wsuperView := aView superView.
48194c26a46c Initial revision
claus
parents:
diff changeset
   303
    wsuperView notNil ifTrue:[
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   304
	wsuperViewId := wsuperView id
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   305
    ].
48194c26a46c Initial revision
claus
parents:
diff changeset
   306
    wlabel := aView label.
48194c26a46c Initial revision
claus
parents:
diff changeset
   307
    wcursor := aView cursor.
48194c26a46c Initial revision
claus
parents:
diff changeset
   308
48194c26a46c Initial revision
claus
parents:
diff changeset
   309
    wsuperView isNil ifTrue:[
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   310
	ext := aView minExtent.
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   311
	ext notNil ifTrue:[
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   312
	    minWidth := ext x.
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   313
	    minHeight := ext y
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   314
	].
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   315
	ext := aView maxExtent.
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   316
	ext notNil ifTrue:[
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   317
	    maxWidth := ext x.
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   318
	    maxHeight := ext y
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   319
	].
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   320
    ].
48194c26a46c Initial revision
claus
parents:
diff changeset
   321
48194c26a46c Initial revision
claus
parents:
diff changeset
   322
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   323
    id win;
48194c26a46c Initial revision
claus
parents:
diff changeset
   324
    id view;
48194c26a46c Initial revision
claus
parents:
diff changeset
   325
    int w, h, resizable;
48194c26a46c Initial revision
claus
parents:
diff changeset
   326
48194c26a46c Initial revision
claus
parents:
diff changeset
   327
    if ((minWidth != nil) && (maxWidth != nil)
48194c26a46c Initial revision
claus
parents:
diff changeset
   328
     && (minWidth == maxWidth) && (minHeight == maxHeight)) {
48194c26a46c Initial revision
claus
parents:
diff changeset
   329
	w = _intVal(minWidth);
48194c26a46c Initial revision
claus
parents:
diff changeset
   330
	h = _intVal(maxHeight);
48194c26a46c Initial revision
claus
parents:
diff changeset
   331
	resizable = 0;
48194c26a46c Initial revision
claus
parents:
diff changeset
   332
    } else {
48194c26a46c Initial revision
claus
parents:
diff changeset
   333
	w = _intVal(wwidth);
48194c26a46c Initial revision
claus
parents:
diff changeset
   334
	h = _intVal(wheight);
48194c26a46c Initial revision
claus
parents:
diff changeset
   335
	resizable = 1;
48194c26a46c Initial revision
claus
parents:
diff changeset
   336
    }
48194c26a46c Initial revision
claus
parents:
diff changeset
   337
    win = _NX_create_window(_intVal(xpos), _intVal(ypos), 
48194c26a46c Initial revision
claus
parents:
diff changeset
   338
			    w, h, resizable);
48194c26a46c Initial revision
claus
parents:
diff changeset
   339
    if (! win)
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   340
	return nil;
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   341
48194c26a46c Initial revision
claus
parents:
diff changeset
   342
    /*
48194c26a46c Initial revision
claus
parents:
diff changeset
   343
     * define its name
48194c26a46c Initial revision
claus
parents:
diff changeset
   344
     */
48194c26a46c Initial revision
claus
parents:
diff changeset
   345
    if (_isString(wlabel))
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   346
	_objc_setTitle(win, _stringVal(wlabel));
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   347
    else
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   348
	_objc_setTitle(win, "untitled");
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   349
48194c26a46c Initial revision
claus
parents:
diff changeset
   350
    view = _objc_contentView(win);
48194c26a46c Initial revision
claus
parents:
diff changeset
   351
    _objc_setFlipped_(view, 1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   352
48194c26a46c Initial revision
claus
parents:
diff changeset
   353
    _objc_makeKeyAndOrderFront(win, 0);
48194c26a46c Initial revision
claus
parents:
diff changeset
   354
    _objc_display(win);
48194c26a46c Initial revision
claus
parents:
diff changeset
   355
48194c26a46c Initial revision
claus
parents:
diff changeset
   356
    windowId = _MKSMALLINT(win);
48194c26a46c Initial revision
claus
parents:
diff changeset
   357
    drawableId = _MKSMALLINT(view);
48194c26a46c Initial revision
claus
parents:
diff changeset
   358
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   359
.
48194c26a46c Initial revision
claus
parents:
diff changeset
   360
    self addKnownView:aView winId:windowId withId:drawableId.
48194c26a46c Initial revision
claus
parents:
diff changeset
   361
    ^ drawableId
48194c26a46c Initial revision
claus
parents:
diff changeset
   362
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   363
48194c26a46c Initial revision
claus
parents:
diff changeset
   364
rootWindowFor:aView
48194c26a46c Initial revision
claus
parents:
diff changeset
   365
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   366
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   367
48194c26a46c Initial revision
claus
parents:
diff changeset
   368
destroyView:aView withId:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   369
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   370
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   371
48194c26a46c Initial revision
claus
parents:
diff changeset
   372
destroyPixmap:aDrawableId
48194c26a46c Initial revision
claus
parents:
diff changeset
   373
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   374
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   375
48194c26a46c Initial revision
claus
parents:
diff changeset
   376
destroyFaxImage:aFaxImageId
48194c26a46c Initial revision
claus
parents:
diff changeset
   377
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   378
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   379
48194c26a46c Initial revision
claus
parents:
diff changeset
   380
destroyGC:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   381
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   382
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   383
48194c26a46c Initial revision
claus
parents:
diff changeset
   384
gcFor:aDrawableId
48194c26a46c Initial revision
claus
parents:
diff changeset
   385
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   386
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   387
48194c26a46c Initial revision
claus
parents:
diff changeset
   388
!NeXTWorkstation methodsFor:'misc stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   389
48194c26a46c Initial revision
claus
parents:
diff changeset
   390
setInputFocusTo:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   391
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   392
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   393
48194c26a46c Initial revision
claus
parents:
diff changeset
   394
!NeXTWorkstation methodsFor:'font stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   395
48194c26a46c Initial revision
claus
parents:
diff changeset
   396
listOfAvailableFonts
48194c26a46c Initial revision
claus
parents:
diff changeset
   397
    "return a list with all available font names on this display"
48194c26a46c Initial revision
claus
parents:
diff changeset
   398
%{
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   399
	char **names;
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   400
	char **cp;
48194c26a46c Initial revision
claus
parents:
diff changeset
   401
	int count, i;
48194c26a46c Initial revision
claus
parents:
diff changeset
   402
	static struct inlineCache dummy1 = _DUMMYILC1;
48194c26a46c Initial revision
claus
parents:
diff changeset
   403
	OBJ arr;
48194c26a46c Initial revision
claus
parents:
diff changeset
   404
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   405
	names = (char **) _objc_availableFonts(_FontManager_new());
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   406
	/* count them */
48194c26a46c Initial revision
claus
parents:
diff changeset
   407
	for (cp = names; *cp; cp++) ;;
48194c26a46c Initial revision
claus
parents:
diff changeset
   408
	count = cp - names;
350
ade060e42304 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
   409
	arr = _SEND1(@global(Array), @symbol(new:), CON_COMMA nil, &dummy1, _MKSMALLINT(count));
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   410
	for (i=0; i<count;i++)
48194c26a46c Initial revision
claus
parents:
diff changeset
   411
	    _ArrayInstPtr(arr)->a_element[i] = _MKSTRING(names[i] COMMA_CON);
48194c26a46c Initial revision
claus
parents:
diff changeset
   412
	free(names);
48194c26a46c Initial revision
claus
parents:
diff changeset
   413
	RETURN (arr);
48194c26a46c Initial revision
claus
parents:
diff changeset
   414
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   415
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   416
48194c26a46c Initial revision
claus
parents:
diff changeset
   417
createFontFor:aFontName
48194c26a46c Initial revision
claus
parents:
diff changeset
   418
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   419
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   420
48194c26a46c Initial revision
claus
parents:
diff changeset
   421
releaseFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   422
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   423
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   424
48194c26a46c Initial revision
claus
parents:
diff changeset
   425
ascentOf:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   426
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   427
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   428
48194c26a46c Initial revision
claus
parents:
diff changeset
   429
descentOf:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   430
    self badFont
48194c26a46c Initial revision
claus
parents:
diff changeset
   431
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   432
48194c26a46c Initial revision
claus
parents:
diff changeset
   433
minWidthOfFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   434
    self badFont
48194c26a46c Initial revision
claus
parents:
diff changeset
   435
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   436
48194c26a46c Initial revision
claus
parents:
diff changeset
   437
maxWidthOfFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   438
    self badFont
48194c26a46c Initial revision
claus
parents:
diff changeset
   439
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   440
48194c26a46c Initial revision
claus
parents:
diff changeset
   441
widthOf:aString inFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   442
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   443
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   444
48194c26a46c Initial revision
claus
parents:
diff changeset
   445
widthOf:aString from:index1 to:index2 inFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   446
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   447
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   448
48194c26a46c Initial revision
claus
parents:
diff changeset
   449
!NeXTWorkstation methodsFor:'cursor stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   450
48194c26a46c Initial revision
claus
parents:
diff changeset
   451
destroyCursor:aCursorId
48194c26a46c Initial revision
claus
parents:
diff changeset
   452
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   453
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   454
48194c26a46c Initial revision
claus
parents:
diff changeset
   455
createCursorSourceFormId:sourceFormId maskFormId:maskFormId hotX:hx hotY:hy
48194c26a46c Initial revision
claus
parents:
diff changeset
   456
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   457
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   458
48194c26a46c Initial revision
claus
parents:
diff changeset
   459
grabPointerIn:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   460
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   461
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   462
48194c26a46c Initial revision
claus
parents:
diff changeset
   463
ungrabPointer
48194c26a46c Initial revision
claus
parents:
diff changeset
   464
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   465
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   466
48194c26a46c Initial revision
claus
parents:
diff changeset
   467
pointerPosition
48194c26a46c Initial revision
claus
parents:
diff changeset
   468
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   469
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   470
48194c26a46c Initial revision
claus
parents:
diff changeset
   471
!NeXTWorkstation methodsFor:'color stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   472
48194c26a46c Initial revision
claus
parents:
diff changeset
   473
listOfAvailableColors
48194c26a46c Initial revision
claus
parents:
diff changeset
   474
    ^ super listOfAvailableColors
48194c26a46c Initial revision
claus
parents:
diff changeset
   475
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   476
48194c26a46c Initial revision
claus
parents:
diff changeset
   477
freeColor:colorIndex
48194c26a46c Initial revision
claus
parents:
diff changeset
   478
    "colors are never freed"
48194c26a46c Initial revision
claus
parents:
diff changeset
   479
48194c26a46c Initial revision
claus
parents:
diff changeset
   480
    ^ self 
48194c26a46c Initial revision
claus
parents:
diff changeset
   481
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   482
48194c26a46c Initial revision
claus
parents:
diff changeset
   483
colorRed:redVal green:greenVal blue:blueVal
48194c26a46c Initial revision
claus
parents:
diff changeset
   484
    "allocate a color with rgb values - return index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   485
48194c26a46c Initial revision
claus
parents:
diff changeset
   486
    | r g b |
48194c26a46c Initial revision
claus
parents:
diff changeset
   487
48194c26a46c Initial revision
claus
parents:
diff changeset
   488
    "on the next, we use rgb value as index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   489
    r := (redVal * 16rFF / 100) asInteger.
48194c26a46c Initial revision
claus
parents:
diff changeset
   490
    g := (greenVal * 16rFF / 100) asInteger.
48194c26a46c Initial revision
claus
parents:
diff changeset
   491
    b := (blueVal * 16rFF / 100) asInteger.
48194c26a46c Initial revision
claus
parents:
diff changeset
   492
    r := (r min:255) max:0.
48194c26a46c Initial revision
claus
parents:
diff changeset
   493
    g := (g min:255) max:0.
48194c26a46c Initial revision
claus
parents:
diff changeset
   494
    b := (b min:255) max:0.
48194c26a46c Initial revision
claus
parents:
diff changeset
   495
    ^ (((r bitShift:8) bitOr:g) bitShift:8) bitOr:b
48194c26a46c Initial revision
claus
parents:
diff changeset
   496
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   497
48194c26a46c Initial revision
claus
parents:
diff changeset
   498
colorNamed:aString
48194c26a46c Initial revision
claus
parents:
diff changeset
   499
    "allocate a color with color name - return index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   500
48194c26a46c Initial revision
claus
parents:
diff changeset
   501
    ^ super colorNamed:aString
48194c26a46c Initial revision
claus
parents:
diff changeset
   502
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   503
48194c26a46c Initial revision
claus
parents:
diff changeset
   504
colorCell
48194c26a46c Initial revision
claus
parents:
diff changeset
   505
    "allocate a color - return index.
48194c26a46c Initial revision
claus
parents:
diff changeset
   506
     Since NeXTs are either StaticGrey or StaticColor, return nil here."
48194c26a46c Initial revision
claus
parents:
diff changeset
   507
48194c26a46c Initial revision
claus
parents:
diff changeset
   508
    ^ nil
48194c26a46c Initial revision
claus
parents:
diff changeset
   509
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   510
48194c26a46c Initial revision
claus
parents:
diff changeset
   511
setColor:index red:redVal green:greenVal blue:blueVal
48194c26a46c Initial revision
claus
parents:
diff changeset
   512
    "change color in map at:index.
48194c26a46c Initial revision
claus
parents:
diff changeset
   513
     Since NeXTs are either StaticGrey or StaticColor, do nothing here."
48194c26a46c Initial revision
claus
parents:
diff changeset
   514
48194c26a46c Initial revision
claus
parents:
diff changeset
   515
    ^ self 
48194c26a46c Initial revision
claus
parents:
diff changeset
   516
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   517
48194c26a46c Initial revision
claus
parents:
diff changeset
   518
getRedFrom:index
48194c26a46c Initial revision
claus
parents:
diff changeset
   519
    "get red part of color in map at:index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   520
48194c26a46c Initial revision
claus
parents:
diff changeset
   521
    ^ ((index bitShift:-16) bitAnd:16rFF) * 100 / 16rFF
48194c26a46c Initial revision
claus
parents:
diff changeset
   522
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   523
48194c26a46c Initial revision
claus
parents:
diff changeset
   524
getGreenFrom:index
48194c26a46c Initial revision
claus
parents:
diff changeset
   525
    "get green part of color in map at:index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   526
48194c26a46c Initial revision
claus
parents:
diff changeset
   527
    ^ ((index bitShift:-8) bitAnd:16rFF) * 100 / 16rFF
48194c26a46c Initial revision
claus
parents:
diff changeset
   528
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   529
48194c26a46c Initial revision
claus
parents:
diff changeset
   530
getBlueFrom:index
48194c26a46c Initial revision
claus
parents:
diff changeset
   531
    "get blue part of color in map at:index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   532
48194c26a46c Initial revision
claus
parents:
diff changeset
   533
    ^ (index bitAnd:16rFF) * 100 / 16rFF
48194c26a46c Initial revision
claus
parents:
diff changeset
   534
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   535
48194c26a46c Initial revision
claus
parents:
diff changeset
   536
!NeXTWorkstation methodsFor:'window stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   537
48194c26a46c Initial revision
claus
parents:
diff changeset
   538
setBackingStore:how in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   539
    "turn on/off backing-store for a window"
48194c26a46c Initial revision
claus
parents:
diff changeset
   540
48194c26a46c Initial revision
claus
parents:
diff changeset
   541
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
   542
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   543
48194c26a46c Initial revision
claus
parents:
diff changeset
   544
setSaveUnder:yesOrNo in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   545
    "turn on/off save-under for a window"
48194c26a46c Initial revision
claus
parents:
diff changeset
   546
48194c26a46c Initial revision
claus
parents:
diff changeset
   547
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
   548
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   549
48194c26a46c Initial revision
claus
parents:
diff changeset
   550
setWindowBackground:aColorId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   551
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   552
#ifdef NOTDEF
48194c26a46c Initial revision
claus
parents:
diff changeset
   553
    int id, ir, ig, ib;
48194c26a46c Initial revision
claus
parents:
diff changeset
   554
    float r, g, b;
48194c26a46c Initial revision
claus
parents:
diff changeset
   555
    NXColor clr;
48194c26a46c Initial revision
claus
parents:
diff changeset
   556
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   557
    if (__isSmallInteger(aColorId)) {
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   558
	id = _intVal(aColorId);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   559
	ir = (id >> 16) & 0xFF; 
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   560
	ig = (id >> 8) & 0xFF; 
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   561
	ib = id & 0xFF; 
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   562
	/* scale from 0 .. 255 to 0.0 .. 1.0 */
48194c26a46c Initial revision
claus
parents:
diff changeset
   563
	r = (float)ir / 255.0;
48194c26a46c Initial revision
claus
parents:
diff changeset
   564
	g = (float)ig / 255.0;
48194c26a46c Initial revision
claus
parents:
diff changeset
   565
	b = (float)ib / 255.0;
48194c26a46c Initial revision
claus
parents:
diff changeset
   566
	clr = NXConvertRGBToColor(r, g, b);
48194c26a46c Initial revision
claus
parents:
diff changeset
   567
    }
48194c26a46c Initial revision
claus
parents:
diff changeset
   568
#endif
48194c26a46c Initial revision
claus
parents:
diff changeset
   569
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   570
.
48194c26a46c Initial revision
claus
parents:
diff changeset
   571
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   572
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   573
48194c26a46c Initial revision
claus
parents:
diff changeset
   574
setWindowBackgroundPixmap:aPixmapId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   575
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   576
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   577
48194c26a46c Initial revision
claus
parents:
diff changeset
   578
setWindowBorderColor:aColorId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   579
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   580
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   581
48194c26a46c Initial revision
claus
parents:
diff changeset
   582
setWindowBorderPixmap:aPixmapId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   583
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   584
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   585
48194c26a46c Initial revision
claus
parents:
diff changeset
   586
setWindowBorderWidth:aNumber in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   587
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   588
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   589
48194c26a46c Initial revision
claus
parents:
diff changeset
   590
setWindowBorderShape:aPixmapId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   591
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
   592
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   593
48194c26a46c Initial revision
claus
parents:
diff changeset
   594
setWindowShape:aPixmapId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   595
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
   596
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   597
48194c26a46c Initial revision
claus
parents:
diff changeset
   598
setCursor:aCursorId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   599
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   600
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   601
48194c26a46c Initial revision
claus
parents:
diff changeset
   602
setWindowName:aString in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   603
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   604
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   605
48194c26a46c Initial revision
claus
parents:
diff changeset
   606
setWindowIcon:aForm in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   607
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   608
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   609
48194c26a46c Initial revision
claus
parents:
diff changeset
   610
setWindowIconWindow:aView in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   611
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   612
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   613
48194c26a46c Initial revision
claus
parents:
diff changeset
   614
clearWindow:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   615
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   616
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   617
48194c26a46c Initial revision
claus
parents:
diff changeset
   618
clearRectangleX:x y:y width:width height:height in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   619
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   620
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   621
48194c26a46c Initial revision
claus
parents:
diff changeset
   622
mapWindow:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   623
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   624
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   625
48194c26a46c Initial revision
claus
parents:
diff changeset
   626
unmapWindow:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   627
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   628
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   629
48194c26a46c Initial revision
claus
parents:
diff changeset
   630
raiseWindow:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   631
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   632
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   633
48194c26a46c Initial revision
claus
parents:
diff changeset
   634
moveWindow:aWindowId x:x y:y
48194c26a46c Initial revision
claus
parents:
diff changeset
   635
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   636
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   637
48194c26a46c Initial revision
claus
parents:
diff changeset
   638
resizeWindow:aWindowId width:w height:h
48194c26a46c Initial revision
claus
parents:
diff changeset
   639
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   640
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   641
48194c26a46c Initial revision
claus
parents:
diff changeset
   642
moveResizeWindow:aWindowId x:x y:y width:w height:h
48194c26a46c Initial revision
claus
parents:
diff changeset
   643
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   644
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   645
48194c26a46c Initial revision
claus
parents:
diff changeset
   646
!NeXTWorkstation methodsFor:'graphic context stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   647
48194c26a46c Initial revision
claus
parents:
diff changeset
   648
setForeground:fgColorIndex in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   649
    "set foreground color to be drawn with"
48194c26a46c Initial revision
claus
parents:
diff changeset
   650
48194c26a46c Initial revision
claus
parents:
diff changeset
   651
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   652
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   653
48194c26a46c Initial revision
claus
parents:
diff changeset
   654
setBackground:bgColorIndex in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   655
    "set background color to be drawn with"
48194c26a46c Initial revision
claus
parents:
diff changeset
   656
48194c26a46c Initial revision
claus
parents:
diff changeset
   657
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   658
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   659
48194c26a46c Initial revision
claus
parents:
diff changeset
   660
setForeground:fgColorIndex background:bgColorIndex in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   661
    "set foreground and background colors to be drawn with"
48194c26a46c Initial revision
claus
parents:
diff changeset
   662
48194c26a46c Initial revision
claus
parents:
diff changeset
   663
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   664
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   665
48194c26a46c Initial revision
claus
parents:
diff changeset
   666
setForeground:fgColor background:bgColor mask:aBitmapId in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   667
    "set foreground and background colors to be drawn with using mask or
48194c26a46c Initial revision
claus
parents:
diff changeset
   668
     solid (if aBitmapId is nil)"
48194c26a46c Initial revision
claus
parents:
diff changeset
   669
48194c26a46c Initial revision
claus
parents:
diff changeset
   670
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   671
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   672
48194c26a46c Initial revision
claus
parents:
diff changeset
   673
setLineWidth:aNumber in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   674
    "set linewidth to be drawn with"
48194c26a46c Initial revision
claus
parents:
diff changeset
   675
48194c26a46c Initial revision
claus
parents:
diff changeset
   676
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   677
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   678
48194c26a46c Initial revision
claus
parents:
diff changeset
   679
setForeground:fgColor background:bgColor mask:aBitmapId lineWidth:lw in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   680
    "set foreground and background colors to be drawn with using mask or
48194c26a46c Initial revision
claus
parents:
diff changeset
   681
     solid (if aBitmapId is nil); also set lineWidth"
48194c26a46c Initial revision
claus
parents:
diff changeset
   682
48194c26a46c Initial revision
claus
parents:
diff changeset
   683
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   684
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   685
48194c26a46c Initial revision
claus
parents:
diff changeset
   686
setFunction:aFunctionSymbol in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   687
    "set alu function to be drawn with"
48194c26a46c Initial revision
claus
parents:
diff changeset
   688
48194c26a46c Initial revision
claus
parents:
diff changeset
   689
    "{ Symbol: and  } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   690
    "{ Symbol: or   } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   691
    "{ Symbol: xor  } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   692
    "{ Symbol: copy } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   693
    "{ Symbol: copyInverted } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   694
    "{ Symbol: andInverted } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   695
    "{ Symbol: andReverse } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   696
    "{ Symbol: orInverted } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   697
    "{ Symbol: orReverse } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   698
48194c26a46c Initial revision
claus
parents:
diff changeset
   699
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   700
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   701
48194c26a46c Initial revision
claus
parents:
diff changeset
   702
setFont:aFontId in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   703
    "set font to be drawn in"
48194c26a46c Initial revision
claus
parents:
diff changeset
   704
48194c26a46c Initial revision
claus
parents:
diff changeset
   705
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   706
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   707
48194c26a46c Initial revision
claus
parents:
diff changeset
   708
setPixmapMask:aPixmapId in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   709
    "set or clear the drawing mask - a pixmap mask providing full color"
48194c26a46c Initial revision
claus
parents:
diff changeset
   710
48194c26a46c Initial revision
claus
parents:
diff changeset
   711
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   712
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   713
48194c26a46c Initial revision
claus
parents:
diff changeset
   714
setBitmapMask:aBitmapId in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   715
    "set or clear the drawing mask - a bitmap mask using current fg/bg"
48194c26a46c Initial revision
claus
parents:
diff changeset
   716
48194c26a46c Initial revision
claus
parents:
diff changeset
   717
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   718
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   719
48194c26a46c Initial revision
claus
parents:
diff changeset
   720
setMaskOriginX:orgX y:orgY in:aGCid
48194c26a46c Initial revision
claus
parents:
diff changeset
   721
    "set the mask origin"
48194c26a46c Initial revision
claus
parents:
diff changeset
   722
48194c26a46c Initial revision
claus
parents:
diff changeset
   723
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   724
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   725
48194c26a46c Initial revision
claus
parents:
diff changeset
   726
setClipByChildren:aBool in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   727
    "enable/disable drawing into child views"
48194c26a46c Initial revision
claus
parents:
diff changeset
   728
48194c26a46c Initial revision
claus
parents:
diff changeset
   729
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   730
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   731
48194c26a46c Initial revision
claus
parents:
diff changeset
   732
noClipIn:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   733
    "disable clipping rectangle"
48194c26a46c Initial revision
claus
parents:
diff changeset
   734
48194c26a46c Initial revision
claus
parents:
diff changeset
   735
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   736
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   737
48194c26a46c Initial revision
claus
parents:
diff changeset
   738
setClipX:clipX y:clipY width:clipWidth height:clipHeight in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   739
    "clip to a rectangle"
48194c26a46c Initial revision
claus
parents:
diff changeset
   740
48194c26a46c Initial revision
claus
parents:
diff changeset
   741
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   742
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   743
48194c26a46c Initial revision
claus
parents:
diff changeset
   744
setGraphicsExposures:aBoolean in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   745
    "set or clear the graphics exposures flag"
48194c26a46c Initial revision
claus
parents:
diff changeset
   746
48194c26a46c Initial revision
claus
parents:
diff changeset
   747
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   748
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   749
48194c26a46c Initial revision
claus
parents:
diff changeset
   750
!NeXTWorkstation methodsFor:'retrieving pixels'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   751
48194c26a46c Initial revision
claus
parents:
diff changeset
   752
getPixelX:x y:y from:aDrawableId
48194c26a46c Initial revision
claus
parents:
diff changeset
   753
    "return the pixel value at x/y"
48194c26a46c Initial revision
claus
parents:
diff changeset
   754
48194c26a46c Initial revision
claus
parents:
diff changeset
   755
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   756
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   757
48194c26a46c Initial revision
claus
parents:
diff changeset
   758
!NeXTWorkstation methodsFor:'drawing'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   759
48194c26a46c Initial revision
claus
parents:
diff changeset
   760
displayString:aString x:x y:y in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   761
    "draw a string - draw foreground only" 
48194c26a46c Initial revision
claus
parents:
diff changeset
   762
48194c26a46c Initial revision
claus
parents:
diff changeset
   763
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   764
    float fx, fy;
48194c26a46c Initial revision
claus
parents:
diff changeset
   765
48194c26a46c Initial revision
claus
parents:
diff changeset
   766
    do {
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   767
	if (__isSmallInteger(x))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   768
	    fx = (float)_intVal(x);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   769
	else if (_isFloat(x))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   770
	    fx = _floatVal(x);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   771
	else break;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   772
	if (__isSmallInteger(y))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   773
	    fy = (float)_intVal(y);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   774
	else if (_isFloat(y))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   775
	    fy = _floatVal(y);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   776
	else break;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   777
	setDrawable(aDrawableId);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   778
	PSmoveto(fx, fy);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   779
	PSshow((char *)_stringVal(aString));
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   780
	if (_INST(buffered) == false)
48194c26a46c Initial revision
claus
parents:
diff changeset
   781
	    NXPing();
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   782
	RETURN ( self );
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   783
    } while (1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   784
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   785
.
48194c26a46c Initial revision
claus
parents:
diff changeset
   786
    self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   787
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   788
48194c26a46c Initial revision
claus
parents:
diff changeset
   789
displayString:aString from:index1 to:index2 x:x y:y in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   790
    "draw part of a string - draw foreground only" 
48194c26a46c Initial revision
claus
parents:
diff changeset
   791
48194c26a46c Initial revision
claus
parents:
diff changeset
   792
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   793
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   794
48194c26a46c Initial revision
claus
parents:
diff changeset
   795
displayOpaqueString:aString x:x y:y in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   796
    "draw a string - draw both foreground and background" 
48194c26a46c Initial revision
claus
parents:
diff changeset
   797
48194c26a46c Initial revision
claus
parents:
diff changeset
   798
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   799
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   800
48194c26a46c Initial revision
claus
parents:
diff changeset
   801
displayOpaqueString:aString from:index1 to:index2 x:x y:y in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   802
    "draw part of a string - draw both foreground and background" 
48194c26a46c Initial revision
claus
parents:
diff changeset
   803
48194c26a46c Initial revision
claus
parents:
diff changeset
   804
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   805
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   806
24
e810b1be068b *** empty log message ***
claus
parents: 12
diff changeset
   807
displayPointX:x y:y in:aDrawableId with:aGCId
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   808
    "draw a point" 
48194c26a46c Initial revision
claus
parents:
diff changeset
   809
48194c26a46c Initial revision
claus
parents:
diff changeset
   810
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   811
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   812
48194c26a46c Initial revision
claus
parents:
diff changeset
   813
displayLineFromX:x0 y:y0 toX:x1 y:y1 in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   814
    "draw a line" 
48194c26a46c Initial revision
claus
parents:
diff changeset
   815
48194c26a46c Initial revision
claus
parents:
diff changeset
   816
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   817
    float fx0, fy0, fx1, fy1;
48194c26a46c Initial revision
claus
parents:
diff changeset
   818
48194c26a46c Initial revision
claus
parents:
diff changeset
   819
    do {
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   820
	if (__isSmallInteger(x0))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   821
	    fx0 = _intVal(x0);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   822
	else if (_isFloat(x0))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   823
	    fx0 = _floatVal(x0);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   824
	else break;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   825
	if (__isSmallInteger(y0))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   826
	    fy0 = _intVal(y0);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   827
	else if (_isFloat(y0))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   828
	    fy0 = _floatVal(y0);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   829
	else break;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   830
	if (__isSmallInteger(x1))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   831
	    fx1 = _intVal(x1);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   832
	else if (_isFloat(x1))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   833
	    fx1 = _floatVal(x1);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   834
	else break;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   835
	if (__isSmallInteger(y1))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   836
	    fy1 = _intVal(y1);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   837
	else if (_isFloat(y1))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   838
	    fy1 = _floatVal(y1);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   839
	else break;
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   840
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   841
	setDrawable(aDrawableId);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   842
	PSsetlinewidth(0.0);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   843
	PSnewpath();
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   844
	PSmoveto(fx0, fy0);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   845
	PSlineto(fx1, fy1);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   846
	PSstroke();
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   847
	if (_INST(buffered) == false)
48194c26a46c Initial revision
claus
parents:
diff changeset
   848
	    NXPing();
48194c26a46c Initial revision
claus
parents:
diff changeset
   849
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   850
	RETURN ( self );
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   851
    } while (1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   852
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   853
.
48194c26a46c Initial revision
claus
parents:
diff changeset
   854
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   855
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   856
48194c26a46c Initial revision
claus
parents:
diff changeset
   857
drawRectangleX:x y:y width:width height:height in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   858
    "draw a rectangle" 
48194c26a46c Initial revision
claus
parents:
diff changeset
   859
48194c26a46c Initial revision
claus
parents:
diff changeset
   860
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   861
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   862
48194c26a46c Initial revision
claus
parents:
diff changeset
   863
drawPolygon:aPolygon in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   864
    "draw a polygon" 
48194c26a46c Initial revision
claus
parents:
diff changeset
   865
48194c26a46c Initial revision
claus
parents:
diff changeset
   866
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   867
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   868
48194c26a46c Initial revision
claus
parents:
diff changeset
   869
copyFromId:sourceId x:srcX y:srcY to:destId x:dstX y:dstY 
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   870
		width:w height:h with:aGCId
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   871
    "do a bit-blt"
48194c26a46c Initial revision
claus
parents:
diff changeset
   872
48194c26a46c Initial revision
claus
parents:
diff changeset
   873
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   874
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   875
48194c26a46c Initial revision
claus
parents:
diff changeset
   876
copyPlaneFromId:sourceId x:srcX y:srcY to:destId x:dstX y:dstY 
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   877
		width:w height:h with:aGCId
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   878
    "do a bit-blt"
48194c26a46c Initial revision
claus
parents:
diff changeset
   879
48194c26a46c Initial revision
claus
parents:
diff changeset
   880
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   881
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   882
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   883
displayArcX:x y:y w:width h:height from:startAngle angle:angle
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   884
	       in:aDrawableId with:aGCId
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   885
    "draw an arc"
48194c26a46c Initial revision
claus
parents:
diff changeset
   886
48194c26a46c Initial revision
claus
parents:
diff changeset
   887
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   888
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   889
48194c26a46c Initial revision
claus
parents:
diff changeset
   890
fillArcX:x y:y w:width h:height from:startAngle angle:angle
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   891
	       in:aDrawableId with:aGCId
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   892
    "fill an arc"
48194c26a46c Initial revision
claus
parents:
diff changeset
   893
48194c26a46c Initial revision
claus
parents:
diff changeset
   894
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   895
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   896
48194c26a46c Initial revision
claus
parents:
diff changeset
   897
fillRectangleX:x y:y width:w height:h in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   898
    "fill a rectangle"
48194c26a46c Initial revision
claus
parents:
diff changeset
   899
48194c26a46c Initial revision
claus
parents:
diff changeset
   900
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   901
    float fx, fy, fw, fh;
48194c26a46c Initial revision
claus
parents:
diff changeset
   902
48194c26a46c Initial revision
claus
parents:
diff changeset
   903
    do {
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   904
	if (__isSmallInteger(x))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   905
	    fx = (float)_intVal(x);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   906
	else if (_isFloat(x))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   907
	    fx = _floatVal(x);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   908
	else break;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   909
	if (__isSmallInteger(y))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   910
	    fy = (float)_intVal(y);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   911
	else if (_isFloat(y))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   912
	    fy = _floatVal(y);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   913
	else break;
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   914
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   915
	if (__isSmallInteger(w))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   916
	    fw = (float)_intVal(w);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   917
	else if (_isFloat(w))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   918
	    fw = _floatVal(w);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   919
	else break;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   920
	if (__isSmallInteger(h))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   921
	    fh = (float)_intVal(h);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   922
	else if (_isFloat(h))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   923
	    fh = _floatVal(h);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   924
	else break;
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   925
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   926
	setDrawable(aDrawableId);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   927
	PSnewpath();
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   928
	PSmoveto(fx, fy);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   929
	PSlineto(fx + fw, fy);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   930
	PSlineto(fx + fx, fy + fh);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   931
	PSlineto(fx, fy + fh);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   932
	PSlineto(fx, fy);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   933
	PSclosepath();
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   934
	PSfill();
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   935
	if (_INST(buffered) == false)
48194c26a46c Initial revision
claus
parents:
diff changeset
   936
	    NXPing();
48194c26a46c Initial revision
claus
parents:
diff changeset
   937
	RETURN ( self );
48194c26a46c Initial revision
claus
parents:
diff changeset
   938
    } while (1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   939
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   940
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   941
48194c26a46c Initial revision
claus
parents:
diff changeset
   942
fillPolygon:aPolygon in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   943
    "fill a polygon"
48194c26a46c Initial revision
claus
parents:
diff changeset
   944
48194c26a46c Initial revision
claus
parents:
diff changeset
   945
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   946
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   947
48194c26a46c Initial revision
claus
parents:
diff changeset
   948
drawBits:imageBits depth:imageDepth width:imageWidth height:imageHeight 
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   949
		       x:srcx y:srcy
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   950
		    into:aDrawableId x:dstx y:dsty width:w height:h with:aGCId
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   951
    "draw a bitimage which has depth id, width iw and height ih into
48194c26a46c Initial revision
claus
parents:
diff changeset
   952
     the drawable. draw a region of w/h pixels from srcx/srcy to dstx/dsty.
48194c26a46c Initial revision
claus
parents:
diff changeset
   953
     It has to be checked elsewhere, that server can do it with the given
48194c26a46c Initial revision
claus
parents:
diff changeset
   954
     depth; also it is assumed, that the colormap is setup correctly"
48194c26a46c Initial revision
claus
parents:
diff changeset
   955
48194c26a46c Initial revision
claus
parents:
diff changeset
   956
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   957
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   958
48194c26a46c Initial revision
claus
parents:
diff changeset
   959
!NeXTWorkstation methodsFor:'events'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   960
48194c26a46c Initial revision
claus
parents:
diff changeset
   961
eventMaskFor:anEventSymbol
48194c26a46c Initial revision
claus
parents:
diff changeset
   962
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   963
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   964
48194c26a46c Initial revision
claus
parents:
diff changeset
   965
setEventMask:aMask in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   966
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   967
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   968
48194c26a46c Initial revision
claus
parents:
diff changeset
   969
exposeEventsFor:aViewId do:aBlock
48194c26a46c Initial revision
claus
parents:
diff changeset
   970
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   971
48194c26a46c Initial revision
claus
parents:
diff changeset
   972
eventPending
48194c26a46c Initial revision
claus
parents:
diff changeset
   973
    "return true, if any event is pending"
48194c26a46c Initial revision
claus
parents:
diff changeset
   974
48194c26a46c Initial revision
claus
parents:
diff changeset
   975
    ^ false
48194c26a46c Initial revision
claus
parents:
diff changeset
   976
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   977
48194c26a46c Initial revision
claus
parents:
diff changeset
   978
eventPendingWithoutSync
48194c26a46c Initial revision
claus
parents:
diff changeset
   979
    "return true, if any event is pending"
48194c26a46c Initial revision
claus
parents:
diff changeset
   980
48194c26a46c Initial revision
claus
parents:
diff changeset
   981
    ^ false
48194c26a46c Initial revision
claus
parents:
diff changeset
   982
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   983
48194c26a46c Initial revision
claus
parents:
diff changeset
   984
eventsPending:anEventMask for:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   985
    "return true, if any of the masked events is pending"
48194c26a46c Initial revision
claus
parents:
diff changeset
   986
48194c26a46c Initial revision
claus
parents:
diff changeset
   987
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   988
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   989
48194c26a46c Initial revision
claus
parents:
diff changeset
   990
eventPending:anEventSymbol for:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   991
    "return true, if a specific event is pending"
48194c26a46c Initial revision
claus
parents:
diff changeset
   992
48194c26a46c Initial revision
claus
parents:
diff changeset
   993
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   994
! !