GuiServerWorkstation.st
author matilk
Wed, 13 Sep 2017 09:40:34 +0200
changeset 8174 2704c965b97b
parent 6886 572d6caea52a
child 8595 7f9b84978a2e
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:
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
     1
"{ Encoding: utf8 }"
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
     2
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
COPYRIGHT (c) 2014 by Claus Gittinger
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
              All Rights Reserved
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 This software is furnished under a license and may be used
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
 hereby transferred.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ Package: 'stx:libview' }"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
    16
"{ NameSpace: Smalltalk }"
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
    17
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
DeviceWorkstation subclass:#GuiServerWorkstation
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	instanceVariableNames:'guiServerPid out in connectionTimeout
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
		connectionTimeoutForWindowCreation hasConnectionBroken
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
		dispatchingExpose buttonsPressed displayName listOfFonts fontMap
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
		viewMap nextId useExtraCanvas answerSemaphore accessLock
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
		useNativeWidgets'
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	classVariableNames:'DefaultConnectionTimeout
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
		DefaultConnectionTimeoutForWindowCreation KeyPressMask
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
		KeyReleaseMask ButtonPressMask ButtonReleaseMask ButtonMotionMask
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
		PointerMotionMask ExposureMask FocusChangeMask EnterWindowMask
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
		LeaveWindowMask KeymapStateMask VisibilityChangeMask
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
		StructureNotifyMask ResizeRedirectMask PropertyChangeMask
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
		ColormapChangeMask SubstructureNotifyMask
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
		SubstructureRedirectMask'
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	poolDictionaries:''
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
	category:'Interface-Graphics'
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!GuiServerWorkstation class methodsFor:'documentation'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
copyright
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
COPYRIGHT (c) 2014 by Claus Gittinger
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
              All Rights Reserved
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
 This software is furnished under a license and may be used
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
 only in accordance with the terms of that license and with the
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
 inclusion of the above copyright notice.   This software may not
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
 be provided or otherwise made available to, or used by, any
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
 other person.  No title to or ownership of the software is
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
 hereby transferred.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
documentation
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    This is an experimental UI interface, not yet ready for general use.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
    This class provides the interface to the GUIServer. 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
    It redefines all required methods from DeviceWorkstation.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    The GUIServer is a little Java program, which provides a socket interface,
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    allowing for GUI operations to be sent and events to be received.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
    Thus providing a platform independent, portable and nice looking GUI interface alternative.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    [author:]
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
        Claus Gittinger
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
example
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
     Smalltalk at:#D2 put:(self new initializeFor:nil).
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
    71
     Smalltalk at:#D2 put:(self new initializeFor:'localhost:64001')
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
     D2 startDispatch.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
     (View onDevice:D2) open.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
     (Button onDevice:D2) label:'Hello'; open.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
     |v b1 b2|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
     v := View onDevice:D2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
     v extent:200@200.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
     b1 := Button label:'Press Me' in:v. b1 extent:100@50.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
     b2 := Button label:'Me Too' in:v. b2 extent:100@50.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
     b2 top:60.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
     b1 action:[ Transcript showCR:'b1 pressed'. b1 extent:150@40].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
     b2 action:[ Transcript showCR:'b2 pressed'].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
     v open.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
     v inspect.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
     (SystemBrowser onDevice:D2) open
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
example1
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
     |v b1 b2|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
    97
     'Smalltalk at:#D2 put:(self new initializeFor:nil)'.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
    98
     Smalltalk at:#D2 put:(self new initializeFor:'localhost:64001').
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
     D2 startDispatch.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
     v := View onDevice:D2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
     v extent:200@200.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
     b1 := Button label:'Press Me' in:v. b1 extent:100@50.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
     b2 := Button label:'Me Too' in:v. b2 extent:100@50.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
     b2 top:60.
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   107
     b1 action:[ Transcript showCR:'b1 pressed'. self halt. b1 extent:150@40].
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
     b2 action:[ Transcript showCR:'b2 pressed'].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
     v open.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
example1b
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
     |v b1 b2|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
     Smalltalk at:#D2 put:(self new initializeFor:nil).
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   118
     Smalltalk at:#D2 put:(self new initializeFor:'localhost:64001').
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
     D2 startDispatch.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
     v := View onDevice:D2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
     v extent:200@200.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
     v open.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
     Delay waitForSeconds:2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
     v displayString:'hello' x:10 y:20.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
example2
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
     |v v1 v2 v3|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
     Smalltalk at:#D2 put:(self new initializeFor:nil).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
     D2 startDispatch.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
     v := View onDevice:D2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
     v extent:200@220.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
     v1 := View in:v. 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
     v1 origin:5@5 corner:95@95.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
     v1 viewBackground:Color red.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
     v2 := View in:v. 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
     v2 origin:100@5 corner:195@95.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
     v2 viewBackground:Color green.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
     v3 := View in:v. 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
     v3 origin:5@100 corner:95@195.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
     v3 viewBackground:Color blue.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
     v open
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
example3
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    |v v1 |
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
    Smalltalk at:#D2 put:(self new initializeFor:nil).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
    D2 startDispatch.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    v := View onDevice:D2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
    v extent:200@220.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    v1 := ScrollBar in:v. 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    v1 origin:5@5 corner:25@1.0.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    v1 viewBackground:Color red.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
    v open
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
example3b
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
    |v v1 v2|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
    Smalltalk at:#D2 put:(self new initializeFor:nil).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
    D2 startDispatch.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
    v := View onDevice:D2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
    v extent:200@220.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
    v1 := ScrollBar in:v. 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
    v1 origin:5@5 corner:25@1.0.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    v2 := HorizontalScrollBar in:v. 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
    v2 origin:25@5 corner:1.0@25.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    v open
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
example4
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
    |v v1 r1 r2 if c1 grp chk tm|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    Smalltalk at:#D2 put:(self new initializeFor:nil).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
    D2 startDispatch.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
    v := View onDevice:D2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
    v extent:200@220.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
    v1 := Label label:'label' in:v. 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
    v1 origin:5@5 corner:125@25.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
    grp := RadioButtonGroup new.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
    r1 := RadioButton label:'radio 1' in:v. 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
    r1 origin:5@25 corner:1.0@50.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
    grp add:r1 value:1.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
    r2 := RadioButton label:'radio 2' in:v. 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
    r2 origin:5@50 corner:1.0@75.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
    grp add:r2 value:2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
    grp onChangeEvaluate:[ Transcript showCR:'changed'].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
    r2 := RadioButton label:'radio 2' in:v. 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
    r2 origin:5@50 corner:1.0@75.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
    grp add:r2 value:2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
    grp onChangeEvaluate:[ Transcript showCR:'changed'].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
    chk := false asValue.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
    c1 := CheckBox label:'check' in:v. 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
    c1 origin:5@75 corner:1.0@100.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
    c1 model:chk.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
    chk onChangeEvaluate:[ Transcript showCR:'changed'].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
    tm := 'hello' asValue.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
    if := EditField in:v.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
    if viewBackground:(Color yellow lightened).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
    if origin:5@100 corner:1.0@125.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
    if model:tm.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
    ' if passwordCharacter:$* '.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
    tm onChangeEvaluate:[ Transcript showCR:'changed'].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
    v open
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
example5
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
    |v v1 r1 r2 v3 c1 grp chk|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
    Smalltalk at:#D2 put:(self new initializeFor:nil).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
    D2 startDispatch.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
    v := View onDevice:D2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
    v extent:200@220.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
    v1 := TextView in:v.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
    v1 viewBackground:Color red.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
    v1 origin:5@5 corner:1.0@1.0.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
    v1 contents:'line1
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
line2
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
line3'.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
    v1 textChanged.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
    v open
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
example5b
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
    |v v1 v2 v3|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
    Smalltalk at:#D2 put:(self new initializeFor:nil).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
    D2 startDispatch.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
    v := View onDevice:D2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
    v extent:200@220.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
    v viewBackground:Color yellow.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
    v1 := View in:v.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
    v1 extent:180@180.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
    v1 viewBackground:Color green.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
    v2 := SelectionInListView in:v1.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
    v2 viewBackground:Color red.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
    v2 origin:5@5 corner:100@100.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
    v2 list:#('line1' 'line2' 'line3').
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
    v open.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
    Delay waitForSeconds:2.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
    D2 send:'set-visible ',v2 id,' true'.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
    D2 send:'set-bounds ',v2 id,' 10 10 50 50'.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
!GuiServerWorkstation class methodsFor:'class initialization'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
initialize
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
    KeyPressMask := 16r01.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
    KeyReleaseMask := 16r02.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
    ButtonPressMask := 16r04.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
    ButtonReleaseMask := 16r08.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
    ButtonMotionMask := 16r10.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   301
    PointerMotionMask := 16r20.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   302
    ExposureMask := 16r40.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
    FocusChangeMask := 16r80.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
    EnterWindowMask := 16r100.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
    LeaveWindowMask := 16r200.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
    KeymapStateMask := 16r400.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
    VisibilityChangeMask := 16r800.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
    StructureNotifyMask := 16r1000.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
    ResizeRedirectMask := 16r2000.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   310
    PropertyChangeMask := 16r4000.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   311
    ColormapChangeMask := 16r8000.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
    SubstructureNotifyMask := 16r10000.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
    SubstructureRedirectMask := 16r20000.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
!GuiServerWorkstation class methodsFor:'defaults'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   317
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   318
defaultGUIServerPath
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   319
    ^ nil.
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   320
    ^ Smalltalk projectDirectory constructString:'../support/guiServer/guiserver.jar'    
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   321
"/  ^ '/Users/cg/Downloads/languages/lisp/newLisp/newlisp-10.6.0/guiserver/guiserver.jar'.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   322
"/    ^ self projectDirectory constructString:'guiserver.jar'
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   323
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   324
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   325
defaultGUIServerPort
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   326
    ^ 64001
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   327
    "/ ^ 47011
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   328
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   329
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   330
!GuiServerWorkstation methodsFor:'bitmap/window creation'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   331
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
createBitmapFromArray:data width:w height:h
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
    "create a monochrome, depth1 bitmap from a given (byte-)array.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   334
     The rows are aligned to a multiple of 8"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   335
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
    "/ for now, just return a dummy id...
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
    ^ 4711
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
    "/ todo: save as png and use that path in the future...
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
"/    self halt.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   343
createWindowFor:aView type:typeSymbol origin:org extent:ext
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   344
        minExtent:minE maxExtent:maxE borderWidth:bw subViewOf:sv
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
        style:styleSymbol inputOnly:inp
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
        label:label owner:owner
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
        icon:icn iconMask:icnM iconView:icnV
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   349
    |nr id nativeWindowType x y w h containerId|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   350
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   351
    nr := nextId.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   352
    nextId := nextId + 1.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   353
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   354
    useNativeWidgets ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   355
        nativeWindowType := aView nativeWindowType.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   356
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   357
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   358
    x := org x.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   359
    y := org y.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   360
    w := ext x.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   361
    h := ext y.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   362
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   363
    id := '%1_%2' bindWith:aView class nameWithoutPrefix with:nr.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   364
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   365
    sv isNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   366
        self gs_frame:id x:org x y:org y width:w height:h label:'x' visible:false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   367
        "/ self send:('canvas ','canvas_',id).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   368
        useExtraCanvas ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   369
            self send:('canvas ','canvas_',id).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   370
            self send:('add-to ',id,' canvas_',id).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   371
            self send:('set-visible ','canvas_',id,' true').
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   372
            self send:('set-null-layout ','canvas_',id).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   373
        ] ifFalse:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   374
            self send:('set-null-layout ',id).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   375
        ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   376
    ] ifFalse:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   377
        containerId := sv id.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   378
        useExtraCanvas ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   379
            sv superView isNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   380
                containerId := 'canvas_',containerId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   381
            ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   382
        ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   383
        nativeWindowType notNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   384
            nativeWindowType == #Button ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   385
                self send:('button ',id,' button-action ',(Base64Coder encode:aView label),' ',x printString,' ',y printString)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   386
                "/ (gs:set-flow-layout 'ButtonDemo "center" 2 15)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   387
                "/ (gs:add-to 'ButtonDemo 'ColorPanel 'aButton)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   388
            ] ifFalse:[ nativeWindowType == #VerticalScrollBar ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   389
                "/ action orientation minPos maxPos pos pageIncrement
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   390
                self send:('scrollbar ',id,' scrollbar-action vertical 0 100 0 10')
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   391
            ] ifFalse:[ nativeWindowType == #HorizontalScrollBar ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   392
                "/ action orientation minPos maxPos pos pageIncrement
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   393
                self send:('scrollbar ',id,' scrollbar-action horizontal 0 100 0 10')
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   394
            ] ifFalse:[ nativeWindowType == #Label ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   395
                "/ "left", "center", "right", "leading", "trailing", "bottom" and "top"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   396
                self send:('label ',id,' ',(Base64Coder encode:aView label),' center ',w printString,' ',h printString).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   397
            ] ifFalse:[ nativeWindowType == #RadioButton ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   398
                self send:('radio-button ',id,' radio-button-action ',(Base64Coder encode:aView label),' ',(aView isOn printString)).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   399
            ] ifFalse:[ nativeWindowType == #CheckBox ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   400
                self send:('check-box ',id,' check-box-action ',(Base64Coder encode:aView label),' ',(aView isOn printString)).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   401
            ] ifFalse:[ nativeWindowType == #EditField ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   402
                aView passwordCharacter notNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   403
                    self send:('text-field ',id,' text-field-action ',(aView maxChars ? 9999) printString,' ',(Base64Coder encode:aView passwordCharacter asString)).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   404
                ] ifFalse:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   405
                    self send:('text-field ',id,' text-field-action ',(aView maxChars ? 9999) printString).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   406
                ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   407
                self changeText:(aView contents asString) in:id.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   408
            ] ifFalse:[ nativeWindowType == #TextView ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   409
                self send:('text-area ',id,' text-area-action ',w printString,' ',h printString).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   410
                self changeText:(aView contents) in:id.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   411
            ] ifFalse:[ nativeWindowType == #SelectionInListView ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   412
                self send:('list-box ',id,' list-box-action ',((aView list collect:[:l | (Base64Coder encode:l?'')]) asStringCollection asStringWith:' ')).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   413
                "/ self changeList:aView list in:id.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   414
            ] ifFalse:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   415
self halt.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   416
                self send:('canvas ',id)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   417
            ]]]]]]]]].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   418
        ] ifFalse:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   419
            self send:('canvas ',id)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   420
        ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   421
        self send:('add-to ',containerId,' ',id).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   422
        self send:('set-visible ',id,' true').
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   423
        self send:('set-null-layout ',id).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   424
        self send:('set-bounds ',id,' %1 %2 %3 %4' bindWith:x with:y with:w with:h).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   425
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   426
    viewMap at:id put:aView.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   427
    ^ id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   429
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   430
destroyGC:gcId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   431
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   432
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   433
destroyPixmap:pixmapId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   434
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   435
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   436
destroyView:aView withId:id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   437
    |container|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   438
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
    container := aView superView.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   441
    viewMap removeKey:id ifAbsent:[].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
    container isNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   443
        self send:('dispose ',id)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
    ] ifFalse:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
        (useExtraCanvas and:[container superView isNil]) ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   446
            self send:('remove-from canvas_',container id,' ',id)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   447
        ] ifFalse:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   448
            self send:('remove-from ',container id,' ',id)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   449
        ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   450
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   451
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   452
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   453
gcFor:aDrawableId
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   454
    "create a GC for drawing into aDrawable"
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   455
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   456
    ^ aDrawableId
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   457
!
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   458
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   459
supportsNativeWidgetType:aWidgetTypeSymbol
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   460
    useNativeWidgets ifFalse:[^ false].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   461
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   462
    aWidgetTypeSymbol == #Button ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   463
    aWidgetTypeSymbol == #Scrollbar ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   464
    aWidgetTypeSymbol == #Label ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   465
    aWidgetTypeSymbol == #Toggle ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   466
    aWidgetTypeSymbol == #ScrolledView ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   467
    aWidgetTypeSymbol == #CheckBox ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   468
    aWidgetTypeSymbol == #RadioButton ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   469
    aWidgetTypeSymbol == #ComboBox ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   470
    aWidgetTypeSymbol == #Slider ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   471
    aWidgetTypeSymbol == #ProgressBar ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   472
    aWidgetTypeSymbol == #ListBox ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   473
    aWidgetTypeSymbol == #EditField ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   474
    aWidgetTypeSymbol == #TextView ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   475
    aWidgetTypeSymbol == #Menu ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   476
    aWidgetTypeSymbol == #MenuBar ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   477
    aWidgetTypeSymbol == #Table ifTrue:[^ true].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   478
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   479
    ^ false
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   480
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   481
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   482
!GuiServerWorkstation methodsFor:'cursor stuff'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   483
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   484
builtInCursorShapes
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   485
    "return a collection of standard cursor names.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   486
     Those are built into the XServer and need not be created as
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   487
     user cursors.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   488
     (actually, there are more than those below ...)"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   489
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   490
    "/ if you add something here, also add to #shapeNumberFromCursor ...
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   491
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   492
    ^ #(
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   493
        #upLeftArrow            "/ default
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   494
        #upRightHand            "/ hand
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   495
        #text                   "/ text
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   496
        #wait                   "/ wait
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   497
        #crossHair              "/ crosshair
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   498
        #origin                 "/ nw-resize
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   499
        #topLeft                "/ nw-resize
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   500
        #corner                 "/ se-resize
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   501
        #bottomRight            "/ se-resize
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   502
        #topRight               "/ ne-resize
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   503
        #bottomLeft             "/ sw-resize
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   504
      )
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   505
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   506
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   507
createCursorShape:aShapeSymbol
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   508
    |cursors i|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   509
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   510
    cursors := #(
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   511
        (#upLeftArrow            #default      )
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   512
        (#upRightHand            #hand         )
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   513
        (#text                   #text         )
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   514
        (#wait                   #wait         )
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   515
        (#crossHair              #crosshair    )
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   516
        (#origin                 #nw-resize    )
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   517
        (#topLeft                #nw-resize    )
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   518
        (#corner                 #se-resize    )
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   519
        (#bottomRight            #se-resize    )
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   520
        (#topRight               #ne-resize    )
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   521
        (#bottomLeft             #sw-resize    )
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   522
      ).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   523
      i := cursors findFirst:[:entry | entry first == aShapeSymbol].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   524
      i == 0 ifTrue:[^ nil].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   525
      ^ (cursors at:i) second
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   526
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   527
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   528
destroyCursor:aCursorId 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   529
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   530
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   531
setCursor:aCursorId in:aWindowId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   532
    "/    ;; @syntax (gs:set-cursor <sym-id> <str-shape>)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   533
    "/    ;; @param <sym-id> The name of the frame, dialog or window.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   534
    "/    ;; @param <str-shape> The string describing the cursor shape.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   535
    "/    ;;
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   536
    "/    ;; The cursor shape can be one of the following:
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   537
    "/    ;; <pre>
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   538
    "/    ;;  "default"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   539
    "/    ;;  "crosshair"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   540
    "/    ;;  "text"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   541
    "/    ;;  "wait"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   542
    "/    ;;  "sw-resize"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   543
    "/    ;;  "se-resize"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   544
    "/    ;;  "nw-resize"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   545
    "/    ;;  "ne-resize"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   546
    "/    ;;  "n-resize"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   547
    "/    ;;  "s-resize"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   548
    "/    ;;  "w-resize"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   549
    "/    ;;  "e-resize"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   550
    "/    ;;  "hand"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   551
    "/    ;;  "move"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   552
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   553
    self gs_set_cursor:aWindowId cursor:aCursorId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   554
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   555
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   556
!GuiServerWorkstation methodsFor:'event handling'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   557
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   558
addToKnownScreens
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   559
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   560
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   561
base64StringFromLineStream:s
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   562
    |str|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   563
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   564
    str := s upToAny:')( '.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   565
    (str first = $") ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   566
        str := str withoutQuotes.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   567
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   568
    ^ (Base64Coder decodeAsString:str) 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   569
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   570
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   571
defaultEventMask
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   572
    ^ ExposureMask | StructureNotifyMask |
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   573
      KeyPressMask | KeyReleaseMask |
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   574
      PointerMotionMask |
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   575
      EnterWindowMask | LeaveWindowMask |
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   576
      ButtonPressMask | ButtonMotionMask | ButtonReleaseMask |
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   577
      PropertyChangeMask 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   578
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   579
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   580
dispatchEventFor:aViewIdOrNil withMask:eventMask
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   581
    "central event handling method:
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   582
     get next event and send appropriate message to the sensor or view.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   583
     If the argument aViewIdOrNil is nil, events for any view are processed,
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   584
     otherwise only events for the view with given id are processed.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   585
     If the argument aMask is nonNil, only events for this eventMask are
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   586
     handled.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   587
     WARNING: this may block to wait for an event - you better check for a
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   588
              pending event before calling this."
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   589
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   590
    |line|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   591
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   592
    EndOfStreamNotification handle:[:ex |
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   593
    ] do:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   594
        line := in nextLine.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   595
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   596
    line isNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   597
        hasConnectionBroken := true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   598
        self brokenConnection.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   599
        ^ self.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   600
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   601
    self handleInput:line.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   602
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   603
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   604
eventMaskFor:anEventSymbol
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   605
    "return the eventMask bit-constant corresponding to an event symbol"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   606
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   607
    anEventSymbol == #keyPress ifTrue:[^ KeyPressMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   608
    anEventSymbol == #keyRelease ifTrue:[^ KeyReleaseMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   609
    anEventSymbol == #buttonPress ifTrue:[^ ButtonPressMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   610
    anEventSymbol == #buttonRelease ifTrue:[^ ButtonReleaseMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   611
    anEventSymbol == #buttonMotion ifTrue:[^ ButtonMotionMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   612
    anEventSymbol == #pointerMotion ifTrue:[^ PointerMotionMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   613
    anEventSymbol == #expose ifTrue:[^ ExposureMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   614
    anEventSymbol == #focusChange ifTrue:[^ FocusChangeMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   615
    anEventSymbol == #enter ifTrue:[^ EnterWindowMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   616
    anEventSymbol == #leave ifTrue:[^ LeaveWindowMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   617
    anEventSymbol == #keymapState ifTrue:[^ KeymapStateMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   618
    anEventSymbol == #visibilityChange ifTrue:[^ VisibilityChangeMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   619
    anEventSymbol == #structureNotify ifTrue:[^ StructureNotifyMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   620
    anEventSymbol == #resizeRedirect ifTrue:[^ ResizeRedirectMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   621
    anEventSymbol == #propertyChange ifTrue:[^ PropertyChangeMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   622
    anEventSymbol == #colormapChange ifTrue:[^ ColormapChangeMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   623
    anEventSymbol == #substructureNotify ifTrue:[^ SubstructureNotifyMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   624
    anEventSymbol == #substructureRedirect ifTrue:[^ SubstructureRedirectMask].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   625
    ^ 0
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   626
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   627
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   628
eventPending
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   629
    ^ in notNil
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   630
    and:[ in isOpen
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   631
    and:[ in canReadWithoutBlocking ]]
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   632
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   633
    "
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   634
     self new initializeFor:nil
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   635
    "
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   636
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   637
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   638
handleInput:line
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   639
    "handle an incoming event from the guiServer"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   640
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   641
    |s cmd var view text|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   642
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   643
    "/ gui server sends lisp-like lines:
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   644
    "/  (action id)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   645
    "/  ...
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   646
Transcript showCR:'<< ',line.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   647
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   648
    s := line readStream.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   649
    s next == $( ifFalse:[^ false ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   650
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   651
    s skipSeparators.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   652
    cmd := s upToAny:'")( '.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   653
    s skipSeparators.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   654
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   655
    cmd = 'button-action' ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   656
        view := self viewFromLineStream:s.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   657
Transcript showCR:view.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   658
Transcript showCR:view isNativeWidget.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   659
        self buttonPress:1 x:1 y:1 view:view.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   660
        self buttonRelease:1 x:1 y:1 view:view.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   661
        ^ true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   662
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   663
    cmd = 'radio-button-action' ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   664
        view := self viewFromLineStream:s.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   665
Transcript showCR:view.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   666
Transcript showCR:view isNativeWidget.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   667
        self buttonPress:1 x:1 y:1 view:view.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   668
        self buttonRelease:1 x:1 y:1 view:view.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   669
        ^ true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   670
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   671
    cmd = 'check-box-action' ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   672
        view := self viewFromLineStream:s.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   673
Transcript showCR:view.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   674
Transcript showCR:view isNativeWidget.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   675
        self buttonPress:1 x:1 y:1 view:view.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   676
        self buttonRelease:1 x:1 y:1 view:view.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   677
        ^ true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   678
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   679
    cmd = 'scrollbar-action' ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   680
        view := self viewFromLineStream:s.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   681
Transcript showCR:view.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   682
Transcript showCR:view isNativeWidget.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   683
        ^ true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   684
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   685
    cmd = 'text-field-action' ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   686
        view := self viewFromLineStream:s.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   687
        text := self base64StringFromLineStream:s.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   688
Transcript showCR:view.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   689
Transcript showCR:view isNativeWidget.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   690
Transcript showCR:text.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   691
        ^ true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   692
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   693
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   694
    cmd = 'set' ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   695
        var := s upToAny:')( '.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   696
        s skipSeparators.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   697
        var first == $' ifTrue:[ var := var copyFrom:2 ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   698
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   699
        var = 'gs:screen' ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   700
            s peek == $' ifTrue:[ s next ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   701
            s peek ~~ $( ifTrue:[ self halt].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   702
            s next.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   703
            width := (Number readFrom:s) asInteger.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   704
            s skipSeparators.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   705
            height := (Number readFrom:s) asInteger.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   706
            s skipSeparators.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   707
            resolutionHor := resolutionVer := (Number readFrom:s) asInteger "is dpi" / 25.4.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   708
            widthMM := width / resolutionHor.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   709
            heightMM := height / resolutionVer.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   710
            "/ self halt.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   711
            ^ true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   712
        ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   713
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   714
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   715
    self halt.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   716
    ^ false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   717
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   718
    "
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   719
     self new initializeFor:nil
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   720
    "
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   721
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   722
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   723
setEventMask:mask in:viewID
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   724
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   725
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   726
viewFromLineStream:s
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   727
    |id|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   728
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   729
    id := s upToAny:')( '.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   730
    (id first = $") ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   731
        id := id withoutQuotes.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   732
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   733
    ^ viewMap at:id ifAbsent:nil.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   734
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   735
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   736
!GuiServerWorkstation methodsFor:'font stuff'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   737
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   738
ascentOf:id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   739
    ^ 16
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   740
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   741
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   742
descentOf:id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   743
    ^ 8
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   744
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   745
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   746
getFontWithFamily:familyString face:faceString style:styleString size:sizeArg sizeUnit:sizeUnit encoding:encodingSym
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   747
    |spec id|
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   748
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   749
    spec := { familyString . faceString . styleString . sizeArg }.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   750
    id := fontMap at:spec ifAbsent:nil.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   751
    id isNil ifTrue:[
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   752
        id := (fontMap size // 2) + 1.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   753
        fontMap at:spec put:id.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   754
        fontMap at:id put:spec.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   755
    ].
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   756
    ^ id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   757
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   758
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   759
maxAscentOf:id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   760
    ^ 16
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   761
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   762
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   763
maxDescentOf:id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   764
    ^ 8
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   765
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   766
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   767
maxWidthOfFont:id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   768
    ^ 10
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   769
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   770
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   771
minWidthOfFont:id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   772
    ^ 10
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   773
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   774
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   775
subclassResponsibility
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   776
    MiniDebugger enter.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   777
    AbortSignal raise
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   778
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   779
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   780
widthOf:aString from:index1 to:index2 inFont:aFontId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   781
    ^ (index2-index1+1) * 10
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   782
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   783
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   784
!GuiServerWorkstation methodsFor:'gc stuff'!
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   785
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   786
displayString:aString from:start to:stop x:x y:y in:aDrawable with:aGCId opaque:opaque
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   787
    |cmd|
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   788
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   789
    cmd := 'draw-text ',aGCId,' ',(Base64Coder encode:aString utf8Encoded).
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   790
    self send:cmd.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   791
!
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   792
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   793
setBackground:fg in:aGC
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   794
    "nothing done - color sent with each draw request"
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   795
!
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   796
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   797
setBackgroundColor:clr in:aGC
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   798
    "nothing done - color sent with each draw request"
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   799
!
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   800
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   801
setFont:aFontId in:aGCId
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   802
    |cmd spec familyString faceString styleString size|
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   803
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   804
    spec := fontMap at:aFontId ifAbsent:nil.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   805
    spec isNil ifTrue:[
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   806
        self halt:'no such font'.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   807
        ^ self.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   808
    ].
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   809
    familyString := spec first.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   810
    faceString := spec second.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   811
    styleString := spec third.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   812
    size := spec fourth.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   813
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   814
    cmd := 'set-font ',aGCId,' ',(Base64Coder encode:familyString utf8Encoded), ' ',size printString.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   815
    
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   816
    self send:cmd. 
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   817
!
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   818
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   819
setForeground:fg background:bg in:aGC
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   820
    "nothing done - color sent with each draw request"
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   821
!
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   822
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   823
setForeground:fg in:aGC
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   824
    "nothing done - color sent with each draw request"
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   825
!
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   826
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   827
setForegroundColor:clr in:aGC
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   828
    "nothing done - color sent with each draw request"
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   829
!
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   830
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   831
setFunction:aFunctionSymbol in:aGCId
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   832
    |cmd|
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   833
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   834
    cmd := 'set-function ',aGCId,' ',aFunctionSymbol printString.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   835
    self send:cmd. 
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   836
!
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   837
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   838
setLineWidth:lw style:s cap:c join:j in:aGC
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   839
! !
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   840
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   841
!GuiServerWorkstation methodsFor:'gs interaction'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   842
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   843
gs_frame:id x:x y:y width:w height:h label:label visible:visible
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   844
    label isNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   845
        self send:('frame %1 %2 %3 %4' 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   846
                    bindWith:id with:x with:y with:w with:h)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   847
    ] ifFalse:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   848
        self send:('frame %1 %2 %3 %4 %5 %6' 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   849
                    bindWith:id with:x with:y with:w with:h
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   850
                        with:(Base64Coder encode:label) with:visible)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   851
    ]
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   852
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   853
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   854
gs_set_background:id color:colorId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   855
    self gs_set_color:id color:colorId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   856
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   857
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   858
gs_set_background:id r:redFraction g:greenFraction b:blueFraction alpha:alphaFraction
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   859
    self gs_set_color:id r:redFraction g:greenFraction b:blueFraction alpha:alphaFraction
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   860
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   861
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   862
gs_set_color:id color:colorId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   863
    self gs_set_color:id     
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   864
            r:(((colorId rightShift:16) bitAnd:16rFF) / 255.0) 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   865
            g:(((colorId rightShift:8) bitAnd:16rFF) / 255.0) 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   866
            b:((colorId bitAnd:16rFF) / 255.0) 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   867
            alpha:1
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   868
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   869
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   870
gs_set_color:id r:redFraction g:greenFraction b:blueFraction alpha:alphaFraction
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   871
    self send:('set-color %1 %2 %3 %4 %5' 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   872
            bindWith:id 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   873
                with:redFraction
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   874
                with:greenFraction
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   875
                with:blueFraction
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   876
                with:alphaFraction)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   877
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   878
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   879
gs_set_cursor:id cursor:cursorId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   880
    self send:('set-cursor ',id,' ',cursorId) 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   881
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   882
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   883
gs_set_foreground:id r:redFraction g:greenFraction b:blueFraction alpha:alphaFraction
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   884
    self send:('set-foreground %1 %2 %3 %4 %5' 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   885
            bindWith:id 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   886
                with:redFraction
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   887
                with:greenFraction
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   888
                with:blueFraction
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   889
                with:alphaFraction)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   890
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   891
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   892
gs_set_resizable:id resizable:aBoolean
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   893
    self send:'set-resizable %1 %2' with:id with:aBoolean
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   894
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   895
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   896
gs_set_trace:aBoolean
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   897
    self send:'set-trace System %1' with:aBoolean
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   898
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   899
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   900
gs_set_utf8:aBoolean
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   901
    self send:'set-utf8 System %1' with:aBoolean
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   902
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   903
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   904
gs_set_visible:id visible:visible
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   905
    self send:('set-visible ',id,' ',visible printString) 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   906
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   907
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   908
send:cmdString
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   909
    out isNil ifTrue:[^ self].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   910
    out nextPutLine:cmdString
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   911
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   912
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   913
send:cmd with:arg
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   914
    self send:(cmd bindWith:arg)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   915
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   916
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   917
send:cmd with:arg1 with:arg2
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   918
    self send:(cmd bindWith:arg1 with:arg2)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   919
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   920
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   921
!GuiServerWorkstation methodsFor:'initialization & release'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   922
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   923
closeConnection
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   924
    |c p|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   925
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   926
    (c := in) notNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   927
        in := nil.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   928
        c close.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   929
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   930
    (c := out) notNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   931
        out := nil.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   932
        c close.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   933
    ].
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
   934
    ((p := guiServerPid) notNil and:[p ~~ #alreadyRunning]) ifTrue:[
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   935
        guiServerPid := nil.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   936
        OperatingSystem terminateProcess:p
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   937
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   938
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   939
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   940
guiServerTerminated
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   941
    "connection to GUIServer broken"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   942
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   943
    |c|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   944
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   945
    Transcript showCR:'guiServer terminated'.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   946
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   947
    (c := in) notNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   948
        in := nil.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   949
        c close.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   950
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   951
    (c := out) notNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   952
        out := nil.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   953
        c close.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   954
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   955
    self brokenConnection
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   956
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   957
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   958
initializeFor:aHostName
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   959
    "initialize the receiver for a connection to a GUIServer;
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   960
     the argument, aHostName may be nil (for a new server on the local machine)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   961
     or the name:port of an already running server"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   962
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   963
    in notNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   964
        "/ already connected - you bad guy try to trick me manually ?
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   965
        ^ self
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   966
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   967
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   968
    self openConnectionTo:aHostName.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   969
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   970
    "/ useNativeWidgets := false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   971
    useNativeWidgets := true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   972
    useExtraCanvas := false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   973
    "/ useExtraCanvas := true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   974
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   975
    connectionTimeout := connectionTimeout ? DefaultConnectionTimeout.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   976
    connectionTimeoutForWindowCreation := connectionTimeoutForWindowCreation ? DefaultConnectionTimeoutForWindowCreation.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   977
    hasConnectionBroken := false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   978
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   979
    dispatching := false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   980
    dispatchingExpose := false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   981
    isSlow := false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   982
    shiftDown := false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   983
    ctrlDown := false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   984
    metaDown := false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   985
    altDown := false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   986
    motionEventCompression := true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   987
    buttonsPressed := 0.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   988
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   989
    visualType := #TrueColor.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   990
    depth := 24.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   991
    redShift := 16. greenShift := 8. blueShift := 0.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   992
    listOfFonts := nil.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   993
    nextId := 1.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   994
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   995
    fontMap := Dictionary new.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   996
    viewMap := Dictionary new.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   997
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   998
    self initializeDeviceResourceTables.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   999
    self initializeScreenProperties.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1000
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1001
    self initializeDefaultValues.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1002
    self initializeSpecialFlags.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1003
    self initializeKeyboardMap.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1004
    self initializeDeviceSignals.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1005
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1006
    self initializeViewStyle.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1007
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1008
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1009
initializeScreenProperties
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1010
    "setup screen specific properties."
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1011
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1012
    super initializeScreenProperties.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1013
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1014
    out nextPutLine:'get-screen System'.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1015
    self handleInput:(in nextLine).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1016
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1017
    width := 1280.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1018
    height := 1024.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1019
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1020
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1021
initializeSpecialFlags
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1022
    ^ self
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1023
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1024
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1025
nativeWidgets:aBoolean
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1026
    "enable/disable native widgets on a display"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1027
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1028
    useNativeWidgets := aBoolean
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1029
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1030
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1031
openConnectionTo:aHostNameOrNil
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1032
    "open a connection to aHostNameOrNil;
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1033
     if nil, a new GUIServer is started; otherwise, try to connect to that host."
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1034
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1035
    |host port hostAndPort startGUIServer acceptSocket connectionFromGS connectionToGS|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1036
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1037
    startGUIServer := false.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1038
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1039
    aHostNameOrNil isNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1040
        host := 'localhost'.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1041
        port := self guiServerPort.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1042
        startGUIServer := true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1043
    ] ifFalse:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1044
        hostAndPort := aHostNameOrNil splitBy:$:.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1045
        host := hostAndPort first.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1046
        port := (hostAndPort at:2 ifAbsent:[self guiServerPort]) asNumber.
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
  1047
        guiServerPid := #alreadyRunning.
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1048
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1049
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1050
    displayName := (host , ':' , port printString).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1051
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1052
    startGUIServer ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1053
        self startGUIServerWithPort:port
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1054
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1055
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1056
    acceptSocket := Socket newTCPserverAtPort:(port+1).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1057
    acceptSocket listenFor:1.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1058
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1059
    "/ give GUI server a chance to come up
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1060
    [connectionFromGS isNil] whileTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1061
        connectionFromGS := Socket newTCPclientToHost:host port:port.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1062
        connectionFromGS isNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1063
            Delay waitForSeconds:0.1
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1064
        ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1065
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1066
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1067
    acceptSocket readWaitWithTimeoutMs:500.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1068
    connectionToGS := acceptSocket accept.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1069
    acceptSocket close.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1070
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1071
    out := connectionFromGS.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1072
    in := connectionToGS.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1073
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1074
    "/ self startReaderProcess.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1075
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1076
    self gs_set_trace:true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1077
    self gs_set_utf8:true.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1078
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1079
    "
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1080
     Smalltalk at:#D2 put:(self new initializeFor:nil).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1081
     Smalltalk at:#D2 put:(self new initializeFor:'localhost:47020')
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1082
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1083
     WorkspaceApplication openOnDevice:D2
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1084
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1085
     D2 startDispatch.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1086
     SystemBrowser openOnDevice:d
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1087
    "
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1088
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1089
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1090
startGUIServerWithPort:portNr
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1091
    "start the java GUIServer"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1092
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1093
    |cmd args javaHome guiServerPath|
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1094
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1095
    guiServerPath := self guiServerPath.
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
  1096
    guiServerPath isNil ifTrue:[
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
  1097
        "/ assume already runnning
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
  1098
        guiServerPid := #alreadyRunning.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
  1099
        ^ self.
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
  1100
    ].
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1101
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1102
    OperatingSystem isMSWINDOWSlike ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1103
        cmd := 'cmd/c'
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1104
    ] ifFalse:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1105
        javaHome := OperatingSystem getEnvironment:'JAVA_HOME'.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1106
        cmd := javaHome isNil 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1107
                        ifTrue:'/usr/bin/java'
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1108
                        ifFalse:[ javaHome asFilename constructString:'bin/java' ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1109
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1110
    args := { 'java' . '-jar' . guiServerPath . portNr asString }.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1111
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1112
    Processor
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1113
               monitor:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1114
                  guiServerPid := OperatingSystem
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1115
                      exec:cmd
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1116
                      withArguments:args
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1117
                      fork:true
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1118
               ]
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1119
               action:[:status |
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1120
                  status stillAlive ifFalse:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1121
                      OperatingSystem closePid:guiServerPid.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1122
                      guiServerPid := nil.  
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1123
                      self guiServerTerminated.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1124
                  ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1125
               ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1126
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1127
    guiServerPid isNil ifTrue:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1128
        self error:'failed to launch guiserver.jar'
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1129
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1130
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1131
    "
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1132
     self new initializeFor:nil
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1133
    "
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1134
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1135
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1136
!GuiServerWorkstation methodsFor:'misc'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1137
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1138
halt
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1139
    Screen currentScreenQuerySignal answer:Display do:[
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1140
        super halt.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1141
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1142
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1143
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1144
mapWindow:viewId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1145
    self gs_set_visible:viewId visible:true
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1146
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1147
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1148
setWindowBackground:colorId in:viewId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1149
    self gs_set_background:viewId color:colorId.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1150
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1151
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1152
setWindowName:label in:viewId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1153
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1154
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1155
unmapWindow:viewId
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1156
    self gs_set_visible:viewId visible:false
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1157
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1158
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1159
!GuiServerWorkstation methodsFor:'native window stuff'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1160
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1161
changeButtonState:stateBoolean in:id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1162
    out nextPutLine:('set-selected ',id,' ',stateBoolean printString).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1163
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1164
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1165
changeLabel:label in:id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1166
    out nextPutLine:('set-text ',id,' ',(Base64Coder encode:label)).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1167
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1168
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1169
changeList:list in:id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1170
    out nextPutLine:('clear-list ',id).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1171
    list do:[:each |
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1172
        out nextPutLine:('add-list-item ',id,' ',(Base64Coder encode:each asString)).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1173
    ].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1174
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1175
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1176
changeText:text in:id
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1177
    out nextPutLine:('set-text ',id,' ',(Base64Coder encode:text asString)).
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1178
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1179
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1180
!GuiServerWorkstation methodsFor:'queries'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1181
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1182
displayFileDescriptor
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1183
    "return the file descriptor associated with the display
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1184
     if any. If there is no underlying filedescriptor, return nil.
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1185
     (used for event select/polling)"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1186
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
  1187
    in isNil ifTrue:[^ nil].
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1188
    ^ in fileDescriptor
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1189
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1190
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1191
displayName
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1192
    ^ displayName
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1193
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1194
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1195
guiServerPath
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1196
    ^ self class defaultGUIServerPath
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1197
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1198
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1199
guiServerPort
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1200
    ^ self class defaultGUIServerPort
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1201
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1202
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1203
isOpen
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1204
    "answer true, if device can be used"
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1205
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1206
    ^ hasConnectionBroken not
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1207
        and:[guiServerPid notNil
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1208
        and:[in notNil 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1209
        and:[out notNil 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1210
        and:[in isOpen 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1211
        and:[out isOpen]]]]].
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1212
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1213
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1214
mayOpenDebugger
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1215
    ^ false
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1216
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1217
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1218
supportsNativeWidgets
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1219
    ^ useNativeWidgets
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1220
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1221
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1222
!GuiServerWorkstation methodsFor:'window stuff'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1223
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1224
moveResizeWindow:aWindowId x:x y:y width:w height:h
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1225
    self send:('set-bounds %1 %2 %3 %4 %5' bindWith:aWindowId with:x with:y with:w with:h)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1226
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1227
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1228
moveWindow:aWindowId x:x y:y 
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1229
    self send:('set-location %1 %2 %3 %4 %5' bindWith:aWindowId with:x with:y)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1230
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1231
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1232
resizeWindow:aWindowId width:w height:h
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1233
    self send:('set-current-size %1 %2 %3' bindWith:aWindowId with:w with:h)
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1234
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1235
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1236
!GuiServerWorkstation class methodsFor:'documentation'!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1237
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1238
version
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
  1239
    ^ '$Header$'
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1240
!
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1241
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1242
version_CVS
6886
572d6caea52a class: GuiServerWorkstation
Claus Gittinger <cg@exept.de>
parents: 6561
diff changeset
  1243
    ^ '$Header$'
6561
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1244
! !
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1245
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1246
5a0656be2773 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  1247
GuiServerWorkstation initialize!