StandardSystemView.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 26 Nov 2016 21:09:32 +0000
branchjv
changeset 7719 c2f802dd340a
parent 7716 3dba89415c91
child 7856 7c52e7a9a087
permissions -rw-r--r--
XFT: Forbid XFT rendering on bitmaps (depth-1 pixmaps) In theory it could work if XFT would just turn gray into either black or white. But XFT doesn't do it and simply draw nothing without failing in any way. To prevent this silent failures, forbid drawing XFT onto bitmaps (depth-1 pixmaps). After all, the while point of XFT is to use anti-aliased fonts.
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"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   571
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   572
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   573
!StandardSystemView methodsFor:'accessing-behavior'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   574
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   575
bePartner
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   576
    "define me as a partner-View.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   577
     All partners within the applications windowGroup iconify/deiconify together."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   578
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   579
    self setWindowGroupFromApplication.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   580
    super bePartner.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   581
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   582
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   583
     see example in TopView>>bePartner
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   584
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   585
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   586
    "Created: 22.9.1995 / 17:40:15 / claus"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   587
    "Modified: 6.3.1996 / 16:16:42 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   588
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   589
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   590
beSlave
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   591
    "define me as a slave-View.
6122
3d48897de0c7 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6101
diff changeset
   592
     All slaves within the application's windowGroup iconify/deiconify with the masterView(s)
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   593
     (i.e. they follow their master(s))"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   594
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   595
    self setWindowGroupFromApplication.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   596
    super beSlave.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   597
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   598
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   599
     see example in TopView>>beSlave
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   600
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   601
6122
3d48897de0c7 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6101
diff changeset
   602
    "Created: / 22-09-1995 / 17:40:15 / claus"
3d48897de0c7 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6101
diff changeset
   603
    "Modified: / 06-03-1996 / 16:16:50 / cg"
3d48897de0c7 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6101
diff changeset
   604
    "Modified (comment): / 28-08-2013 / 21:27:46 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   605
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   606
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   607
sendWindowEvents:collectionOfEventSymbols
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   608
    "define the events that are to be forwarded to the application.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   609
     This is being implemented ..."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   610
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   611
    windowEventsForApplication := collectionOfEventSymbols
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   612
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   613
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   614
sizeFixed:aBoolean
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   615
    "this prevents the view from resizing itself when realized.
7668
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   616
     For normal topViews, this is void, since they don't do this anyway.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   617
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   618
     However, modalBoxes (especially: DialogBoxes) typically resize themselfes
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   619
     to the preferredExtent of their components. In some cases, this behavior is
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   620
     not desired and it should be turned off by setting sizeFixed to true.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   621
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   622
     To avoid confusion:
7668
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   623
        This does NOT prevent the window manager from resizing the view,
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   624
        instead it tells the view to NOT resize ITSELF."
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   625
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   626
    sizeFixed := aBoolean.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   627
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   628
    "example: dialog which resizes itself on #open:
7668
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   629
              (thereby ignoring the 200@200 extent)
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   630
7668
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   631
        |dialog|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   632
7668
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   633
        dialog := Dialog new.
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   634
        dialog addInputFieldOn:'' asValue.
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   635
        dialog addOkButton.
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   636
        dialog extent:200@200.
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   637
        dialog open.
625
4d8f6dc3af75 commentary & category changes
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
   638
4d8f6dc3af75 commentary & category changes
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
   639
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   640
    using sizeFixed:
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   641
7668
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   642
        |dialog|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   643
7668
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   644
        dialog := Dialog new.
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   645
        dialog addInputFieldOn:'' asValue.
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   646
        dialog addOkButton.
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   647
        dialog extent:200@200; sizeFixed:true.
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   648
        dialog open.
625
4d8f6dc3af75 commentary & category changes
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
   649
4d8f6dc3af75 commentary & category changes
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
   650
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   651
    using openWithExtent (also sets sizeFixed):
625
4d8f6dc3af75 commentary & category changes
Claus Gittinger <cg@exept.de>
parents: 621
diff changeset
   652
7668
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   653
        |dialog|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   654
7668
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   655
        dialog := Dialog new.
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   656
        dialog addInputFieldOn:'' asValue.
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   657
        dialog addOkButton.
7d36ebfb49c9 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7587
diff changeset
   658
        dialog openWithExtent:200@200.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   659
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   660
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   661
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   662
!StandardSystemView methodsFor:'accessing-channels'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   663
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   664
labelChannel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   665
    "return the labelChannel - or nil"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   666
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   667
    ^ labelChannel.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   668
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   669
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   670
labelChannel:aValueHolder
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   671
    "set the labelChannel - a valueHolder holding a string
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   672
     which is shown as title bar"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   673
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   674
    |prev|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   675
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   676
    prev := labelChannel.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   677
    labelChannel := aValueHolder.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   678
    self setupChannel:aValueHolder for:nil withOld:prev.
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-dimensions'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   682
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   683
maxExtent
7693
8616988317db #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7668
diff changeset
   684
    "return the view's maximum allowed extent"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   685
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   686
    ^ maxExtent
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
maxExtent:max
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   690
    "define the maximum extent the view may have -
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   691
     depends on good-will of window manager"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   692
7080
1de9e5119a28 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 6871
diff changeset
   693
    |id|
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   694
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   695
    maxExtent ~= max ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   696
	maxExtent := max.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   697
	maxExtent x isNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   698
	    maxExtent := 99999 @ maxExtent y.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   699
	].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   700
	maxExtent y isNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   701
	    maxExtent := maxExtent x @ 99999.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   702
	].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   703
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   704
	(id := self drawableId) notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   705
	    device setWindowMinExtent:nil maxExtent:max in:id
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   706
	].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   707
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   708
	"/ if my current extent is larger than the new
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   709
	"/ maxExtent, adjust.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   710
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   711
	(width notNil and:[height notNil]) ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   712
	    ((width > (max x)) or:
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   713
	     [height > (max y)]) ifTrue: [
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   714
		self extent:(max min:self extent)
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   715
	    ]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   716
	]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   717
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   718
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   719
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   720
minExtent
7693
8616988317db #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7668
diff changeset
   721
    "return the view's minimum allowed extent"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   722
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   723
    ^ minExtent
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   724
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   725
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   726
minExtent:min
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   727
    "define the minimum extent the view may have -
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   728
     depends on good-will of window manager"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   729
7080
1de9e5119a28 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 6871
diff changeset
   730
    |id|
1de9e5119a28 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 6871
diff changeset
   731
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   732
    minExtent ~= min ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   733
	minExtent := min.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   734
	(id := self drawableId) notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   735
	    device setWindowMinExtent:min maxExtent:nil in:id
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   736
	].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   737
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   738
	"/ if my current extent is smaller than the new
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   739
	"/ minExtent, adjust.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   740
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   741
	(width notNil and:[height notNil]) ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   742
	    ((width < (min x)) or:
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   743
	     [height < (min y)]) ifTrue: [
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   744
		self extent:(min max:self extent)
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   745
	    ]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   746
	]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   747
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   748
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   749
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   750
!StandardSystemView methodsFor:'accessing-look'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   751
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   752
icon
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   753
    "return the form defined as icon"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   754
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   755
    ^ icon value
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   756
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   757
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   758
icon:aFormOrImage
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   759
    "define the form or image (bitmap) used as icon"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   760
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   761
    |i m iconValue|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   762
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   763
    icon := aFormOrImage.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   764
    iconValue := icon value.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   765
    iconValue notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   766
	self drawableId notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   767
	    i := device convertedIcon:iconValue.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   768
	    (i notNil and:[i id notNil]) ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   769
		(m := iconValue mask) notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   770
		    m := device convertedIconMask:m.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   771
		].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   772
		device setWindowIcon:i mask:m in:self drawableId
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   773
	    ]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   774
	]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   775
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   776
4814
4204263d3ab3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4812
diff changeset
   777
    "Modified: / 30-10-2007 / 16:39:15 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   778
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   779
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   780
iconLabel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   781
    "return the name displayed in the icon"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   782
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   783
    ^ iconLabel
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   784
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   785
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   786
iconLabel:aString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   787
    "define the name to be displayed in the icon"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   788
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   789
    |newLabel|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   790
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   791
    (newLabel := aString string) ~= iconLabel ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   792
	iconLabel := newLabel.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   793
	self drawableId notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   794
	    device setIconName:newLabel in:self drawableId.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   795
	    "
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   796
	     unbuffered - to make it visible right NOW
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   797
	    "
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   798
	    self flush.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   799
	]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   800
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   801
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   802
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   803
iconMask
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   804
    "return the form defined as iconMask.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   805
     Notice, that many windowManagers ignore this mask
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   806
     (usually, only managers which place icons on the background desktop
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   807
      care for an icon - if at all ...)"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   808
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   809
    |mask|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   810
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   811
    "/ only images possibly have iconMasks
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   812
    icon notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   813
	(mask := icon value mask) notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   814
	    ^ device convertedIconMask:mask
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   815
	]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   816
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   817
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   818
    ^ nil
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   819
4815
77b9f37c9e10 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4814
diff changeset
   820
    "Modified: / 30-10-2007 / 20:59:40 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   821
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   822
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   823
iconName:aString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   824
    "this method will vanish soon ... - for backward compatibility"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   825
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   826
    <resource:#obsolete>
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   827
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   828
    self obsoleteMethodWarning:'use #iconLabel:'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   829
    self iconLabel:aString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   830
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   831
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   832
iconView
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   833
    "return the view used as icon-view"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   834
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   835
    ^ iconView
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   836
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   837
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   838
iconView:aView
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   839
    "specify the view to be used as icon.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   840
     This may not be supported on all display types"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   841
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   842
    iconView := aView.
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
   843
    self drawableId notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   844
	aView create.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   845
	device setWindowIconWindow:aView in:self drawableId.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   846
	aView setRealized:true.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   847
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   848
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   849
    "Modified: 4.4.1997 / 16:21:37 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   850
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   851
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   852
label
7693
8616988317db #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7668
diff changeset
   853
    "return the view's name in the title area"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   854
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   855
    ^ label
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   856
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   857
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   858
label:aString
6245
d0c50dd22b30 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6228
diff changeset
   859
    "define the view's name in the window's title area.
d0c50dd22b30 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6228
diff changeset
   860
     If IncludeHostNameInLabel is true, prepend the hostname - now done in windowLabelFor:
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   861
     (you will appreciate this, if you are working on multiple
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   862
      machines simultaneously - as I do ...)"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   863
5066
c166f0bf72ed *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5039
diff changeset
   864
    |newLabel expandedLabel|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   865
4633
53643adff205 care for nil label-arg
Claus Gittinger <cg@exept.de>
parents: 4566
diff changeset
   866
    newLabel := aString.
53643adff205 care for nil label-arg
Claus Gittinger <cg@exept.de>
parents: 4566
diff changeset
   867
    newLabel notNil ifTrue:[newLabel := newLabel string].
53643adff205 care for nil label-arg
Claus Gittinger <cg@exept.de>
parents: 4566
diff changeset
   868
    newLabel ~= label ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   869
	label := newLabel.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   870
	"/ 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
   871
	self drawableId notNil "realized" ifTrue: [
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   872
	    expandedLabel := self windowLabelFor:label.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   873
	    self windowName:(expandedLabel ? '').
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   874
	    shown ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   875
		"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   876
		 unbuffered - to make it visible right NOW
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   877
		"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   878
		self flush.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   879
	    ]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   880
	]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   881
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   882
4633
53643adff205 care for nil label-arg
Claus Gittinger <cg@exept.de>
parents: 4566
diff changeset
   883
    "Created: / 08-09-1995 / 19:37:06 / claus"
53643adff205 care for nil label-arg
Claus Gittinger <cg@exept.de>
parents: 4566
diff changeset
   884
    "Modified: / 06-10-2006 / 11:55:06 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   885
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   886
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   887
label:labelString iconLabel:iconLabelString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   888
    "set both the label and the iconLabel"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   889
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   890
    self label:labelString.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   891
    self iconLabel:iconLabelString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   892
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   893
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   894
!StandardSystemView methodsFor:'change & update'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   895
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   896
update:something with:aParameter from:changedObject
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   897
    "the MVC way of changing the label ..."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   898
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   899
    changedObject notNil ifTrue:[
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   900
	changedObject == labelChannel ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   901
	    self label:labelChannel value.
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   902
	    ^ self
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   903
	].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   904
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   905
    ^ super update:something with:aParameter from:changedObject
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   906
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   907
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   908
!StandardSystemView methodsFor:'destroying'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   909
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   910
release
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   911
    self removeFromCurrentProject.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   912
    labelChannel notNil ifTrue:[
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   913
	labelChannel removeDependent:self.
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   914
	labelChannel := nil.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   915
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   916
    windowGroup notNil ifTrue:[
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   917
	windowGroup focusSequence:nil.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   918
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   919
    super release.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   920
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   921
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   922
saveAndTerminate
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
   923
    "save & terminate request from the windowManager. The application should
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   924
     save its data/files/text etc. somehow and close.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   925
     If there is an application, let it decide how do do that.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   926
     Otherwise, forward it to superclasses which knows how to do this.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   927
     (it defaults to a terminate there).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   928
     Notice, that not all windowmanagers are nice enough
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   929
     to send this request; some simply distroy the view."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   930
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   931
    application notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   932
	application saveAndTerminateRequestFor:self
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   933
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   934
	super saveAndTerminate
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   935
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   936
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   937
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   938
terminate
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   939
    "terminate request from the windowManager. If there is an application,
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   940
     let it decide if it really wants to be close. Otherwise, forward it to
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   941
     superclasses terminate which knows how to do this.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   942
     Notice, that not all windowmanagers are nice enough
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   943
     to send this request; some simply distroy the view."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   944
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   945
    application notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   946
	application closeRequestFor:self
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   947
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   948
	self closeRequest.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   949
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   950
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   951
    "Modified: / 3.8.1998 / 19:49:45 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   952
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   953
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   954
!StandardSystemView methodsFor:'event handling'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   955
6646
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
   956
delayedAutoRaiseEvent
6048
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
   957
    "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
   958
     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
   959
     - 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
   960
     method"
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
   961
6073
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   962
    |wg app|
6049
9e2da07eefa9 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6048
diff changeset
   963
6071
536027b2080b class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6049
diff changeset
   964
    "/ not, if my windowGroup is in a modal or popup action
6073
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   965
    ((wg := self windowGroup) notNil
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   966
    and:[ wg isInModalLoop not
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   967
    and:[ wg mainGroup isInModalLoop not
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
   968
    and:[ self isModal not ]]]) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   969
	self sensor anyButtonPressed ifFalse:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   970
	    "/ if I have an application, let it decide
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   971
	    (app := self application) notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   972
		app delayedAutoRaiseEventFor:self
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   973
	    ] ifFalse:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   974
		self raise.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   975
	    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   976
	]
6071
536027b2080b class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6049
diff changeset
   977
    ]
6048
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
   978
!
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
   979
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   980
focusIn
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   981
    "the view got the keyboard focus (via the window manager).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   982
     I.e. the mouse was moved out into the topView area - restore the
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   983
     focus to the previous focusView.."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   984
6721
63e784a23e49 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6646
diff changeset
   985
    |viewToGetFocus viewUnderMousePointer ms|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   986
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
   987
    windowGroup notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   988
	"/ a hack for window managers, which do not honor the
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   989
	"/ WMTransientFor attribute (i.e. XQuartz).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   990
	"/ This flag would prevent a popup (dialog or notification) from being
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   991
	"/ 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
   992
	"/ 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
   993
	"/ 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
   994
	"/ 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
   995
	"/ 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
   996
	"/ 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
   997
	"/ then click on the underlying codeView, to raise it.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   998
	"/ if the smallLint view can be covered, your WM is broken.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
   999
	"/ 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
  1000
	"/ 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
  1001
	"/ windowGroup topViews first raise.
6772
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1002
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1003
	"/ I got the focus - tell the current focus-windowgroup
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1004
	"/ that its focus is gone elsewhere ...
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1005
	"/ 'focusIn ' print. windowGroup process name printCR.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1006
	"/ 'focusView is ' print. windowGroup focusView printCR.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1007
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1008
	"/ although the foucs has usually already been taken (see focusOut),
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1009
	"/ there are situations where this does not happen;
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1010
	"/ 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
  1011
	"/ 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
  1012
	"/ at the time the focus event arrives.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1013
	"/ Anyway: it should not matter to take it again...
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1014
	WindowGroup takeFocusFromDevice:device.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1015
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1016
	windowGroup isInModalLoop ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1017
	    windowGroup allTopViewsDo:[:t |
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1018
		t ~~ self ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1019
		    t focusIn.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1020
		    t raise.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1021
		    ^ self.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1022
		].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1023
	    ]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1024
	].
6772
3a5a27e20524 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6741
diff changeset
  1025
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1026
	"/ Transcript show:self; show:' focus in '; showCR:windowGroup isInModalLoop.
6646
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1027
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1028
	viewToGetFocus := windowGroup focusView.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1029
	viewToGetFocus isNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1030
	    UserPreferences current focusFollowsMouse ~~ false ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1031
		viewUnderMousePointer := windowGroup pointerView.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1032
		"/ 'viewUnderMousePointer is ' print. viewUnderMousePointer printCR.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1033
		(viewUnderMousePointer notNil
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1034
		and:[viewUnderMousePointer isKeyboardConsumer
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1035
		and:[viewUnderMousePointer wantsFocusWithPointerEnter]]) ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1036
		    viewToGetFocus := viewUnderMousePointer.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1037
		]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1038
	    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1039
	].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1040
	viewToGetFocus isNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1041
	    windowGroup focusBackToPreviousFocusView.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1042
	    windowGroup focusView isNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1043
		self assignInitialKeyboardFocus.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1044
	    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1045
	] ifFalse:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1046
	    "/ v requestFocus.  - will be denied; but we must force it here
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1047
	    "/ to force a change...
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1048
	    windowGroup setFocusView:nil.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1049
	    windowGroup focusView:viewToGetFocus byTab:nil.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1050
	].
6047
d8080f253e26 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 5975
diff changeset
  1051
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1052
	"/ optionally bring the window to the front after some delay.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1053
	"/ 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
  1054
	(ms := UserPreferences current autoRaiseOnFocusInDelay) notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1055
	    self scheduleAutoRaiseAfter:ms
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1056
	].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1057
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1058
    super focusIn
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1059
5675
51d438d3033c changed: #focusIn
Claus Gittinger <cg@exept.de>
parents: 5659
diff changeset
  1060
    "Modified: / 20-01-2011 / 20:51:20 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1061
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1062
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1063
focusOut
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1064
    "the top-view lost the keyboard focus (via the window manager).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1065
     I.e. the mouse was moved out of the topView area."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1066
6787
7b75289ce8f8 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6775
diff changeset
  1067
    |v wg|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1068
6148
6ba6f49e0a8d class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6122
diff changeset
  1069
    "/ 'fout ' print. self printCR.
6ba6f49e0a8d class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6122
diff changeset
  1070
6787
7b75289ce8f8 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6775
diff changeset
  1071
    (wg := windowGroup) notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1072
	"/ '  fout-focusView: ' print. windowGroup focusView printCR.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1073
	(v := wg focusView) notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1074
	    "/ wg focusView:nil.  "/ -- let windowGroup do it.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1075
	    v showNoFocus:(windowGroup explicitFocusView == v).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1076
	    "/ '  send-has-nofocus to: ' print. v printCR.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1077
	    v hasKeyboardFocus:false.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1078
	]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1079
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1080
    super focusOut
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1081
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1082
    "Modified: 25.2.1997 / 23:19:46 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1083
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1084
6100
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1085
processShortcut:aKeyEvent
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1086
    "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
  1087
     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
  1088
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1089
    application notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1090
	(application processShortcut:aKeyEvent) ifTrue:[ ^ true ]
6101
ea437d17677d Fix in StandardSystemView>>#processShortcut:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6100
diff changeset
  1091
    ].
ea437d17677d Fix in StandardSystemView>>#processShortcut:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6100
diff changeset
  1092
    ^super processShortcut:aKeyEvent
6100
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1093
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1094
    "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
  1095
    "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
  1096
!
409e2909e130 Added StandardSystemView>>#processShortcut: to allow per-application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6079
diff changeset
  1097
6073
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1098
scheduleAutoRaiseAfter:ms
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1099
    "bring the window to the front after some delay.
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1100
     but not, if my windowGroup is in a modal or popup action"
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1101
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1102
    |wg actionID|
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1103
6646
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1104
    (wg := self windowGroup) isNil ifTrue:[^ self].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1105
    wg isInModalLoop ifTrue:[^ self].
6646
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1106
    wg mainGroup isInModalLoop ifTrue:[^ self].
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1107
    "/ self isModal ifTrue:[^ self].
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1108
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1109
    TimedRaiseAction notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1110
	Processor removeTimeoutWithID:TimedRaiseAction.
6646
7eb10d85e589 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6519
diff changeset
  1111
    ].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1112
    TimedRaiseAction := actionID := Processor
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1113
			    addTimedBlock:
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1114
				[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1115
				    TimedRaiseAction == actionID ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1116
					TimedRaiseAction := nil.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1117
					self sensor pushUserEvent: #delayedAutoRaiseEvent for: self
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1118
				    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1119
				]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1120
			    afterMilliseconds:ms.
6073
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1121
!
2983eb433ed6 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6071
diff changeset
  1122
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1123
showActivity:someMessage
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1124
    "some activityNotification shalt be communicated to
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1125
     the user. Forward it to my application (if any).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1126
     (that one should know how to deal with it).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1127
     Otherwise, simply ignore it."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1128
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1129
    application notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1130
	application showActivity:someMessage
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1131
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1132
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1133
    "Created: 16.12.1995 / 18:40:44 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1134
    "Modified: 23.4.1996 / 21:38:11 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1135
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1136
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1137
!StandardSystemView methodsFor:'initialization & release'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1138
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1139
addToCurrentProject
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1140
    "add the receiver (a topview) to the current projects set-of-views.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1141
     (If there is a current project)"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1142
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1143
    |p|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1144
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1145
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1146
     the following check allows systems
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1147
     without projects and changeSets
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1148
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1149
    (Project notNil and:[(p := Project current) notNil]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1150
	p addView: self
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1151
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1152
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1153
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1154
defaultControllerClass
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1155
    "for ST-80 compatibility only - not used in ST/X"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1156
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1157
    ^ nil "/ StandardSystemController
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1158
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1159
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1160
initEvents
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1161
    super initEvents.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1162
    self enableFocusEvents.
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
initialize
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1166
    super initialize.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1167
5388
10a240c6365a changed:
Claus Gittinger <cg@exept.de>
parents: 5349
diff changeset
  1168
    "/ self setBorderWidth:2.         "- notice: many window managers ignore this"
7263
9036d75c2799 device access
Claus Gittinger <cg@exept.de>
parents: 7140
diff changeset
  1169
    device isWindowsPlatform ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1170
	minExtent := 0 @ 0.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1171
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1172
	minExtent := 10 @ 10.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1173
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1174
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1175
    label isNil ifTrue:[label := self class defaultLabel].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1176
    icon isNil ifTrue:[icon := self class defaultIcon].
5942
e9fa762f18a3 changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 5771
diff changeset
  1177
    sizeFixed := false.
e9fa762f18a3 changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 5771
diff changeset
  1178
e9fa762f18a3 changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 5771
diff changeset
  1179
    "Modified: / 27-10-2012 / 12:16:39 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1180
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1181
5659
0c6fa789e7f0 oops - mapping
Claus Gittinger <cg@exept.de>
parents: 5624
diff changeset
  1182
mapped
0c6fa789e7f0 oops - mapping
Claus Gittinger <cg@exept.de>
parents: 5624
diff changeset
  1183
    super mapped.
7263
9036d75c2799 device access
Claus Gittinger <cg@exept.de>
parents: 7140
diff changeset
  1184
    device isWindowsPlatform ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1185
	"don't do this in X11 - switching between
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1186
	 virtual desktops would change the window stacking all the time"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1187
	self setForegroundWindow.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1188
	self activate.
5743
112d5f35a625 changed: #mapped
Stefan Vogel <sv@exept.de>
parents: 5735
diff changeset
  1189
    ].
5659
0c6fa789e7f0 oops - mapping
Claus Gittinger <cg@exept.de>
parents: 5624
diff changeset
  1190
0c6fa789e7f0 oops - mapping
Claus Gittinger <cg@exept.de>
parents: 5624
diff changeset
  1191
    "Created: / 01-12-2010 / 15:57:22 / cg"
0c6fa789e7f0 oops - mapping
Claus Gittinger <cg@exept.de>
parents: 5624
diff changeset
  1192
!
0c6fa789e7f0 oops - mapping
Claus Gittinger <cg@exept.de>
parents: 5624
diff changeset
  1193
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1194
reAdjustGeometry
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1195
    "sent as a final step when an image is restarted.
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1196
     when we come up on a smaller display,
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1197
     make certain, that the receiver is visible"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1198
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1199
    |dX dY limitRight limitBottom graphicsDevice|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1200
7263
9036d75c2799 device access
Claus Gittinger <cg@exept.de>
parents: 7140
diff changeset
  1201
    graphicsDevice := device.
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1202
    dX := (graphicsDevice horizontalPixelPerMillimeter * 20) rounded.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1203
    dY := (graphicsDevice verticalPixelPerMillimeter * 20) rounded.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1204
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1205
    limitRight := graphicsDevice usableWidth - dX.
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1206
    limitBottom := graphicsDevice usableHeight - dY.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1207
    ((self left > limitRight) or:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1208
      self top > limitBottom]) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1209
	'StandardSystemView [info]: moving view into visible area' infoPrintCR.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1210
	self origin:limitRight @ limitBottom
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1211
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1212
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1213
    "Modified: 10.1.1997 / 15:12:19 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1214
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1215
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1216
reinitialize
7562
217cc7ec5656 #OTHER by mawalch
mawalch
parents: 7416
diff changeset
  1217
    "reopen the receiver if it was visible before.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1218
     This is called right after snapIn; Notice, that all instance variables
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1219
     (such as shown, realized etc.) are left-overs from the time the snapout
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1220
     was done. Remap the receiver, if it was mapped at snapout time"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1221
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1222
    |myController|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1223
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1224
    "if I have already been reinited - return"
6278
0d9ffed76629 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6248
diff changeset
  1225
    self drawableId notNil ifTrue:[
7562
217cc7ec5656 #OTHER by mawalch
mawalch
parents: 7416
diff changeset
  1226
        ^ self
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1227
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1228
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1229
    "have to kludge with the controller
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1230
     - otherwise its startup performs unwanted actions ..."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1231
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1232
    myController := controller.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1233
    controller := nil.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1234
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1235
    "physically create the view & subviews"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1236
    self recreate.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1237
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1238
    "if I was iconified (not realized), remap iconified"
7263
9036d75c2799 device access
Claus Gittinger <cg@exept.de>
parents: 7140
diff changeset
  1239
    device
7562
217cc7ec5656 #OTHER by mawalch
mawalch
parents: 7416
diff changeset
  1240
        mapView:self id:self drawableId iconified:(realized "shown" not)
217cc7ec5656 #OTHER by mawalch
mawalch
parents: 7416
diff changeset
  1241
        atX:left y:top width:width height:height
217cc7ec5656 #OTHER by mawalch
mawalch
parents: 7416
diff changeset
  1242
        minExtent:minExtent maxExtent:maxExtent.
24
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
  1243
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1244
    "and restart the window-group process"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1245
    windowGroup notNil ifTrue:[
7562
217cc7ec5656 #OTHER by mawalch
mawalch
parents: 7416
diff changeset
  1246
        windowGroup restart
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1247
    ].
24
e810b1be068b *** empty log message ***
claus
parents: 21
diff changeset
  1248
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1249
    "restore controller"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1250
    controller := myController
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1251
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1252
    "Modified: / 6.5.1999 / 09:50:13 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1253
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1254
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1255
removeFromCurrentProject
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1256
    "remove the receiver (a topview) from the current projects set-of-views.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1257
     (If there is a current project)"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1258
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1259
    |p|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1260
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1261
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1262
     the following check allows systems
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1263
     without projects and changeSets
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1264
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1265
    (Project notNil and:[(p := Project current) notNil]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1266
	p removeView:self
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1267
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1268
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1269
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1270
restarted
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1271
    "sent by my windowGroup, when restarted from an image.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1272
     Nothing done here, but can be redefined to perform any actions
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1273
     required to reset the application after an image-restart.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1274
     (for example: check if application files are still around, restart
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1275
     subprocesses etc.)."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1276
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1277
    application notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1278
	application restarted
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
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1282
!StandardSystemView methodsFor:'printing & storing'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1283
5233
fb88be5a3dea define #printOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 5086
diff changeset
  1284
printOn:aStream
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1285
    "just for your convenience in inspectors ...
7693
8616988317db #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7668
diff changeset
  1286
     ... add the view's label to the displayString."
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1287
5233
fb88be5a3dea define #printOn: instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 5086
diff changeset
  1288
    super printOn:aStream.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1289
    label notNil ifTrue:[
7693
8616988317db #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7668
diff changeset
  1290
        aStream nextPut:$(.  label printOn:aStream. aStream nextPut:$).
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1291
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1292
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1293
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1294
!StandardSystemView methodsFor:'private'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1295
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1296
convertedIcon
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1297
    "make certain, that the icon is compatible with my device;
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1298
     this means converting it to a format (typically: monochrome) which
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1299
     the device supports. Return a compatible version of the icon."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1300
7263
9036d75c2799 device access
Claus Gittinger <cg@exept.de>
parents: 7140
diff changeset
  1301
    ^ device convertedIcon:icon
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1302
4814
4204263d3ab3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4812
diff changeset
  1303
    "Modified: / 30-10-2007 / 16:39:55 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1304
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1305
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1306
convertedIcon:iconArg
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1307
    "make certain, that the image argument is compatible with my device;
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1308
     this means converting it to a format (typically: monochrome) which
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1309
     the device supports. Return a compatible version of the icon."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1310
7263
9036d75c2799 device access
Claus Gittinger <cg@exept.de>
parents: 7140
diff changeset
  1311
    ^ device convertedIcon:iconArg
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1312
4814
4204263d3ab3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4812
diff changeset
  1313
    "Modified: / 30-10-2007 / 16:37:31 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1314
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1315
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1316
convertedIconMask:aMask
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1317
    "return a version of the argument which can be used as an iconMask
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1318
     on my device. Typically, this means conversion to a monochrome
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1319
     mask - future versions may add alpha channel masks, if the device supports
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1320
     them ..."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1321
7263
9036d75c2799 device access
Claus Gittinger <cg@exept.de>
parents: 7140
diff changeset
  1322
    ^ device convertedIconMask:aMask
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1323
4814
4204263d3ab3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4812
diff changeset
  1324
    "Modified: / 30-10-2007 / 16:38:58 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1325
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1326
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1327
setWindowGroupFromApplication
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1328
    "get the applications topView and set my windowGroup to its wg."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1329
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1330
    |win master|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1331
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1332
    windowGroup isNil ifTrue:[
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1333
	application notNil ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1334
	    (win := application window) notNil ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1335
		win ~~ self ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1336
		    windowGroup := win windowGroup.
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1337
		    ^ self
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1338
		].
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1339
		(master := application masterApplication) notNil ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1340
		    (win := master window) notNil ifTrue:[
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1341
			windowGroup := win windowGroup.
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1342
			^ self
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1343
		    ].
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1344
		].
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1345
	    ]
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1346
	]
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1347
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1348
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1349
    "Created: 22.9.1995 / 17:40:36 / claus"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1350
    "Modified: 6.3.1996 / 16:17:32 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1351
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1352
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1353
windowLabelFor:labelString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1354
    "return an expanded labelString, according to the hostName-in-window setting.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1355
     The labelString may include positional parameters:
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1356
	%1 - the actual label
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1357
	%2 - the hostname
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1358
	%3 - the userName
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1359
	%4 - the processId
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1360
	%5 - the TOP-directories name
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1361
	%6 - the TOP-directories path
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1362
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1363
6504
c5f5b4ae8195 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6480
diff changeset
  1364
    |wg proc id pidString lbl windowLabelFormat stxPackageDirectory topDirectory|
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1365
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1366
    (IncludeHostNameInLabel == true
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1367
    and:[(windowLabelFormat := self class windowLabelFormat) notNil]) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1368
	(wg := self windowGroup) notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1369
	    (proc := wg process) notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1370
		(id := proc id) notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1371
		    pidString := id printString
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1372
		]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1373
	    ]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1374
	].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1375
	stxPackageDirectory := Smalltalk getPackageDirectoryForPackage:'stx'.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1376
	stxPackageDirectory isNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1377
	    'StdSysView [info]: cannot figure out stx package directory.' infoPrintCR.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1378
	    stxPackageDirectory := OperatingSystem pathOfSTXExecutable asFilename.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1379
	].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1380
	stxPackageDirectory isNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1381
	    topDirectory := OperatingSystem getHomeDirectory asFilename.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1382
	] ifFalse:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1383
	    topDirectory := stxPackageDirectory directory.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1384
	    "/ 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
  1385
	    topDirectory baseName = 'Packages' ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1386
		topDirectory := topDirectory directory
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1387
	    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1388
	].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1389
	lbl := windowLabelFormat
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1390
		bindWith:labelString
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1391
		with:[OperatingSystem getHostName]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1392
		with:[OperatingSystem getLoginName]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1393
		with:pidString
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1394
		with:[topDirectory baseName]
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1395
		with:[topDirectory pathName].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1396
	^ lbl
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1397
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1398
    ^ labelString
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1399
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1400
    "Created: / 22-09-1997 / 10:10:32 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1401
    "Modified: / 22-08-2006 / 11:42:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1402
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1403
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1404
!StandardSystemView methodsFor:'queries'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1405
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1406
processName
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1407
    "return a string to be shown for my process in the
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1408
     process monitor. This has no semantic meaning, but exists
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1409
     for your convenience only."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1410
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1411
    application notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1412
	^ application processName
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1413
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1414
    label notNil ifTrue:[^ label].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1415
    ^ super processName
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1416
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1417
    "Modified: 24.4.1996 / 09:47:01 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1418
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1419
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1420
!StandardSystemView methodsFor:'realization'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1421
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1422
collapse
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1423
    "iconify the receiver"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1424
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1425
    shown ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1426
	self unmap.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1427
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1428
	"if it was iconified, try to remap iconified"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1429
	device
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1430
	    mapView:self id:self drawableId iconified:true
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1431
	    atX:left y:top width:width height:height
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1432
	    minExtent:minExtent maxExtent:maxExtent.
5086
0a18f82d02ec sending of visibility-change fixed
Claus Gittinger <cg@exept.de>
parents: 5066
diff changeset
  1433
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1434
	shown ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1435
	    shown := false.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1436
	    dependents notNil ifTrue:[ self changed:#visibility ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1437
	].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1438
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1439
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1440
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1441
     |top|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1442
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1443
     top := StandardSystemView new.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1444
     top label:'hello'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1445
     top openAndWait.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1446
     Delay waitForSeconds:2.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1447
     top collapse.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1448
     Delay waitForSeconds:2.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1449
     top expand.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1450
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1451
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1452
    "Modified: 24.7.1997 / 12:32:17 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1453
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1454
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1455
create
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1456
    "create - make certain that icon is available"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1457
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1458
    super create.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1459
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1460
    iconView notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1461
	iconView create.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1462
	device setWindowIconWindow:iconView in:self drawableId.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1463
	iconView setRealized:true.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1464
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1465
    iconLabel notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1466
	device setIconName:iconLabel string in:self drawableId
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1467
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1468
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1469
    "Modified: 10.6.1996 / 20:14:50 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1470
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1471
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1472
expand
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1473
    "de-iconify the receiver at its old position"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1474
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1475
    shown ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1476
	self unmap.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1477
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1478
	"if it was iconified, try to remap non-iconified"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1479
	device
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1480
	    mapView:self id:self drawableId iconified:false
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1481
	    atX:left y:top width:width height:height
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1482
	    minExtent:minExtent maxExtent:maxExtent.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1483
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1484
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1485
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1486
     |top|
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1487
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1488
     top := StandardSystemView new.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1489
     top label:'hello'.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1490
     top openAndWait.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1491
     top collapse.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1492
     Delay waitForSeconds:5.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1493
     top expand.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1494
    "
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1495
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1496
    "Modified: / 3.2.1998 / 16:02:56 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1497
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1498
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1499
physicalCreate
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1500
    "common code for create & recreate"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1501
7263
9036d75c2799 device access
Claus Gittinger <cg@exept.de>
parents: 7140
diff changeset
  1502
    |dev currentUserPrefs lbl iconValue icn icnMask windowClassNameString org devBounds windowNameString|
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1503
7263
9036d75c2799 device access
Claus Gittinger <cg@exept.de>
parents: 7140
diff changeset
  1504
    dev := device.
9036d75c2799 device access
Claus Gittinger <cg@exept.de>
parents: 7140
diff changeset
  1505
    currentUserPrefs := UserPreferences current.
9036d75c2799 device access
Claus Gittinger <cg@exept.de>
parents: 7140
diff changeset
  1506
    currentUserPrefs forceWindowsIntoMonitorBounds ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1507
	"/ MULTI SCREEN support
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1508
	devBounds := dev monitorBoundsAt:( left @ top ).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1509
	"/ adjust origin, if too large
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1510
	left + width > devBounds right ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1511
	    left := devBounds right - width.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1512
	].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1513
	top + height > devBounds bottom ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1514
	    top := devBounds bottom - height.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1515
	].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1516
	top  := top  max:(devBounds top).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1517
	left := left max:(devBounds left).
5532
b804c55e232f changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5418
diff changeset
  1518
    ].
b804c55e232f changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5418
diff changeset
  1519
6871
68df321513d2 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6870
diff changeset
  1520
    dev isWindowsPlatform ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1521
	top := top + dev captionHeight.
6871
68df321513d2 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6870
diff changeset
  1522
    ].
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1523
    org := (left @ top) rounded.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1524
    lbl := self windowLabelFor:label.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1525
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1526
    icon notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1527
	iconValue := icon value.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1528
	icn := dev convertedIcon:iconValue.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1529
	(icnMask := iconValue mask) notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1530
	    icnMask := dev convertedIconMask:icnMask.
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
	"this is to keep the references"
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1533
	deviceIcon := Array with:icn with:icnMask.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1534
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1535
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1536
    "/ give global eventListeners a chance to intercept windowCreation
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1537
    "/ and provide another origin (by payching my origin via setOrigin:).
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1538
    WindowSensor preViewCreateNotification:self.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1539
6283
03b901746708 class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6278
diff changeset
  1540
    gc
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1541
      createWindowFor:self
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1542
      type:(self windowType)
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1543
      origin:org
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1544
      extent:(width @ height)
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1545
      minExtent:minExtent
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1546
      maxExtent:maxExtent
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1547
      borderWidth:0 "self borderWidth"
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1548
      subViewOf:nil
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1549
      style:(self windowStyle)
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1550
      inputOnly:(self isInputOnly)
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1551
      label:lbl
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1552
      owner:nil
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1553
      icon:icn iconMask:icnMask
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1554
      iconView:iconView.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1555
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1556
    "/ give global listeners a chance to track views
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1557
    WindowSensor postViewCreateNotification:self.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1558
5556
dc9e29cb26b4 changed: #physicalCreate
Claus Gittinger <cg@exept.de>
parents: 5537
diff changeset
  1559
    self originChangedFlag:false extentChangedFlag:false.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1560
5388
10a240c6365a changed:
Claus Gittinger <cg@exept.de>
parents: 5349
diff changeset
  1561
"/    (borderColor notNil and:[borderColor ~= Black]) ifTrue:[
10a240c6365a changed:
Claus Gittinger <cg@exept.de>
parents: 5349
diff changeset
  1562
"/        self setBorderColor
10a240c6365a changed:
Claus Gittinger <cg@exept.de>
parents: 5349
diff changeset
  1563
"/    ].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1564
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1565
"/  (viewGravity notNil "and:[viewGravity ~~ #NorthWest]") ifTrue:[
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1566
"/        super viewGravity:viewGravity
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1567
"/  ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1568
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1569
"/  (bitGravity notNil "and:[bitGravity ~~ #NorthWest]") ifTrue:[
6228
0d2c822acecd class: StandardSystemView
Stefan Vogel <sv@exept.de>
parents: 6203
diff changeset
  1570
"/      super bitGravity:bitGravity
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1571
"/  ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1572
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1573
    viewShape notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1574
	self setViewShape
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1575
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1576
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1577
    (backed notNil and:[backed ~~ false]) ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1578
	self backingStore:backed.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1579
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1580
    self saveUnder ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1581
	self saveUnder:true.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1582
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1583
    cursor notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1584
	self setCursor
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1585
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1586
4807
62e7832829b7 icon conversion code moved to device
Claus Gittinger <cg@exept.de>
parents: 4800
diff changeset
  1587
    "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
  1588
    "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
  1589
    "Modified: / 22-05-2015 / 21:09:35 / cg"
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
postRealize
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1593
    "postRealize actions - tell the application (if any)."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1594
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1595
    super postRealize.
6245
d0c50dd22b30 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6228
diff changeset
  1596
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1597
    "/
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1598
    "/ let the application add its views to the current project
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1599
    "/
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1600
    application notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1601
	application opened:self.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1602
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1603
	self addToCurrentProject.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1604
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1605
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1606
    "Created: 24.7.1997 / 18:11:26 / cg"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1607
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1608
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1609
preRealize
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1610
    "invoked right before the view is realized.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1611
     preRealize actions - tell the application (if any)."
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1612
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1613
    super preRealize.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1614
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1615
    application notNil ifTrue:[
5613
7ab31f02f7d1 Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5556
diff changeset
  1616
	application aboutToOpen:self.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1617
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1618
!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1619
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1620
recreate
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1621
    "recreate the view after a snap-in or a migration"
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1622
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1623
    super recreate.
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1624
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1625
    iconView notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1626
	iconView recreate.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1627
	device setWindowIconWindow:iconView in:self drawableId.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1628
	iconView setRealized:true.
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1629
    ] ifFalse:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1630
	icon notNil ifTrue:[
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1631
	    self icon:(device convertedIcon:icon).
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1632
	].
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1633
    ].
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1634
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1635
    iconLabel notNil ifTrue:[
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7398
diff changeset
  1636
	device setIconName:iconLabel in:self drawableId
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1637
    ]
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1638
4814
4204263d3ab3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4812
diff changeset
  1639
    "Modified: / 30-10-2007 / 16:39:42 / cg"
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1640
! !
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1641
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1642
!StandardSystemView class methodsFor:'documentation'!
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1643
6048
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1644
version
7080
1de9e5119a28 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 6871
diff changeset
  1645
    ^ '$Header$'
6048
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1646
!
25578230982a class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 6047
diff changeset
  1647
5388
10a240c6365a changed:
Claus Gittinger <cg@exept.de>
parents: 5349
diff changeset
  1648
version_CVS
7080
1de9e5119a28 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 6871
diff changeset
  1649
    ^ '$Header$'
4566
Claus Gittinger <cg@exept.de>
parents: 4560
diff changeset
  1650
! !
3746
d9dccd3a4a41 beSlave: also try masterApp in setWGFromApplication
Claus Gittinger <cg@exept.de>
parents: 3706
diff changeset
  1651
6047
d8080f253e26 class: StandardSystemView
Claus Gittinger <cg@exept.de>
parents: 5975
diff changeset
  1652
1878
76e9bc8e1b9c new hostName in label format
Claus Gittinger <cg@exept.de>
parents: 1865
diff changeset
  1653
StandardSystemView initialize!