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