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