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