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