NeXTWorkstation.st
author claus
Wed, 15 Feb 1995 11:36:19 +0100
changeset 97 dd6116883ac0
parent 69 04d0949dc053
child 98 cd6af625d477
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
48194c26a46c Initial revision
claus
parents:
diff changeset
     1
"
6
7ee0cfde237d *** empty log message ***
claus
parents: 5
diff changeset
     2
 COPYRIGHT (c) 1992 by Claus Gittinger
0
48194c26a46c Initial revision
claus
parents:
diff changeset
     3
              All Rights Reserved
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
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    25
              All Rights Reserved
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
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
    33
$Header: /cvs/stx/stx/libview/NeXTWorkstation.st,v 1.7 1995-02-15 10:36:11 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) {
48194c26a46c Initial revision
claus
parents:
diff changeset
    56
        if (lastDrawable) {
48194c26a46c Initial revision
claus
parents:
diff changeset
    57
	    _objc_unlockFocus(lastDrawable);
48194c26a46c Initial revision
claus
parents:
diff changeset
    58
        }
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) {
48194c26a46c Initial revision
claus
parents:
diff changeset
    98
        _INST(hasColors) = false;
48194c26a46c Initial revision
claus
parents:
diff changeset
    99
        _INST(hasGreyscales) = true;
48194c26a46c Initial revision
claus
parents:
diff changeset
   100
	_INST(bitsPerRGB) = _MKSMALLINT(2);
48194c26a46c Initial revision
claus
parents:
diff changeset
   101
        if (depth == 2)
48194c26a46c Initial revision
claus
parents:
diff changeset
   102
            _INST(ncells) = _MKSMALLINT(4);
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) {
48194c26a46c Initial revision
claus
parents:
diff changeset
   105
        _INST(hasColors) = true;
48194c26a46c Initial revision
claus
parents:
diff changeset
   106
        _INST(hasGreyscales) = true;
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
	 *
48194c26a46c Initial revision
claus
parents:
diff changeset
   110
        if (depth == 8) {
48194c26a46c Initial revision
claus
parents:
diff changeset
   111
            _INST(ncells) = _MKSMALLINT(256);
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 */
48194c26a46c Initial revision
claus
parents:
diff changeset
   116
        if (depth == 12) {
48194c26a46c Initial revision
claus
parents:
diff changeset
   117
            _INST(ncells) = _MKSMALLINT(4096);
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 */
48194c26a46c Initial revision
claus
parents:
diff changeset
   121
        if (depth == 24) {
48194c26a46c Initial revision
claus
parents:
diff changeset
   122
            _INST(ncells) = _MKSMALLINT(4096 * 4096);
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.
48194c26a46c Initial revision
claus
parents:
diff changeset
   131
    controlDown := false.
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:[
48194c26a46c Initial revision
claus
parents:
diff changeset
   151
        knownViews := (VariableArray new:100) grow:0.
48194c26a46c Initial revision
claus
parents:
diff changeset
   152
        knownIds := (VariableArray new:100) grow:0.
48194c26a46c Initial revision
claus
parents:
diff changeset
   153
        knownDrawableIds := (VariableArray new:100) grow: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
48194c26a46c Initial revision
claus
parents:
diff changeset
   188
!NeXTWorkstation methodsFor:'accessing & queries'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   189
48194c26a46c Initial revision
claus
parents:
diff changeset
   190
displayFileDescriptor
48194c26a46c Initial revision
claus
parents:
diff changeset
   191
    "return the displays fileNumber - for select"
48194c26a46c Initial revision
claus
parents:
diff changeset
   192
48194c26a46c Initial revision
claus
parents:
diff changeset
   193
    ^ nil
48194c26a46c Initial revision
claus
parents:
diff changeset
   194
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   195
48194c26a46c Initial revision
claus
parents:
diff changeset
   196
serverVendor
48194c26a46c Initial revision
claus
parents:
diff changeset
   197
    ^ 'NeXT'
48194c26a46c Initial revision
claus
parents:
diff changeset
   198
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   199
48194c26a46c Initial revision
claus
parents:
diff changeset
   200
vendorRelease
48194c26a46c Initial revision
claus
parents:
diff changeset
   201
    ^ 2.1  "this is wrong - should get it from somewhere ..."
48194c26a46c Initial revision
claus
parents:
diff changeset
   202
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   203
48194c26a46c Initial revision
claus
parents:
diff changeset
   204
protocolVersion
48194c26a46c Initial revision
claus
parents:
diff changeset
   205
    ^ self vendorRelease
48194c26a46c Initial revision
claus
parents:
diff changeset
   206
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   207
48194c26a46c Initial revision
claus
parents:
diff changeset
   208
hasShape
48194c26a46c Initial revision
claus
parents:
diff changeset
   209
    "return true, if display supports arbitrary shaped windows.
48194c26a46c Initial revision
claus
parents:
diff changeset
   210
     (actually, DPS does support this - but I currently dont know how)"
48194c26a46c Initial revision
claus
parents:
diff changeset
   211
48194c26a46c Initial revision
claus
parents:
diff changeset
   212
    ^ false
48194c26a46c Initial revision
claus
parents:
diff changeset
   213
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   214
48194c26a46c Initial revision
claus
parents:
diff changeset
   215
hasDPS
48194c26a46c Initial revision
claus
parents:
diff changeset
   216
    "return true, if display supports postscript output into a view"
48194c26a46c Initial revision
claus
parents:
diff changeset
   217
48194c26a46c Initial revision
claus
parents:
diff changeset
   218
    ^ true
48194c26a46c Initial revision
claus
parents:
diff changeset
   219
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   220
48194c26a46c Initial revision
claus
parents:
diff changeset
   221
blackpixel
48194c26a46c Initial revision
claus
parents:
diff changeset
   222
    "return the colorId of black;
48194c26a46c Initial revision
claus
parents:
diff changeset
   223
     for next, we use the color directly"
48194c26a46c Initial revision
claus
parents:
diff changeset
   224
48194c26a46c Initial revision
claus
parents:
diff changeset
   225
    ^ 16r000000
48194c26a46c Initial revision
claus
parents:
diff changeset
   226
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   227
48194c26a46c Initial revision
claus
parents:
diff changeset
   228
whitepixel
48194c26a46c Initial revision
claus
parents:
diff changeset
   229
    "return the colorId of white;
48194c26a46c Initial revision
claus
parents:
diff changeset
   230
     for next, we use the color directly"
48194c26a46c Initial revision
claus
parents:
diff changeset
   231
48194c26a46c Initial revision
claus
parents:
diff changeset
   232
    ^ 16rFFFFFF
48194c26a46c Initial revision
claus
parents:
diff changeset
   233
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   234
48194c26a46c Initial revision
claus
parents:
diff changeset
   235
visualType:aSymbol
48194c26a46c Initial revision
claus
parents:
diff changeset
   236
    ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   237
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   238
48194c26a46c Initial revision
claus
parents:
diff changeset
   239
viewIdFromPoint:aPoint in:windowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   240
    "given a point in rootWindow, return the viewId of the subview of windowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   241
     hit by this coordinate.
48194c26a46c Initial revision
claus
parents:
diff changeset
   242
     return nil if no view was hit.
48194c26a46c Initial revision
claus
parents:
diff changeset
   243
     - use to find window to drop objects after a cross-view drag"
48194c26a46c Initial revision
claus
parents:
diff changeset
   244
48194c26a46c Initial revision
claus
parents:
diff changeset
   245
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   246
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   247
48194c26a46c Initial revision
claus
parents:
diff changeset
   248
translatePoint:aPoint from:windowId1 to:windowId2
48194c26a46c Initial revision
claus
parents:
diff changeset
   249
    "given a point in window1, return the coordinate in window2
48194c26a46c Initial revision
claus
parents:
diff changeset
   250
     - use to xlate points from a window to rootwindow"
48194c26a46c Initial revision
claus
parents:
diff changeset
   251
48194c26a46c Initial revision
claus
parents:
diff changeset
   252
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   253
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   254
48194c26a46c Initial revision
claus
parents:
diff changeset
   255
!NeXTWorkstation methodsFor:'bitmap/window creation'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   256
48194c26a46c Initial revision
claus
parents:
diff changeset
   257
createFaxImageFromArray:data width:w height:h type:type k:k msbFirst:msbFirst
48194c26a46c Initial revision
claus
parents:
diff changeset
   258
    "create a new faxImage in the workstation"
48194c26a46c Initial revision
claus
parents:
diff changeset
   259
48194c26a46c Initial revision
claus
parents:
diff changeset
   260
    ^ nil
48194c26a46c Initial revision
claus
parents:
diff changeset
   261
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   262
48194c26a46c Initial revision
claus
parents:
diff changeset
   263
createBitmapWidth:w height:h
48194c26a46c Initial revision
claus
parents:
diff changeset
   264
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   265
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   266
48194c26a46c Initial revision
claus
parents:
diff changeset
   267
createPixmapWidth:w height:h depth:d
48194c26a46c Initial revision
claus
parents:
diff changeset
   268
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   269
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   270
48194c26a46c Initial revision
claus
parents:
diff changeset
   271
createBitmapFromFile:aString for:aForm
48194c26a46c Initial revision
claus
parents:
diff changeset
   272
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   273
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   274
48194c26a46c Initial revision
claus
parents:
diff changeset
   275
createBitmapFromArray:anArray width:w height:h
48194c26a46c Initial revision
claus
parents:
diff changeset
   276
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   277
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   278
48194c26a46c Initial revision
claus
parents:
diff changeset
   279
createWindowFor:aView left:xpos top:ypos width:wwidth height:wheight
48194c26a46c Initial revision
claus
parents:
diff changeset
   280
48194c26a46c Initial revision
claus
parents:
diff changeset
   281
    |ext minWidth minHeight maxWidth maxHeight 
48194c26a46c Initial revision
claus
parents:
diff changeset
   282
     bWidth bColor viewBg viewBgId wsuperView wsuperViewId wcreateOnTop 
48194c26a46c Initial revision
claus
parents:
diff changeset
   283
     winputOnly wlabel wcursor wcursorId wicon wiconId windowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   284
     weventMask wiconView wiconViewId bitGravity viewGravity
69
04d0949dc053 *** empty log message ***
claus
parents: 24
diff changeset
   285
     drawableId|
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   286
48194c26a46c Initial revision
claus
parents:
diff changeset
   287
    wsuperView := aView superView.
48194c26a46c Initial revision
claus
parents:
diff changeset
   288
    wsuperView notNil ifTrue:[
48194c26a46c Initial revision
claus
parents:
diff changeset
   289
        wsuperViewId := wsuperView id
48194c26a46c Initial revision
claus
parents:
diff changeset
   290
    ].
48194c26a46c Initial revision
claus
parents:
diff changeset
   291
    wlabel := aView label.
48194c26a46c Initial revision
claus
parents:
diff changeset
   292
    wcursor := aView cursor.
48194c26a46c Initial revision
claus
parents:
diff changeset
   293
48194c26a46c Initial revision
claus
parents:
diff changeset
   294
    wsuperView isNil ifTrue:[
48194c26a46c Initial revision
claus
parents:
diff changeset
   295
        ext := aView minExtent.
48194c26a46c Initial revision
claus
parents:
diff changeset
   296
        ext notNil ifTrue:[
48194c26a46c Initial revision
claus
parents:
diff changeset
   297
            minWidth := ext x.
48194c26a46c Initial revision
claus
parents:
diff changeset
   298
            minHeight := ext y
48194c26a46c Initial revision
claus
parents:
diff changeset
   299
        ].
48194c26a46c Initial revision
claus
parents:
diff changeset
   300
        ext := aView maxExtent.
48194c26a46c Initial revision
claus
parents:
diff changeset
   301
        ext notNil ifTrue:[
48194c26a46c Initial revision
claus
parents:
diff changeset
   302
            maxWidth := ext x.
48194c26a46c Initial revision
claus
parents:
diff changeset
   303
            maxHeight := ext y
48194c26a46c Initial revision
claus
parents:
diff changeset
   304
        ].
48194c26a46c Initial revision
claus
parents:
diff changeset
   305
    ].
48194c26a46c Initial revision
claus
parents:
diff changeset
   306
48194c26a46c Initial revision
claus
parents:
diff changeset
   307
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   308
    id win;
48194c26a46c Initial revision
claus
parents:
diff changeset
   309
    id view;
48194c26a46c Initial revision
claus
parents:
diff changeset
   310
    int w, h, resizable;
48194c26a46c Initial revision
claus
parents:
diff changeset
   311
48194c26a46c Initial revision
claus
parents:
diff changeset
   312
    if ((minWidth != nil) && (maxWidth != nil)
48194c26a46c Initial revision
claus
parents:
diff changeset
   313
     && (minWidth == maxWidth) && (minHeight == maxHeight)) {
48194c26a46c Initial revision
claus
parents:
diff changeset
   314
	w = _intVal(minWidth);
48194c26a46c Initial revision
claus
parents:
diff changeset
   315
	h = _intVal(maxHeight);
48194c26a46c Initial revision
claus
parents:
diff changeset
   316
	resizable = 0;
48194c26a46c Initial revision
claus
parents:
diff changeset
   317
    } else {
48194c26a46c Initial revision
claus
parents:
diff changeset
   318
	w = _intVal(wwidth);
48194c26a46c Initial revision
claus
parents:
diff changeset
   319
	h = _intVal(wheight);
48194c26a46c Initial revision
claus
parents:
diff changeset
   320
	resizable = 1;
48194c26a46c Initial revision
claus
parents:
diff changeset
   321
    }
48194c26a46c Initial revision
claus
parents:
diff changeset
   322
    win = _NX_create_window(_intVal(xpos), _intVal(ypos), 
48194c26a46c Initial revision
claus
parents:
diff changeset
   323
			    w, h, resizable);
48194c26a46c Initial revision
claus
parents:
diff changeset
   324
    if (! win)
48194c26a46c Initial revision
claus
parents:
diff changeset
   325
        return nil;
48194c26a46c Initial revision
claus
parents:
diff changeset
   326
48194c26a46c Initial revision
claus
parents:
diff changeset
   327
    /*
48194c26a46c Initial revision
claus
parents:
diff changeset
   328
     * define its name
48194c26a46c Initial revision
claus
parents:
diff changeset
   329
     */
48194c26a46c Initial revision
claus
parents:
diff changeset
   330
    if (_isString(wlabel))
48194c26a46c Initial revision
claus
parents:
diff changeset
   331
        _objc_setTitle(win, _stringVal(wlabel));
48194c26a46c Initial revision
claus
parents:
diff changeset
   332
    else
48194c26a46c Initial revision
claus
parents:
diff changeset
   333
        _objc_setTitle(win, "untitled");
48194c26a46c Initial revision
claus
parents:
diff changeset
   334
48194c26a46c Initial revision
claus
parents:
diff changeset
   335
    view = _objc_contentView(win);
48194c26a46c Initial revision
claus
parents:
diff changeset
   336
    _objc_setFlipped_(view, 1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   337
48194c26a46c Initial revision
claus
parents:
diff changeset
   338
    _objc_makeKeyAndOrderFront(win, 0);
48194c26a46c Initial revision
claus
parents:
diff changeset
   339
    _objc_display(win);
48194c26a46c Initial revision
claus
parents:
diff changeset
   340
48194c26a46c Initial revision
claus
parents:
diff changeset
   341
    windowId = _MKSMALLINT(win);
48194c26a46c Initial revision
claus
parents:
diff changeset
   342
    drawableId = _MKSMALLINT(view);
48194c26a46c Initial revision
claus
parents:
diff changeset
   343
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   344
.
48194c26a46c Initial revision
claus
parents:
diff changeset
   345
    self addKnownView:aView winId:windowId withId:drawableId.
48194c26a46c Initial revision
claus
parents:
diff changeset
   346
    ^ drawableId
48194c26a46c Initial revision
claus
parents:
diff changeset
   347
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   348
48194c26a46c Initial revision
claus
parents:
diff changeset
   349
rootWindowFor:aView
48194c26a46c Initial revision
claus
parents:
diff changeset
   350
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   351
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   352
48194c26a46c Initial revision
claus
parents:
diff changeset
   353
destroyView:aView withId:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   354
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   355
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   356
48194c26a46c Initial revision
claus
parents:
diff changeset
   357
destroyPixmap:aDrawableId
48194c26a46c Initial revision
claus
parents:
diff changeset
   358
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   359
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   360
48194c26a46c Initial revision
claus
parents:
diff changeset
   361
destroyFaxImage:aFaxImageId
48194c26a46c Initial revision
claus
parents:
diff changeset
   362
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   363
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   364
48194c26a46c Initial revision
claus
parents:
diff changeset
   365
destroyGC:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   366
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   367
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   368
48194c26a46c Initial revision
claus
parents:
diff changeset
   369
gcFor:aDrawableId
48194c26a46c Initial revision
claus
parents:
diff changeset
   370
     ^ self shouldNotImplement
48194c26a46c Initial revision
claus
parents:
diff changeset
   371
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   372
48194c26a46c Initial revision
claus
parents:
diff changeset
   373
!NeXTWorkstation methodsFor:'misc stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   374
48194c26a46c Initial revision
claus
parents:
diff changeset
   375
setInputFocusTo:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   376
    ^ self primitiveFailed
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:'font stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   380
48194c26a46c Initial revision
claus
parents:
diff changeset
   381
listOfAvailableFonts
48194c26a46c Initial revision
claus
parents:
diff changeset
   382
    "return a list with all available font names on this display"
48194c26a46c Initial revision
claus
parents:
diff changeset
   383
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   384
        char **names;
48194c26a46c Initial revision
claus
parents:
diff changeset
   385
	char **cp;
48194c26a46c Initial revision
claus
parents:
diff changeset
   386
	int count, i;
48194c26a46c Initial revision
claus
parents:
diff changeset
   387
	static struct inlineCache dummy1 = _DUMMYILC1;
48194c26a46c Initial revision
claus
parents:
diff changeset
   388
	extern OBJ _new_;
48194c26a46c Initial revision
claus
parents:
diff changeset
   389
	OBJ arr;
48194c26a46c Initial revision
claus
parents:
diff changeset
   390
48194c26a46c Initial revision
claus
parents:
diff changeset
   391
        names = (char **) _objc_availableFonts(_FontManager_new());
48194c26a46c Initial revision
claus
parents:
diff changeset
   392
	/* count them */
48194c26a46c Initial revision
claus
parents:
diff changeset
   393
	for (cp = names; *cp; cp++) ;;
48194c26a46c Initial revision
claus
parents:
diff changeset
   394
	count = cp - names;
48194c26a46c Initial revision
claus
parents:
diff changeset
   395
	arr = _SEND1(Array, _new_, CON_COMMA nil, &dummy1, _MKSMALLINT(count));
48194c26a46c Initial revision
claus
parents:
diff changeset
   396
	for (i=0; i<count;i++)
48194c26a46c Initial revision
claus
parents:
diff changeset
   397
	    _ArrayInstPtr(arr)->a_element[i] = _MKSTRING(names[i] COMMA_CON);
48194c26a46c Initial revision
claus
parents:
diff changeset
   398
	free(names);
48194c26a46c Initial revision
claus
parents:
diff changeset
   399
	RETURN (arr);
48194c26a46c Initial revision
claus
parents:
diff changeset
   400
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   401
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   402
48194c26a46c Initial revision
claus
parents:
diff changeset
   403
createFontFor:aFontName
48194c26a46c Initial revision
claus
parents:
diff changeset
   404
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   405
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   406
48194c26a46c Initial revision
claus
parents:
diff changeset
   407
releaseFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   408
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   409
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   410
48194c26a46c Initial revision
claus
parents:
diff changeset
   411
ascentOf:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   412
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   413
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   414
48194c26a46c Initial revision
claus
parents:
diff changeset
   415
descentOf:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   416
    self badFont
48194c26a46c Initial revision
claus
parents:
diff changeset
   417
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   418
48194c26a46c Initial revision
claus
parents:
diff changeset
   419
minWidthOfFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   420
    self badFont
48194c26a46c Initial revision
claus
parents:
diff changeset
   421
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   422
48194c26a46c Initial revision
claus
parents:
diff changeset
   423
maxWidthOfFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   424
    self badFont
48194c26a46c Initial revision
claus
parents:
diff changeset
   425
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   426
48194c26a46c Initial revision
claus
parents:
diff changeset
   427
widthOf:aString inFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   428
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   429
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   430
48194c26a46c Initial revision
claus
parents:
diff changeset
   431
widthOf:aString from:index1 to:index2 inFont:aFontId
48194c26a46c Initial revision
claus
parents:
diff changeset
   432
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   433
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   434
48194c26a46c Initial revision
claus
parents:
diff changeset
   435
!NeXTWorkstation methodsFor:'cursor stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   436
48194c26a46c Initial revision
claus
parents:
diff changeset
   437
destroyCursor:aCursorId
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
createCursorSourceFormId:sourceFormId maskFormId:maskFormId hotX:hx hotY:hy
48194c26a46c Initial revision
claus
parents:
diff changeset
   442
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   443
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   444
48194c26a46c Initial revision
claus
parents:
diff changeset
   445
grabPointerIn:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   446
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   447
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   448
48194c26a46c Initial revision
claus
parents:
diff changeset
   449
ungrabPointer
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
pointerPosition
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
!NeXTWorkstation methodsFor:'color stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   458
48194c26a46c Initial revision
claus
parents:
diff changeset
   459
listOfAvailableColors
48194c26a46c Initial revision
claus
parents:
diff changeset
   460
    ^ super listOfAvailableColors
48194c26a46c Initial revision
claus
parents:
diff changeset
   461
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   462
48194c26a46c Initial revision
claus
parents:
diff changeset
   463
freeColor:colorIndex
48194c26a46c Initial revision
claus
parents:
diff changeset
   464
    "colors are never freed"
48194c26a46c Initial revision
claus
parents:
diff changeset
   465
48194c26a46c Initial revision
claus
parents:
diff changeset
   466
    ^ self 
48194c26a46c Initial revision
claus
parents:
diff changeset
   467
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   468
48194c26a46c Initial revision
claus
parents:
diff changeset
   469
colorRed:redVal green:greenVal blue:blueVal
48194c26a46c Initial revision
claus
parents:
diff changeset
   470
    "allocate a color with rgb values - return index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   471
48194c26a46c Initial revision
claus
parents:
diff changeset
   472
    | r g b |
48194c26a46c Initial revision
claus
parents:
diff changeset
   473
48194c26a46c Initial revision
claus
parents:
diff changeset
   474
    "on the next, we use rgb value as index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   475
    r := (redVal * 16rFF / 100) asInteger.
48194c26a46c Initial revision
claus
parents:
diff changeset
   476
    g := (greenVal * 16rFF / 100) asInteger.
48194c26a46c Initial revision
claus
parents:
diff changeset
   477
    b := (blueVal * 16rFF / 100) asInteger.
48194c26a46c Initial revision
claus
parents:
diff changeset
   478
    r := (r min:255) max:0.
48194c26a46c Initial revision
claus
parents:
diff changeset
   479
    g := (g min:255) max:0.
48194c26a46c Initial revision
claus
parents:
diff changeset
   480
    b := (b min:255) max:0.
48194c26a46c Initial revision
claus
parents:
diff changeset
   481
    ^ (((r bitShift:8) bitOr:g) bitShift:8) bitOr:b
48194c26a46c Initial revision
claus
parents:
diff changeset
   482
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   483
48194c26a46c Initial revision
claus
parents:
diff changeset
   484
colorNamed:aString
48194c26a46c Initial revision
claus
parents:
diff changeset
   485
    "allocate a color with color name - return index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   486
48194c26a46c Initial revision
claus
parents:
diff changeset
   487
    ^ super colorNamed:aString
48194c26a46c Initial revision
claus
parents:
diff changeset
   488
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   489
48194c26a46c Initial revision
claus
parents:
diff changeset
   490
colorCell
48194c26a46c Initial revision
claus
parents:
diff changeset
   491
    "allocate a color - return index.
48194c26a46c Initial revision
claus
parents:
diff changeset
   492
     Since NeXTs are either StaticGrey or StaticColor, return nil here."
48194c26a46c Initial revision
claus
parents:
diff changeset
   493
48194c26a46c Initial revision
claus
parents:
diff changeset
   494
    ^ nil
48194c26a46c Initial revision
claus
parents:
diff changeset
   495
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   496
48194c26a46c Initial revision
claus
parents:
diff changeset
   497
setColor:index red:redVal green:greenVal blue:blueVal
48194c26a46c Initial revision
claus
parents:
diff changeset
   498
    "change color in map at:index.
48194c26a46c Initial revision
claus
parents:
diff changeset
   499
     Since NeXTs are either StaticGrey or StaticColor, do nothing here."
48194c26a46c Initial revision
claus
parents:
diff changeset
   500
48194c26a46c Initial revision
claus
parents:
diff changeset
   501
    ^ self 
48194c26a46c Initial revision
claus
parents:
diff changeset
   502
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   503
48194c26a46c Initial revision
claus
parents:
diff changeset
   504
getRedFrom:index
48194c26a46c Initial revision
claus
parents:
diff changeset
   505
    "get red part of color in map at:index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   506
48194c26a46c Initial revision
claus
parents:
diff changeset
   507
    ^ ((index bitShift:-16) bitAnd:16rFF) * 100 / 16rFF
48194c26a46c Initial revision
claus
parents:
diff changeset
   508
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   509
48194c26a46c Initial revision
claus
parents:
diff changeset
   510
getGreenFrom:index
48194c26a46c Initial revision
claus
parents:
diff changeset
   511
    "get green 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:-8) 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
getBlueFrom:index
48194c26a46c Initial revision
claus
parents:
diff changeset
   517
    "get blue part of color in map at:index"
48194c26a46c Initial revision
claus
parents:
diff changeset
   518
48194c26a46c Initial revision
claus
parents:
diff changeset
   519
    ^ (index 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
!NeXTWorkstation methodsFor:'window stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   523
48194c26a46c Initial revision
claus
parents:
diff changeset
   524
setBackingStore:how in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   525
    "turn on/off backing-store for a window"
48194c26a46c Initial revision
claus
parents:
diff changeset
   526
48194c26a46c Initial revision
claus
parents:
diff changeset
   527
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
   528
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   529
48194c26a46c Initial revision
claus
parents:
diff changeset
   530
setSaveUnder:yesOrNo in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   531
    "turn on/off save-under 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
setWindowBackground:aColorId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   537
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   538
#ifdef NOTDEF
48194c26a46c Initial revision
claus
parents:
diff changeset
   539
    int id, ir, ig, ib;
48194c26a46c Initial revision
claus
parents:
diff changeset
   540
    float r, g, b;
48194c26a46c Initial revision
claus
parents:
diff changeset
   541
    NXColor clr;
48194c26a46c Initial revision
claus
parents:
diff changeset
   542
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   543
    if (__isSmallInteger(aColorId)) {
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   544
        id = _intVal(aColorId);
48194c26a46c Initial revision
claus
parents:
diff changeset
   545
        ir = (id >> 16) & 0xFF; 
48194c26a46c Initial revision
claus
parents:
diff changeset
   546
        ig = (id >> 8) & 0xFF; 
48194c26a46c Initial revision
claus
parents:
diff changeset
   547
        ib = id & 0xFF; 
48194c26a46c Initial revision
claus
parents:
diff changeset
   548
	/* scale from 0 .. 255 to 0.0 .. 1.0 */
48194c26a46c Initial revision
claus
parents:
diff changeset
   549
	r = (float)ir / 255.0;
48194c26a46c Initial revision
claus
parents:
diff changeset
   550
	g = (float)ig / 255.0;
48194c26a46c Initial revision
claus
parents:
diff changeset
   551
	b = (float)ib / 255.0;
48194c26a46c Initial revision
claus
parents:
diff changeset
   552
	clr = NXConvertRGBToColor(r, g, b);
48194c26a46c Initial revision
claus
parents:
diff changeset
   553
    }
48194c26a46c Initial revision
claus
parents:
diff changeset
   554
#endif
48194c26a46c Initial revision
claus
parents:
diff changeset
   555
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   556
.
48194c26a46c Initial revision
claus
parents:
diff changeset
   557
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   558
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   559
48194c26a46c Initial revision
claus
parents:
diff changeset
   560
setWindowBackgroundPixmap:aPixmapId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   561
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   562
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   563
48194c26a46c Initial revision
claus
parents:
diff changeset
   564
setWindowBorderColor:aColorId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   565
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   566
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   567
48194c26a46c Initial revision
claus
parents:
diff changeset
   568
setWindowBorderPixmap:aPixmapId in:aWindowId
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
setWindowBorderWidth:aNumber 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
setWindowBorderShape:aPixmapId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   577
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
   578
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   579
48194c26a46c Initial revision
claus
parents:
diff changeset
   580
setWindowShape:aPixmapId in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   581
    ^ self
48194c26a46c Initial revision
claus
parents:
diff changeset
   582
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   583
48194c26a46c Initial revision
claus
parents:
diff changeset
   584
setCursor:aCursorId 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
setWindowName:aString in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   589
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   590
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   591
48194c26a46c Initial revision
claus
parents:
diff changeset
   592
setWindowIcon:aForm in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   593
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   594
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   595
48194c26a46c Initial revision
claus
parents:
diff changeset
   596
setWindowIconWindow:aView 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
clearWindow: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
clearRectangleX:x y:y width:width height:height 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
48194c26a46c Initial revision
claus
parents:
diff changeset
   608
mapWindow:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   609
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   610
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   611
48194c26a46c Initial revision
claus
parents:
diff changeset
   612
unmapWindow: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
raiseWindow: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
moveWindow:aWindowId x:x y:y
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
resizeWindow:aWindowId width:w height:h
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
moveResizeWindow:aWindowId x:x y:y width:w height:h
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
!NeXTWorkstation methodsFor:'graphic context stuff'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   633
48194c26a46c Initial revision
claus
parents:
diff changeset
   634
setForeground:fgColorIndex in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   635
    "set foreground color to be drawn with"
48194c26a46c Initial revision
claus
parents:
diff changeset
   636
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
setBackground:bgColorIndex in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   641
    "set background 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
setForeground:fgColorIndex background:bgColorIndex in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   647
    "set foreground and background colors 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:fgColor background:bgColor mask:aBitmapId in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   653
    "set foreground and background colors to be drawn with using mask or
48194c26a46c Initial revision
claus
parents:
diff changeset
   654
     solid (if aBitmapId is nil)"
48194c26a46c Initial revision
claus
parents:
diff changeset
   655
48194c26a46c Initial revision
claus
parents:
diff changeset
   656
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   657
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   658
48194c26a46c Initial revision
claus
parents:
diff changeset
   659
setLineWidth:aNumber in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   660
    "set linewidth to be drawn with"
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
setForeground:fgColor background:bgColor mask:aBitmapId lineWidth:lw in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   666
    "set foreground and background colors to be drawn with using mask or
48194c26a46c Initial revision
claus
parents:
diff changeset
   667
     solid (if aBitmapId is nil); also set lineWidth"
48194c26a46c Initial revision
claus
parents:
diff changeset
   668
48194c26a46c Initial revision
claus
parents:
diff changeset
   669
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   670
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   671
48194c26a46c Initial revision
claus
parents:
diff changeset
   672
setFunction:aFunctionSymbol in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   673
    "set alu function to be drawn with"
48194c26a46c Initial revision
claus
parents:
diff changeset
   674
48194c26a46c Initial revision
claus
parents:
diff changeset
   675
    "{ Symbol: and  } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   676
    "{ Symbol: or   } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   677
    "{ Symbol: xor  } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   678
    "{ Symbol: copy } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   679
    "{ Symbol: copyInverted } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   680
    "{ Symbol: andInverted } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   681
    "{ Symbol: andReverse } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   682
    "{ Symbol: orInverted } "
48194c26a46c Initial revision
claus
parents:
diff changeset
   683
    "{ Symbol: orReverse } "
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
setFont:aFontId in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   689
    "set font to be drawn in"
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
setPixmapMask:aPixmapId in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   695
    "set or clear the drawing mask - a pixmap mask providing full color"
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
setBitmapMask:aBitmapId in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   701
    "set or clear the drawing mask - a bitmap mask using current fg/bg"
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
setMaskOriginX:orgX y:orgY in:aGCid
48194c26a46c Initial revision
claus
parents:
diff changeset
   707
    "set the mask origin"
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
setClipByChildren:aBool in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   713
    "enable/disable drawing into child views"
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
noClipIn:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   719
    "disable clipping rectangle"
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
setClipX:clipX y:clipY width:clipWidth height:clipHeight in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   725
    "clip to a 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
setGraphicsExposures:aBoolean in:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   731
    "set or clear the graphics exposures flag"
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
!NeXTWorkstation methodsFor:'retrieving pixels'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   737
48194c26a46c Initial revision
claus
parents:
diff changeset
   738
getPixelX:x y:y from:aDrawableId
48194c26a46c Initial revision
claus
parents:
diff changeset
   739
    "return the pixel value at x/y"
48194c26a46c Initial revision
claus
parents:
diff changeset
   740
48194c26a46c Initial revision
claus
parents:
diff changeset
   741
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   742
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   743
48194c26a46c Initial revision
claus
parents:
diff changeset
   744
!NeXTWorkstation methodsFor:'drawing'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   745
48194c26a46c Initial revision
claus
parents:
diff changeset
   746
displayString:aString x:x y:y in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   747
    "draw a string - draw foreground only" 
48194c26a46c Initial revision
claus
parents:
diff changeset
   748
48194c26a46c Initial revision
claus
parents:
diff changeset
   749
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   750
    float fx, fy;
48194c26a46c Initial revision
claus
parents:
diff changeset
   751
48194c26a46c Initial revision
claus
parents:
diff changeset
   752
    do {
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   753
        if (__isSmallInteger(x))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   754
	    fx = (float)_intVal(x);
48194c26a46c Initial revision
claus
parents:
diff changeset
   755
        else if (_isFloat(x))
48194c26a46c Initial revision
claus
parents:
diff changeset
   756
	    fx = _floatVal(x);
48194c26a46c Initial revision
claus
parents:
diff changeset
   757
        else break;
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   758
        if (__isSmallInteger(y))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   759
	    fy = (float)_intVal(y);
48194c26a46c Initial revision
claus
parents:
diff changeset
   760
        else if (_isFloat(y))
48194c26a46c Initial revision
claus
parents:
diff changeset
   761
	    fy = _floatVal(y);
48194c26a46c Initial revision
claus
parents:
diff changeset
   762
        else break;
48194c26a46c Initial revision
claus
parents:
diff changeset
   763
        setDrawable(aDrawableId);
48194c26a46c Initial revision
claus
parents:
diff changeset
   764
        PSmoveto(fx, fy);
48194c26a46c Initial revision
claus
parents:
diff changeset
   765
        PSshow((char *)_stringVal(aString));
48194c26a46c Initial revision
claus
parents:
diff changeset
   766
	if (_INST(buffered) == false)
48194c26a46c Initial revision
claus
parents:
diff changeset
   767
	    NXPing();
48194c26a46c Initial revision
claus
parents:
diff changeset
   768
        RETURN ( self );
48194c26a46c Initial revision
claus
parents:
diff changeset
   769
    } while (1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   770
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   771
.
48194c26a46c Initial revision
claus
parents:
diff changeset
   772
    self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   773
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   774
48194c26a46c Initial revision
claus
parents:
diff changeset
   775
displayString:aString from:index1 to:index2 x:x y:y in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   776
    "draw part of a string - draw foreground only" 
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
displayOpaqueString:aString x:x y:y in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   782
    "draw a string - draw both foreground and background" 
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 from:index1 to:index2 x:x y:y in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   788
    "draw part of 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
24
e810b1be068b *** empty log message ***
claus
parents: 12
diff changeset
   793
displayPointX:x y:y in:aDrawableId with:aGCId
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   794
    "draw a point" 
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
48194c26a46c Initial revision
claus
parents:
diff changeset
   799
displayLineFromX:x0 y:y0 toX:x1 y:y1 in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   800
    "draw a line" 
48194c26a46c Initial revision
claus
parents:
diff changeset
   801
48194c26a46c Initial revision
claus
parents:
diff changeset
   802
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   803
    float fx0, fy0, fx1, fy1;
48194c26a46c Initial revision
claus
parents:
diff changeset
   804
48194c26a46c Initial revision
claus
parents:
diff changeset
   805
    do {
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   806
        if (__isSmallInteger(x0))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   807
	    fx0 = _intVal(x0);
48194c26a46c Initial revision
claus
parents:
diff changeset
   808
        else if (_isFloat(x0))
48194c26a46c Initial revision
claus
parents:
diff changeset
   809
	    fx0 = _floatVal(x0);
48194c26a46c Initial revision
claus
parents:
diff changeset
   810
        else break;
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   811
        if (__isSmallInteger(y0))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   812
	    fy0 = _intVal(y0);
48194c26a46c Initial revision
claus
parents:
diff changeset
   813
        else if (_isFloat(y0))
48194c26a46c Initial revision
claus
parents:
diff changeset
   814
	    fy0 = _floatVal(y0);
48194c26a46c Initial revision
claus
parents:
diff changeset
   815
        else break;
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   816
        if (__isSmallInteger(x1))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   817
	    fx1 = _intVal(x1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   818
        else if (_isFloat(x1))
48194c26a46c Initial revision
claus
parents:
diff changeset
   819
	    fx1 = _floatVal(x1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   820
        else break;
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   821
        if (__isSmallInteger(y1))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   822
	    fy1 = _intVal(y1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   823
        else if (_isFloat(y1))
48194c26a46c Initial revision
claus
parents:
diff changeset
   824
	    fy1 = _floatVal(y1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   825
        else break;
48194c26a46c Initial revision
claus
parents:
diff changeset
   826
48194c26a46c Initial revision
claus
parents:
diff changeset
   827
        setDrawable(aDrawableId);
48194c26a46c Initial revision
claus
parents:
diff changeset
   828
        PSsetlinewidth(0.0);
48194c26a46c Initial revision
claus
parents:
diff changeset
   829
        PSnewpath();
48194c26a46c Initial revision
claus
parents:
diff changeset
   830
        PSmoveto(fx0, fy0);
48194c26a46c Initial revision
claus
parents:
diff changeset
   831
        PSlineto(fx1, fy1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   832
        PSstroke();
48194c26a46c Initial revision
claus
parents:
diff changeset
   833
	if (_INST(buffered) == false)
48194c26a46c Initial revision
claus
parents:
diff changeset
   834
	    NXPing();
48194c26a46c Initial revision
claus
parents:
diff changeset
   835
48194c26a46c Initial revision
claus
parents:
diff changeset
   836
        RETURN ( self );
48194c26a46c Initial revision
claus
parents:
diff changeset
   837
    } while (1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   838
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   839
.
48194c26a46c Initial revision
claus
parents:
diff changeset
   840
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   841
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   842
48194c26a46c Initial revision
claus
parents:
diff changeset
   843
drawRectangleX:x y:y width:width height:height in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   844
    "draw a rectangle" 
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
drawPolygon:aPolygon in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   850
    "draw a polygon" 
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
copyFromId:sourceId x:srcX y:srcY to:destId x:dstX y:dstY 
48194c26a46c Initial revision
claus
parents:
diff changeset
   856
                width:w height:h with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   857
    "do a bit-blt"
48194c26a46c Initial revision
claus
parents:
diff changeset
   858
48194c26a46c Initial revision
claus
parents:
diff changeset
   859
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   860
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   861
48194c26a46c Initial revision
claus
parents:
diff changeset
   862
copyPlaneFromId:sourceId x:srcX y:srcY to:destId x:dstX y:dstY 
48194c26a46c Initial revision
claus
parents:
diff changeset
   863
                width:w height:h with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   864
    "do a bit-blt"
48194c26a46c Initial revision
claus
parents:
diff changeset
   865
48194c26a46c Initial revision
claus
parents:
diff changeset
   866
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   867
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   868
12
9f0995fac1fa *** empty log message ***
claus
parents: 6
diff changeset
   869
displayArcX:x y:y w:width h:height from:startAngle angle:angle
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   870
               in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   871
    "draw an arc"
48194c26a46c Initial revision
claus
parents:
diff changeset
   872
48194c26a46c Initial revision
claus
parents:
diff changeset
   873
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   874
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   875
48194c26a46c Initial revision
claus
parents:
diff changeset
   876
fillArcX:x y:y w:width h:height from:startAngle angle:angle
48194c26a46c Initial revision
claus
parents:
diff changeset
   877
               in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   878
    "fill an arc"
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
48194c26a46c Initial revision
claus
parents:
diff changeset
   883
fillRectangleX:x y:y width:w height:h in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   884
    "fill a rectangle"
48194c26a46c Initial revision
claus
parents:
diff changeset
   885
48194c26a46c Initial revision
claus
parents:
diff changeset
   886
%{
48194c26a46c Initial revision
claus
parents:
diff changeset
   887
    float fx, fy, fw, fh;
48194c26a46c Initial revision
claus
parents:
diff changeset
   888
48194c26a46c Initial revision
claus
parents:
diff changeset
   889
    do {
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   890
        if (__isSmallInteger(x))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   891
	    fx = (float)_intVal(x);
48194c26a46c Initial revision
claus
parents:
diff changeset
   892
        else if (_isFloat(x))
48194c26a46c Initial revision
claus
parents:
diff changeset
   893
	    fx = _floatVal(x);
48194c26a46c Initial revision
claus
parents:
diff changeset
   894
        else break;
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   895
        if (__isSmallInteger(y))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   896
	    fy = (float)_intVal(y);
48194c26a46c Initial revision
claus
parents:
diff changeset
   897
        else if (_isFloat(y))
48194c26a46c Initial revision
claus
parents:
diff changeset
   898
	    fy = _floatVal(y);
48194c26a46c Initial revision
claus
parents:
diff changeset
   899
        else break;
48194c26a46c Initial revision
claus
parents:
diff changeset
   900
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   901
        if (__isSmallInteger(w))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   902
	    fw = (float)_intVal(w);
48194c26a46c Initial revision
claus
parents:
diff changeset
   903
        else if (_isFloat(w))
48194c26a46c Initial revision
claus
parents:
diff changeset
   904
	    fw = _floatVal(w);
48194c26a46c Initial revision
claus
parents:
diff changeset
   905
        else break;
97
dd6116883ac0 *** empty log message ***
claus
parents: 69
diff changeset
   906
        if (__isSmallInteger(h))
0
48194c26a46c Initial revision
claus
parents:
diff changeset
   907
	    fh = (float)_intVal(h);
48194c26a46c Initial revision
claus
parents:
diff changeset
   908
        else if (_isFloat(h))
48194c26a46c Initial revision
claus
parents:
diff changeset
   909
	    fh = _floatVal(h);
48194c26a46c Initial revision
claus
parents:
diff changeset
   910
        else break;
48194c26a46c Initial revision
claus
parents:
diff changeset
   911
48194c26a46c Initial revision
claus
parents:
diff changeset
   912
        setDrawable(aDrawableId);
48194c26a46c Initial revision
claus
parents:
diff changeset
   913
        PSnewpath();
48194c26a46c Initial revision
claus
parents:
diff changeset
   914
        PSmoveto(fx, fy);
48194c26a46c Initial revision
claus
parents:
diff changeset
   915
        PSlineto(fx + fw, fy);
48194c26a46c Initial revision
claus
parents:
diff changeset
   916
        PSlineto(fx + fx, fy + fh);
48194c26a46c Initial revision
claus
parents:
diff changeset
   917
        PSlineto(fx, fy + fh);
48194c26a46c Initial revision
claus
parents:
diff changeset
   918
        PSlineto(fx, fy);
48194c26a46c Initial revision
claus
parents:
diff changeset
   919
        PSclosepath();
48194c26a46c Initial revision
claus
parents:
diff changeset
   920
        PSfill();
48194c26a46c Initial revision
claus
parents:
diff changeset
   921
	if (_INST(buffered) == false)
48194c26a46c Initial revision
claus
parents:
diff changeset
   922
	    NXPing();
48194c26a46c Initial revision
claus
parents:
diff changeset
   923
	RETURN ( self );
48194c26a46c Initial revision
claus
parents:
diff changeset
   924
    } while (1);
48194c26a46c Initial revision
claus
parents:
diff changeset
   925
%}
48194c26a46c Initial revision
claus
parents:
diff changeset
   926
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   927
48194c26a46c Initial revision
claus
parents:
diff changeset
   928
fillPolygon:aPolygon in:aDrawableId with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   929
    "fill a polygon"
48194c26a46c Initial revision
claus
parents:
diff changeset
   930
48194c26a46c Initial revision
claus
parents:
diff changeset
   931
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   932
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   933
48194c26a46c Initial revision
claus
parents:
diff changeset
   934
drawBits:imageBits depth:imageDepth width:imageWidth height:imageHeight 
48194c26a46c Initial revision
claus
parents:
diff changeset
   935
                       x:srcx y:srcy
48194c26a46c Initial revision
claus
parents:
diff changeset
   936
                    into:aDrawableId x:dstx y:dsty width:w height:h with:aGCId
48194c26a46c Initial revision
claus
parents:
diff changeset
   937
    "draw a bitimage which has depth id, width iw and height ih into
48194c26a46c Initial revision
claus
parents:
diff changeset
   938
     the drawable. draw a region of w/h pixels from srcx/srcy to dstx/dsty.
48194c26a46c Initial revision
claus
parents:
diff changeset
   939
     It has to be checked elsewhere, that server can do it with the given
48194c26a46c Initial revision
claus
parents:
diff changeset
   940
     depth; also it is assumed, that the colormap is setup correctly"
48194c26a46c Initial revision
claus
parents:
diff changeset
   941
48194c26a46c Initial revision
claus
parents:
diff changeset
   942
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   943
! !
48194c26a46c Initial revision
claus
parents:
diff changeset
   944
48194c26a46c Initial revision
claus
parents:
diff changeset
   945
!NeXTWorkstation methodsFor:'events'!
48194c26a46c Initial revision
claus
parents:
diff changeset
   946
48194c26a46c Initial revision
claus
parents:
diff changeset
   947
eventMaskFor:anEventSymbol
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
setEventMask:aMask in:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   952
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   953
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   954
48194c26a46c Initial revision
claus
parents:
diff changeset
   955
exposeEventsFor:aViewId do:aBlock
48194c26a46c Initial revision
claus
parents:
diff changeset
   956
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   957
48194c26a46c Initial revision
claus
parents:
diff changeset
   958
eventPending
48194c26a46c Initial revision
claus
parents:
diff changeset
   959
    "return true, if any event is pending"
48194c26a46c Initial revision
claus
parents:
diff changeset
   960
48194c26a46c Initial revision
claus
parents:
diff changeset
   961
    ^ false
48194c26a46c Initial revision
claus
parents:
diff changeset
   962
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   963
48194c26a46c Initial revision
claus
parents:
diff changeset
   964
eventPendingWithoutSync
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
eventsPending:anEventMask for:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   971
    "return true, if any of the masked events is pending"
48194c26a46c Initial revision
claus
parents:
diff changeset
   972
48194c26a46c Initial revision
claus
parents:
diff changeset
   973
    ^ self primitiveFailed
48194c26a46c Initial revision
claus
parents:
diff changeset
   974
!
48194c26a46c Initial revision
claus
parents:
diff changeset
   975
48194c26a46c Initial revision
claus
parents:
diff changeset
   976
eventPending:anEventSymbol for:aWindowId
48194c26a46c Initial revision
claus
parents:
diff changeset
   977
    "return true, if a specific event 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
! !