StandardSystemView.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 09 Sep 2015 12:44:40 +0100
branchjv
changeset 6915 7f3a3fe5b871
parent 6872 5955d77d91ae
child 7083 db3f7c2127ef
permissions -rw-r--r--
X11: Set ICCCM property WM_CLASS with conformance to ICCCM 2.0 The previous code that set WM_CLASS using setWindowClass:name: was not correct w.r.t. ICCCM 2.0. This commit makes it adhering to that spec. This in turn results in better UX under modern window managers, e.g. Gnome Shell. Specified by ICCCM, Section 4.1.2.5. WM_CLASS Property, see https://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6794
d23983b0f222 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6788
diff changeset
     1
"{ Encoding: utf8 }"
d23983b0f222 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6788
diff changeset
     2
0
48194c26a46c Initial revision
claus
parents:
diff changeset
     3
"
6
7ee0cfde237d *** empty log message ***
claus
parents: 5
diff changeset
     4
 COPYRIGHT (c) 1989 by Claus Gittinger
72
3e84121988c3 *** empty log message ***
claus
parents: 69
diff changeset
     5
	      All Rights Reserved
0
48194c26a46c Initial revision
claus
parents:
diff changeset
     6
48194c26a46c Initial revision
claus
parents:
diff changeset
     7
 This software is furnished under a license and may be used
48194c26a46c Initial revision
claus
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
48194c26a46c Initial revision
claus
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
48194c26a46c Initial revision
claus
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
48194c26a46c Initial revision
claus
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
48194c26a46c Initial revision
claus
parents:
diff changeset
    12
 hereby transferred.
48194c26a46c Initial revision
claus
parents:
diff changeset
    13
"
6472
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6245
diff changeset
    14
'From Smalltalk/X, Version:6.2.3.0 on 19-03-2014 at 15:29:39'                   !
5b21ff383a12 Delegated gc stuff
Stefan Vogel <sv@exept.de>
parents: 6245
diff changeset
    15
3210
250f55f80683 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
    16
"{ Package: 'stx:libview' }"
250f55f80683 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
    17
6721
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
    18
"{ NameSpace: Smalltalk }"
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
    19
135
claus
parents: 132
diff changeset
    20
TopView subclass:#StandardSystemView
1539
fcd8fc807c0c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1538
diff changeset
    21
	instanceVariableNames:'label icon iconView iconLabel minExtent maxExtent sizeFixed
3408
42384f123133 Add labelChannel and visibilityChannel to WindowSpec/StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 3393
diff changeset
    22
		application windowEventsForApplication deviceIcon labelChannel'
2326
c47b2c8f51dc moved TakeFocusWhenMapped
Claus Gittinger <cg@exept.de>
parents: 2303
diff changeset
    23
	classVariableNames:'DefaultIcon IncludeHostNameInLabel DefaultExtent
6047
d8080f253e26 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 5975
diff changeset
    24
		WindowLabelFormat DefaultMinExtent TimedRaiseAction'
328
7bbe05da5769 activity notification added
Claus Gittinger <cg@exept.de>
parents: 298
diff changeset
    25
	poolDictionaries:''
7bbe05da5769 activity notification added
Claus Gittinger <cg@exept.de>
parents: 298
diff changeset
    26
	category:'Views-Basic'
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    27
!
48194c26a46c Initial revision
claus
parents:
diff changeset
    28
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    29
!StandardSystemView class methodsFor:'documentation'!
46
7b331e9012fd *** empty log message ***
claus
parents: 24
diff changeset
    30
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    31
copyright
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    32
"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    33
 COPYRIGHT (c) 1989 by Claus Gittinger
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    34
	      All Rights Reserved
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    35
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    36
 This software is furnished under a license and may be used
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    37
 only in accordance with the terms of that license and with the
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    38
 inclusion of the above copyright notice.   This software may not
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    39
 be provided or otherwise made available to, or used by, any
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    40
 other person.  No title to or ownership of the software is
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    41
 hereby transferred.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    42
"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    43
!
0
48194c26a46c Initial revision
claus
parents:
diff changeset
    44
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    45
documentation
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    46
"
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
    47
    I represent standard application topViews
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
    48
    i.e. those views which have a title-label, an icon etc.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    49
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    50
    The name `StandardSystemView' is probably misleading and
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    51
    results from ST-80 (rel2.x) compatibility reasons.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    52
    Think of it as an ApplicationWindow.
625
4d8f6dc3af75 commentary & category changes
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
    53
4d8f6dc3af75 commentary & category changes
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
    54
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    55
    In ST/X, StandardSystemViews were subclassed for special views
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    56
    in the past (for example: FileBrowser, ChangesBrowser etc.).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    57
    Although this worked, it may lead to the following
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    58
    problems and inconveniences:
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    59
	- applications inherit a big number of methods through the
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    60
	  SimpleView->View->TopView->StandardSystemView hierarchy.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    61
	  There is quite a danger that by accident, some method gets
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    62
	  redefined which is required by one of those classes.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    63
	  (typical candidates are: terminate, destroy, open ...)
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    64
	  This may lead to strange effects, which may not be obvious to
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    65
	  non experts ...
604
672ecb7ec347 fixed iconView handling (thought it was not realized); comments & docu
Claus Gittinger <cg@exept.de>
parents: 597
diff changeset
    66
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    67
	- applications with multiple topViews are difficult to implement
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    68
	  and manage.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    69
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    70
	- use of a windowBuilder is difficult.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    71
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    72
    For all those reasons, we HIGHLY recommend to NOT define applications
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    73
    as subclasses of StandardSystemView, but instead base them on
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    74
    ApplicationModel, and reference the topView(s) as instance variables of
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    75
    if (if at all).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    76
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    77
    [instance variables:]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    78
	label                   <String>    the label in the windows title
604
672ecb7ec347 fixed iconView handling (thought it was not realized); comments & docu
Claus Gittinger <cg@exept.de>
parents: 597
diff changeset
    79
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    80
	icon                    <Form>      the icon
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
    81
					    [ignored if the display does not
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    82
					     support icons]
604
672ecb7ec347 fixed iconView handling (thought it was not realized); comments & docu
Claus Gittinger <cg@exept.de>
parents: 597
diff changeset
    83
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    84
	iconView                <View>      an optional icon-view (for animated icons)
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    85
					    [ignored if the display does not
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    86
					     supports this]
604
672ecb7ec347 fixed iconView handling (thought it was not realized); comments & docu
Claus Gittinger <cg@exept.de>
parents: 597
diff changeset
    87
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    88
	iconLabel               <String>    the label in the icon
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
    89
					    [ignored if the display does not
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    90
					     support label-tabs with icons]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    91
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    92
	minExtent               <Point>     the minimum size
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    93
					    No limit, if nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    94
					    [the window manager may have its own
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    95
					     limit; typically some small area]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    96
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    97
	maxExtent               <Point>     the maximum size
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    98
					    No limit, if nil.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
    99
					    [the window manager may have its own
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   100
					     limit; typically the screen size]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   101
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   102
	sizeFixed               <Boolean>   prevents the view from resizing itself
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   103
					    (especially to freeze a dialogs size)
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   104
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   105
	application             <AppModel>  if nonNil, thats the application
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   106
					    Many requests (such as open/close etc.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   107
					    are forwarded to it, if present.
604
672ecb7ec347 fixed iconView handling (thought it was not realized); comments & docu
Claus Gittinger <cg@exept.de>
parents: 597
diff changeset
   108
672ecb7ec347 fixed iconView handling (thought it was not realized); comments & docu
Claus Gittinger <cg@exept.de>
parents: 597
diff changeset
   109
672ecb7ec347 fixed iconView handling (thought it was not realized); comments & docu
Claus Gittinger <cg@exept.de>
parents: 597
diff changeset
   110
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   111
     [class variables:]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   112
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   113
	DefaultIcon             <Form>      cached default icon
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   114
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   115
	TakeFocusWhenMapped     <Boolean>   if true, views grab the keyboard
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   116
					    focus (convenient with some stupid
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   117
					    windowManagers)
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   118
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   119
	IncludeHostNameInLabel  <Boolean>   if true, the windows title shall
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   120
					    include the hostname.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   121
					    (convenient if you have many remote
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   122
					    views open simultaneously)
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   123
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   124
	WindowLabelFormat       <Boolean>   specifies the format for windowLabels
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   125
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   126
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   127
    [author:]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   128
	Claus Gittinger
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   129
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   130
    [see also:]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   131
	WindowGroup
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   132
	ApplicationModel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   133
"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   134
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   135
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   136
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   137
examples
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   138
"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   139
    simple, empty topView:
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   140
									[exBegin]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   141
	|topView|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   142
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   143
	topView := StandardSystemView new.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   144
	topView label:'my first view'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   145
	topView extent:200 @ 200.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   146
	topView open.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   147
									[exEnd]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   148
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   149
    with an icon & iconLabel:
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   150
									[exBegin]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   151
	|topView|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   152
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   153
	topView := StandardSystemView extent:200 @ 200.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   154
	topView label:'Hello world'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   155
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   156
	topView icon:(Image fromFile:'hello_world.icon').
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   157
	topView open.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   158
									[exEnd]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   159
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   160
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   161
    with an animated iconView [not supported on all display devices]:
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   162
									[exBegin]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   163
	|iconView topView|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   164
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   165
	iconView := ClockView new.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   166
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   167
	topView := StandardSystemView extent:200 @ 200.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   168
	topView label:'Hello world'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   169
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   170
	topView iconView:iconView.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   171
	topView open.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   172
									[exEnd]
604
672ecb7ec347 fixed iconView handling (thought it was not realized); comments & docu
Claus Gittinger <cg@exept.de>
parents: 597
diff changeset
   173
672ecb7ec347 fixed iconView handling (thought it was not realized); comments & docu
Claus Gittinger <cg@exept.de>
parents: 597
diff changeset
   174
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   175
    placing a subView into it:
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   176
									[exBegin]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   177
	|topView button|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   178
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   179
	topView := StandardSystemView new.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   180
	topView label:'my second view'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   181
	topView extent:200 @ 200.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   182
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   183
	button := Button label:'close' in:topView.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   184
	button action:[topView destroy].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   185
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   186
	topView open.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   187
									[exEnd]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   188
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   189
    same, relative sized subview:
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   190
									[exBegin]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   191
	|topView button|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   192
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   193
	topView := StandardSystemView new.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   194
	topView label:'my second view'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   195
	topView extent:200 @ 200.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   196
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   197
	button := Button label:'close' in:topView.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   198
	button action:[topView destroy].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   199
	button origin:0.25 @ 0.25 corner:0.75 @ 0.75.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   200
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   201
	topView open.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   202
									[exEnd]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   203
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   204
    multiple buttons in a panel in a topView:
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   205
									[exBegin]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   206
	|topView panel button1 button2 button3|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   207
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   208
	topView := StandardSystemView new.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   209
	topView label:'my second view'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   210
	topView extent:200 @ 200.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   211
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   212
	panel := HorizontalPanelView origin:0.0@0.0 corner:1.0@1.0 in:topView.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   213
	panel inset:10.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   214
	panel level:-1.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   215
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   216
	button1 := Button label:'one' in:panel.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   217
	button1 action:[Transcript showCR:'one pressed'].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   218
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   219
	button2 := Button label:'two' in:panel.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   220
	button2 action:[Transcript showCR:'two pressed'].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   221
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   222
	button3 := Button label:'three' in:panel.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   223
	button3 action:[Transcript showCR:'three pressed'].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   224
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   225
	topView open.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   226
									[exEnd]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   227
"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   228
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   229
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   230
!StandardSystemView class methodsFor:'instance creation'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   231
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   232
extent:anExtent label:aLabel icon:aForm
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   233
    "create a new topView and define its extent, label and icon"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   234
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   235
    ^ self origin:nil extent:anExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   236
	   label:aLabel icon:aForm
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   237
	   minExtent:nil maxExtent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   238
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   239
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   240
extent:anExtent label:aLabel icon:aForm minExtent:minExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   241
    ^ self origin:nil extent:anExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   242
	   label:aLabel icon:aForm
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   243
	   minExtent:minExtent maxExtent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   244
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   245
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   246
extent:anExtent label:aLabel icon:aForm minExtent:minExtent maxExtent:maxExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   247
    ^ self origin:nil extent:anExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   248
	   label:aLabel icon:aForm
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   249
	   minExtent:minExtent maxExtent:maxExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   250
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   251
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   252
extent:anExtent label:aLabel minExtent:minExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   253
    "create a new topView and define its extent, label and minumum extent"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   254
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   255
    ^ self origin:nil extent:anExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   256
	   label:aLabel icon:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   257
	   minExtent:minExtent maxExtent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   258
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   259
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   260
label:aLabel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   261
    "create a new topView and define its label"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   262
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   263
    ^ self origin:nil extent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   264
	   label:aLabel icon:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   265
	   minExtent:nil maxExtent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   266
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   267
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   268
label:aLabel icon:aForm
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   269
    "create a new topView and define its label and icon"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   270
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   271
    ^ self origin:nil extent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   272
	   label:aLabel icon:aForm
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   273
	   minExtent:nil maxExtent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   274
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   275
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   276
label:aLabel icon:aForm minExtent:anExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   277
    "create a new topView and define its label, icon and minumum extent"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   278
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   279
    ^ self origin:nil extent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   280
	   label:aLabel icon:aForm
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   281
	   minExtent:anExtent maxExtent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   282
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   283
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   284
label:aLabel icon:aForm minExtent:minExtent maxExtent:maxExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   285
    "create a new topView and define its label, icon, min and max extents"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   286
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   287
    ^ self origin:nil extent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   288
	   label:aLabel icon:aForm
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   289
	   minExtent:minExtent maxExtent:maxExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   290
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   291
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   292
label:aLabel minExtent:anExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   293
    "create a new topView and define its label and minimum extent"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   294
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   295
    ^ self origin:nil extent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   296
	   label:aLabel icon:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   297
	   minExtent:anExtent maxExtent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   298
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   299
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   300
model:aModel label:aLabel minimumSize:minExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   301
    "ST80-style instance creation"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   302
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   303
    |newView|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   304
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   305
    newView := self origin:nil
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   306
		    extent:minExtent
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   307
		     label:aLabel
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   308
		      icon:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   309
		 minExtent:minExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   310
		 maxExtent:nil.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   311
    newView model:aModel.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   312
"/    newView controller:(self defaultControllerClass new view:newView).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   313
    ^ newView
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   314
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   315
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   316
origin:anOrigin extent:anExtent label:aLabel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   317
    "create a new topView and define its origin, extent and label"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   318
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   319
    ^ self origin:anOrigin extent:anExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   320
	   label:aLabel icon:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   321
	   minExtent:nil maxExtent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   322
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   323
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   324
origin:anOrigin label:aLabel icon:aForm
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   325
		minExtent:minExtent maxExtent:maxExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   326
    "create a new topView and define its origin, extent, label, icon
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   327
     and extent-boundaries."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   328
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   329
    ^ self origin:anOrigin extent:nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   330
	   label:aLabel icon:aForm
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   331
	   minExtent:minExtent maxExtent:maxExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   332
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   333
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   334
!StandardSystemView class methodsFor:'Compatibility-VW'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   335
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   336
promptForOpen:aBoolean
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   337
    "not implemented here"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   338
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   339
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   340
!StandardSystemView class methodsFor:'class initialization'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   341
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   342
initialize
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   343
    IncludeHostNameInLabel := false.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   344
    WindowLabelFormat := self defaultWindowLabelFormat.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   345
6369
b799ac38af53 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6283
diff changeset
   346
    TakeFocusWhenMapped := (Screen notNil and:[Screen isWindowsPlatform]).
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   347
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   348
    "Created: / 20.8.1997 / 14:16:32 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   349
    "Modified: / 24.8.1998 / 17:16:33 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   350
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   351
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   352
!StandardSystemView class methodsFor:'defaults'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   353
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   354
defaultExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   355
    "return a standardSystemViews default window extent"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   356
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   357
    DefaultExtent notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   358
	^ DefaultExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   359
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   360
    ^ super defaultExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   361
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   362
    "Created: 15.8.1997 / 01:36:21 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   363
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   364
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   365
defaultIcon
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   366
    "return a topViews default window icon"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   367
4800
bab1343e2fa3 icon resource
Claus Gittinger <cg@exept.de>
parents: 4735
diff changeset
   368
    <resource: #programImage>
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   369
    <resource: #style (#ICON #ICON_FILE)>
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   370
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   371
    |n nm i|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   372
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   373
    (i := DefaultIcon) isNil ifTrue:[
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   374
	i := self classResources at:'ICON' default:nil.
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   375
	i isNil ifTrue:[
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   376
"/            OperatingSystem platformName == #win32 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   377
"/                n := 'stx_16x16.xpm'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   378
"/            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   379
"/                n := 'SmalltalkX.xbm'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   380
"/            ].
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   381
	    nm := ClassResources at:'ICON_FILE' default:n.
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   382
	    nm notNil ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   383
		i := Smalltalk imageFromFileNamed:nm inPackage:'stx:libtool'.
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   384
	    ].
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   385
	    i isNil ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   386
		i := self defaultSTXIcon
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   387
	    ].
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   388
	].
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   389
	i notNil ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   390
	    DefaultIcon := i := i onDevice:Display
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   391
	]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   392
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   393
    ^ i
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   394
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   395
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   396
     DefaultIcon := nil.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   397
     self defaultIcon inspect
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   398
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   399
4800
bab1343e2fa3 icon resource
Claus Gittinger <cg@exept.de>
parents: 4735
diff changeset
   400
    "Modified: / 17-09-2007 / 11:36:25 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   401
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   402
4975
9e899aca8597 allow for different icon to be used for about boxes
Claus Gittinger <cg@exept.de>
parents: 4837
diff changeset
   403
defaultIconForAboutBox
9e899aca8597 allow for different icon to be used for about boxes
Claus Gittinger <cg@exept.de>
parents: 4837
diff changeset
   404
    ^ self defaultIcon
9e899aca8597 allow for different icon to be used for about boxes
Claus Gittinger <cg@exept.de>
parents: 4837
diff changeset
   405
!
9e899aca8597 allow for different icon to be used for about boxes
Claus Gittinger <cg@exept.de>
parents: 4837
diff changeset
   406
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   407
defaultLabel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   408
    "return the default label for views of my kind.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   409
     This can be redefined in subclasses or overwritten in
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   410
     initialize methods."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   411
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   412
    ^ self nameWithoutPrefix. "/ 'aView'
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   413
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   414
    "Modified: / 27.9.1999 / 11:38:57 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   415
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   416
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   417
defaultWindowLabelFormat
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   418
    "%2 is the hostName;
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   419
     %1 is the actual window label."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   420
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   421
    "/ ^ '%2:%1'.    "/ the old format
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   422
    "/ ^ '%1 @ %2'.
5771
a4b190ff55e7 changed: #defaultWindowLabelFormat
Claus Gittinger <cg@exept.de>
parents: 5743
diff changeset
   423
    ^ '%1 (%5@%2)'.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   424
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   425
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   426
includeHostNameInLabel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   427
    "return the flag which controls if a views label should
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   428
     include the hostname.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   429
     This flag is usually set/cleared in your private.rc file;
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   430
     the default is false."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   431
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   432
    ^ IncludeHostNameInLabel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   433
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   434
    "Created: 10.9.1995 / 19:21:16 / claus"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   435
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   436
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   437
includeHostNameInLabel:aBoolean
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   438
    "set/clear the flag which controls if a views label should
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   439
     include the hostname - this is highly useful if you have
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   440
     multiple smalltalks open simultaneously ...
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   441
     This flag is usually set/cleared in your private.rc file;
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   442
     the default is false."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   443
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   444
    IncludeHostNameInLabel := aBoolean
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   445
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   446
    "Modified: 24.4.1996 / 09:09:21 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   447
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   448
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   449
takeFocusWhenMapped
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   450
    ^ TakeFocusWhenMapped
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   451
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   452
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   453
     StandardSystemView takeFocusWhenMapped
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   454
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   455
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   456
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   457
updateStyleCache
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   458
    "extract values from the styleSheet and cache them in class variables"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   459
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   460
    <resource: #style (#'standardSystemView.defaultExtent')>
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   461
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   462
    DefaultExtent := StyleSheet at:'standardSystemView.defaultExtent' default:nil.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   463
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   464
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   465
     self updateStyleCache
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   466
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   467
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   468
    "Modified: 31.8.1995 / 03:01:14 / claus"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   469
    "Created: 15.8.1997 / 01:34:37 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   470
    "Modified: 20.10.1997 / 15:13:50 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   471
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   472
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   473
windowLabelFormat
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   474
    ^ WindowLabelFormat
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   475
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   476
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   477
windowLabelFormat:aFormatString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   478
    WindowLabelFormat := aFormatString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   479
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   480
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   481
!StandardSystemView class methodsFor:'image specs'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   482
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   483
defaultSTXIcon
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   484
    <resource: #programImage>
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   485
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   486
    ^ self defaultSTXIcon3.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   487
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   488
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   489
defaultSTXIcon1
6480
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   490
    <resource: #image>
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   491
    "This resource specification was automatically generated
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   492
     by the ImageEditor of ST/X."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   493
    "Do not manually edit this!! If it is corrupted,
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   494
     the ImageEditor may not be able to read the specification."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   495
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   496
     self defaultSTXIcon1 inspect
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   497
     ImageEditor openOnClass:self andSelector:#defaultSTXIcon1
6480
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   498
     Icon flushCachedIcons"
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   499
    
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   500
    ^ Icon constantNamed:#'StandardSystemView class defaultSTXIcon1'
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   501
        ifAbsentPut:[
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   502
            (Depth2Image new)
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   503
                width:16;
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   504
                height:16;
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   505
                photometric:(#palette);
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   506
                bitsPerSample:(#[ 2 ]);
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   507
                samplesPerPixel:(1);
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   508
                bits:(ByteArray 
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   509
                            fromPackedString:'@@@@@@@@@@@@E@@@@AP@D@@V@D@@APF@@@F&@@@AV@@@@&@@@@%P@@@&F@@@VBP@@V@I@@V@@P@@@@@@@@@@@@@a');
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   510
                colorMapFromArray:#[ 0 0 0 0 127 127 184 231 231 ];
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   511
                mask:((ImageMask new)
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   512
                            width:16;
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   513
                            height:16;
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   514
                            bits:(ByteArray 
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   515
                                        fromPackedString:'@@@@@@X@A PGB@LX@_@A8@G@@<@GX@9 GC@8D@@@@@@b');
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   516
                            yourself);
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   517
                yourself
065e6f5dbfbb Change images to use ImageMask instances instead of Depth1Image instances as
Stefan Vogel <sv@exept.de>
parents: 6369
diff changeset
   518
        ]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   519
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   520
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   521
defaultSTXIcon2
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   522
    "This resource specification was automatically generated
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   523
     by the ImageEditor of ST/X."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   524
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   525
    "Do not manually edit this!! If it is corrupted,
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   526
     the ImageEditor may not be able to read the specification."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   527
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   528
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   529
     self defaultSTXIcon2 inspect
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   530
     ImageEditor openOnClass:self andSelector:#defaultSTXIcon2
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   531
     Icon flushCachedIcons
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   532
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   533
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   534
    <resource: #image>
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   535
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   536
    ^Icon
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   537
	constantNamed:#'StandardSystemView class defaultSTXIcon2'
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   538
	ifAbsentPut:[(Depth8Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   539
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HB@@@@@@@@@@@@@@@@@@@B@ @@@@@@@@H@@@@@@@@@@ H@@@@@@@H@@@@@@@@@@@@B@ @@
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   540
@@H@@@@@@@@@@@@@@@H@@@H@@@@@@@@@@@@@@@@B@ H@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@HB@ @@@@@@@@@@@@@@@@H@@@H@@@@@@@@@@@@@
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   541
@ H@@@@@@ @@@@@@@@@@@ H@@@@@@@@B@@@@@@@@@ H@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[184 231 231 63 63 63 0 127 127]; yourself]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   542
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   543
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   544
defaultSTXIcon3
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   545
    "This resource specification was automatically generated
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   546
     by the ImageEditor of ST/X."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   547
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   548
    "Do not manually edit this!! If it is corrupted,
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   549
     the ImageEditor may not be able to read the specification."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   550
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   551
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   552
     self defaultSTXIcon3 inspect
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   553
     ImageEditor openOnClass:self andSelector:#defaultSTXIcon3
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   554
     Icon flushCachedIcons
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   555
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   556
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   557
    <resource: #image>
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   558
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   559
    ^Icon
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   560
	constantNamed:#'StandardSystemView class defaultSTXIcon3'
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   561
	ifAbsentPut:[(Depth2Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#[2]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@E@@@@AP@D@@V@D@@APF@@@FF@@@AV@@@@&@@@@%P@@@$F@@@T@X@@T@I@@T@@P@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 0 204 51 0 112 0]; yourself]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   562
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   563
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   564
!StandardSystemView class methodsFor:'startup'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   565
6073
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   566
cancelAutoRaise
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   567
    "cancel any schedule autoraise action"
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   568
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   569
    |b|
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   570
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   571
    (b := TimedRaiseAction) notNil ifTrue:[
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   572
        TimedRaiseAction := nil.
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   573
        Processor removeTimeoutWithID:b.
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   574
    ].
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   575
!
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   576
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   577
start
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   578
    "create, realize the view - this topview and all its subviews will
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   579
     run as a separate process with its own windowGroup.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   580
     This method exists for backward compatibility - use open."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   581
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   582
    ^ self open
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   583
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   584
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   585
!StandardSystemView methodsFor:'Compatibility-ST80'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   586
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   587
maximumSize
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   588
    "same as maxExtent; for ST-80 compatibility"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   589
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   590
    ^ self maxExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   591
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   592
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   593
maximumSize:anExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   594
    "same as maxExtent; for ST-80 compatibility"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   595
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   596
    ^ self maxExtent:anExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   597
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   598
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   599
menuBar
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   600
    "return my menuBar or nil if I have none.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   601
     This is only valid for topViews which were built with the UIBuilder."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   602
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   603
    ^ application builder menuBar
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   604
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   605
    "Created: / 27.10.1997 / 16:23:13 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   606
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   607
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   608
minimumSize
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   609
    "same as minExtent; for ST-80 compatibility"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   610
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   611
    ^ self minExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   612
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   613
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   614
minimumSize:anExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   615
    "same as minExtent; for ST-80 compatibility"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   616
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   617
    ^ self minExtent:anExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   618
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   619
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   620
quit
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   621
    "same as closeRequest
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   622
     (but sometimes sent via the sensors event queue from VW programs)"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   623
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   624
    self closeRequest
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   625
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   626
    "Created: / 30.10.1997 / 19:23:01 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   627
    "Modified: / 3.8.1998 / 20:04:22 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   628
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   629
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   630
!StandardSystemView methodsFor:'accessing'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   631
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   632
application
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   633
    "return the topViews application.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   634
     This is new protocol for ST-80 compatibility and not yet fully supported"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   635
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   636
    ^ application
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   637
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   638
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   639
application:anApplicationModel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   640
    "set the topViews application.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   641
     This is new protocol for ST-80 compatibility and not yet fully supported"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   642
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   643
    application := anApplicationModel.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   644
    anApplicationModel notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   645
	anApplicationModel window isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   646
	    anApplicationModel window:self
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   647
	]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   648
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   649
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   650
    "Modified: 18.4.1996 / 14:55:44 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   651
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   652
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   653
!StandardSystemView methodsFor:'accessing-behavior'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   654
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   655
bePartner
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   656
    "define me as a partner-View.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   657
     All partners within the applications windowGroup iconify/deiconify together."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   658
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   659
    self setWindowGroupFromApplication.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   660
    super bePartner.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   661
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   662
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   663
     see example in TopView>>bePartner
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   664
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   665
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   666
    "Created: 22.9.1995 / 17:40:15 / claus"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   667
    "Modified: 6.3.1996 / 16:16:42 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   668
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   669
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   670
beSlave
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   671
    "define me as a slave-View.
6122
3d48897de0c7 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6101
diff changeset
   672
     All slaves within the application's windowGroup iconify/deiconify with the masterView(s)
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   673
     (i.e. they follow their master(s))"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   674
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   675
    self setWindowGroupFromApplication.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   676
    super beSlave.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   677
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   678
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   679
     see example in TopView>>beSlave
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   680
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   681
6122
3d48897de0c7 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6101
diff changeset
   682
    "Created: / 22-09-1995 / 17:40:15 / claus"
3d48897de0c7 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6101
diff changeset
   683
    "Modified: / 06-03-1996 / 16:16:50 / cg"
3d48897de0c7 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6101
diff changeset
   684
    "Modified (comment): / 28-08-2013 / 21:27:46 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   685
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   686
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   687
sendWindowEvents:collectionOfEventSymbols
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   688
    "define the events that are to be forwarded to the application.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   689
     This is being implemented ..."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   690
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   691
    windowEventsForApplication := collectionOfEventSymbols
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   692
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   693
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   694
sizeFixed:aBoolean
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   695
    "this prevents the view from resizing itself when realized.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   696
     For normal topViews, this is void, since they dont do this anyway.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   697
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   698
     However, modalBoxes (especially: DialogBoxes) typically resize themselfes
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   699
     to the preferredExtent of their components. In some cases, this behavior is
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   700
     not desired and it should be turned off by setting sizeFixed to true.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   701
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   702
     To avoid confusion:
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   703
	This does NOT prevent the window manager from resizing the view,
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   704
	instead it tells the view to NOT resize ITSELF."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   705
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   706
    sizeFixed := aBoolean.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   707
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   708
    "example: dialog which resizes itself on #open:
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   709
	      (thereby ignoring the 200@200 extent)
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   710
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   711
	|dialog|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   712
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   713
	dialog := Dialog new.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   714
	dialog addInputFieldOn:'' asValue.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   715
	dialog addOkButton.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   716
	dialog extent:200@200.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   717
	dialog open.
625
4d8f6dc3af75 commentary & category changes
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
   718
4d8f6dc3af75 commentary & category changes
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
   719
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   720
    using sizeFixed:
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   721
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   722
	|dialog|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   723
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   724
	dialog := Dialog new.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   725
	dialog addInputFieldOn:'' asValue.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   726
	dialog addOkButton.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   727
	dialog extent:200@200; sizeFixed:true.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   728
	dialog open.
625
4d8f6dc3af75 commentary & category changes
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
   729
4d8f6dc3af75 commentary & category changes
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
   730
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   731
    using openWithExtent (also sets sizeFixed):
625
4d8f6dc3af75 commentary & category changes
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
   732
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   733
	|dialog|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   734
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   735
	dialog := Dialog new.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   736
	dialog addInputFieldOn:'' asValue.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   737
	dialog addOkButton.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   738
	dialog openWithExtent:200@200.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   739
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   740
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   741
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   742
!StandardSystemView methodsFor:'accessing-channels'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   743
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   744
labelChannel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   745
    "return the labelChannel - or nil"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   746
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   747
    ^ labelChannel.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   748
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   749
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   750
labelChannel:aValueHolder
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   751
    "set the labelChannel - a valueHolder holding a string
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   752
     which is shown as title bar"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   753
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   754
    |prev|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   755
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   756
    prev := labelChannel.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   757
    labelChannel := aValueHolder.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   758
    self setupChannel:aValueHolder for:nil withOld:prev.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   759
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   760
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   761
!StandardSystemView methodsFor:'accessing-dimensions'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   762
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   763
maxExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   764
    "return the views maximum allowed extent"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   765
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   766
    ^ maxExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   767
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   768
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   769
maxExtent:max
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   770
    "define the maximum extent the view may have -
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   771
     depends on good-will of window manager"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   772
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   773
    maxExtent ~= max ifTrue:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   774
        maxExtent := max.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   775
        maxExtent x isNil ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   776
            maxExtent := 99999 @ maxExtent y.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   777
        ].
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   778
        maxExtent y isNil ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   779
            maxExtent := maxExtent x @ 99999.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   780
        ].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   781
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   782
        self drawableId notNil ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   783
            self graphicsDevice setWindowMinExtent:nil maxExtent:max in:self drawableId
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   784
        ].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   785
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   786
        "/ if my current extent is larger than the new
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   787
        "/ maxExtent, adjust.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   788
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   789
        (width notNil and:[height notNil]) ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   790
            ((width > (max x)) or:
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   791
             [height > (max y)]) ifTrue: [
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   792
                self extent:(max min:self extent)
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   793
            ]
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   794
        ]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   795
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   796
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   797
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   798
minExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   799
    "return the views minimum allowed extent"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   800
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   801
    ^ minExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   802
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   803
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   804
minExtent:min
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   805
    "define the minimum extent the view may have -
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   806
     depends on good-will of window manager"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   807
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   808
    minExtent ~= min ifTrue:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   809
        minExtent := min.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   810
        self drawableId notNil ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   811
            self graphicsDevice setWindowMinExtent:min maxExtent:nil in:self drawableId
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   812
        ].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   813
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   814
        "/ if my current extent is smaller than the new
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   815
        "/ minExtent, adjust.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   816
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   817
        (width notNil and:[height notNil]) ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   818
            ((width < (min x)) or:
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   819
             [height < (min y)]) ifTrue: [
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   820
                self extent:(min max:self extent)
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   821
            ]
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   822
        ]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   823
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   824
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   825
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   826
!StandardSystemView methodsFor:'accessing-look'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   827
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   828
icon
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   829
    "return the form defined as icon"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   830
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   831
    ^ icon value
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   832
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   833
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   834
icon:aFormOrImage
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   835
    "define the form or image (bitmap) used as icon"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   836
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   837
    |i m iconValue|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   838
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   839
    icon := aFormOrImage.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   840
    iconValue := icon value.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   841
    iconValue notNil ifTrue:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   842
        self drawableId notNil ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   843
            i := self graphicsDevice convertedIcon:iconValue.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   844
            (i notNil and:[i id notNil]) ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   845
                (m := iconValue mask) notNil ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   846
                    m := self graphicsDevice convertedIconMask:m.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   847
                ].
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   848
                self graphicsDevice setWindowIcon:i mask:m in:self drawableId
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   849
            ]
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   850
        ]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   851
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   852
4814
4204263d3ab3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4812
diff changeset
   853
    "Modified: / 30-10-2007 / 16:39:15 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   854
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   855
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   856
iconLabel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   857
    "return the name displayed in the icon"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   858
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   859
    ^ iconLabel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   860
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   861
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   862
iconLabel:aString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   863
    "define the name to be displayed in the icon"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   864
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   865
    |newLabel|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   866
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   867
    (newLabel := aString string) ~= iconLabel ifTrue:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   868
        iconLabel := newLabel.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   869
        self drawableId notNil ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   870
            self graphicsDevice setIconName:newLabel in:self drawableId.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   871
            "
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   872
             unbuffered - to make it visible right NOW
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   873
            "
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   874
            self flush.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   875
        ]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   876
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   877
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   878
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   879
iconMask
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   880
    "return the form defined as iconMask.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   881
     Notice, that many windowManagers ignore this mask
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   882
     (usually, only managers which place icons on the background desktop
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   883
      care for an icon - if at all ...)"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   884
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   885
    |mask|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   886
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   887
    "/ only images possibly have iconMasks
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   888
    icon notNil ifTrue:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   889
        (mask := icon value mask) notNil ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   890
            ^ self graphicsDevice convertedIconMask:mask
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   891
        ]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   892
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   893
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   894
    ^ nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   895
4815
77b9f37c9e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4814
diff changeset
   896
    "Modified: / 30-10-2007 / 20:59:40 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   897
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   898
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   899
iconName:aString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   900
    "this method will vanish soon ... - for backward compatibility"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   901
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   902
    <resource:#obsolete>
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   903
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   904
    self obsoleteMethodWarning:'use #iconLabel:'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   905
    self iconLabel:aString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   906
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   907
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   908
iconView
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   909
    "return the view used as icon-view"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   910
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   911
    ^ iconView
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   912
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   913
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   914
iconView:aView
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   915
    "specify the view to be used as icon.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   916
     This may not be supported on all display types"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   917
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   918
    iconView := aView.
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   919
    self drawableId notNil ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   920
        aView create.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   921
        self graphicsDevice setWindowIconWindow:aView in:self drawableId.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   922
        aView setRealized:true.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   923
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   924
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   925
    "Modified: 4.4.1997 / 16:21:37 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   926
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   927
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   928
label
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   929
    "return the views name in the title area"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   930
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   931
    ^ label
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   932
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   933
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   934
label:aString
6245
d0c50dd22b30 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6228
diff changeset
   935
    "define the view's name in the window's title area.
d0c50dd22b30 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6228
diff changeset
   936
     If IncludeHostNameInLabel is true, prepend the hostname - now done in windowLabelFor:
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   937
     (you will appreciate this, if you are working on multiple
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   938
      machines simultaneously - as I do ...)"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   939
5066
c166f0bf72ed *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5039
diff changeset
   940
    |newLabel expandedLabel|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   941
4633
53643adff205 care for nil label-arg
Claus Gittinger <cg@exept.de>
parents: 4566
diff changeset
   942
    newLabel := aString.
53643adff205 care for nil label-arg
Claus Gittinger <cg@exept.de>
parents: 4566
diff changeset
   943
    newLabel notNil ifTrue:[newLabel := newLabel string].
53643adff205 care for nil label-arg
Claus Gittinger <cg@exept.de>
parents: 4566
diff changeset
   944
    newLabel ~= label ifTrue:[
6079
e0678a4293b1 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6073
diff changeset
   945
        label := newLabel.
6248
c5ae82e874cf class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6245
diff changeset
   946
        "/ fix: cg: realized is a bad test here - could still be unmapped...
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   947
        self drawableId notNil "realized" ifTrue: [
6079
e0678a4293b1 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6073
diff changeset
   948
            expandedLabel := self windowLabelFor:label.
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
   949
            self windowName:(expandedLabel ? '').
6079
e0678a4293b1 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6073
diff changeset
   950
            shown ifTrue:[
e0678a4293b1 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6073
diff changeset
   951
                "
e0678a4293b1 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6073
diff changeset
   952
                 unbuffered - to make it visible right NOW
e0678a4293b1 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6073
diff changeset
   953
                "
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
   954
                self flush.
6079
e0678a4293b1 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6073
diff changeset
   955
            ]
e0678a4293b1 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6073
diff changeset
   956
        ]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   957
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   958
4633
53643adff205 care for nil label-arg
Claus Gittinger <cg@exept.de>
parents: 4566
diff changeset
   959
    "Created: / 08-09-1995 / 19:37:06 / claus"
53643adff205 care for nil label-arg
Claus Gittinger <cg@exept.de>
parents: 4566
diff changeset
   960
    "Modified: / 06-10-2006 / 11:55:06 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   961
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   962
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   963
label:labelString iconLabel:iconLabelString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   964
    "set both the label and the iconLabel"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   965
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   966
    self label:labelString.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   967
    self iconLabel:iconLabelString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   968
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   969
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   970
!StandardSystemView methodsFor:'change & update'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   971
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   972
update:something with:aParameter from:changedObject
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   973
    "the MVC way of changing the label ..."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   974
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   975
    changedObject notNil ifTrue:[
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   976
	changedObject == labelChannel ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   977
	    self label:labelChannel value.
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   978
	    ^ self
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   979
	].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   980
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   981
    ^ super update:something with:aParameter from:changedObject
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   982
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   983
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   984
!StandardSystemView methodsFor:'destroying'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   985
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   986
release
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   987
    self removeFromCurrentProject.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   988
    labelChannel notNil ifTrue:[
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   989
	labelChannel removeDependent:self.
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   990
	labelChannel := nil.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   991
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   992
    windowGroup notNil ifTrue:[
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   993
	windowGroup focusSequence:nil.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   994
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   995
    super release.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   996
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   997
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   998
saveAndTerminate
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   999
    "save & terminate request from the windowManager. The application should
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1000
     save its data/files/text etc. somehow and close.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1001
     If there is an application, let it decide how do do that.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1002
     Otherwise, forward it to superclasses which knows how to do this.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1003
     (it defaults to a terminate there).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1004
     Notice, that not all windowmanagers are nice enough
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1005
     to send this request; some simply distroy the view."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1006
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1007
    application notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1008
	application saveAndTerminateRequestFor:self
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1009
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1010
	super saveAndTerminate
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1011
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1012
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1013
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1014
terminate
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1015
    "terminate request from the windowManager. If there is an application,
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1016
     let it decide if it really wants to be close. Otherwise, forward it to
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1017
     superclasses terminate which knows how to do this.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1018
     Notice, that not all windowmanagers are nice enough
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1019
     to send this request; some simply distroy the view."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1020
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1021
    application notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1022
	application closeRequestFor:self
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1023
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1024
	self closeRequest.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1025
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1026
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1027
    "Modified: / 3.8.1998 / 19:49:45 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1028
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1029
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1030
!StandardSystemView methodsFor:'event handling'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1031
6646
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1032
delayedAutoRaiseEvent
6048
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1033
    "called with a delay by the focusIn code, iff the userPref setting is active.
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1034
     Some (a small number only) may want to prevent autoraise in certain situations
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1035
     - for example, if one view is controlling another. These get a chance to redefine this
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1036
     method"
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1037
6073
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1038
    |wg app|
6049
9e2da07eefa9 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6048
diff changeset
  1039
6071
536027b2080b class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6049
diff changeset
  1040
    "/ not, if my windowGroup is in a modal or popup action
6073
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1041
    ((wg := self windowGroup) notNil
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1042
    and:[ wg isInModalLoop not
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1043
    and:[ wg mainGroup isInModalLoop not
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1044
    and:[ self isModal not ]]]) ifTrue:[
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1045
        self sensor anyButtonPressed ifFalse:[
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1046
            "/ if I have an application, let it decide
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1047
            (app := self application) notNil ifTrue:[
6646
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1048
                app delayedAutoRaiseEventFor:self
6073
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1049
            ] ifFalse:[
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1050
                self raise.
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1051
            ].
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1052
        ]
6071
536027b2080b class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6049
diff changeset
  1053
    ]
6048
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1054
!
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1055
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1056
focusIn
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1057
    "the view got the keyboard focus (via the window manager).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1058
     I.e. the mouse was moved out into the topView area - restore the
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1059
     focus to the previous focusView.."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1060
6721
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
  1061
    |viewToGetFocus viewUnderMousePointer ms|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1062
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1063
    windowGroup notNil ifTrue:[
6772
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1064
        "/ a hack for window managers, which do not honor the
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1065
        "/ WMTransientFor attribute (i.e. XQuartz).
6794
d23983b0f222 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6788
diff changeset
  1066
        "/ This flag would prevent a popup (dialog or notification) from being
6772
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1067
        "/ covered by its underlying regular view. But on MAC, it does not.
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1068
        "/ However, focus is coming in, when doing this, so we manually fix this
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1069
        "/ here. Should not hurt on other systems, where the view is already on top.
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1070
        "/ if it does, add some conditional check here (device WMTransientForBroken or similar)
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1071
        "/ You can check for you WM to be correct, by disabling the line below,
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1072
        "/ then click on a smallLint-note icon, to see the smallLint info,
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1073
        "/ then click on the underlying codeView, to raise it.
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1074
        "/ if the smallLint view can be covered, your WM is broken.
6794
d23983b0f222 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6788
diff changeset
  1075
        "/ cg: turns out to be a bad idea - it does help solve the above problem (on mac),
d23983b0f222 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6788
diff changeset
  1076
        "/ but raises unwanted topViews (for example, if a modal dialog's popup menu closes)
d23983b0f222 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6788
diff changeset
  1077
        "/ windowGroup topViews first raise.
6772
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1078
5675
51d438d3033c changed: #focusIn
Claus Gittinger <cg@exept.de>
parents: 5659
diff changeset
  1079
        "/ I got the focus - tell the current focus-windowgroup
51d438d3033c changed: #focusIn
Claus Gittinger <cg@exept.de>
parents: 5659
diff changeset
  1080
        "/ that its focus is gone elsewhere ...
6646
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1081
        "/ 'focusIn ' print. windowGroup process name printCR.
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1082
        "/ 'focusView is ' print. windowGroup focusView printCR.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1083
6646
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1084
        "/ although the foucs has usually already been taken (see focusOut),
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1085
        "/ there are situations where this does not happen;
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1086
        "/ I am not sure if that is a WM bug or an ST/X bug, but sometimes (with popups),
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1087
        "/ I only get a focus in. Could be a race, when the loosing view is already destroyed,
6772
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1088
        "/ at the time the focus event arrives.
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1089
        "/ Anyway: it should not matter to take it again...
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1090
        WindowGroup takeFocusFromDevice:self graphicsDevice.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1091
6772
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1092
        windowGroup isInModalLoop ifTrue:[
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1093
            windowGroup allTopViewsDo:[:t |
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1094
                t ~~ self ifTrue:[
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1095
                    t focusIn.
6774
77b76d35d778 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6772
diff changeset
  1096
                    t raise.
6772
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1097
                    ^ self.
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1098
                ].
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1099
            ]
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1100
        ].
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1101
6646
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1102
        "/ Transcript show:self; show:' focus in '; showCR:windowGroup isInModalLoop.
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1103
6721
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
  1104
        viewToGetFocus := windowGroup focusView.
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
  1105
        viewToGetFocus isNil ifTrue:[
5675
51d438d3033c changed: #focusIn
Claus Gittinger <cg@exept.de>
parents: 5659
diff changeset
  1106
            UserPreferences current focusFollowsMouse ~~ false ifTrue:[
6721
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
  1107
                viewUnderMousePointer := windowGroup pointerView.
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
  1108
                "/ 'viewUnderMousePointer is ' print. viewUnderMousePointer printCR.
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
  1109
                (viewUnderMousePointer notNil
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
  1110
                and:[viewUnderMousePointer isKeyboardConsumer
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
  1111
                and:[viewUnderMousePointer wantsFocusWithPointerEnter]]) ifTrue:[
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
  1112
                    viewToGetFocus := viewUnderMousePointer.
5675
51d438d3033c changed: #focusIn
Claus Gittinger <cg@exept.de>
parents: 5659
diff changeset
  1113
                ]
6721
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
  1114
            ].
5675
51d438d3033c changed: #focusIn
Claus Gittinger <cg@exept.de>
parents: 5659
diff changeset
  1115
        ].
6721
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
  1116
        viewToGetFocus isNil ifTrue:[
6741
c74272178933 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6721
diff changeset
  1117
            windowGroup focusBackToPreviousFocusView.
c74272178933 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6721
diff changeset
  1118
            windowGroup focusView isNil ifTrue:[
c74272178933 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6721
diff changeset
  1119
                self assignInitialKeyboardFocus.
c74272178933 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6721
diff changeset
  1120
            ].
5675
51d438d3033c changed: #focusIn
Claus Gittinger <cg@exept.de>
parents: 5659
diff changeset
  1121
        ] ifFalse:[
51d438d3033c changed: #focusIn
Claus Gittinger <cg@exept.de>
parents: 5659
diff changeset
  1122
            "/ v requestFocus.  - will be denied; but we must force it here
51d438d3033c changed: #focusIn
Claus Gittinger <cg@exept.de>
parents: 5659
diff changeset
  1123
            "/ to force a change...
51d438d3033c changed: #focusIn
Claus Gittinger <cg@exept.de>
parents: 5659
diff changeset
  1124
            windowGroup setFocusView:nil.
6721
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
  1125
            windowGroup focusView:viewToGetFocus byTab:nil.
6047
d8080f253e26 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 5975
diff changeset
  1126
        ].
d8080f253e26 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 5975
diff changeset
  1127
d8080f253e26 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 5975
diff changeset
  1128
        "/ optionally bring the window to the front after some delay.
6071
536027b2080b class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6049
diff changeset
  1129
        "/ but not, if my windowGroup is in a modal or popup action
6047
d8080f253e26 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 5975
diff changeset
  1130
        (ms := UserPreferences current autoRaiseOnFocusInDelay) notNil ifTrue:[
6073
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1131
            self scheduleAutoRaiseAfter:ms
6047
d8080f253e26 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 5975
diff changeset
  1132
        ].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1133
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1134
    super focusIn
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1135
5675
51d438d3033c changed: #focusIn
Claus Gittinger <cg@exept.de>
parents: 5659
diff changeset
  1136
    "Modified: / 20-01-2011 / 20:51:20 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1137
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1138
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1139
focusOut
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1140
    "the top-view lost the keyboard focus (via the window manager).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1141
     I.e. the mouse was moved out of the topView area."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1142
6787
7b75289ce8f8 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6775
diff changeset
  1143
    |v wg|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1144
6148
6ba6f49e0a8d class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6122
diff changeset
  1145
    "/ 'fout ' print. self printCR.
6ba6f49e0a8d class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6122
diff changeset
  1146
6787
7b75289ce8f8 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6775
diff changeset
  1147
    (wg := windowGroup) notNil ifTrue:[
6148
6ba6f49e0a8d class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6122
diff changeset
  1148
        "/ '  fout-focusView: ' print. windowGroup focusView printCR.
6787
7b75289ce8f8 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6775
diff changeset
  1149
        (v := wg focusView) notNil ifTrue:[
6788
360901c8f30a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6787
diff changeset
  1150
            "/ wg focusView:nil.  "/ -- let windowGroup do it.
6148
6ba6f49e0a8d class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6122
diff changeset
  1151
            v showNoFocus:(windowGroup explicitFocusView == v).
6ba6f49e0a8d class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6122
diff changeset
  1152
            "/ '  send-has-nofocus to: ' print. v printCR.
6ba6f49e0a8d class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6122
diff changeset
  1153
            v hasKeyboardFocus:false.
6ba6f49e0a8d class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6122
diff changeset
  1154
        ]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1155
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1156
    super focusOut
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1157
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1158
    "Modified: 25.2.1997 / 23:19:46 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1159
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1160
6100
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1161
processShortcut:aKeyEvent
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1162
    "a shortcut key event as forwarded from the keyboardProcessor - if there is the
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1163
     shortcut key defined, process the shortcut and return true - otherwise false."
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1164
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1165
    application notNil ifTrue:[
6101
ea437d17677d Fix in StandardSystemView>>#processShortcut:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6100
diff changeset
  1166
        (application processShortcut:aKeyEvent) ifTrue:[ ^ true ]
ea437d17677d Fix in StandardSystemView>>#processShortcut:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6100
diff changeset
  1167
    ].
ea437d17677d Fix in StandardSystemView>>#processShortcut:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6100
diff changeset
  1168
    ^super processShortcut:aKeyEvent
6100
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1169
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1170
    "Created: / 23-07-2013 / 18:15:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6101
ea437d17677d Fix in StandardSystemView>>#processShortcut:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6100
diff changeset
  1171
    "Modified: / 23-07-2013 / 23:57:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6100
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1172
!
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1173
6073
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1174
scheduleAutoRaiseAfter:ms
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1175
    "bring the window to the front after some delay.
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1176
     but not, if my windowGroup is in a modal or popup action"
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1177
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1178
    |wg actionID|
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1179
6646
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1180
    (wg := self windowGroup) isNil ifTrue:[^ self].
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1181
    wg isInModalLoop ifTrue:[^ self].  
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1182
    wg mainGroup isInModalLoop ifTrue:[^ self].
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1183
    "/ self isModal ifTrue:[^ self].
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1184
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1185
    TimedRaiseAction notNil ifTrue:[
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1186
        Processor removeTimeoutWithID:TimedRaiseAction.
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1187
    ].
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1188
    TimedRaiseAction := actionID := Processor 
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1189
                            addTimedBlock:
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1190
                                [
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1191
                                    TimedRaiseAction == actionID ifTrue:[
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1192
                                        TimedRaiseAction := nil.
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1193
                                        self sensor pushUserEvent: #delayedAutoRaiseEvent for: self 
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1194
                                    ].     
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1195
                                ]
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1196
                            afterMilliseconds:ms.
6073
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1197
!
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1198
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1199
showActivity:someMessage
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1200
    "some activityNotification shalt be communicated to
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1201
     the user. Forward it to my application (if any).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1202
     (that one should know how to deal with it).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1203
     Otherwise, simply ignore it."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1204
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1205
    application notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1206
	application showActivity:someMessage
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1207
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1208
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1209
    "Created: 16.12.1995 / 18:40:44 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1210
    "Modified: 23.4.1996 / 21:38:11 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1211
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1212
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1213
!StandardSystemView methodsFor:'initialization & release'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1214
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1215
addToCurrentProject
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1216
    "add the receiver (a topview) to the current projects set-of-views.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1217
     (If there is a current project)"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1218
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1219
    |p|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1220
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1221
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1222
     the following check allows systems
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1223
     without projects and changeSets
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1224
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1225
    (Project notNil and:[(p := Project current) notNil]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1226
	p addView: self
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1227
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1228
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1229
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1230
defaultControllerClass
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1231
    "for ST-80 compatibility only - not used in ST/X"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1232
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1233
    ^ nil "/ StandardSystemController
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1234
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1235
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1236
initEvents
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1237
    super initEvents.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1238
    self enableFocusEvents.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1239
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1240
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1241
initialize
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1242
    super initialize.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1243
5388
10a240c6365a changed:
Claus Gittinger <cg@exept.de>
parents: 5349
diff changeset
  1244
    "/ self setBorderWidth:2.         "- notice: many window managers ignore this"
6369
b799ac38af53 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6283
diff changeset
  1245
    self graphicsDevice isWindowsPlatform ifTrue:[
5942
e9fa762f18a3 changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 5771
diff changeset
  1246
        minExtent := 0 @ 0.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1247
    ] ifFalse:[
5942
e9fa762f18a3 changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 5771
diff changeset
  1248
        minExtent := 10 @ 10.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1249
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1250
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1251
    label isNil ifTrue:[label := self class defaultLabel].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1252
    icon isNil ifTrue:[icon := self class defaultIcon].
5942
e9fa762f18a3 changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 5771
diff changeset
  1253
    sizeFixed := false.
e9fa762f18a3 changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 5771
diff changeset
  1254
e9fa762f18a3 changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 5771
diff changeset
  1255
    "Modified: / 27-10-2012 / 12:16:39 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1256
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1257
5659
0c6fa789e7f0 oops - mapping
Claus Gittinger <cg@exept.de>
parents: 5624
diff changeset
  1258
mapped
0c6fa789e7f0 oops - mapping
Claus Gittinger <cg@exept.de>
parents: 5624
diff changeset
  1259
    super mapped.
6369
b799ac38af53 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6283
diff changeset
  1260
    self graphicsDevice isWindowsPlatform ifTrue:[
5743
112d5f35a625 changed: #mapped
Stefan Vogel <sv@exept.de>
parents: 5735
diff changeset
  1261
        "don't do this in X11 - switching between 
112d5f35a625 changed: #mapped
Stefan Vogel <sv@exept.de>
parents: 5735
diff changeset
  1262
         virtual desktops would change the window stacking all the time"
112d5f35a625 changed: #mapped
Stefan Vogel <sv@exept.de>
parents: 5735
diff changeset
  1263
        self setForegroundWindow.
112d5f35a625 changed: #mapped
Stefan Vogel <sv@exept.de>
parents: 5735
diff changeset
  1264
        self activate.
112d5f35a625 changed: #mapped
Stefan Vogel <sv@exept.de>
parents: 5735
diff changeset
  1265
    ].
5659
0c6fa789e7f0 oops - mapping
Claus Gittinger <cg@exept.de>
parents: 5624
diff changeset
  1266
0c6fa789e7f0 oops - mapping
Claus Gittinger <cg@exept.de>
parents: 5624
diff changeset
  1267
    "Created: / 01-12-2010 / 15:57:22 / cg"
0c6fa789e7f0 oops - mapping
Claus Gittinger <cg@exept.de>
parents: 5624
diff changeset
  1268
!
0c6fa789e7f0 oops - mapping
Claus Gittinger <cg@exept.de>
parents: 5624
diff changeset
  1269
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1270
reAdjustGeometry
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1271
    "sent as a final step when an image is restarted.
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1272
     when we come up on a smaller display,
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1273
     make certain, that the receiver is visible"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1274
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1275
    |dX dY limitRight limitBottom graphicsDevice|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1276
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1277
    graphicsDevice := self graphicsDevice.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1278
    dX := (graphicsDevice horizontalPixelPerMillimeter * 20) rounded.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1279
    dY := (graphicsDevice verticalPixelPerMillimeter * 20) rounded.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1280
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1281
    limitRight := graphicsDevice usableWidth - dX.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1282
    limitBottom := graphicsDevice usableHeight - dY.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1283
    ((self left > limitRight) or:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1284
      self top > limitBottom]) ifTrue:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1285
        'StandardSystemView [info]: moving view into visible area' infoPrintCR.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1286
        self origin:limitRight @ limitBottom
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1287
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1288
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1289
    "Modified: 10.1.1997 / 15:12:19 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1290
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1291
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1292
reinitialize
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1293
    "reopen the receiver if if was visible before.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1294
     This is called right after snapIn; Notice, that all instance variables
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1295
     (such as shown, realized etc.) are left-overs from the time the snapout
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1296
     was done. Remap the receiver, if it was mapped at snapout time"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1297
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1298
    |myController|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1299
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1300
    "if I have already been reinited - return"
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1301
    self drawableId notNil ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1302
        ^ self
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1303
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1304
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1305
    "have to kludge with the controller
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1306
     - otherwise its startup performs unwanted actions ..."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1307
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1308
    myController := controller.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1309
    controller := nil.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1310
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1311
    "physically create the view & subviews"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1312
    self recreate.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1313
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1314
    "if I was iconified (not realized), remap iconified"
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1315
    self graphicsDevice
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1316
        mapView:self id:self drawableId iconified:(realized "shown" not)
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1317
        atX:left y:top width:width height:height
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1318
        minExtent:minExtent maxExtent:maxExtent.
24
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
  1319
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1320
    "and restart the window-group process"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1321
    windowGroup notNil ifTrue:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1322
        windowGroup restart
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1323
    ].
24
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
  1324
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1325
    "restore controller"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1326
    controller := myController
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1327
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1328
    "Modified: / 6.5.1999 / 09:50:13 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1329
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1330
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1331
removeFromCurrentProject
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1332
    "remove the receiver (a topview) from the current projects set-of-views.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1333
     (If there is a current project)"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1334
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1335
    |p|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1336
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1337
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1338
     the following check allows systems
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1339
     without projects and changeSets
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1340
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1341
    (Project notNil and:[(p := Project current) notNil]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1342
	p removeView:self
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1343
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1344
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1345
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1346
restarted
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1347
    "sent by my windowGroup, when restarted from an image.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1348
     Nothing done here, but can be redefined to perform any actions
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1349
     required to reset the application after an image-restart.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1350
     (for example: check if application files are still around, restart
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1351
     subprocesses etc.)."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1352
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1353
    application notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1354
	application restarted
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1355
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1356
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1357
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1358
!StandardSystemView methodsFor:'printing & storing'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1359
5233
fb88be5a3dea define #printOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 5086
diff changeset
  1360
printOn:aStream
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1361
    "just for your convenience in inspectors ...
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1362
     ... add the views label to the displayString."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1363
5233
fb88be5a3dea define #printOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 5086
diff changeset
  1364
    super printOn:aStream.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1365
    label notNil ifTrue:[
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1366
	aStream nextPut:$(.  label printOn:aStream. aStream nextPut:$).
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1367
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1368
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1369
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1370
!StandardSystemView methodsFor:'private'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1371
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1372
convertedIcon
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1373
    "make certain, that the icon is compatible with my device;
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1374
     this means converting it to a format (typically: monochrome) which
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1375
     the device supports. Return a compatible version of the icon."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1376
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1377
    ^ self graphicsDevice convertedIcon:icon
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1378
4814
4204263d3ab3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4812
diff changeset
  1379
    "Modified: / 30-10-2007 / 16:39:55 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1380
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1381
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1382
convertedIcon:iconArg
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1383
    "make certain, that the image argument is compatible with my device;
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1384
     this means converting it to a format (typically: monochrome) which
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1385
     the device supports. Return a compatible version of the icon."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1386
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1387
    ^ self graphicsDevice convertedIcon:iconArg
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1388
4814
4204263d3ab3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4812
diff changeset
  1389
    "Modified: / 30-10-2007 / 16:37:31 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1390
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1391
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1392
convertedIconMask:aMask
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1393
    "return a version of the argument which can be used as an iconMask
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1394
     on my device. Typically, this means conversion to a monochrome
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1395
     mask - future versions may add alpha channel masks, if the device supports
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1396
     them ..."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1397
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1398
    ^ self graphicsDevice convertedIconMask:aMask
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1399
4814
4204263d3ab3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4812
diff changeset
  1400
    "Modified: / 30-10-2007 / 16:38:58 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1401
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1402
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1403
setWindowGroupFromApplication
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1404
    "get the applications topView and set my windowGroup to its wg."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1405
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1406
    |win master|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1407
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1408
    windowGroup isNil ifTrue:[
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1409
	application notNil ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1410
	    (win := application window) notNil ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1411
		win ~~ self ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1412
		    windowGroup := win windowGroup.
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1413
		    ^ self
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1414
		].
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1415
		(master := application masterApplication) notNil ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1416
		    (win := master window) notNil ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1417
			windowGroup := win windowGroup.
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1418
			^ self
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1419
		    ].
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1420
		].
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1421
	    ]
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1422
	]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1423
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1424
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1425
    "Created: 22.9.1995 / 17:40:36 / claus"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1426
    "Modified: 6.3.1996 / 16:17:32 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1427
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1428
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1429
windowLabelFor:labelString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1430
    "return an expanded labelString, according to the hostName-in-window setting.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1431
     The labelString may include positional parameters:
6504
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1432
        %1 - the actual label
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1433
        %2 - the hostname
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1434
        %3 - the userName
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1435
        %4 - the processId
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1436
        %5 - the TOP-directories name
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1437
        %6 - the TOP-directories path
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1438
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1439
6504
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1440
    |wg proc id pidString lbl windowLabelFormat stxPackageDirectory topDirectory|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1441
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1442
    (IncludeHostNameInLabel == true
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1443
    and:[(windowLabelFormat := self class windowLabelFormat) notNil]) ifTrue:[
6504
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1444
        (wg := self windowGroup) notNil ifTrue:[
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1445
            (proc := wg process) notNil ifTrue:[
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1446
                (id := proc id) notNil ifTrue:[
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1447
                    pidString := id printString
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1448
                ]
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1449
            ]
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1450
        ].
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1451
        stxPackageDirectory := Smalltalk getPackageDirectoryForPackage:'stx'.
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1452
        stxPackageDirectory isNil ifTrue:[
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1453
            'StdSysView [info]: cannot figure out stx package directory.' infoPrintCR.
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1454
            stxPackageDirectory := OperatingSystem pathOfSTXExecutable asFilename.
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1455
        ].
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1456
        stxPackageDirectory isNil ifTrue:[
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1457
            topDirectory := OperatingSystem getHomeDirectory asFilename.
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1458
        ] ifFalse:[
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1459
            topDirectory := stxPackageDirectory directory.
6519
123f28fbb9a6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6504
diff changeset
  1460
            "/ a hack to make it look nicer on mac... (shows Packages otherwise)
123f28fbb9a6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6504
diff changeset
  1461
            topDirectory baseName = 'Packages' ifTrue:[
123f28fbb9a6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6504
diff changeset
  1462
                topDirectory := topDirectory directory
123f28fbb9a6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6504
diff changeset
  1463
            ].
6504
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1464
        ].
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1465
        lbl := windowLabelFormat
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1466
                bindWith:labelString
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1467
                with:[OperatingSystem getHostName]
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1468
                with:[OperatingSystem getLoginName]
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1469
                with:pidString
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1470
                with:[topDirectory baseName]
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1471
                with:[topDirectory pathName].
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1472
        ^ lbl
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1473
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1474
    ^ labelString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1475
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1476
    "Created: / 22-09-1997 / 10:10:32 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1477
    "Modified: / 22-08-2006 / 11:42:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1478
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1479
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1480
!StandardSystemView methodsFor:'queries'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1481
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1482
processName
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1483
    "return a string to be shown for my process in the
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1484
     process monitor. This has no semantic meaning, but exists
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1485
     for your convenience only."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1486
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1487
    application notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1488
	^ application processName
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1489
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1490
    label notNil ifTrue:[^ label].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1491
    ^ super processName
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1492
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1493
    "Modified: 24.4.1996 / 09:47:01 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1494
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1495
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1496
!StandardSystemView methodsFor:'realization'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1497
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1498
collapse
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1499
    "iconify the receiver"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1500
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1501
    shown ifTrue:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1502
        self unmap.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1503
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1504
        "if it was iconified, try to remap iconified"
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1505
        self graphicsDevice
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1506
            mapView:self id:self drawableId iconified:true
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1507
            atX:left y:top width:width height:height
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1508
            minExtent:minExtent maxExtent:maxExtent.
5086
0a18f82d02ec sending of visibility-change fixed
Claus Gittinger <cg@exept.de>
parents: 5066
diff changeset
  1509
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1510
        shown ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1511
            shown := false.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1512
            self changed:#visibility.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1513
        ].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1514
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1515
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1516
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1517
     |top|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1518
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1519
     top := StandardSystemView new.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1520
     top label:'hello'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1521
     top openAndWait.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1522
     Delay waitForSeconds:2.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1523
     top collapse.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1524
     Delay waitForSeconds:2.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1525
     top expand.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1526
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1527
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1528
    "Modified: 24.7.1997 / 12:32:17 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1529
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1530
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1531
create
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1532
    "create - make certain that icon is available"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1533
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1534
    super create.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1535
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1536
    iconView notNil ifTrue:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1537
        iconView create.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1538
        self graphicsDevice setWindowIconWindow:iconView in:self drawableId.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1539
        iconView setRealized:true.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1540
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1541
    iconLabel notNil ifTrue:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1542
        self graphicsDevice setIconName:iconLabel string in:self drawableId
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1543
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1544
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1545
    "Modified: 10.6.1996 / 20:14:50 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1546
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1547
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1548
expand
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1549
    "de-iconify the receiver at its old position"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1550
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1551
    shown ifFalse:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1552
        self unmap.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1553
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1554
        "if it was iconified, try to remap iconified"
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1555
        self graphicsDevice
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1556
            mapView:self id:self drawableId iconified:false
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1557
            atX:left y:top width:width height:height
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1558
            minExtent:minExtent maxExtent:maxExtent.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1559
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1560
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1561
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1562
     |top|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1563
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1564
     top := StandardSystemView new.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1565
     top label:'hello'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1566
     top openAndWait.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1567
     top collapse.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1568
     Delay waitForSeconds:5.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1569
     top expand.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1570
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1571
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1572
    "Modified: / 3.2.1998 / 16:02:56 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1573
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1574
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1575
physicalCreate
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1576
    "common code for create & recreate"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1577
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1578
    |dev lbl iconValue icn icnMask windowClassNameString org devBounds windowNameString|
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1579
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1580
    dev := self device.
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1581
5624
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1582
    UserPreferences current forceWindowsIntoMonitorBounds ifTrue:[
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1583
        "/ MULTI SCREEN support
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1584
        devBounds := dev monitorBoundsAt:( left @ top ).
5624
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1585
        "/ adjust origin, if too large
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1586
        left + width > devBounds right ifTrue:[
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1587
            left := devBounds right - width.
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1588
        ].
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1589
        top + height > devBounds bottom ifTrue:[
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1590
            top := devBounds bottom - height.
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1591
        ].
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1592
        top  := top  max:(devBounds top).
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1593
        left := left max:(devBounds left).
5532
b804c55e232f changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5418
diff changeset
  1594
    ].
b804c55e232f changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5418
diff changeset
  1595
6871
68df321513d2 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6870
diff changeset
  1596
    dev isWindowsPlatform ifTrue:[
68df321513d2 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6870
diff changeset
  1597
        top := top + dev captionHeight.
68df321513d2 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6870
diff changeset
  1598
    ].
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1599
    org := (left @ top) rounded.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1600
    lbl := self windowLabelFor:label.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1601
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1602
    icon notNil ifTrue:[
5624
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1603
        iconValue := icon value.
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1604
        icn := dev convertedIcon:iconValue.
5624
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1605
        (icnMask := iconValue mask) notNil ifTrue:[
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1606
            icnMask := dev convertedIconMask:icnMask
5624
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1607
        ].
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1608
        deviceIcon := icn.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1609
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1610
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1611
    "/ give global eventListeners a chance to intercept windowCreation
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1612
    "/ and provide another origin (by payching my origin via setOrigin:).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1613
    WindowSensor preViewCreateNotification:self.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1614
6283
03b901746708 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6278
diff changeset
  1615
    gc
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1616
      createWindowFor:self
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1617
      type:(self windowType)
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1618
      origin:org
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1619
      extent:(width @ height)
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1620
      minExtent:minExtent
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1621
      maxExtent:maxExtent
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1622
      borderWidth:0 "self borderWidth"
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1623
      subViewOf:nil
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1624
      style:(self windowStyle)
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1625
      inputOnly:(self isInputOnly)
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1626
      label:lbl
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1627
      owner:nil
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1628
      icon:icn iconMask:icnMask
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1629
      iconView:iconView.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1630
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1631
    "/ give global listeners a chance to track views
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1632
    WindowSensor postViewCreateNotification:self.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1633
5556
dc9e29cb26b4 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5537
diff changeset
  1634
    self originChangedFlag:false extentChangedFlag:false.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1635
5388
10a240c6365a changed:
Claus Gittinger <cg@exept.de>
parents: 5349
diff changeset
  1636
"/    (borderColor notNil and:[borderColor ~= Black]) ifTrue:[
10a240c6365a changed:
Claus Gittinger <cg@exept.de>
parents: 5349
diff changeset
  1637
"/        self setBorderColor
10a240c6365a changed:
Claus Gittinger <cg@exept.de>
parents: 5349
diff changeset
  1638
"/    ].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1639
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1640
"/  (viewGravity notNil "and:[viewGravity ~~ #NorthWest]") ifTrue:[
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1641
"/        super viewGravity:viewGravity
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1642
"/  ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1643
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1644
"/  (bitGravity notNil "and:[bitGravity ~~ #NorthWest]") ifTrue:[
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1645
"/      super bitGravity:bitGravity
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1646
"/  ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1647
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1648
    viewShape notNil ifTrue:[
5624
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1649
        self setViewShape
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1650
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1651
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1652
    (backed notNil and:[backed ~~ false]) ifTrue:[
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1653
        self backingStore:backed.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1654
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1655
    self saveUnder ifTrue:[
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1656
        self saveUnder:true.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1657
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1658
    cursor notNil ifTrue:[
5624
79cd17085999 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5613
diff changeset
  1659
        self setCursor
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1660
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1661
4807
62e7832829b7 icon conversion code moved to device
Claus Gittinger <cg@exept.de>
parents: 4800
diff changeset
  1662
    "Modified: / 14-06-1996 / 17:14:25 / stefan"
5975
3d74c7895143 ICCCM 2.0 Compliancy: correctly set NET_WM_CLASS and _NET_WM_PID properties
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5942
diff changeset
  1663
    "Modified: / 04-01-2013 / 16:13:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6871
68df321513d2 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6870
diff changeset
  1664
    "Modified: / 22-05-2015 / 21:09:35 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1665
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1666
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1667
postRealize
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1668
    "postRealize actions - tell the application (if any)."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1669
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1670
    super postRealize.
6245
d0c50dd22b30 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6228
diff changeset
  1671
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1672
    "/
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1673
    "/ let the application add its views to the current project
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1674
    "/
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1675
    application notNil ifTrue:[
6245
d0c50dd22b30 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6228
diff changeset
  1676
        application opened:self.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1677
    ] ifFalse:[
6245
d0c50dd22b30 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6228
diff changeset
  1678
        self addToCurrentProject.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1679
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1680
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1681
    "Created: 24.7.1997 / 18:11:26 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1682
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1683
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1684
preRealize
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1685
    "invoked right before the view is realized.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1686
     preRealize actions - tell the application (if any)."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1687
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1688
    super preRealize.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1689
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1690
    application notNil ifTrue:[
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1691
	application aboutToOpen:self.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1692
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1693
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1694
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1695
recreate
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1696
    "recreate the view after a snap-in or a migration"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1697
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1698
    super recreate.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1699
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1700
    iconView notNil ifTrue:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1701
        iconView recreate.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1702
        self graphicsDevice setWindowIconWindow:iconView in:self drawableId.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1703
        iconView setRealized:true.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1704
    ] ifFalse:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1705
        icon notNil ifTrue:[
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1706
            self icon:(self graphicsDevice convertedIcon:icon).
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1707
        ].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1708
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1709
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1710
    iconLabel notNil ifTrue:[
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1711
        self graphicsDevice setIconName:iconLabel in:self drawableId
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1712
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1713
4814
4204263d3ab3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4812
diff changeset
  1714
    "Modified: / 30-10-2007 / 16:39:42 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1715
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1716
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1717
!StandardSystemView class methodsFor:'documentation'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1718
6048
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1719
version
6871
68df321513d2 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6870
diff changeset
  1720
    ^ '$Header: /cvs/stx/stx/libview/StandardSystemView.st,v 1.233 2015-05-22 19:16:01 cg Exp $'
6048
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1721
!
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1722
5388
10a240c6365a changed:
Claus Gittinger <cg@exept.de>
parents: 5349
diff changeset
  1723
version_CVS
6871
68df321513d2 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6870
diff changeset
  1724
    ^ '$Header: /cvs/stx/stx/libview/StandardSystemView.st,v 1.233 2015-05-22 19:16:01 cg Exp $'
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1725
! !
3746
d9dccd3a4a41 beSlave: also try masterApp in setWGFromApplication
Claus Gittinger <cg@exept.de>
parents: 3706
diff changeset
  1726
6047
d8080f253e26 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 5975
diff changeset
  1727
1878
76e9bc8e1b9c new hostName in label format
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  1728
StandardSystemView initialize!