NeXTWorkstation.st
author matilk
Wed, 13 Sep 2017 09:40:34 +0200
changeset 8174 2704c965b97b
parent 6065 75ff98ae918d
child 6528 62c1dbef0b84
permissions -rw-r--r--
#BUGFIX by Maren class: DeviceGraphicsContext changed: #displayDeviceOpaqueForm:x:y: nil check
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
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
    14
       instanceVariableNames:'
0
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
6065
75ff98ae918d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5015
diff changeset
    33
$Header: /cvs/stx/stx/libview/NeXTWorkstation.st,v 1.22 2013-05-21 20:49:14 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
1701
331b0d5142fc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
    98
    _INST(visualType) = _MKSYMBOL(visual, (OBJ *)0);
0
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
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   296
    |ext minWidth minHeight maxWidth maxHeight
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   297
     bWidth bColor viewBg viewBgId wsuperView wsuperViewId
157
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
    }
1425
c6963c38dcd8 preparations for iconMasks (for windows)
Claus Gittinger <cg@exept.de>
parents: 1375
diff changeset
   337
    win = _NX_create_window(_intVal(xpos), _intVal(ypos), w, h, resizable);
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   338
    if (! win)
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   339
	return nil;
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   340
48194c26a46c Initial revision
claus
parents:
diff changeset
   341
    /*
48194c26a46c Initial revision
claus
parents:
diff changeset
   342
     * define its name
48194c26a46c Initial revision
claus
parents:
diff changeset
   343
     */
48194c26a46c Initial revision
claus
parents:
diff changeset
   344
    if (_isString(wlabel))
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   345
	_objc_setTitle(win, _stringVal(wlabel));
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   346
    else
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   347
	_objc_setTitle(win, "untitled");
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   348
48194c26a46c Initial revision
claus
parents:
diff changeset
   349
    view = _objc_contentView(win);
48194c26a46c Initial revision
claus
parents:
diff changeset
   350
    _objc_setFlipped_(view, 1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   351
48194c26a46c Initial revision
claus
parents:
diff changeset
   352
    _objc_makeKeyAndOrderFront(win, 0);
48194c26a46c Initial revision
claus
parents:
diff changeset
   353
    _objc_display(win);
48194c26a46c Initial revision
claus
parents:
diff changeset
   354
48194c26a46c Initial revision
claus
parents:
diff changeset
   355
    windowId = _MKSMALLINT(win);
48194c26a46c Initial revision
claus
parents:
diff changeset
   356
    drawableId = _MKSMALLINT(view);
1425
c6963c38dcd8 preparations for iconMasks (for windows)
Claus Gittinger <cg@exept.de>
parents: 1375
diff changeset
   357
%}.
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   358
    self addKnownView:aView winId:windowId withId:drawableId.
48194c26a46c Initial revision
claus
parents:
diff changeset
   359
    ^ drawableId
48194c26a46c Initial revision
claus
parents:
diff changeset
   360
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   361
48194c26a46c Initial revision
claus
parents:
diff changeset
   362
rootWindowFor:aView
48194c26a46c Initial revision
claus
parents:
diff changeset
   363
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   364
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   365
48194c26a46c Initial revision
claus
parents:
diff changeset
   366
destroyView:aView withId:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   367
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   368
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   369
48194c26a46c Initial revision
claus
parents:
diff changeset
   370
destroyPixmap:aDrawableId
48194c26a46c Initial revision
claus
parents:
diff changeset
   371
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   372
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   373
48194c26a46c Initial revision
claus
parents:
diff changeset
   374
destroyFaxImage:aFaxImageId
48194c26a46c Initial revision
claus
parents:
diff changeset
   375
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   376
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   377
48194c26a46c Initial revision
claus
parents:
diff changeset
   378
destroyGC:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   379
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   380
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   381
48194c26a46c Initial revision
claus
parents:
diff changeset
   382
gcFor:aDrawableId
48194c26a46c Initial revision
claus
parents:
diff changeset
   383
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   384
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   385
48194c26a46c Initial revision
claus
parents:
diff changeset
   386
!NeXTWorkstation methodsFor:'misc stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   387
48194c26a46c Initial revision
claus
parents:
diff changeset
   388
setInputFocusTo:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   389
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   390
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   391
48194c26a46c Initial revision
claus
parents:
diff changeset
   392
!NeXTWorkstation methodsFor:'font stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   393
48194c26a46c Initial revision
claus
parents:
diff changeset
   394
listOfAvailableFonts
48194c26a46c Initial revision
claus
parents:
diff changeset
   395
    "return a list with all available font names on this display"
48194c26a46c Initial revision
claus
parents:
diff changeset
   396
%{
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   397
	char **names;
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   398
	char **cp;
48194c26a46c Initial revision
claus
parents:
diff changeset
   399
	int count, i;
48194c26a46c Initial revision
claus
parents:
diff changeset
   400
	static struct inlineCache dummy1 = _DUMMYILC1;
48194c26a46c Initial revision
claus
parents:
diff changeset
   401
	OBJ arr;
48194c26a46c Initial revision
claus
parents:
diff changeset
   402
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   403
	names = (char **) _objc_availableFonts(_FontManager_new());
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   404
	/* count them */
48194c26a46c Initial revision
claus
parents:
diff changeset
   405
	for (cp = names; *cp; cp++) ;;
48194c26a46c Initial revision
claus
parents:
diff changeset
   406
	count = cp - names;
1065
fdc5b9059d82 removed all COMMA_CON / CON_COMMA uses
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
   407
	arr = _SEND1(@global(Array), @symbol(new:), nil, &dummy1, _MKSMALLINT(count));
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   408
	for (i=0; i<count;i++)
6065
75ff98ae918d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5015
diff changeset
   409
	    _ArrayInstPtr(arr)->a_element[i] = __MKSTRING(names[i]);
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   410
	free(names);
48194c26a46c Initial revision
claus
parents:
diff changeset
   411
	RETURN (arr);
48194c26a46c Initial revision
claus
parents:
diff changeset
   412
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   413
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   414
48194c26a46c Initial revision
claus
parents:
diff changeset
   415
createFontFor:aFontName
48194c26a46c Initial revision
claus
parents:
diff changeset
   416
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   417
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   418
48194c26a46c Initial revision
claus
parents:
diff changeset
   419
releaseFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   420
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   421
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   422
48194c26a46c Initial revision
claus
parents:
diff changeset
   423
ascentOf:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   424
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   425
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   426
48194c26a46c Initial revision
claus
parents:
diff changeset
   427
descentOf:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   428
    self badFont
48194c26a46c Initial revision
claus
parents:
diff changeset
   429
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   430
48194c26a46c Initial revision
claus
parents:
diff changeset
   431
minWidthOfFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   432
    self badFont
48194c26a46c Initial revision
claus
parents:
diff changeset
   433
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   434
48194c26a46c Initial revision
claus
parents:
diff changeset
   435
maxWidthOfFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   436
    self badFont
48194c26a46c Initial revision
claus
parents:
diff changeset
   437
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   438
48194c26a46c Initial revision
claus
parents:
diff changeset
   439
widthOf:aString inFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   440
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   441
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   442
48194c26a46c Initial revision
claus
parents:
diff changeset
   443
widthOf:aString from:index1 to:index2 inFont:aFontId
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
!NeXTWorkstation methodsFor:'cursor stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   448
48194c26a46c Initial revision
claus
parents:
diff changeset
   449
destroyCursor:aCursorId
48194c26a46c Initial revision
claus
parents:
diff changeset
   450
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   451
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   452
48194c26a46c Initial revision
claus
parents:
diff changeset
   453
createCursorSourceFormId:sourceFormId maskFormId:maskFormId hotX:hx hotY:hy
48194c26a46c Initial revision
claus
parents:
diff changeset
   454
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   455
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   456
48194c26a46c Initial revision
claus
parents:
diff changeset
   457
grabPointerIn:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   458
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   459
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   460
48194c26a46c Initial revision
claus
parents:
diff changeset
   461
ungrabPointer
48194c26a46c Initial revision
claus
parents:
diff changeset
   462
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   463
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   464
48194c26a46c Initial revision
claus
parents:
diff changeset
   465
pointerPosition
48194c26a46c Initial revision
claus
parents:
diff changeset
   466
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   467
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   468
48194c26a46c Initial revision
claus
parents:
diff changeset
   469
!NeXTWorkstation methodsFor:'color stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   470
48194c26a46c Initial revision
claus
parents:
diff changeset
   471
listOfAvailableColors
48194c26a46c Initial revision
claus
parents:
diff changeset
   472
    ^ super listOfAvailableColors
48194c26a46c Initial revision
claus
parents:
diff changeset
   473
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   474
48194c26a46c Initial revision
claus
parents:
diff changeset
   475
freeColor:colorIndex
48194c26a46c Initial revision
claus
parents:
diff changeset
   476
    "colors are never freed"
48194c26a46c Initial revision
claus
parents:
diff changeset
   477
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   478
    ^ self
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   479
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   480
48194c26a46c Initial revision
claus
parents:
diff changeset
   481
colorRed:redVal green:greenVal blue:blueVal
48194c26a46c Initial revision
claus
parents:
diff changeset
   482
    "allocate a color with rgb values - return index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   483
48194c26a46c Initial revision
claus
parents:
diff changeset
   484
    | r g b |
48194c26a46c Initial revision
claus
parents:
diff changeset
   485
48194c26a46c Initial revision
claus
parents:
diff changeset
   486
    "on the next, we use rgb value as index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   487
    r := (redVal * 16rFF / 100) asInteger.
48194c26a46c Initial revision
claus
parents:
diff changeset
   488
    g := (greenVal * 16rFF / 100) asInteger.
48194c26a46c Initial revision
claus
parents:
diff changeset
   489
    b := (blueVal * 16rFF / 100) asInteger.
48194c26a46c Initial revision
claus
parents:
diff changeset
   490
    r := (r min:255) max:0.
48194c26a46c Initial revision
claus
parents:
diff changeset
   491
    g := (g min:255) max:0.
48194c26a46c Initial revision
claus
parents:
diff changeset
   492
    b := (b min:255) max:0.
48194c26a46c Initial revision
claus
parents:
diff changeset
   493
    ^ (((r bitShift:8) bitOr:g) bitShift:8) bitOr:b
48194c26a46c Initial revision
claus
parents:
diff changeset
   494
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   495
48194c26a46c Initial revision
claus
parents:
diff changeset
   496
colorNamed:aString
48194c26a46c Initial revision
claus
parents:
diff changeset
   497
    "allocate a color with color name - return index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   498
48194c26a46c Initial revision
claus
parents:
diff changeset
   499
    ^ super colorNamed:aString
48194c26a46c Initial revision
claus
parents:
diff changeset
   500
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   501
48194c26a46c Initial revision
claus
parents:
diff changeset
   502
colorCell
48194c26a46c Initial revision
claus
parents:
diff changeset
   503
    "allocate a color - return index.
48194c26a46c Initial revision
claus
parents:
diff changeset
   504
     Since NeXTs are either StaticGrey or StaticColor, return nil here."
48194c26a46c Initial revision
claus
parents:
diff changeset
   505
48194c26a46c Initial revision
claus
parents:
diff changeset
   506
    ^ nil
48194c26a46c Initial revision
claus
parents:
diff changeset
   507
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   508
48194c26a46c Initial revision
claus
parents:
diff changeset
   509
setColor:index red:redVal green:greenVal blue:blueVal
48194c26a46c Initial revision
claus
parents:
diff changeset
   510
    "change color in map at:index.
48194c26a46c Initial revision
claus
parents:
diff changeset
   511
     Since NeXTs are either StaticGrey or StaticColor, do nothing here."
48194c26a46c Initial revision
claus
parents:
diff changeset
   512
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   513
    ^ self
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   514
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   515
48194c26a46c Initial revision
claus
parents:
diff changeset
   516
getRedFrom:index
48194c26a46c Initial revision
claus
parents:
diff changeset
   517
    "get red 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:-16) 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
getGreenFrom:index
48194c26a46c Initial revision
claus
parents:
diff changeset
   523
    "get green part of color in map at:index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   524
48194c26a46c Initial revision
claus
parents:
diff changeset
   525
    ^ ((index bitShift:-8) 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
getBlueFrom:index
48194c26a46c Initial revision
claus
parents:
diff changeset
   529
    "get blue part of color in map at:index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   530
48194c26a46c Initial revision
claus
parents:
diff changeset
   531
    ^ (index bitAnd:16rFF) * 100 / 16rFF
48194c26a46c Initial revision
claus
parents:
diff changeset
   532
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   533
48194c26a46c Initial revision
claus
parents:
diff changeset
   534
!NeXTWorkstation methodsFor:'window stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   535
48194c26a46c Initial revision
claus
parents:
diff changeset
   536
setBackingStore:how in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   537
    "turn on/off backing-store 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
setSaveUnder:yesOrNo in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   543
    "turn on/off save-under for a window"
48194c26a46c Initial revision
claus
parents:
diff changeset
   544
48194c26a46c Initial revision
claus
parents:
diff changeset
   545
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
   546
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   547
48194c26a46c Initial revision
claus
parents:
diff changeset
   548
setWindowBackground:aColorId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   549
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   550
#ifdef NOTDEF
48194c26a46c Initial revision
claus
parents:
diff changeset
   551
    int id, ir, ig, ib;
48194c26a46c Initial revision
claus
parents:
diff changeset
   552
    float r, g, b;
48194c26a46c Initial revision
claus
parents:
diff changeset
   553
    NXColor clr;
48194c26a46c Initial revision
claus
parents:
diff changeset
   554
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   555
    if (__isSmallInteger(aColorId)) {
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   556
	id = _intVal(aColorId);
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   557
	ir = (id >> 16) & 0xFF;
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   558
	ig = (id >> 8) & 0xFF;
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   559
	ib = id & 0xFF;
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   560
	/* scale from 0 .. 255 to 0.0 .. 1.0 */
48194c26a46c Initial revision
claus
parents:
diff changeset
   561
	r = (float)ir / 255.0;
48194c26a46c Initial revision
claus
parents:
diff changeset
   562
	g = (float)ig / 255.0;
48194c26a46c Initial revision
claus
parents:
diff changeset
   563
	b = (float)ib / 255.0;
48194c26a46c Initial revision
claus
parents:
diff changeset
   564
	clr = NXConvertRGBToColor(r, g, b);
48194c26a46c Initial revision
claus
parents:
diff changeset
   565
    }
48194c26a46c Initial revision
claus
parents:
diff changeset
   566
#endif
48194c26a46c Initial revision
claus
parents:
diff changeset
   567
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   568
.
48194c26a46c Initial revision
claus
parents:
diff changeset
   569
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   570
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   571
48194c26a46c Initial revision
claus
parents:
diff changeset
   572
setWindowBackgroundPixmap:aPixmapId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   573
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   574
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   575
48194c26a46c Initial revision
claus
parents:
diff changeset
   576
setWindowBorderColor:aColorId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   577
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   578
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   579
48194c26a46c Initial revision
claus
parents:
diff changeset
   580
setWindowBorderPixmap:aPixmapId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   581
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   582
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   583
48194c26a46c Initial revision
claus
parents:
diff changeset
   584
setWindowBorderWidth:aNumber in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   585
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   586
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   587
48194c26a46c Initial revision
claus
parents:
diff changeset
   588
setWindowBorderShape:aPixmapId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   589
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
   590
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   591
48194c26a46c Initial revision
claus
parents:
diff changeset
   592
setWindowShape:aPixmapId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   593
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
   594
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   595
48194c26a46c Initial revision
claus
parents:
diff changeset
   596
setCursor:aCursorId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   597
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   598
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   599
48194c26a46c Initial revision
claus
parents:
diff changeset
   600
setWindowName:aString in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   601
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   602
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   603
48194c26a46c Initial revision
claus
parents:
diff changeset
   604
setWindowIcon:aForm in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   605
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   606
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   607
1375
df3d3e894ee1 prepare for iconMasks
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
   608
setWindowIcon:aForm mask:aMaskForm in:aWindowId
df3d3e894ee1 prepare for iconMasks
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
   609
    ^ self primitiveFailed
df3d3e894ee1 prepare for iconMasks
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
   610
!
df3d3e894ee1 prepare for iconMasks
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
   611
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   612
setWindowIconWindow:aView in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   613
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   614
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   615
48194c26a46c Initial revision
claus
parents:
diff changeset
   616
clearWindow:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   617
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   618
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   619
48194c26a46c Initial revision
claus
parents:
diff changeset
   620
clearRectangleX:x y:y width:width height:height in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   621
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   622
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   623
48194c26a46c Initial revision
claus
parents:
diff changeset
   624
mapWindow:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   625
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   626
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   627
48194c26a46c Initial revision
claus
parents:
diff changeset
   628
unmapWindow:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   629
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   630
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   631
48194c26a46c Initial revision
claus
parents:
diff changeset
   632
raiseWindow:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   633
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   634
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   635
48194c26a46c Initial revision
claus
parents:
diff changeset
   636
moveWindow:aWindowId x:x y:y
48194c26a46c Initial revision
claus
parents:
diff changeset
   637
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   638
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   639
48194c26a46c Initial revision
claus
parents:
diff changeset
   640
resizeWindow:aWindowId width:w height:h
48194c26a46c Initial revision
claus
parents:
diff changeset
   641
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   642
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   643
48194c26a46c Initial revision
claus
parents:
diff changeset
   644
moveResizeWindow:aWindowId x:x y:y width:w height:h
48194c26a46c Initial revision
claus
parents:
diff changeset
   645
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   646
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   647
48194c26a46c Initial revision
claus
parents:
diff changeset
   648
!NeXTWorkstation methodsFor:'graphic context stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   649
48194c26a46c Initial revision
claus
parents:
diff changeset
   650
setForeground:fgColorIndex in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   651
    "set foreground color to be drawn with"
48194c26a46c Initial revision
claus
parents:
diff changeset
   652
48194c26a46c Initial revision
claus
parents:
diff changeset
   653
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   654
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   655
48194c26a46c Initial revision
claus
parents:
diff changeset
   656
setBackground:bgColorIndex in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   657
    "set background color to be drawn with"
48194c26a46c Initial revision
claus
parents:
diff changeset
   658
48194c26a46c Initial revision
claus
parents:
diff changeset
   659
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   660
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   661
48194c26a46c Initial revision
claus
parents:
diff changeset
   662
setForeground:fgColorIndex background:bgColorIndex in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   663
    "set foreground and background colors to be drawn with"
48194c26a46c Initial revision
claus
parents:
diff changeset
   664
48194c26a46c Initial revision
claus
parents:
diff changeset
   665
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   666
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   667
48194c26a46c Initial revision
claus
parents:
diff changeset
   668
setForeground:fgColor background:bgColor mask:aBitmapId in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   669
    "set foreground and background colors to be drawn with using mask or
48194c26a46c Initial revision
claus
parents:
diff changeset
   670
     solid (if aBitmapId is nil)"
48194c26a46c Initial revision
claus
parents:
diff changeset
   671
48194c26a46c Initial revision
claus
parents:
diff changeset
   672
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   673
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   674
48194c26a46c Initial revision
claus
parents:
diff changeset
   675
setLineWidth:aNumber in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   676
    "set linewidth to be drawn with"
48194c26a46c Initial revision
claus
parents:
diff changeset
   677
48194c26a46c Initial revision
claus
parents:
diff changeset
   678
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   679
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   680
48194c26a46c Initial revision
claus
parents:
diff changeset
   681
setForeground:fgColor background:bgColor mask:aBitmapId lineWidth:lw in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   682
    "set foreground and background colors to be drawn with using mask or
48194c26a46c Initial revision
claus
parents:
diff changeset
   683
     solid (if aBitmapId is nil); also set lineWidth"
48194c26a46c Initial revision
claus
parents:
diff changeset
   684
48194c26a46c Initial revision
claus
parents:
diff changeset
   685
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   686
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   687
48194c26a46c Initial revision
claus
parents:
diff changeset
   688
setFunction:aFunctionSymbol in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   689
    "set alu function to be drawn with"
48194c26a46c Initial revision
claus
parents:
diff changeset
   690
48194c26a46c Initial revision
claus
parents:
diff changeset
   691
    "{ Symbol: and  } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   692
    "{ Symbol: or   } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   693
    "{ Symbol: xor  } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   694
    "{ Symbol: copy } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   695
    "{ Symbol: copyInverted } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   696
    "{ Symbol: andInverted } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   697
    "{ Symbol: andReverse } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   698
    "{ Symbol: orInverted } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   699
    "{ Symbol: orReverse } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   700
48194c26a46c Initial revision
claus
parents:
diff changeset
   701
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   702
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   703
48194c26a46c Initial revision
claus
parents:
diff changeset
   704
setFont:aFontId in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   705
    "set font to be drawn in"
48194c26a46c Initial revision
claus
parents:
diff changeset
   706
48194c26a46c Initial revision
claus
parents:
diff changeset
   707
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   708
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   709
48194c26a46c Initial revision
claus
parents:
diff changeset
   710
setPixmapMask:aPixmapId in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   711
    "set or clear the drawing mask - a pixmap mask providing full color"
48194c26a46c Initial revision
claus
parents:
diff changeset
   712
48194c26a46c Initial revision
claus
parents:
diff changeset
   713
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   714
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   715
48194c26a46c Initial revision
claus
parents:
diff changeset
   716
setBitmapMask:aBitmapId in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   717
    "set or clear the drawing mask - a bitmap mask using current fg/bg"
48194c26a46c Initial revision
claus
parents:
diff changeset
   718
48194c26a46c Initial revision
claus
parents:
diff changeset
   719
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   720
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   721
48194c26a46c Initial revision
claus
parents:
diff changeset
   722
setMaskOriginX:orgX y:orgY in:aGCid
48194c26a46c Initial revision
claus
parents:
diff changeset
   723
    "set the mask origin"
48194c26a46c Initial revision
claus
parents:
diff changeset
   724
48194c26a46c Initial revision
claus
parents:
diff changeset
   725
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   726
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   727
48194c26a46c Initial revision
claus
parents:
diff changeset
   728
setClipByChildren:aBool in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   729
    "enable/disable drawing into child views"
48194c26a46c Initial revision
claus
parents:
diff changeset
   730
48194c26a46c Initial revision
claus
parents:
diff changeset
   731
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   732
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   733
1711
9758281e72fd interface to clip methods
Claus Gittinger <cg@exept.de>
parents: 1701
diff changeset
   734
noClipIn:aDrawableId gc:aGCId
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   735
    "disable clipping rectangle"
48194c26a46c Initial revision
claus
parents:
diff changeset
   736
48194c26a46c Initial revision
claus
parents:
diff changeset
   737
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   738
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   739
1711
9758281e72fd interface to clip methods
Claus Gittinger <cg@exept.de>
parents: 1701
diff changeset
   740
setClipX:clipX y:clipY width:clipWidth height:clipHeight in:drawableId gc:aGCId
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   741
    "clip to a rectangle"
48194c26a46c Initial revision
claus
parents:
diff changeset
   742
48194c26a46c Initial revision
claus
parents:
diff changeset
   743
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   744
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   745
48194c26a46c Initial revision
claus
parents:
diff changeset
   746
setGraphicsExposures:aBoolean in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   747
    "set or clear the graphics exposures flag"
48194c26a46c Initial revision
claus
parents:
diff changeset
   748
48194c26a46c Initial revision
claus
parents:
diff changeset
   749
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   750
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   751
48194c26a46c Initial revision
claus
parents:
diff changeset
   752
!NeXTWorkstation methodsFor:'retrieving pixels'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   753
48194c26a46c Initial revision
claus
parents:
diff changeset
   754
getPixelX:x y:y from:aDrawableId
48194c26a46c Initial revision
claus
parents:
diff changeset
   755
    "return the pixel value at x/y"
48194c26a46c Initial revision
claus
parents:
diff changeset
   756
48194c26a46c Initial revision
claus
parents:
diff changeset
   757
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   758
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   759
48194c26a46c Initial revision
claus
parents:
diff changeset
   760
!NeXTWorkstation methodsFor:'drawing'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   761
48194c26a46c Initial revision
claus
parents:
diff changeset
   762
displayString:aString x:x y:y in:aDrawableId with:aGCId
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   763
    "draw a string - draw foreground only"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   764
48194c26a46c Initial revision
claus
parents:
diff changeset
   765
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   766
    float fx, fy;
48194c26a46c Initial revision
claus
parents:
diff changeset
   767
48194c26a46c Initial revision
claus
parents:
diff changeset
   768
    do {
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   769
	if (__isSmallInteger(x))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   770
	    fx = (float)_intVal(x);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   771
	else if (_isFloat(x))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   772
	    fx = _floatVal(x);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   773
	else break;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   774
	if (__isSmallInteger(y))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   775
	    fy = (float)_intVal(y);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   776
	else if (_isFloat(y))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   777
	    fy = _floatVal(y);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   778
	else break;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   779
	setDrawable(aDrawableId);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   780
	PSmoveto(fx, fy);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   781
	PSshow((char *)_stringVal(aString));
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   782
	if (_INST(buffered) == false)
48194c26a46c Initial revision
claus
parents:
diff changeset
   783
	    NXPing();
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   784
	RETURN ( self );
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   785
    } while (1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   786
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   787
.
48194c26a46c Initial revision
claus
parents:
diff changeset
   788
    self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   789
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   790
48194c26a46c Initial revision
claus
parents:
diff changeset
   791
displayString:aString from:index1 to:index2 x:x y:y in:aDrawableId with:aGCId
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   792
    "draw part of a string - draw foreground only"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   793
48194c26a46c Initial revision
claus
parents:
diff changeset
   794
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   795
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   796
48194c26a46c Initial revision
claus
parents:
diff changeset
   797
displayOpaqueString:aString x:x y:y in:aDrawableId with:aGCId
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   798
    "draw a string - draw both foreground and background"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   799
48194c26a46c Initial revision
claus
parents:
diff changeset
   800
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   801
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   802
48194c26a46c Initial revision
claus
parents:
diff changeset
   803
displayOpaqueString:aString from:index1 to:index2 x:x y:y in:aDrawableId with:aGCId
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   804
    "draw part of a string - draw both foreground and background"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   805
48194c26a46c Initial revision
claus
parents:
diff changeset
   806
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   807
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   808
24
e810b1be068b *** empty log message ***
claus
parents: 12
diff changeset
   809
displayPointX:x y:y in:aDrawableId with:aGCId
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   810
    "draw a point"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   811
48194c26a46c Initial revision
claus
parents:
diff changeset
   812
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   813
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   814
48194c26a46c Initial revision
claus
parents:
diff changeset
   815
displayLineFromX:x0 y:y0 toX:x1 y:y1 in:aDrawableId with:aGCId
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   816
    "draw a line"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   817
48194c26a46c Initial revision
claus
parents:
diff changeset
   818
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   819
    float fx0, fy0, fx1, fy1;
48194c26a46c Initial revision
claus
parents:
diff changeset
   820
48194c26a46c Initial revision
claus
parents:
diff changeset
   821
    do {
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   822
	if (__isSmallInteger(x0))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   823
	    fx0 = _intVal(x0);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   824
	else if (_isFloat(x0))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   825
	    fx0 = _floatVal(x0);
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(y0))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   828
	    fy0 = _intVal(y0);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   829
	else if (_isFloat(y0))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   830
	    fy0 = _floatVal(y0);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   831
	else break;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   832
	if (__isSmallInteger(x1))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   833
	    fx1 = _intVal(x1);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   834
	else if (_isFloat(x1))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   835
	    fx1 = _floatVal(x1);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   836
	else break;
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   837
	if (__isSmallInteger(y1))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   838
	    fy1 = _intVal(y1);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   839
	else if (_isFloat(y1))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   840
	    fy1 = _floatVal(y1);
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   841
	else break;
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   842
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   843
	setDrawable(aDrawableId);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   844
	PSsetlinewidth(0.0);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   845
	PSnewpath();
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   846
	PSmoveto(fx0, fy0);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   847
	PSlineto(fx1, fy1);
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   848
	PSstroke();
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   849
	if (_INST(buffered) == false)
48194c26a46c Initial revision
claus
parents:
diff changeset
   850
	    NXPing();
48194c26a46c Initial revision
claus
parents:
diff changeset
   851
98
cd6af625d477 *** empty log message ***
claus
parents: 97
diff changeset
   852
	RETURN ( self );
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   853
    } while (1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   854
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   855
.
48194c26a46c Initial revision
claus
parents:
diff changeset
   856
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   857
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   858
48194c26a46c Initial revision
claus
parents:
diff changeset
   859
drawRectangleX:x y:y width:width height:height in:aDrawableId with:aGCId
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   860
    "draw a rectangle"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   861
48194c26a46c Initial revision
claus
parents:
diff changeset
   862
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   863
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   864
48194c26a46c Initial revision
claus
parents:
diff changeset
   865
drawPolygon:aPolygon in:aDrawableId with:aGCId
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
diff changeset
   866
    "draw a polygon"
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   867
48194c26a46c Initial revision
claus
parents:
diff changeset
   868
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   869
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   870
1030
ca9d23090688 pass srcGCId to bit-blitters (req'd on WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   871
copyFromId:sourceId x:srcX y:srcY gc:srcGCId to:destId x:dstX y:dstY gc:dstGCId width:w height:h
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   872
    "do a bit-blt"
48194c26a46c Initial revision
claus
parents:
diff changeset
   873
48194c26a46c Initial revision
claus
parents:
diff changeset
   874
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   875
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   876
1030
ca9d23090688 pass srcGCId to bit-blitters (req'd on WINDOWS)
Claus Gittinger <cg@exept.de>
parents: 350
diff changeset
   877
copyPlaneFromId:sourceId x:srcX y:srcY gc:srcGCId to:destId x:dstX y:dstY gc:dstGCId width:w height:h
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
5015
481783839f19 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1711
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
! !