SimpleView.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 23 Jan 2019 21:35:00 +0000
branchjv
changeset 8619 3cec55b0efa4
parent 8429 e47f76ecf0d2
child 9052 56e8d798f0fb
permissions -rw-r--r--
Improve `SimpleView >> waitUntilAllEventsProcesses` The new implementation uses a kind of polling rather than waiting on a semaphore. While normnally polling is not preferred way, in this case it helps to cover situation where queued events push another event back unto a queue. This is a common (reccommended) practice for doing more complex updates and time-consuming updates.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
135
claus
parents:
diff changeset
     1
"
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1989 by Claus Gittinger
8420
76e39223f5ab Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8223
diff changeset
     3
 COPYRIGHT (c) 2015 Claus Gittinger
76e39223f5ab Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8223
diff changeset
     4
 COPYRIGHT (c) 2016-2017 Jan Vrany
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
     5
	      All Rights Reserved
135
claus
parents:
diff changeset
     6
claus
parents:
diff changeset
     7
 This software is furnished under a license and may be used
claus
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
claus
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
claus
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
claus
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
claus
parents:
diff changeset
    12
 hereby transferred.
claus
parents:
diff changeset
    13
"
3196
43d42e7c388a MUST invoke #postBuildWith: / #postBuildAsSubcanvasWith:,
tm
parents: 3191
diff changeset
    14
"{ Package: 'stx:libview' }"
43d42e7c388a MUST invoke #postBuildWith: / #postBuildAsSubcanvasWith:,
tm
parents: 3191
diff changeset
    15
6716
e9b2ebb0e8cf class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6709
diff changeset
    16
"{ NameSpace: Smalltalk }"
e9b2ebb0e8cf class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6709
diff changeset
    17
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 724
diff changeset
    18
DisplaySurface subclass:#SimpleView
7465
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    19
	instanceVariableNames:'superView subViews components styleSheet resources border unused
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    20
		viewShape top left flagBits relativeOrigin relativeExtent
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    21
		relativeCorner originRule extentRule cornerRule insets layout
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    22
		shown hiddenOnRealize name level margin innerClipRect shadowColor
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    23
		lightColor bitGravity viewGravity controller windowGroup
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    24
		preferredExtent explicitExtent dependents layoutManager
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    25
		visibilityChannel helpKey dropTarget'
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    26
	classVariableNames:'CentPoint DefaultBorderColor DefaultBorderWidth
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    27
		DefaultFocusBorderWidth DefaultFocusColor DefaultLightColor
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    28
		DefaultShadowColor DefaultStyle DefaultViewBackgroundColor
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    29
		FlagBeingDestroyed FlagCanTab FlagCornerChanged
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    30
		FlagDoNotRequestFocusOnPointerEnter FlagExtentChanged
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    31
		FlagExtentChangedBeforeCreated FlagHasExplicitExtent
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    32
		FlagHiddenOnRealize FlagIsMDIChild FlagIsUnmappedModalBox
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    33
		FlagNativeWidget FlagOriginChanged FlagRequestFocusOnPointerEnter
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    34
		FlagTakeFocusWhenMapped Grey ReturnFocusWhenClosingModalBoxes
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    35
		StyleSheet ViewSpacing'
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    36
	poolDictionaries:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    37
	category:'Views-Basic'
135
claus
parents:
diff changeset
    38
!
claus
parents:
diff changeset
    39
452
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
    40
SimpleView class instanceVariableNames:'ClassResources DefaultFont'
734
1a778cedbbf5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 729
diff changeset
    41
1a778cedbbf5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 729
diff changeset
    42
"
3164
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
    43
 No other class instance variables are inherited by this class.
734
1a778cedbbf5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 729
diff changeset
    44
"
140
claus
parents: 138
diff changeset
    45
!
135
claus
parents:
diff changeset
    46
6119
e7de49fefa9a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6117
diff changeset
    47
ProceedingNotification subclass:#AboutToOpenBoxNotificationSignal
7465
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    48
	instanceVariableNames:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    49
	classVariableNames:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    50
	poolDictionaries:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    51
	privateIn:SimpleView
5293
3cfe2ac1b101 AboutToOpenBoxNotificationSignal moved to SimpleView and raised
Claus Gittinger <cg@exept.de>
parents: 5292
diff changeset
    52
!
3cfe2ac1b101 AboutToOpenBoxNotificationSignal moved to SimpleView and raised
Claus Gittinger <cg@exept.de>
parents: 5292
diff changeset
    53
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    54
Object subclass:#ViewShape
7465
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    55
	instanceVariableNames:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    56
	classVariableNames:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    57
	poolDictionaries:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    58
	privateIn:SimpleView
3055
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    59
!
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    60
7127
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
    61
ProceedingNotification subclass:#BoxClosedNotificationSignal
7465
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    62
	instanceVariableNames:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    63
	classVariableNames:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    64
	poolDictionaries:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    65
	privateIn:SimpleView
7127
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
    66
!
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
    67
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
    68
SimpleView::ViewShape subclass:#RoundViewShape
7465
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    69
	instanceVariableNames:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    70
	classVariableNames:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    71
	poolDictionaries:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    72
	privateIn:SimpleView
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
    73
!
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
    74
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
    75
SimpleView::ViewShape subclass:#ArbitraryViewShape
7465
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    76
	instanceVariableNames:'viewShapeForm borderShapeForm'
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    77
	classVariableNames:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    78
	poolDictionaries:''
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
    79
	privateIn:SimpleView
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    80
!
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    81
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
    82
!SimpleView class methodsFor:'documentation'!
135
claus
parents:
diff changeset
    83
claus
parents:
diff changeset
    84
copyright
claus
parents:
diff changeset
    85
"
claus
parents:
diff changeset
    86
 COPYRIGHT (c) 1989 by Claus Gittinger
8420
76e39223f5ab Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8223
diff changeset
    87
 COPYRIGHT (c) 2015 Claus Gittinger
76e39223f5ab Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8223
diff changeset
    88
 COPYRIGHT (c) 2016-2017 Jan Vrany
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
    89
	      All Rights Reserved
135
claus
parents:
diff changeset
    90
claus
parents:
diff changeset
    91
 This software is furnished under a license and may be used
claus
parents:
diff changeset
    92
 only in accordance with the terms of that license and with the
claus
parents:
diff changeset
    93
 inclusion of the above copyright notice.   This software may not
claus
parents:
diff changeset
    94
 be provided or otherwise made available to, or used by, any
claus
parents:
diff changeset
    95
 other person.  No title to or ownership of the software is
claus
parents:
diff changeset
    96
 hereby transferred.
claus
parents:
diff changeset
    97
"
claus
parents:
diff changeset
    98
!
claus
parents:
diff changeset
    99
claus
parents:
diff changeset
   100
documentation
claus
parents:
diff changeset
   101
"
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   102
    this class implements functions common to all Views which do not work on / show a model.
135
claus
parents:
diff changeset
   103
    Previously, all of this functionality used to be in the old View class, but has been
4907
9002ab7fb33f remapping views
Claus Gittinger <cg@exept.de>
parents: 4899
diff changeset
   104
    separated into this new SimpleView (which does not know about models) and the new View,
4898
fddb9d0c1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4897
diff changeset
   105
    which does so.
484
7c8dd17a160e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 483
diff changeset
   106
    I'd prefer to call this class View and the current View class a ModelView,
4898
fddb9d0c1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4897
diff changeset
   107
    but for backward compatibility it is better to leave things the way they are
fddb9d0c1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4897
diff changeset
   108
    (there are simply too many subclasses of View around...).
fddb9d0c1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4897
diff changeset
   109
4907
9002ab7fb33f remapping views
Claus Gittinger <cg@exept.de>
parents: 4899
diff changeset
   110
    Instances of SimpleView are seldom used directly, most views in the system inherit
4898
fddb9d0c1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4897
diff changeset
   111
    from this class. However, sometimes a view is needed to create a dummy view for framing
135
claus
parents:
diff changeset
   112
    or layout purposes.
claus
parents:
diff changeset
   113
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   114
    [Instance variables:]
135
claus
parents:
diff changeset
   115
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   116
	superView               <View>                  my superview i.e. the view I am in
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   117
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   118
	subViews                <Collection>            the collection of subviews
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   119
							These are the views proper.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   120
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   121
	components              <Collection>            collection of gadgets (will be merged with subViews, soon)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   122
							These are lightweight gadgets (not seen by windows/x11).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   123
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   124
	styleSheet              <ResourcePack>          contains widget attributes (see libview/styles/*.style)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   125
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   126
	resources               <ResourcePack>          contains national language translations (see lib*/resources/*.rs)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   127
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   128
	border                  <Border>                color and width of border
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   129
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   130
	unused                  <nil>                   to keep the instVar size constant
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   131
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   132
	viewShape               <Form>                  shape of view & border (if device supports it)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   133
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   134
	top                     <Number>                actual top coordinate (pixels) in superview
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   135
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   136
	left                    <Number>                actual left coordinate (pixels) in superview
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   137
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   138
	flagBits                <Integer>               flag bits (used to be individual booleans)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   139
	    extendChanged                                   true if extend changed during setup
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   140
	    originChanged                                   true if origin changed during setup
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   141
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   142
	relativeOrigin          <Number>                relative origin in percent within superview
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   143
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   144
	relativeExtent          <Number>                relative extent in percent within superview
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   145
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   146
	relativeCorner          <Number>                relative corner in percent within superview
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   147
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   148
	originRule              <Block>                 rule to compute origin if superview changes size
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   149
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   150
	extentRule              <Block>                 rule to compute extent if superview changes size
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   151
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   152
	cornerRule              <Block>                 rule to compute corner if superview changes size
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   153
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   154
	insets                  <Array>                 array with top, left, bottom & right insets (or nil)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   155
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   156
	layout                  <LayoutObject>          not yet implemented - will replace the above layout
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   157
							variables.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   158
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   159
	shown                   <Boolean>               true if visible (false if iconified, unmapped or covered)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   160
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   161
	unused_hiddenOnRealize  <Boolean>               don't show automatically when superview is realized.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   162
							now encoded in the flags.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   163
							(kept to keep the instVar size constant)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   164
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   165
	name                    <String>                my name (future use for resources)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   166
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   167
	level (**)              <Number>                3D level relative to superview
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   168
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   169
	margin                  <Number>                convenient margin; that is the number of pixels
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   170
							which are taken up by border plus 3D level
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   171
							(i.e. borderWidth + level abs)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   172
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   173
	innerClipRect           <Rectangle>             convenient inner clip (minus margin)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   174
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   175
	shadowColor (**)        <Color>                 color used to draw 3D shadowed edges
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   176
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   177
	lightColor (**)         <Color>                 color used to draw 3D lighted edges
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   178
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   179
	bitGravity              <nil | Symbol>          gravity of contents (if device supports it)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   180
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   181
	viewGravity             <nil | Symbol>          gravity of view (if device supports it)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   182
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   183
	controller              <nil | Controller>      the controller (if any)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   184
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   185
	windowGroup             <WindowGroup>           the windowGroup
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   186
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   187
	preferredExtent(*)      <nil | Point>           preferredExtent overWrite
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   188
							if nonNil, the widget will not compute
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   189
							its pref-extent, but use that value.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   190
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   191
	explicitExtent(*)       <nil | Point>           preferredExtent overWrite
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   192
							if nonNil, the widget will not compute
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   193
							its pref-extent, but use that value.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   194
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   195
	dependents              <nil | Collection>      who depends on me
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   196
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   197
	layoutManager                                   currently unused; will be responsible for
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   198
							child layout management
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   199
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   200
	visibilityChannel                               valueHolder to control the visiblity
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   201
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   202
	helpKey                                         for tooltips
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   203
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   204
	dropTarget                                      for drag&drop
135
claus
parents:
diff changeset
   205
5022
72bea2a21ae6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5021
diff changeset
   206
    (*) about to be changed to use preferredExtent as a cache and explicitExtent as
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   207
	an overwrite value.
5456
0df0f5ce9d91 changed: #documentation
Claus Gittinger <cg@exept.de>
parents: 5436
diff changeset
   208
0df0f5ce9d91 changed: #documentation
Claus Gittinger <cg@exept.de>
parents: 5436
diff changeset
   209
    (**) We have recently started to change the system to use borders instead of separate
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   210
	 borderWidth, borderColor, level, shadow- and lightColors.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   211
	 Expect more changes here in the near future..
135
claus
parents:
diff changeset
   212
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   213
    [Class variables:]
135
claus
parents:
diff changeset
   214
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   215
	Grey                    <Color>                 the color grey - its used so often
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   216
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   217
	ViewSpacing             <Number>                preferred spacing between views; 1mm
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   218
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   219
	CentPoint               <Point>                 100 @ 100 - its used so often
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   220
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   221
	StyleSheet              <ResourcePack>          contains all view-style specifics
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   222
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   223
	ReturnFocusWhenClosingModalBoxes                if true, a closing modalBox returns
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   224
				<Boolean>               the keyboard focus to the view which was
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   225
							active when the box was opened.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   226
							If false (the default), it is left to
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   227
							window manager to assign a new focus.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   228
							If running on olwm/olvwm (which requires an
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   229
							explicit click to reassign a focus), it is
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   230
							better to turn this on in a private.rc file.
135
claus
parents:
diff changeset
   231
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   232
    [styleSheet parameters:]
135
claus
parents:
diff changeset
   233
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   234
	popupShadow             <Boolean>               if true, popupViews show a shadow below
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   235
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   236
	popupLevel              <nil | Integer>         3D level
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   237
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   238
	borderWidth             <nil | Integer>         borderWidth (ignored in 3D styles)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   239
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   240
	borderColor             <nil | Color>           borderColor (ignored in 3D styles)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   241
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   242
	viewBackground          <nil | Color>           views background
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   243
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   244
	shadowColor             <nil | Color>           color for shadow edges (ignored in 2D styles)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   245
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   246
	lightColor              <nil | Color>           color for light edges (ignored in 2D styles)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   247
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   248
	font                    <nil | Font>            font to use
135
claus
parents:
diff changeset
   249
claus
parents:
diff changeset
   250
claus
parents:
diff changeset
   251
    TODO:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   252
	get rid of relativeOrigin, relativeCorner, originRule, extentRule,
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   253
	and insets; replace by a single object which defines the size
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   254
	(mhmh - ST-80 seems to call this LayoutFrame ?)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   255
	-> be prepared for a change here in the near future and ONLY use
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   256
	   access methods to get those instance variables' values
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   257
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   258
	get rid of 3D level & margin, move it to extra wrappers
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   259
	(although this will make view setup more complicated, it will remove
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   260
	 complexity from the internals of view. Also, it will allow for more
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   261
	 varieties of borders.)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   262
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   263
	add components (could also call them gadgets or lightweight views)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   264
	- views are expensive in terms of X resources. This would make all
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   265
	framing/edge and panel helper views become cheap ST objects, instead
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   266
	of views.
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   267
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   268
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   269
    [see also:]
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   270
	StandardSystemView DialogBox
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   271
	WindowGroup WindowEvent
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   272
	Layout
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   273
	( introduction to view programming :html: programming/viewintro.html )
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   274
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   275
    [author:]
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   276
	Claus Gittinger
135
claus
parents:
diff changeset
   277
"
151
claus
parents: 145
diff changeset
   278
!
claus
parents: 145
diff changeset
   279
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   280
examples
151
claus
parents: 145
diff changeset
   281
"
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   282
    (all examples below use different viewBackgrounds,
151
claus
parents: 145
diff changeset
   283
     to make the individual subviews visible)
claus
parents: 145
diff changeset
   284
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   285
    a subView in a topView:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   286
									[exBegin]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   287
	|top v|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   288
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   289
	top := StandardSystemView new.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   290
	v := View new.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   291
	v origin:0.25 @ 0.25 corner:0.75 @ 0.75.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   292
	top addSubView:v.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   293
	top open
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   294
									[exEnd]
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   295
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   296
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   297
    the same, a bit more compact:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   298
									[exBegin]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   299
	|top v|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   300
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   301
	top := StandardSystemView new.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   302
	v := View origin:0.25 @ 0.25 corner:0.75 @ 0.75 in:top.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   303
	top open
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   304
									[exEnd]
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   305
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   306
151
claus
parents: 145
diff changeset
   307
    fixed position/size:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   308
									[exBegin]
151
claus
parents: 145
diff changeset
   309
       |top v1 v2|
claus
parents: 145
diff changeset
   310
claus
parents: 145
diff changeset
   311
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   312
       top extent:300@300.
claus
parents: 145
diff changeset
   313
claus
parents: 145
diff changeset
   314
       v1 := View origin:10@10
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   315
		  corner:50@50
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   316
		      in:top.
151
claus
parents: 145
diff changeset
   317
       v2 := View origin:60@10
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   318
		  corner:150@100
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   319
		      in:top.
151
claus
parents: 145
diff changeset
   320
claus
parents: 145
diff changeset
   321
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   322
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   323
claus
parents: 145
diff changeset
   324
       top open
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   325
									[exEnd]
151
claus
parents: 145
diff changeset
   326
claus
parents: 145
diff changeset
   327
    same, using ST-80 way of bulding up view hierarchies
claus
parents: 145
diff changeset
   328
    (recommended, if you plan to port applications later)
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   329
									[exBegin]
151
claus
parents: 145
diff changeset
   330
       |top v1 v2|
claus
parents: 145
diff changeset
   331
claus
parents: 145
diff changeset
   332
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   333
       top extent:300@300.
claus
parents: 145
diff changeset
   334
claus
parents: 145
diff changeset
   335
       v1 := View new.
claus
parents: 145
diff changeset
   336
       v1 origin:10@10 corner:50@50.
claus
parents: 145
diff changeset
   337
claus
parents: 145
diff changeset
   338
       v2 := View new.
claus
parents: 145
diff changeset
   339
       v2 origin:60@10 corner:150@100.
claus
parents: 145
diff changeset
   340
claus
parents: 145
diff changeset
   341
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   342
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   343
claus
parents: 145
diff changeset
   344
       top add:v1.
claus
parents: 145
diff changeset
   345
       top add:v2.
claus
parents: 145
diff changeset
   346
claus
parents: 145
diff changeset
   347
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   348
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   349
claus
parents: 145
diff changeset
   350
       top open
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   351
									[exEnd]
151
claus
parents: 145
diff changeset
   352
claus
parents: 145
diff changeset
   353
    fixed origin, variable size:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   354
									[exBegin]
151
claus
parents: 145
diff changeset
   355
       |top v1 v2|
claus
parents: 145
diff changeset
   356
claus
parents: 145
diff changeset
   357
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   358
       top extent:300@300.
claus
parents: 145
diff changeset
   359
claus
parents: 145
diff changeset
   360
       v1 := View new.
claus
parents: 145
diff changeset
   361
       v1 origin:10@10 corner:50@0.5.
claus
parents: 145
diff changeset
   362
claus
parents: 145
diff changeset
   363
       v2 := View new.
claus
parents: 145
diff changeset
   364
       v2 origin:60@10 corner:150@0.5.
claus
parents: 145
diff changeset
   365
claus
parents: 145
diff changeset
   366
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   367
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   368
claus
parents: 145
diff changeset
   369
       top add:v1.
claus
parents: 145
diff changeset
   370
       top add:v2.
claus
parents: 145
diff changeset
   371
claus
parents: 145
diff changeset
   372
       top open
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   373
									[exEnd]
151
claus
parents: 145
diff changeset
   374
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   375
    fixed origin, variable size,
151
claus
parents: 145
diff changeset
   376
    bottomInset for constant distance from bottom:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   377
									[exBegin]
151
claus
parents: 145
diff changeset
   378
       |top v1 v2|
claus
parents: 145
diff changeset
   379
claus
parents: 145
diff changeset
   380
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   381
       top extent:300@300.
claus
parents: 145
diff changeset
   382
claus
parents: 145
diff changeset
   383
       v1 := View new.
claus
parents: 145
diff changeset
   384
       v1 origin:10@10 corner:50@1.0.
claus
parents: 145
diff changeset
   385
       v1 bottomInset:10.
claus
parents: 145
diff changeset
   386
claus
parents: 145
diff changeset
   387
       v2 := View new.
claus
parents: 145
diff changeset
   388
       v2 origin:60@10 corner:150@1.0.
claus
parents: 145
diff changeset
   389
       v2 bottomInset:10.
claus
parents: 145
diff changeset
   390
claus
parents: 145
diff changeset
   391
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   392
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   393
claus
parents: 145
diff changeset
   394
       top add:v1.
claus
parents: 145
diff changeset
   395
       top add:v2.
claus
parents: 145
diff changeset
   396
claus
parents: 145
diff changeset
   397
       top open
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   398
									[exEnd]
151
claus
parents: 145
diff changeset
   399
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   400
    variable origin, variable size,
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   401
									[exBegin]
151
claus
parents: 145
diff changeset
   402
       |top v1 v2|
claus
parents: 145
diff changeset
   403
claus
parents: 145
diff changeset
   404
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   405
       top extent:300@300.
claus
parents: 145
diff changeset
   406
claus
parents: 145
diff changeset
   407
       v1 := View new.
claus
parents: 145
diff changeset
   408
       v1 origin:0.0@0.0 corner:0.5@0.5.
claus
parents: 145
diff changeset
   409
claus
parents: 145
diff changeset
   410
       v2 := View new.
claus
parents: 145
diff changeset
   411
       v2 origin:0.5@0.0 corner:1.0@0.5.
claus
parents: 145
diff changeset
   412
claus
parents: 145
diff changeset
   413
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   414
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   415
claus
parents: 145
diff changeset
   416
       top add:v1.
claus
parents: 145
diff changeset
   417
       top add:v2.
claus
parents: 145
diff changeset
   418
claus
parents: 145
diff changeset
   419
       top open
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   420
									[exEnd]
151
claus
parents: 145
diff changeset
   421
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   422
    variable origin, variable size,
151
claus
parents: 145
diff changeset
   423
    insets for some constant distance
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   424
									[exBegin]
151
claus
parents: 145
diff changeset
   425
       |top v1 v2|
claus
parents: 145
diff changeset
   426
claus
parents: 145
diff changeset
   427
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   428
       top extent:300@300.
claus
parents: 145
diff changeset
   429
claus
parents: 145
diff changeset
   430
       v1 := View new.
claus
parents: 145
diff changeset
   431
       v1 origin:0.0@0.0 corner:0.5@0.5.
claus
parents: 145
diff changeset
   432
       v1 rightInset:5.
claus
parents: 145
diff changeset
   433
claus
parents: 145
diff changeset
   434
       v2 := View new.
claus
parents: 145
diff changeset
   435
       v2 origin:0.5@0.0 corner:1.0@0.5.
claus
parents: 145
diff changeset
   436
       v2 leftInset:5.
claus
parents: 145
diff changeset
   437
claus
parents: 145
diff changeset
   438
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   439
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   440
claus
parents: 145
diff changeset
   441
       top add:v1.
claus
parents: 145
diff changeset
   442
       top add:v2.
claus
parents: 145
diff changeset
   443
claus
parents: 145
diff changeset
   444
       top open
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   445
									[exEnd]
151
claus
parents: 145
diff changeset
   446
claus
parents: 145
diff changeset
   447
    using layout objects (ST-80 style):
claus
parents: 145
diff changeset
   448
    fully specifying the frame
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   449
									[exBegin]
151
claus
parents: 145
diff changeset
   450
       |top v1 v2|
claus
parents: 145
diff changeset
   451
claus
parents: 145
diff changeset
   452
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   453
       top extent:300@300.
claus
parents: 145
diff changeset
   454
claus
parents: 145
diff changeset
   455
       v1 := View new.
claus
parents: 145
diff changeset
   456
       v2 := View new.
claus
parents: 145
diff changeset
   457
claus
parents: 145
diff changeset
   458
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   459
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   460
claus
parents: 145
diff changeset
   461
       top add:v1 in:(LayoutFrame new
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   462
			leftFraction:0.25;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   463
			rightFraction:0.75;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   464
			topFraction:0.0;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   465
			bottomFraction:0.5).
151
claus
parents: 145
diff changeset
   466
       top add:v2 in:(LayoutFrame new
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   467
			leftFraction:0.5;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   468
			rightFraction:1.0;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   469
			topFraction:0.5;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   470
			bottomFraction:0.75).
151
claus
parents: 145
diff changeset
   471
claus
parents: 145
diff changeset
   472
       top open
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   473
									[exEnd]
151
claus
parents: 145
diff changeset
   474
claus
parents: 145
diff changeset
   475
    another one, with offsets:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   476
									[exBegin]
151
claus
parents: 145
diff changeset
   477
       |top v1 v2|
claus
parents: 145
diff changeset
   478
claus
parents: 145
diff changeset
   479
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   480
       top extent:300@300.
claus
parents: 145
diff changeset
   481
claus
parents: 145
diff changeset
   482
       v1 := View new.
claus
parents: 145
diff changeset
   483
       v2 := View new.
claus
parents: 145
diff changeset
   484
claus
parents: 145
diff changeset
   485
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   486
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   487
claus
parents: 145
diff changeset
   488
       top add:v1 in:(LayoutFrame new
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   489
			leftFraction:0.0 offset:10;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   490
			rightFraction:1.0 offset:-10;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   491
			topFraction:0.0 offset:10;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   492
			bottomFraction:0.5).
151
claus
parents: 145
diff changeset
   493
       top add:v2 in:(LayoutFrame new
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   494
			leftFraction:0.0 offset:30;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   495
			rightFraction:1.0 offset:-30;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   496
			topFraction:0.5 offset:10;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   497
			bottomFraction:0.75).
151
claus
parents: 145
diff changeset
   498
claus
parents: 145
diff changeset
   499
       top open
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   500
									[exEnd]
151
claus
parents: 145
diff changeset
   501
claus
parents: 145
diff changeset
   502
    specifying origin only. Extent is views preferred
claus
parents: 145
diff changeset
   503
    (notice, that plain views have some defaultExtent of 100@100)
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   504
									[exBegin]
151
claus
parents: 145
diff changeset
   505
       |top v1 v2|
claus
parents: 145
diff changeset
   506
claus
parents: 145
diff changeset
   507
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   508
       top extent:300@300.
claus
parents: 145
diff changeset
   509
claus
parents: 145
diff changeset
   510
       v1 := View new.
claus
parents: 145
diff changeset
   511
       v2 := View new.
claus
parents: 145
diff changeset
   512
claus
parents: 145
diff changeset
   513
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   514
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   515
claus
parents: 145
diff changeset
   516
       top add:v1 in:(LayoutOrigin new
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   517
			leftFraction:0.25;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   518
			topFraction:0.0).
151
claus
parents: 145
diff changeset
   519
       top add:v2 in:(LayoutOrigin new
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   520
			leftFraction:0.5;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   521
			topFraction:0.5).
151
claus
parents: 145
diff changeset
   522
claus
parents: 145
diff changeset
   523
       top open
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   524
									[exEnd]
151
claus
parents: 145
diff changeset
   525
claus
parents: 145
diff changeset
   526
    same example, using buttons which compute their preferredBounds:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   527
									[exBegin]
151
claus
parents: 145
diff changeset
   528
       |top v1 v2|
claus
parents: 145
diff changeset
   529
claus
parents: 145
diff changeset
   530
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   531
       top extent:300@300.
claus
parents: 145
diff changeset
   532
claus
parents: 145
diff changeset
   533
       v1 := Button label:'foo'.
claus
parents: 145
diff changeset
   534
       v2 := Button label:'a very long buttonLabel'.
claus
parents: 145
diff changeset
   535
claus
parents: 145
diff changeset
   536
       v1 backgroundColor:(Color red).
claus
parents: 145
diff changeset
   537
       v2 backgroundColor:(Color yellow).
claus
parents: 145
diff changeset
   538
claus
parents: 145
diff changeset
   539
       top add:v1 in:(LayoutOrigin new
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   540
			leftFraction:0.25;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   541
			topFraction:0.0).
151
claus
parents: 145
diff changeset
   542
       top add:v2 in:(LayoutOrigin new
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   543
			leftFraction:0.5;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   544
			topFraction:0.5).
151
claus
parents: 145
diff changeset
   545
claus
parents: 145
diff changeset
   546
       top open
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   547
									[exEnd]
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   548
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   549
    border:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   550
									[exBegin]
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   551
       |top v1 v2|
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   552
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   553
       top := StandardSystemView new.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   554
       top extent:300@300.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   555
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   556
       v1 := View new.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   557
       top add:v1 in:(10@10 corner: 30@30).
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   558
       v2 := View new.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   559
       top add:v2 in:(30@30 corner: 50@50).
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   560
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   561
       v1 border:(SimpleBorder width:1 color:Color red).
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   562
       v2 border:(SimpleBorder width:1 color:Color blue).
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
   563
       top open
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   564
									[exEnd]
151
claus
parents: 145
diff changeset
   565
"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   566
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   567
4497
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
   568
examples_MDI
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
   569
"
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
   570
    Currently, these are experimental and work under Windows only
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
   571
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
   572
    an MDI child:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   573
									[exBegin]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   574
	|top v1 v2|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   575
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   576
	top := StandardSystemView new.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   577
	top extent:450 @ 300.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   578
	top name:'MDI Client'.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   579
	top beMDIClientView.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   580
	top open.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   581
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   582
	v1 := View new.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   583
	v1 viewBackground:Color red.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   584
	v1 origin:50 @ 50 corner:150 @ 100.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   585
	v1 beMDIChildView.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   586
	top addSubView:v1.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   587
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   588
	v2 := View new.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   589
	v2 viewBackground:Color green.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   590
	v2 origin:50 @ 50 corner:150 @ 100.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   591
	v2 beMDIChildView.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   592
	top addSubView:v2.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   593
									[exEnd]
4497
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
   594
"
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
   595
!
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
   596
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   597
layoutComputation
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   598
"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   599
    Due to historic reasons, there are 2 mechanisms to resize a view:
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   600
        - (old, to be eliminated mechanism)
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   601
            based upon info found in
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   602
                relativeOrigin / relativeCorner / relativeExtent
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   603
                originRule / cornerRule / extentRule
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   604
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   605
        - (new, will migrate to that one)
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   606
            letting a layoutObject compute things
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   607
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   608
    Actually, the old mechanism is just as powerful, as the new (layoutObject
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   609
    based) mechanism; with the help of block=rules, you can compute whatever
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   610
    geometry is desired.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   611
    However, having 6 instance variables in every view creates some overhead,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   612
    which can be avoided in most cases (most views are either fixed-size or
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   613
    relative-sized).
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   614
    Therefore (and also to make porting of ST-80 apps easier), ST/X will migrate
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   615
    to use layoutObjects.
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   616
    You will not see a difference at the view's protocol level, since
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   617
    existing interfaces will (silently) create layoutObjects as appropriate.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   618
    However, you should remove all direct accesses to the above mentioned
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   619
    instance variables, to be prepared for that change.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   620
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   621
    Notice, that a view recomputes its size whenever its superview
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   622
    changes size. This is done via:
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   623
        sizeChanged
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   624
            -> allSubviews: superViewChangedSize
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   625
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   626
    If the geometry computation as performed in superViewChangedSize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   627
    is not powerful enough for your application, you can either:
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   628
        - redefine superViewChangedSize
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   629
        - create a special layoutObject which computes a new layout.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   630
"
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   631
!
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   632
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   633
popupMenus
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   634
"
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   635
    Due to historic reasons, there are multiple mechanisms for popupMenu
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   636
    definition:
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   637
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   638
	- static menus
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   639
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   640
	- dynamic menus from the view
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   641
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   642
	- dynamic menus from the model / menuHolder
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   643
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   644
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   645
    static menus
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   646
    ------------
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   647
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   648
    The easiest to use is a static menu; this is useful, if some view
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   649
    has a constant menu which never changes.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   650
    It can be defined at initialization time or redefined any time later.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   651
    The menu is defined with:
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   652
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   653
	someView middleButtonMenu:<aPopUpMenu>
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   654
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   655
    Compatibility note:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   656
	static menus should no longer be used - their operation
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   657
	is incompatible with ST-80 and ST/X's dynamic menus.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   658
	Do not use them if you care for compatibility.
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   659
    Also, they do not care for any menuPerformers or menuHolders.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   660
    (instead, they use a receiver instance variable, which gets the messages).
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   661
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   662
    example:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   663
	|top v1 v2|
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   664
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   665
	top := StandardSystemView new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   666
	top extent:300@300.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   667
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   668
	v1 := View origin:0.0@0.0 corner:0.5@1.0 in:top.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   669
	v1 viewBackground:Color red.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   670
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   671
	v2 := View origin:0.5@0.0 corner:1.0@1.0 in:top.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   672
	v2 viewBackground:Color yellow.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   673
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   674
	v1 middleButtonMenu:(
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   675
				PopUpMenu
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   676
				   labels:#('foo' 'bar')
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   677
				   selectors:#(foo bar)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   678
				   receiver:v1
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   679
			    ).
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   680
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   681
	top open.
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   682
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   683
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   684
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   685
    dynamic menus
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   686
    -------------
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   687
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   688
    A dynamic menu can be provided by the view itself, or by the model.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   689
    In addition, TextViews allow a separate menuHolder to provide the menu
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   690
    (i.e. it may be different from the model).
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
   691
    If the model shall provide the menu, set the view's menuMessage to a selector
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   692
    which is sent to the model. This message should return a popUpMenu.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   693
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   694
    For textViews, the above is also valid, except if the menuHolder is explicitely
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   695
    set - in this case, that one provides the menu; not the model.
7663
4c01465c9f75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7638
diff changeset
   696
    Don't get confused by the fact that menuHolders are only supported
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   697
    by textViews.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   698
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   699
    example: (in your application, the plug would be your application, topView or model)
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   700
    Notice, that all menu messages are sent to the view (because no model was set)
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   701
    - so the textView still performs the copy-function correctly
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   702
    (but of course, does not respond to the fooBar messages).
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   703
    If a model was set, the menu would try the model first, but send its messages
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   704
    to the view IFF the model would not respond to the menu message.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   705
    (this allows mixing of menu messages for the view AND the model).
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   706
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   707
	|top v1 v2 holder|
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   708
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   709
	holder := Plug new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   710
	holder respondTo:#menu1
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   711
		    with:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   712
			    v1 menuMessage:#otherMenu1.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   713
			    PopUpMenu
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   714
				labels:#('foo' 'bar')
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   715
				selectors:#(foo bar).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   716
			 ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   717
	holder respondTo:#otherMenu1
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   718
		    with:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   719
			    v1 menuMessage:#menu1.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   720
			    PopUpMenu
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   721
				labels:#('other foo' 'other bar')
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   722
				selectors:#(foo bar).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   723
			 ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   724
	holder respondTo:#menu2
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   725
		    with:[  PopUpMenu
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   726
				labels:#('copy' 'bar2')
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   727
				selectors:#(copySelection bar2)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   728
			 ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   729
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   730
	top := StandardSystemView new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   731
	top extent:300@300.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   732
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   733
	v1 := View origin:0.0@0.0 corner:0.5@1.0 in:top.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   734
	v1 viewBackground:Color red.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   735
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   736
	v2 := TextView origin:0.5@0.0 corner:1.0@1.0 in:top.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   737
	v2 contents:'pop me up'.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   738
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   739
	v1 model:holder; menuMessage:#menu1.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   740
	v2 menuHolder:holder; menuMessage:#menu2.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   741
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   742
	top open.
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   743
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   744
    an additional goody is the possibility, to change the menuPerformer (textViews only).
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   745
    If defined, that one will get the menus message (instead of the model/view).
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   746
    However, like above, if it does not respond to the message, its still sent to
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   747
    the view. Notice, that with non-textViews, the menuPerformer is always the model.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   748
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   749
    example:
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   750
    (Notice: the executor understands the #copySelection message - therefore, the
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   751
     views built-in copy is NOT performed
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   752
     - it could be forwarded to the view, though.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   753
     This could be useful to intercept/filter things).
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   754
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   755
	|top v menuProvider menuExecutor |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   756
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   757
	menuProvider := Plug new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   758
	menuProvider respondTo:#menu
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   759
		    with:[  PopUpMenu
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   760
				labels:#('copy' 'foo')
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   761
				selectors:#(copySelection foo)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   762
			 ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   763
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   764
	menuExecutor := Plug new.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   765
	menuExecutor respondTo:#copySelection
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   766
			   with:[Transcript showCR:'copy function'].
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   767
	menuExecutor respondTo:#foo
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   768
			   with:[Transcript showCR:'foo function'].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   769
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   770
	top := StandardSystemView new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   771
	top extent:300@300.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   772
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   773
	v := TextView origin:0.0@0.0 corner:1.0@1.0 in:top.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   774
	v contents:'pop me up'.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   775
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   776
	v menuHolder:menuProvider; menuMessage:#menu.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   777
	v menuPerformer:menuExecutor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   778
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   779
	top open.
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   780
"
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
   781
135
claus
parents:
diff changeset
   782
! !
claus
parents:
diff changeset
   783
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
   784
!SimpleView class methodsFor:'initialization'!
135
claus
parents:
diff changeset
   785
claus
parents:
diff changeset
   786
initialize
claus
parents:
diff changeset
   787
    DefaultStyle isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   788
	Font initialize.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   789
	Form initialize.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   790
	Color initialize.
3378
0792856b9ce5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3377
diff changeset
   791
    ].
0792856b9ce5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3377
diff changeset
   792
    self == SimpleView ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   793
	Smalltalk addDependent:self   "/ to get language changes
3378
0792856b9ce5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3377
diff changeset
   794
    ].
0792856b9ce5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3377
diff changeset
   795
7306
600abeee8631 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7304
diff changeset
   796
    ReturnFocusWhenClosingModalBoxes := true. "/ false.
696
3719a063d0f0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 683
diff changeset
   797
7094
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   798
    FlagOriginChanged                   := 2r00000000000001.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   799
    FlagExtentChanged                   := 2r00000000000010.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   800
    FlagCornerChanged                   := 2r00000000000100.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   801
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   802
    FlagCanTab                          := 2r00000000001000.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   803
    FlagExtentChangedBeforeCreated      := 2r00000000010000.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   804
    FlagRequestFocusOnPointerEnter      := 2r00000000100000.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   805
    FlagDoNotRequestFocusOnPointerEnter := 2r00000001000000.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   806
    FlagNativeWidget                    := 2r00000010000000.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   807
    FlagIsUnmappedModalBox              := 2r00000100000000.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   808
    FlagIsMDIChild                      := 2r00001000000000.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   809
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   810
    FlagHiddenOnRealize                 := 2r00010000000000.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   811
    FlagHasExplicitExtent               := 2r00100000000000.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   812
    FlagTakeFocusWhenMapped             := 2r01000000000000.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
   813
    FlagBeingDestroyed                  := 2r10000000000000.
5663
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
   814
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
   815
    "Modified: / 09-12-2010 / 10:32:01 / cg"
135
claus
parents:
diff changeset
   816
!
claus
parents:
diff changeset
   817
claus
parents:
diff changeset
   818
postAutoload
2994
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
   819
    (Screen notNil and:[Screen current notNil]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   820
	self updateStyleCache.
2985
62552b74e805 do not read styleSheet if Display is nil
Stefan Vogel <sv@exept.de>
parents: 2979
diff changeset
   821
    ]
135
claus
parents:
diff changeset
   822
! !
claus
parents:
diff changeset
   823
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
   824
!SimpleView class methodsFor:'instance creation'!
135
claus
parents:
diff changeset
   825
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   826
extent:extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   827
    "create a new view with given extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   828
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   829
    ^ self origin:nil extent:extent borderWidth:nil font:nil label:nil in:nil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   830
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   831
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   832
extent:extent in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   833
    "create a new view as a subview of aView with given extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   834
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   835
    ^ self origin:nil extent:extent borderWidth:nil font:nil label:nil in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   836
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   837
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   838
extent:extent label:label
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   839
    "create a new view with given extent and label"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   840
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   841
    ^ self origin:nil extent:extent borderWidth:nil font:nil label:label in:nil
135
claus
parents:
diff changeset
   842
!
claus
parents:
diff changeset
   843
claus
parents:
diff changeset
   844
in:aView
claus
parents:
diff changeset
   845
    "return a new view as a subview of aView.
claus
parents:
diff changeset
   846
     If aView is nil, it is left unspecified, in which superview
claus
parents:
diff changeset
   847
     the new view will be placed. The view can later be assigned
claus
parents:
diff changeset
   848
     by adding it to the superview via #addSubView:.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   849
     If its later realized and no superview has ever been set,
1918
a4042019bc8b no need to set the container twice in SimpleView class>>in:
Claus Gittinger <cg@exept.de>
parents: 1903
diff changeset
   850
     it will come up as a topview."
135
claus
parents:
diff changeset
   851
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
   852
    |newView viewsDevice|
135
claus
parents:
diff changeset
   853
claus
parents:
diff changeset
   854
    newView := self basicNew.
claus
parents:
diff changeset
   855
    aView notNil ifTrue:[
7740
5a101b2965bc #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7736
diff changeset
   856
        viewsDevice := aView graphicsDevice.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
   857
"/      newView container:aView.
7740
5a101b2965bc #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7736
diff changeset
   858
    ].
5a101b2965bc #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7736
diff changeset
   859
    viewsDevice isNil ifTrue:[
5a101b2965bc #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7736
diff changeset
   860
        viewsDevice := Screen current
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
   861
    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
   862
    newView initializeForDevice:viewsDevice.
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
   863
    (viewsDevice supportsNativeWidgetType:newView nativeWindowType) ifTrue:[
7740
5a101b2965bc #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7736
diff changeset
   864
        newView beNativeWidget
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
   865
    ].
135
claus
parents:
diff changeset
   866
    aView notNil ifTrue:[aView addSubView:newView].
claus
parents:
diff changeset
   867
    ^ newView
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   868
743
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   869
    "Modified: 28.5.1996 / 20:24:58 / cg"
135
claus
parents:
diff changeset
   870
!
claus
parents:
diff changeset
   871
140
claus
parents: 138
diff changeset
   872
label:label
claus
parents: 138
diff changeset
   873
    "create a new view with given label"
135
claus
parents:
diff changeset
   874
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   875
    ^ self origin:nil extent:nil borderWidth:nil font:nil label:label in:nil
140
claus
parents: 138
diff changeset
   876
!
claus
parents: 138
diff changeset
   877
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   878
label:label in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   879
    "create a new view as subview of aView with given label"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   880
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   881
    ^ self origin:nil extent:nil borderWidth:nil font:nil label:label in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   882
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   883
1393
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   884
model:aModel
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   885
    "st-80 style view creation: create a new view and set its model.
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   886
     Notice, that simpleViews do not understand #model:; however,
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   887
     subclasses may."
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   888
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   889
    ^ self new model:aModel
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   890
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   891
    "Created: 28.2.1997 / 19:27:40 / cg"
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   892
    "Modified: 28.2.1997 / 19:28:12 / cg"
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   893
!
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   894
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   895
on:aModel
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   896
    "create a new drawable on aModel"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   897
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   898
    "although this one does not know about models,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   899
     it can still send the model-assign message. This was done
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   900
     to catch obsolete calls to on:aDevice.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   901
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   902
    ^ self new model:aModel.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   903
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   904
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   905
onSameDeviceAs:anotherView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   906
    "create a view on the same device as anotherView.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   907
     Used with popUpMenus, which should be created on the device of
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   908
     its masterView."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   909
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
   910
    |viewsDevice|
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   911
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   912
    anotherView notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   913
	viewsDevice := anotherView graphicsDevice.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   914
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
   915
	viewsDevice := Screen current.
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
   916
    ].
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
   917
    ^ self onDevice:viewsDevice
743
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   918
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   919
    "Modified: 28.5.1996 / 20:25:05 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   920
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   921
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
   922
origin:origin corner:corner
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   923
    "create a new view with given origin and extent"
135
claus
parents:
diff changeset
   924
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   925
    ^ self origin:origin corner:corner borderWidth:nil font:nil label:nil in:nil
135
claus
parents:
diff changeset
   926
!
claus
parents:
diff changeset
   927
claus
parents:
diff changeset
   928
origin:anOrigin corner:aCorner borderWidth:bw font:aFont label:aLabel in:aView
claus
parents:
diff changeset
   929
    |newView|
claus
parents:
diff changeset
   930
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   931
    newView := self in:aView.
135
claus
parents:
diff changeset
   932
    bw notNil ifTrue:[newView borderWidth:bw].
claus
parents:
diff changeset
   933
    anOrigin notNil ifTrue:[newView origin:anOrigin].
claus
parents:
diff changeset
   934
    aCorner notNil ifTrue:[newView corner:aCorner].
claus
parents:
diff changeset
   935
    aFont notNil ifTrue:[newView font:aFont].
claus
parents:
diff changeset
   936
    aLabel notNil ifTrue:[newView label:aLabel].
claus
parents:
diff changeset
   937
    ^ newView
743
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   938
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   939
    "Modified: 28.5.1996 / 20:25:15 / cg"
135
claus
parents:
diff changeset
   940
!
claus
parents:
diff changeset
   941
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   942
origin:origin corner:corner borderWidth:bw in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   943
    "create a new view as a subview of aView with given origin and extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   944
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   945
    ^ self origin:origin corner:corner borderWidth:bw font:nil label:nil in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   946
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   947
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   948
origin:origin corner:corner in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   949
    "create a new view as a subview of aView with given origin and extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   950
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   951
    ^ self origin:origin corner:corner borderWidth:nil font:nil label:nil in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   952
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   953
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   954
origin:origin extent:extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   955
    "create a new view with given origin and extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   956
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   957
    ^ self origin:origin extent:extent borderWidth:nil font:nil label:nil in:nil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   958
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   959
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   960
origin:origin extent:extent borderWidth:bw
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   961
    "create a new view with given origin, extent and borderWidth"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   962
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   963
    ^ self origin:origin extent:extent borderWidth:bw font:nil label:nil in:nil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   964
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   965
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   966
origin:anOrigin extent:anExtent borderWidth:bw font:aFont label:aLabel in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   967
    |newView|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   968
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   969
    newView := self in:aView.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   970
    bw notNil ifTrue:[newView borderWidth:bw].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   971
    anExtent notNil ifTrue:[newView extent:anExtent].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   972
    anOrigin notNil ifTrue:[newView origin:anOrigin].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   973
    aFont notNil ifTrue:[newView font:aFont].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   974
    aLabel notNil ifTrue:[newView label:aLabel].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   975
    ^ newView
743
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   976
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   977
    "Modified: 28.5.1996 / 20:25:19 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   978
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   979
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   980
origin:origin extent:extent borderWidth:bw in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   981
    "create a new view as a subview of aView with given origin, extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   982
     and borderWidth"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   983
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   984
    ^ self origin:origin extent:extent borderWidth:bw font:nil label:nil in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   985
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   986
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   987
origin:origin extent:extent font:aFont label:label
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   988
    ^ self origin:origin extent:extent borderWidth:nil font:nil label:label in:nil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   989
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   990
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   991
origin:origin extent:extent font:aFont label:label in:aView
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   992
    ^ self origin:origin extent:extent borderWidth:nil font:aFont label:label in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   993
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   994
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   995
origin:origin extent:extent in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   996
    "create a new view as a subview of aView with given origin and extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   997
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
   998
    ^ self origin:origin extent:extent borderWidth:nil font:nil label:nil in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   999
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1000
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1001
origin:origin extent:extent label:label
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1002
    "create a new view with given origin, extent and label"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1003
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  1004
    ^ self origin:origin extent:extent borderWidth:nil font:nil label:label in:nil
135
claus
parents:
diff changeset
  1005
!
claus
parents:
diff changeset
  1006
claus
parents:
diff changeset
  1007
origin:anOrigin extent:anExtent
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1008
		label:aLabel icon:aForm
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1009
		minExtent:minExtent maxExtent:maxExtent
135
claus
parents:
diff changeset
  1010
    |newView|
claus
parents:
diff changeset
  1011
6291
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  1012
    newView := self new. "/ onDevice:Screen current.
135
claus
parents:
diff changeset
  1013
    anOrigin notNil ifTrue:[newView origin:anOrigin].
claus
parents:
diff changeset
  1014
    anExtent notNil ifTrue:[newView extent:anExtent].
claus
parents:
diff changeset
  1015
    aLabel notNil ifTrue:[newView label:aLabel].
claus
parents:
diff changeset
  1016
    aForm notNil ifTrue:[newView icon:aForm].
claus
parents:
diff changeset
  1017
    minExtent notNil ifTrue:[newView minExtent:minExtent].
claus
parents:
diff changeset
  1018
    maxExtent notNil ifTrue:[newView maxExtent:maxExtent].
claus
parents:
diff changeset
  1019
    ^ newView
claus
parents:
diff changeset
  1020
!
claus
parents:
diff changeset
  1021
140
claus
parents: 138
diff changeset
  1022
origin:origin in:aView
claus
parents: 138
diff changeset
  1023
    "create a new view as a subview of aView with given origin"
claus
parents: 138
diff changeset
  1024
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  1025
    ^ self origin:origin extent:nil borderWidth:nil font:nil label:nil in:aView
135
claus
parents:
diff changeset
  1026
! !
claus
parents:
diff changeset
  1027
5293
3cfe2ac1b101 AboutToOpenBoxNotificationSignal moved to SimpleView and raised
Claus Gittinger <cg@exept.de>
parents: 5292
diff changeset
  1028
!SimpleView class methodsFor:'Signal constants'!
3cfe2ac1b101 AboutToOpenBoxNotificationSignal moved to SimpleView and raised
Claus Gittinger <cg@exept.de>
parents: 5292
diff changeset
  1029
3cfe2ac1b101 AboutToOpenBoxNotificationSignal moved to SimpleView and raised
Claus Gittinger <cg@exept.de>
parents: 5292
diff changeset
  1030
aboutToOpenBoxNotificationSignal
7127
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
  1031
    "the following allows for knowledgable programmers to suppress dialog boxes,
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
  1032
     (by proceeding with #abort) or to patch common controls right before opening..."
5690
29d8a448659e comment: #aboutToOpenBoxNotificationSignal
Claus Gittinger <cg@exept.de>
parents: 5680
diff changeset
  1033
5293
3cfe2ac1b101 AboutToOpenBoxNotificationSignal moved to SimpleView and raised
Claus Gittinger <cg@exept.de>
parents: 5292
diff changeset
  1034
    ^ AboutToOpenBoxNotificationSignal
5690
29d8a448659e comment: #aboutToOpenBoxNotificationSignal
Claus Gittinger <cg@exept.de>
parents: 5680
diff changeset
  1035
29d8a448659e comment: #aboutToOpenBoxNotificationSignal
Claus Gittinger <cg@exept.de>
parents: 5680
diff changeset
  1036
    "Modified: / 27-01-2011 / 17:35:00 / cg"
7127
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
  1037
!
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
  1038
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
  1039
boxClosedNotificationSignal
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
  1040
    "the following allows for knowledgable programmers to handle closed dialog boxes,
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
  1041
     this is raised right after closing..."
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
  1042
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
  1043
    ^ BoxClosedNotificationSignal
5293
3cfe2ac1b101 AboutToOpenBoxNotificationSignal moved to SimpleView and raised
Claus Gittinger <cg@exept.de>
parents: 5292
diff changeset
  1044
! !
3cfe2ac1b101 AboutToOpenBoxNotificationSignal moved to SimpleView and raised
Claus Gittinger <cg@exept.de>
parents: 5292
diff changeset
  1045
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
  1046
!SimpleView class methodsFor:'change & update'!
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1047
867
7073ec7824f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 795
diff changeset
  1048
update:something with:aParameter from:changedObject
3378
0792856b9ce5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3377
diff changeset
  1049
    changedObject == Smalltalk ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1050
	(something == #Language or:[something == #LanguageTerritory]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1051
	    "flush resources on language changes"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1052
	    self flushAllClassResources.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1053
	    self allSubInstancesDo:[:eachView | eachView languageChanged].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1054
	].
135
claus
parents:
diff changeset
  1055
    ]
867
7073ec7824f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 795
diff changeset
  1056
7073ec7824f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 795
diff changeset
  1057
    "Created: 15.6.1996 / 15:23:04 / cg"
135
claus
parents:
diff changeset
  1058
! !
claus
parents:
diff changeset
  1059
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
  1060
!SimpleView class methodsFor:'defaults'!
135
claus
parents:
diff changeset
  1061
5366
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1062
defaultBackgroundColor
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1063
    "return the default background color for drawing - usually,
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1064
     that is the same as the viewBackgroundColor."
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1065
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1066
    ^ self defaultViewBackgroundColor
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1067
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1068
    "
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1069
     View defaultBackgroundColor
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1070
    "
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1071
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1072
    "Modified: 13.8.1997 / 19:37:55 / cg"
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1073
!
ce5017348c83 added: #defaultBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 5358
diff changeset
  1074
140
claus
parents: 138
diff changeset
  1075
defaultExtent
586
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1076
    "return the default extent of my instances.
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1077
     The value returned here is usually ignored, and
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1078
     the value from preferredExtent taken instead."
140
claus
parents: 138
diff changeset
  1079
claus
parents: 138
diff changeset
  1080
    CentPoint isNil ifTrue:[CentPoint := 100 @ 100].
claus
parents: 138
diff changeset
  1081
    ^ CentPoint
586
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1082
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1083
    "Modified: 22.4.1996 / 23:38:39 / cg"
140
claus
parents: 138
diff changeset
  1084
!
claus
parents: 138
diff changeset
  1085
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1086
defaultFont
990
0585aee05fa2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 971
diff changeset
  1087
    |f|
0585aee05fa2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 971
diff changeset
  1088
452
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
  1089
    DefaultFont notNil ifTrue:[^ DefaultFont].
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
  1090
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  1091
    self == SimpleView ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1092
	f := super defaultFont
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  1093
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1094
	f := self superclass defaultFont.
452
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
  1095
    ].
997
39d5d3a74853 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 990
diff changeset
  1096
990
0585aee05fa2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 971
diff changeset
  1097
    f notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1098
	DefaultFont := f.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1099
	f := f onDevice:Screen current.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1100
	f notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1101
	    DefaultFont := f.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1102
	]
990
0585aee05fa2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 971
diff changeset
  1103
    ].
452
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
  1104
    ^ DefaultFont
467
badc7ab65a2d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
  1105
badc7ab65a2d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
  1106
    "Modified: 27.2.1996 / 02:20:54 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1107
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1108
450
9eb6198de8f6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 433
diff changeset
  1109
defaultFont:aFont
452
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
  1110
    "set the default font used for drawing"
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
  1111
997
39d5d3a74853 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 990
diff changeset
  1112
    |f|
39d5d3a74853 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 990
diff changeset
  1113
527
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1114
    DefaultFont := aFont.
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1115
    aFont notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1116
	Display notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1117
	    f := aFont onDevice:(Screen current).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1118
	    f notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1119
		DefaultFont := f.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1120
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1121
	]
527
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1122
    ]
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1123
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1124
    "Modified: 18.3.1996 / 12:56:20 / cg"
450
9eb6198de8f6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 433
diff changeset
  1125
!
9eb6198de8f6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 433
diff changeset
  1126
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1127
defaultStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1128
    "return the default view style"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1129
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1130
    ^ DefaultStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1131
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1132
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1133
     View defaultStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1134
    "
135
claus
parents:
diff changeset
  1135
!
claus
parents:
diff changeset
  1136
claus
parents:
diff changeset
  1137
defaultStyle:aStyle
claus
parents:
diff changeset
  1138
    "set the view style for new views"
claus
parents:
diff changeset
  1139
2985
62552b74e805 do not read styleSheet if Display is nil
Stefan Vogel <sv@exept.de>
parents: 2979
diff changeset
  1140
    DefaultStyle := aStyle.
6798
62c531da09f3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6792
diff changeset
  1141
62c531da09f3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6792
diff changeset
  1142
    MIMETypeIconLibrary notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1143
	MIMETypeIconLibrary flushIcons
6798
62c531da09f3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6792
diff changeset
  1144
    ].
62c531da09f3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6792
diff changeset
  1145
6291
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  1146
    "/ no need to read the stylesheet always here
5711
290bfea2c941 changed: #defaultStyle:
Claus Gittinger <cg@exept.de>
parents: 5707
diff changeset
  1147
    "/ done later if the system is not already up and running
290bfea2c941 changed: #defaultStyle:
Claus Gittinger <cg@exept.de>
parents: 5707
diff changeset
  1148
    "/ (which is the case, if there is already a styleSheet)
290bfea2c941 changed: #defaultStyle:
Claus Gittinger <cg@exept.de>
parents: 5707
diff changeset
  1149
    "/ this will make startup of expecco and similar applications
6291
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  1150
    "/ faster, because often, they find that another instance is already
5711
290bfea2c941 changed: #defaultStyle:
Claus Gittinger <cg@exept.de>
parents: 5707
diff changeset
  1151
    "/ running and they simply forward the request to that one.
290bfea2c941 changed: #defaultStyle:
Claus Gittinger <cg@exept.de>
parents: 5707
diff changeset
  1152
    "/ no need to read the stylesheet, then.
290bfea2c941 changed: #defaultStyle:
Claus Gittinger <cg@exept.de>
parents: 5707
diff changeset
  1153
    "/ used to be unconditional, before.
290bfea2c941 changed: #defaultStyle:
Claus Gittinger <cg@exept.de>
parents: 5707
diff changeset
  1154
    StyleSheet notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1155
	(Screen notNil and:[Screen current notNil]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1156
	    self readStyleSheetAndUpdateAllStyleCaches.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1157
	].
5711
290bfea2c941 changed: #defaultStyle:
Claus Gittinger <cg@exept.de>
parents: 5707
diff changeset
  1158
    ].
135
claus
parents:
diff changeset
  1159
claus
parents:
diff changeset
  1160
    "
claus
parents:
diff changeset
  1161
     View defaultStyle:#next. SystemBrowser start
claus
parents:
diff changeset
  1162
     View defaultStyle:#motif. SystemBrowser start
claus
parents:
diff changeset
  1163
     View defaultStyle:#iris. SystemBrowser start
claus
parents:
diff changeset
  1164
     View defaultStyle:#st80. SystemBrowser start
claus
parents:
diff changeset
  1165
     View defaultStyle:#normal. SystemBrowser start
claus
parents:
diff changeset
  1166
    "
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1167
5711
290bfea2c941 changed: #defaultStyle:
Claus Gittinger <cg@exept.de>
parents: 5707
diff changeset
  1168
    "Modified: / 05-02-2011 / 15:26:34 / cg"
135
claus
parents:
diff changeset
  1169
!
claus
parents:
diff changeset
  1170
1860
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1171
defaultViewBackgroundColor
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1172
    "return the default view background"
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1173
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1174
    ^ DefaultViewBackgroundColor
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1175
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1176
    "
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  1177
     View defaultViewBackgroundColor
1860
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1178
    "
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1179
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1180
    "Modified: 13.8.1997 / 19:37:55 / cg"
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1181
!
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1182
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1183
readStyleSheet
3181
35d4e8a2bebd comment
ps
parents: 3180
diff changeset
  1184
    "(re)load the styleSheet."
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1185
4313
48fe65cf3fd2 iconLibrary-class from styleSheet
Claus Gittinger <cg@exept.de>
parents: 4295
diff changeset
  1186
    |iconLibraryClass |
48fe65cf3fd2 iconLibrary-class from styleSheet
Claus Gittinger <cg@exept.de>
parents: 4295
diff changeset
  1187
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1188
    DefaultStyle isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1189
	self setDefaultStyle
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1190
    ].
3002
3b0951872ab4 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 2994
diff changeset
  1191
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1192
    StyleSheet := ViewStyle fromFile:(DefaultStyle , '.style').
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1193
    StyleSheet fileReadFailed ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1194
	('SimpleView [warning]: ***** no styleSheet for ' , DefaultStyle , '-style.') errorPrintCR.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1195
	DefaultStyle ~~ #normal ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1196
	    DefaultStyle := #normal.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1197
	    StyleSheet := ViewStyle fromFile:(DefaultStyle , '.style').
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1198
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1199
	    StyleSheet fileReadFailed ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1200
		'SimpleView [warning]: not even a styleSheet for normal-style (using ugly defaults).' errorPrintCR.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1201
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1202
	]
4313
48fe65cf3fd2 iconLibrary-class from styleSheet
Claus Gittinger <cg@exept.de>
parents: 4295
diff changeset
  1203
    ].
48fe65cf3fd2 iconLibrary-class from styleSheet
Claus Gittinger <cg@exept.de>
parents: 4295
diff changeset
  1204
48fe65cf3fd2 iconLibrary-class from styleSheet
Claus Gittinger <cg@exept.de>
parents: 4295
diff changeset
  1205
    iconLibraryClass := StyleSheet at:#ToolbarIconLibrary.
48fe65cf3fd2 iconLibrary-class from styleSheet
Claus Gittinger <cg@exept.de>
parents: 4295
diff changeset
  1206
    ToolbarIconLibrary := iconLibraryClass ? GenericToolbarIconLibrary.
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1207
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1208
    "Created: / 15.9.1998 / 22:03:06 / cg"
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1209
!
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1210
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1211
readStyleSheetAndUpdateAllStyleCaches
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1212
    "reload all style caches in all view classes.
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1213
     Needed after a style change or when a style file has been changed"
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1214
5591
992839870412 changed: #readStyleSheetAndUpdateAllStyleCaches
Stefan Vogel <sv@exept.de>
parents: 5590
diff changeset
  1215
    DefaultStyle notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1216
	self readStyleSheet.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1217
	self updateAllStyleCaches.
5591
992839870412 changed: #readStyleSheetAndUpdateAllStyleCaches
Stefan Vogel <sv@exept.de>
parents: 5590
diff changeset
  1218
    ].
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1219
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1220
    "Created: / 15.9.1998 / 22:03:59 / cg"
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1221
!
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1222
362
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1223
returnFocusWhenClosingModalBoxes
364
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1224
    "return the current focus-return behavior.
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1225
     See #returnFocusWhenClosingModalBoxes: for a description."
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1226
362
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1227
    ^ ReturnFocusWhenClosingModalBoxes
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1228
!
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1229
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1230
returnFocusWhenClosingModalBoxes:aBoolean
364
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1231
    "control the keyboard-focus behavior when a modal dialog
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1232
     is closed. The default (true) is to return the focus to the view
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1233
     which was active when the dialog was opened.
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1234
     If false, it is left up to the display to set the focus.
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1235
     For owm / ovwm (which requires an explicit click for the focus),
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1236
     it is better to return the focus automatically.
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1237
     For managers which assign the focus according the pointer position,
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1238
     it may be better to turn the focus-return off.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  1239
     You should add a corresponding expression into your private.rc or
364
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1240
     display.rc file."
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1241
362
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1242
    ReturnFocusWhenClosingModalBoxes := aBoolean
364
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1243
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1244
    "
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1245
     Dialog returnFocusWhenClosingModalBoxes:false
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1246
     Dialog returnFocusWhenClosingModalBoxes:true
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1247
    "
362
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1248
!
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1249
2294
f198e6e23448 defaultStyle
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1250
setDefaultStyle
7178
7963dc6ec798 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7144
diff changeset
  1251
    "set a default style as appropriate for the underlying system.
7963dc6ec798 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7144
diff changeset
  1252
     This is used if no setting is coming from a startup file or a preferences,
7963dc6ec798 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7144
diff changeset
  1253
     i.e. for standalone apps (with no .rc file)"
7963dc6ec798 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7144
diff changeset
  1254
7963dc6ec798 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7144
diff changeset
  1255
    |defStyle|
7963dc6ec798 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7144
diff changeset
  1256
7963dc6ec798 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7144
diff changeset
  1257
    true "DefaultStyle isNil" ifTrue:[
7712
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1258
        defStyle := OperatingSystem getEnvironment:'STX_VIEWSTYLE'.
7713
5e4be080979a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7712
diff changeset
  1259
        defStyle isNil ifTrue:[
5e4be080979a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7712
diff changeset
  1260
            defStyle := UserPreferences current viewStyle
5e4be080979a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7712
diff changeset
  1261
        ].
7712
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1262
        defStyle notNil ifTrue:[
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1263
            DefaultStyle := defStyle asSymbol.
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1264
        ] ifFalse:[
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1265
            "/ use XP for both linux and older windows systems;
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1266
            DefaultStyle := ViewStyle msWindowsXP.
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1267
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1268
            OperatingSystem isMSWINDOWSlike ifTrue:[
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1269
                "/ use Vista for vista and newer systems;
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1270
                OperatingSystem isVistaLike ifTrue:[
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1271
                    DefaultStyle := ViewStyle msWindowsVista.
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1272
                    OperatingSystem isWin8Like ifTrue:[
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1273
                        "/ use win8 for 8 and newer systems;
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1274
                        DefaultStyle := ViewStyle msWindows8
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1275
                    ].
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1276
                ].
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1277
            ] ifFalse:[
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1278
                OperatingSystem isOSXlike ifTrue:[
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1279
                    DefaultStyle := ViewStyle macosx_yosemite
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1280
                ] ifFalse:[
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1281
                    DefaultStyle := ViewStyle adwaita
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1282
                ]
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1283
            ].
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1284
        ].
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1285
    ].
287a27631c15 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7692
diff changeset
  1286
7713
5e4be080979a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7712
diff changeset
  1287
    "Modified: / 24-11-2016 / 18:00:43 / cg"
2294
f198e6e23448 defaultStyle
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1288
!
f198e6e23448 defaultStyle
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1289
1161
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1290
styleSheet
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1291
    "return the view style sheet information (a dictionary)"
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1292
3923
5e0345a32742 stylesheet access
Claus Gittinger <cg@exept.de>
parents: 3922
diff changeset
  1293
    StyleSheet isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1294
	self updateAllStyleCaches.
3923
5e0345a32742 stylesheet access
Claus Gittinger <cg@exept.de>
parents: 3922
diff changeset
  1295
    ].
1161
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1296
    ^ StyleSheet
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1297
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1298
    "
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1299
     View styleSheet
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1300
    "
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1301
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1302
    "Modified: 9.1.1997 / 13:47:42 / cg"
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1303
!
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1304
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1305
styleSheet:aViewStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1306
    "set the view style from a style-sheet"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1307
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1308
    StyleSheet := aViewStyle.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1309
    DefaultStyle := (StyleSheet at:'name' ifAbsent:'unknown') asSymbol.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1310
    self updateAllStyleCaches.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1311
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1312
5978
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1313
updateAllStyleCaches
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1314
    "reload all style caches in all view classes.
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1315
     Needed after a style change or when a style file has been changed"
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1316
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1317
    (Screen isNil or:[Screen current isNil]) ifTrue:[^ self].
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1318
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1319
    "
7299
009757f02299 Issue #42: User-defined (Xft) fonts are not preserved upon snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7296
diff changeset
  1320
     Don't do anything when restarting from a snapshot. Otherwuse
009757f02299 Issue #42: User-defined (Xft) fonts are not preserved upon snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7296
diff changeset
  1321
     all fonts and so on got reset to defaults which is what we
009757f02299 Issue #42: User-defined (Xft) fonts are not preserved upon snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7296
diff changeset
  1322
     DON'T want. If the font is not available, then font ioself 
009757f02299 Issue #42: User-defined (Xft) fonts are not preserved upon snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7296
diff changeset
  1323
     should pick a proper replacement.
009757f02299 Issue #42: User-defined (Xft) fonts are not preserved upon snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7296
diff changeset
  1324
    "
009757f02299 Issue #42: User-defined (Xft) fonts are not preserved upon snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7296
diff changeset
  1325
    Smalltalk isRestarting ifTrue:[ ^ self ].
009757f02299 Issue #42: User-defined (Xft) fonts are not preserved upon snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7296
diff changeset
  1326
    "
009757f02299 Issue #42: User-defined (Xft) fonts are not preserved upon snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7296
diff changeset
  1327
     Tell all view classes to flush any
5978
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1328
     cached style-data
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1329
    "
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1330
    self changed:#style.
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1331
    SimpleView updateStyleCache.
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1332
    SimpleView allSubclassesDo:[:aClass |
7299
009757f02299 Issue #42: User-defined (Xft) fonts are not preserved upon snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7296
diff changeset
  1333
        aClass defaultFont:nil.
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1334
	(aClass class includesSelector:#updateStyleCache) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1335
	    aClass updateStyleCache
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1336
	].
6611
d374e1b85bfd class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6606
diff changeset
  1337
    ].
d374e1b85bfd class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6606
diff changeset
  1338
d374e1b85bfd class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6606
diff changeset
  1339
    "/ use #at: to avoid introducing a depency to libview2
d374e1b85bfd class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6606
diff changeset
  1340
    (Smalltalk at:#MIMETypeIconLibrary) notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1341
	(Smalltalk at:#MIMETypeIconLibrary) flushIcons
6611
d374e1b85bfd class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6606
diff changeset
  1342
    ].
d374e1b85bfd class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6606
diff changeset
  1343
5978
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1344
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1345
    "
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1346
     View updateAllStyleCaches
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1347
    "
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1348
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1349
    "Modified: / 15-09-1998 / 22:04:15 / cg"
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1350
    "Modified (format): / 05-10-2011 / 16:08:47 / az"
7299
009757f02299 Issue #42: User-defined (Xft) fonts are not preserved upon snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7296
diff changeset
  1351
    "Modified: / 20-04-2016 / 08:46:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5978
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1352
!
d82030712cd6 class: SimpleView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5976
diff changeset
  1353
135
claus
parents:
diff changeset
  1354
updateStyleCache
claus
parents:
diff changeset
  1355
    "this method gets some heavily used style stuff and keeps
claus
parents:
diff changeset
  1356
     it in class-variables for faster access.
claus
parents:
diff changeset
  1357
     Subclasses should redefine this to load any cached style-values
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  1358
     into faster class variables as well. These should NOT do a
135
claus
parents:
diff changeset
  1359
     super updateStyleCache, since this method is called for all view-classes
claus
parents:
diff changeset
  1360
     anyway."
claus
parents:
diff changeset
  1361
2492
0ac67f027ba4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2489
diff changeset
  1362
    <resource: #style (#viewSpacing #font #borderWidth #borderColor
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1363
		       #viewBackground #shadowColor #lightColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1364
		       #focusColor #focusBorderWidth)>
2292
8efc5272cf0b defaultStyle either from environmane (STX_VIEWSTYLE)
Claus Gittinger <cg@exept.de>
parents: 2274
diff changeset
  1365
6633
aa34de5874e0 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1366
    |styleSheet bgGrey currentScreen|
aa34de5874e0 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1367
aa34de5874e0 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1368
    styleSheet := StyleSheet.
135
claus
parents:
diff changeset
  1369
claus
parents:
diff changeset
  1370
    "
claus
parents:
diff changeset
  1371
     when coming here the first time, we read the styleSheet
claus
parents:
diff changeset
  1372
     and keep the values in fast class variables
claus
parents:
diff changeset
  1373
    "
6633
aa34de5874e0 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1374
    styleSheet isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1375
	self setDefaultStyle.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1376
	self readStyleSheet.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1377
	styleSheet := StyleSheet.
5669
bc47f2771650 changed: #updateStyleCache
Claus Gittinger <cg@exept.de>
parents: 5667
diff changeset
  1378
    ].
bc47f2771650 changed: #updateStyleCache
Claus Gittinger <cg@exept.de>
parents: 5667
diff changeset
  1379
bc47f2771650 changed: #updateStyleCache
Claus Gittinger <cg@exept.de>
parents: 5667
diff changeset
  1380
    currentScreen := Screen current ? Screen default.
2994
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
  1381
6633
aa34de5874e0 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1382
    Grey := styleSheet viewGrey.
135
claus
parents:
diff changeset
  1383
    Grey isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1384
	Grey := Color gray
2829
c50504338b61 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
  1385
    ].
2994
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
  1386
    Grey := Grey onDevice:currentScreen.
135
claus
parents:
diff changeset
  1387
6633
aa34de5874e0 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1388
    styleSheet fileReadFailed ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1389
	bgGrey := Color white
135
claus
parents:
diff changeset
  1390
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1391
	currentScreen hasGrayscales ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1392
	    bgGrey := Grey
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1393
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1394
	    bgGrey := Color white.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1395
	]
2829
c50504338b61 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
  1396
    ].
2994
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
  1397
    bgGrey := bgGrey onDevice:currentScreen.
135
claus
parents:
diff changeset
  1398
6633
aa34de5874e0 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1399
    ViewSpacing := styleSheet at:#viewSpacing.
135
claus
parents:
diff changeset
  1400
    ViewSpacing isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1401
	ViewSpacing := currentScreen defaultStyleValueFor:#viewSpacing.
2492
0ac67f027ba4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2489
diff changeset
  1402
    ].
0ac67f027ba4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2489
diff changeset
  1403
6633
aa34de5874e0 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1404
    DefaultBorderColor := styleSheet colorAt:#borderColor.
1678
5c93a4791a8b prepare to fetch style defaults from device (for windows)
Claus Gittinger <cg@exept.de>
parents: 1617
diff changeset
  1405
    DefaultBorderColor isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1406
	DefaultBorderColor := currentScreen defaultStyleValueFor:#borderColor
1678
5c93a4791a8b prepare to fetch style defaults from device (for windows)
Claus Gittinger <cg@exept.de>
parents: 1617
diff changeset
  1407
    ].
151
claus
parents: 145
diff changeset
  1408
6633
aa34de5874e0 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1409
    styleSheet fileReadFailed ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1410
	DefaultBorderWidth := 1.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1411
	DefaultFocusColor := DefaultShadowColor := Color black.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1412
	DefaultViewBackgroundColor := DefaultLightColor :=  Color white.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1413
	DefaultFocusBorderWidth := 1.
151
claus
parents: 145
diff changeset
  1414
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1415
	DefaultBorderWidth := styleSheet at:#borderWidth default:0.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1416
	DefaultViewBackgroundColor := styleSheet colorAt:#viewBackground default:bgGrey.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1417
	DefaultShadowColor := styleSheet colorAt:#shadowColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1418
	DefaultLightColor := styleSheet colorAt:#lightColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1419
	DefaultFocusColor := styleSheet colorAt:#focusColor default:Color red.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1420
	DefaultFocusBorderWidth := styleSheet at:'focusBorderWidth' default:2.
151
claus
parents: 145
diff changeset
  1421
    ].
135
claus
parents:
diff changeset
  1422
526
3ba5c3844c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 522
diff changeset
  1423
    self == SimpleView ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1424
	DefaultFont := styleSheet at:#font.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1425
	DefaultFont isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1426
	    DefaultFont := Font family:'courier' face:'medium' style:'roman' size:12.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1427
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1428
	DefaultFont := DefaultFont onDevice:currentScreen.
527
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1429
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1430
	DefaultFont := nil
135
claus
parents:
diff changeset
  1431
    ].
claus
parents:
diff changeset
  1432
claus
parents:
diff changeset
  1433
    DefaultViewBackgroundColor isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1434
	'SimpleView [warning]: bad viewBackground in style - using white' errorPrintCR.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1435
	DefaultViewBackgroundColor := Color white
5669
bc47f2771650 changed: #updateStyleCache
Claus Gittinger <cg@exept.de>
parents: 5667
diff changeset
  1436
    ].
bc47f2771650 changed: #updateStyleCache
Claus Gittinger <cg@exept.de>
parents: 5667
diff changeset
  1437
bc47f2771650 changed: #updateStyleCache
Claus Gittinger <cg@exept.de>
parents: 5667
diff changeset
  1438
    "Modified: / 29-04-1997 / 11:16:52 / dq"
bc47f2771650 changed: #updateStyleCache
Claus Gittinger <cg@exept.de>
parents: 5667
diff changeset
  1439
    "Modified: / 20-12-2010 / 14:40:22 / cg"
135
claus
parents:
diff changeset
  1440
!
claus
parents:
diff changeset
  1441
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1442
viewSpacing
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1443
    "return a convenient number of pixels used to separate views (usually 1mm).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1444
     Having this value here at a common place makes certain that all views
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1445
     get a common look"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1446
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1447
    ^ ViewSpacing
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1448
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1449
5354
4a62930c1786 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1450
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
  1451
!SimpleView class methodsFor:'resources'!
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1452
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1453
classResources
4091
3995bf25130a classResources now understood by all classes
Claus Gittinger <cg@exept.de>
parents: 4069
diff changeset
  1454
    "if not already loaded, get the classes resourcePack and return it"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1455
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1456
    ClassResources isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1457
	ClassResources := super classResources.
140
claus
parents: 138
diff changeset
  1458
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1459
    ^ ClassResources
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1460
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1461
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1462
classResources:aResourcePack
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1463
    "allow setting of the classResources"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1464
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1465
    ClassResources := aResourcePack
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1466
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1467
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1468
flushAllClassResources
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1469
    "flush all classes resource translations.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1470
     Needed after a resource file has changed."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1471
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1472
    ResourcePack flushCachedResourcePacks.
3378
0792856b9ce5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3377
diff changeset
  1473
    SimpleView withAllSubclassesDo:[:aClass |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1474
	aClass flushClassResources.
140
claus
parents: 138
diff changeset
  1475
    ]
claus
parents: 138
diff changeset
  1476
claus
parents: 138
diff changeset
  1477
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1478
     View flushAllClassResources
140
claus
parents: 138
diff changeset
  1479
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1480
    "to change the language:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1481
	Language := #en.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1482
	Smalltalk changed:#Language.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1483
	View flushAllClassResources
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1484
     or:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1485
	Language := #de.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1486
	Smalltalk changed:#Language.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1487
	View flushAllClassResources
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  1488
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1489
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1490
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1491
flushClassResources
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1492
    "flush classes resource string translations.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1493
     Needed whenever a resource file or language has changed"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1494
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1495
    ClassResources := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1496
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1497
2130
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  1498
resources
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  1499
    "return the view's resources -
5221
3c4682d4b409 comment only
Claus Gittinger <cg@exept.de>
parents: 5214
diff changeset
  1500
     that's a ResourcePack containing national language strings"
3c4682d4b409 comment only
Claus Gittinger <cg@exept.de>
parents: 5214
diff changeset
  1501
2130
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  1502
    ^ self classResources
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  1503
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  1504
    "Created: / 25.5.1998 / 13:00:30 / cg"
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  1505
!
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  1506
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1507
updateClassResources
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1508
    "flush classes resource string translations and reload them.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1509
     Needed whenever a resource file or language has changed"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1510
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1511
    ClassResources := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1512
    self classResources
135
claus
parents:
diff changeset
  1513
! !
claus
parents:
diff changeset
  1514
3781
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1515
!SimpleView class methodsFor:'startup'!
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1516
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1517
open
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1518
    "create, realize the view - this topview and all its subviews will
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1519
     run as a separate process with its own windowGroup"
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1520
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  1521
    ^ self new open
4054
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1522
!
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1523
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1524
openOnXScreenNamed:aScreenName
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1525
    "create an instance of the view and open it
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  1526
     on some X display screen. The argument aScreenName must be
4054
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1527
     a valid x-display name (i.e. of the form '<host>:<screenNr>' as in 'foo:0').
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1528
     For more info, read the document on multiple display
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1529
     support and the documentation of the DeviceWorkstation class."
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1530
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1531
    |newDevice|
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1532
7790
0c9e3f0b79b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7779
diff changeset
  1533
    (XWorkstation notNil and:[ XWorkstation isLoaded ]) ifFalse:[
0c9e3f0b79b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7779
diff changeset
  1534
        self warn:'Could not open display (no XWorkstation class)'.
0c9e3f0b79b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7779
diff changeset
  1535
        ^ self
0c9e3f0b79b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7779
diff changeset
  1536
    ].    
0c9e3f0b79b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7779
diff changeset
  1537
    
4054
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1538
    [
7790
0c9e3f0b79b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7779
diff changeset
  1539
        newDevice := XWorkstation newDispatchingFor:aScreenName.
4054
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1540
    ] on:Screen deviceOpenErrorSignal do:[:ex|
7790
0c9e3f0b79b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7779
diff changeset
  1541
        self warn:'Could not open display: ' , aScreenName.
0c9e3f0b79b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7779
diff changeset
  1542
        ^ self
4054
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1543
    ].
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1544
    ^ (self onDevice:newDevice) open.
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1545
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1546
    "
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1547
     FileBrowser openOnXScreenNamed:'bitsy:0'
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1548
     FileBrowser openOnXScreenNamed:':0'
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1549
     View openOnXScreenNamed:'bitsy:0'
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1550
    "
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1551
327834fa21cd +openOnDevice:
Claus Gittinger <cg@exept.de>
parents: 4049
diff changeset
  1552
    "Modified: 13.1.1997 / 20:55:27 / cg"
3781
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1553
! !
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1554
3880
c4c8268a2d9f method category rename
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  1555
!SimpleView methodsFor:'Compatibility-ST80'!
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1556
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1557
checkForEvents
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1558
    "ST-80 compatibility:
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1559
     check for any pending events and process them"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1560
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1561
    (shown and:[windowGroup notNil]) ifTrue:[windowGroup processEvents].
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1562
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1563
    "Modified: 10.1.1997 / 19:46:06 / cg"
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1564
!
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1565
3164
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
  1566
closeAndUnschedule
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
  1567
    "actually sent to a controller in VW...
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
  1568
     however, #open returns the view in ST/X, so we respond here"
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
  1569
3316
b9cb3eac524e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3314
diff changeset
  1570
    self topView destroy
3164
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
  1571
!
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
  1572
3775
fc3a650b3e3c displayOn confusion
Claus Gittinger <cg@exept.de>
parents: 3774
diff changeset
  1573
displayOn:aGCOrStream
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1574
    "ST-80 compatibility: (re-)display myself"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1575
3775
fc3a650b3e3c displayOn confusion
Claus Gittinger <cg@exept.de>
parents: 3774
diff changeset
  1576
    "/ what a kludge - Dolphin and Squeak mean: printOn:;
fc3a650b3e3c displayOn confusion
Claus Gittinger <cg@exept.de>
parents: 3774
diff changeset
  1577
    "/ ST/X (and some old ST80's) mean: draw-yourself on.
6546
1341805eb06c displayOn: cleanup
Claus Gittinger <cg@exept.de>
parents: 6536
diff changeset
  1578
    (aGCOrStream isStream) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1579
	^ super displayOn:aGCOrStream
3774
a85ec40ac028 displayOn: confusion kludge
tm
parents: 3765
diff changeset
  1580
    ].
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1581
    self redraw
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1582
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1583
    "Created: 4.6.1996 / 21:25:59 / cg"
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1584
    "Modified: 10.1.1997 / 19:46:58 / cg"
1363
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1585
!
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1586
1432
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1587
displayPendingInvalidation
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1588
    "dummy - for ST-80 compatibility"
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1589
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1590
    "Created: 6.3.1997 / 15:17:14 / cg"
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1591
    "Modified: 6.3.1997 / 15:17:31 / cg"
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1592
!
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1593
4515
ecbf26955b5b client:spec:builder: bogus masterApp handling
Claus Gittinger <cg@exept.de>
parents: 4502
diff changeset
  1594
invalidateRectangle:aRectangle repairNow:doRepairNow
ecbf26955b5b client:spec:builder: bogus masterApp handling
Claus Gittinger <cg@exept.de>
parents: 4502
diff changeset
  1595
    self invalidate:aRectangle repairNow:doRepairNow
ecbf26955b5b client:spec:builder: bogus masterApp handling
Claus Gittinger <cg@exept.de>
parents: 4502
diff changeset
  1596
!
ecbf26955b5b client:spec:builder: bogus masterApp handling
Claus Gittinger <cg@exept.de>
parents: 4502
diff changeset
  1597
1363
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1598
isEnabled
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1599
    "return true, if this view is enabled (i.e. accepts user interaction).
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1600
     Most views are enabled - only a few (buttons, SelectionInList etc.) can
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1601
     be disabled.
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1602
     #isEnabled is ST-80's equivalent of #enabled"
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1603
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1604
    ^ self enabled
1413
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1605
!
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1606
2061
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1607
isOpen
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1608
    "ST80 compatibility"
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1609
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1610
    ^ realized
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1611
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1612
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1613
!
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1614
2159
da3337e54241 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
  1615
lookPreferences:prefs
da3337e54241 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
  1616
    "ignored - but required for some apps"
da3337e54241 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
  1617
da3337e54241 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
  1618
    "Created: / 19.6.1998 / 00:05:10 / cg"
da3337e54241 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
  1619
!
da3337e54241 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
  1620
1413
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1621
newLayout:aLayoutObject
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1622
    "set the layout object which controls my geometry.
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1623
     ST80-compatibility."
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1624
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1625
    here layout:aLayoutObject.
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1626
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1627
    "Created: 3.3.1997 / 18:54:53 / cg"
1427
35214ddde67c checkin from browser
ca
parents: 1425
diff changeset
  1628
!
35214ddde67c checkin from browser
ca
parents: 1425
diff changeset
  1629
35214ddde67c checkin from browser
ca
parents: 1425
diff changeset
  1630
refresh
35214ddde67c checkin from browser
ca
parents: 1425
diff changeset
  1631
    self invalidate
3909
e22a5151d23c compatibility
Claus Gittinger <cg@exept.de>
parents: 3901
diff changeset
  1632
!
e22a5151d23c compatibility
Claus Gittinger <cg@exept.de>
parents: 3901
diff changeset
  1633
e22a5151d23c compatibility
Claus Gittinger <cg@exept.de>
parents: 3901
diff changeset
  1634
takeKeyboardFocus
e22a5151d23c compatibility
Claus Gittinger <cg@exept.de>
parents: 3901
diff changeset
  1635
    self requestFocus
151
claus
parents: 145
diff changeset
  1636
! !
claus
parents: 145
diff changeset
  1637
3880
c4c8268a2d9f method category rename
Claus Gittinger <cg@exept.de>
parents: 3856
diff changeset
  1638
!SimpleView methodsFor:'Compatibility-Squeak'!
2956
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1639
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1640
insetDisplayBox
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1641
    "Squeak mimicri: return my bounds"
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1642
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1643
    ^ 0@0 corner:(self corner)
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1644
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1645
! !
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1646
2450
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1647
!SimpleView methodsFor:'accessing'!
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1648
8223
d0117698147d `SimpleView`: added `#automationUUID` and `#automationUUID:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7969
diff changeset
  1649
automationUUID
d0117698147d `SimpleView`: added `#automationUUID` and `#automationUUID:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7969
diff changeset
  1650
    ^ self uuid
d0117698147d `SimpleView`: added `#automationUUID` and `#automationUUID:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7969
diff changeset
  1651
d0117698147d `SimpleView`: added `#automationUUID` and `#automationUUID:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7969
diff changeset
  1652
    "Created: / 17-11-2017 / 11:37:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d0117698147d `SimpleView`: added `#automationUUID` and `#automationUUID:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7969
diff changeset
  1653
!
d0117698147d `SimpleView`: added `#automationUUID` and `#automationUUID:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7969
diff changeset
  1654
d0117698147d `SimpleView`: added `#automationUUID` and `#automationUUID:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7969
diff changeset
  1655
automationUUID: anUUID
d0117698147d `SimpleView`: added `#automationUUID` and `#automationUUID:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7969
diff changeset
  1656
    self uuid: anUUID
d0117698147d `SimpleView`: added `#automationUUID` and `#automationUUID:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7969
diff changeset
  1657
d0117698147d `SimpleView`: added `#automationUUID` and `#automationUUID:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7969
diff changeset
  1658
    "Created: / 17-11-2017 / 11:42:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d0117698147d `SimpleView`: added `#automationUUID` and `#automationUUID:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7969
diff changeset
  1659
!
d0117698147d `SimpleView`: added `#automationUUID` and `#automationUUID:`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7969
diff changeset
  1660
4483
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1661
client:anApplicationModel
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1662
    "release existing components and generate new components from
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1663
     the applications windowSpec.
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1664
     ATTENTION: this is a low level interface; postBuild is NOT invoked"
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1665
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1666
    ^ self client:anApplicationModel spec:#windowSpec
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1667
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1668
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1669
!
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1670
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1671
client:anApplication spec:aWindowSpecOrSelector
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1672
    "release existing components and generate new components from
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1673
     the applications windowSpec.
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1674
     ATTENTION: this is a low level interface; postBuild is NOT invoked"
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1675
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1676
    ^ self client:anApplication spec:aWindowSpecOrSelector builder:nil
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1677
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1678
!
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1679
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1680
client:anApplication spec:aWindowSpecOrSpecSymbol builder:aBuilder
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1681
    "release existing components and generate new components from
4484
97096c51797d can now control if specs menu is wanted or not
Claus Gittinger <cg@exept.de>
parents: 4483
diff changeset
  1682
     the given windowSpec, using the given builder."
97096c51797d can now control if specs menu is wanted or not
Claus Gittinger <cg@exept.de>
parents: 4483
diff changeset
  1683
97096c51797d can now control if specs menu is wanted or not
Claus Gittinger <cg@exept.de>
parents: 4483
diff changeset
  1684
    self client:anApplication spec:aWindowSpecOrSpecSymbol builder:aBuilder withMenu:false
97096c51797d can now control if specs menu is wanted or not
Claus Gittinger <cg@exept.de>
parents: 4483
diff changeset
  1685
!
97096c51797d can now control if specs menu is wanted or not
Claus Gittinger <cg@exept.de>
parents: 4483
diff changeset
  1686
97096c51797d can now control if specs menu is wanted or not
Claus Gittinger <cg@exept.de>
parents: 4483
diff changeset
  1687
client:anApplication spec:aWindowSpecOrSpecSymbol builder:aBuilder withMenu:withMenuBoolean
97096c51797d can now control if specs menu is wanted or not
Claus Gittinger <cg@exept.de>
parents: 4483
diff changeset
  1688
    "release existing components and generate new components from
4483
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1689
     the given windowSpec, using the given builder.
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1690
     ATTENTION: this is a low level interface.
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1691
     TODO: this code is so ugly and badly designed - it must be redesigned
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1692
     or at least well documented."
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1693
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1694
    |builder subSpec isApplicationModel thisApp savedView masterApp thisIsANewBuild|
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1695
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1696
    aWindowSpecOrSpecSymbol isNil ifTrue:[^ self].
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1697
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1698
    isApplicationModel := true.
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1699
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1700
    (builder := aBuilder) isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1701
	"/ problem: anApplication could have no builder
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1702
	"/          or anApplication could be a non-appModel (theoretically - only providing a spec)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1703
	builder := anApplication perform:#builder ifNotUnderstood:[isApplicationModel := false. nil].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1704
	builder isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1705
	    isApplicationModel ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1706
		anApplication createBuilder.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1707
		builder := anApplication builder
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1708
	    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1709
		builder := UIBuilder new.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1710
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1711
	]
4483
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1712
    ].
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1713
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1714
    (subSpec := aWindowSpecOrSpecSymbol) isSymbol ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1715
	anApplication isNil ifTrue:[^ self].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1716
	subSpec := anApplication interfaceSpecFor:aWindowSpecOrSpecSymbol.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1717
	subSpec isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1718
	    ^ self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1719
	].
4483
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1720
    ].
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1721
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1722
    "/ if the appl is not the master, but the masters builder is used,
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1723
    "/ we have to temporarily change the builders window
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1724
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1725
    masterApp := anApplication perform:#masterApplication ifNotUnderstood:[isApplicationModel := false. nil].
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  1726
    masterApp isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1727
	isApplicationModel := false.
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  1728
    ].
4483
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1729
    thisApp := builder application.
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1730
    (isApplicationModel and:[anApplication ~~ thisApp]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1731
	masterApp ~~ thisApp ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1732
	    self error:'should not happen' mayProceed:true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1733
	    masterApp isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1734
		anApplication masterApplication:thisApp.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1735
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1736
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1737
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1738
	builder application:anApplication.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1739
	savedView := builder window.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1740
	builder window:self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1741
	[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1742
	    anApplication buildSubCanvas:subSpec withMenu:withMenuBoolean withBuilder:builder.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1743
	] ensure:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1744
	    builder window:savedView.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1745
	    builder application:thisApp.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1746
	].
4483
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1747
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1748
	thisIsANewBuild := builder window isNil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1749
	thisIsANewBuild ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1750
	    builder window:self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1751
	    anApplication buildSubCanvas:subSpec withMenu:withMenuBoolean withBuilder:builder.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1752
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1753
	    "/ WARNING: in case of rebuilding, we do NOT invoke pre- and postBuilds
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1754
	    builder buildFromSpec:subSpec in:self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1755
	]
4483
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1756
    ].
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1757
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1758
"/    postBuildWith: will be called twice if code below is enabled
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1759
"/    notAnAppModel isNil ifTrue:[
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1760
"/        notAnAppModel := (anApplication isKindOf:ApplicationModel) not
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1761
"/    ].
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1762
"/    notAnAppModel ifTrue:[
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1763
"/        builder buildFromSpec:subSpec in:self.
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1764
"/    ] ifFalse:[
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1765
"/        savedView := builder window.
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1766
"/        builder window:self.
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1767
"/        [
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1768
"/            anApplication buildSubCanvas:subSpec withBuilder:builder.
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1769
"/        ] ensure:[
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1770
"/            savedView notNil ifTrue:[
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1771
"/                builder window:savedView.
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1772
"/            ]
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1773
"/        ].
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1774
"/    ].
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1775
!
e4b462900404 category change
Claus Gittinger <cg@exept.de>
parents: 4482
diff changeset
  1776
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  1777
helpKey
7336
14cd48df32ee #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7310
diff changeset
  1778
    "The helpKey (symbol) or nil.
14cd48df32ee #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7310
diff changeset
  1779
     This can be set programatically, in views which are constructed
14cd48df32ee #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7310
diff changeset
  1780
     'by hand' - i.e. not va the UI painter.
14cd48df32ee #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7310
diff changeset
  1781
     When constructed from a UI-spec, this key is typically specified there
14cd48df32ee #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7310
diff changeset
  1782
     (however, special apps may change it dynamically, if a component changes
14cd48df32ee #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7310
diff changeset
  1783
      its semantic meaning dynamically)"
14cd48df32ee #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7310
diff changeset
  1784
     
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  1785
    ^ helpKey
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  1786
!
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  1787
7337
db8f09c46475 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7336
diff changeset
  1788
helpKey:aSymbolOrNil
db8f09c46475 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7336
diff changeset
  1789
    "The helpKey (symbol) or nil.
db8f09c46475 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7336
diff changeset
  1790
     This can be set programatically, in views which are constructed
db8f09c46475 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7336
diff changeset
  1791
     'by hand' - i.e. not va the UI painter.
db8f09c46475 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7336
diff changeset
  1792
     When constructed from a UI-spec, this key is typically specified there
db8f09c46475 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7336
diff changeset
  1793
     (however, special apps may change it dynamically, if a component changes
db8f09c46475 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7336
diff changeset
  1794
      its semantic meaning dynamically)"
db8f09c46475 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7336
diff changeset
  1795
db8f09c46475 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7336
diff changeset
  1796
    helpKey := aSymbolOrNil.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  1797
!
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  1798
7856
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1799
keyboardMap
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1800
    "Return a KeyboardMap used to translate symbolic shortcuts to real key combinations.
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1801
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1802
     By default, use my parent's map or my device's default map if view has no parent.
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1803
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1804
     However, subclasses may redefine this, to return their own keyboard map (for example 
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1805
     a terminalView may want treat CTRL-C as regular key)."
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1806
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1807
    superView notNil ifTrue:[
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1808
        ^ superView keyboardMap
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1809
    ].
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1810
    ^ device keyboardMap
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1811
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1812
    "Created: / 01-02-2017 / 23:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1813
!
7c52e7a9a087 Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7855
diff changeset
  1814
2450
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1815
keyboardProcessor
7337
db8f09c46475 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7336
diff changeset
  1816
    "return my keyboard processor.
db8f09c46475 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7336
diff changeset
  1817
     If non-nil, that one gets a chance to intercept and deal with things like
db8f09c46475 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7336
diff changeset
  1818
     escape or return in modal boxes."
2450
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1819
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1820
    ^ nil
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1821
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1822
    "Created: / 13.2.1999 / 10:31:39 / cg"
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1823
! !
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1824
8429
e47f76ecf0d2 Inform GC (DeviceGraphicsContext) when it's size has chaged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8420
diff changeset
  1825
2549
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1826
!SimpleView methodsFor:'accessing-behavior'!
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1827
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1828
disable
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1829
   "alternative method; redirected to basic mechanism"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1830
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1831
   self enabled:false
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1832
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1833
    "Modified: / 30.3.1999 / 14:47:30 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1834
    "Created: / 30.3.1999 / 15:54:11 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1835
!
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1836
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1837
enable
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1838
   "alternative method; redirected to basic mechanism"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1839
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1840
   self enabled:true
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1841
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1842
    "Modified: / 30.3.1999 / 14:47:22 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1843
    "Created: / 30.3.1999 / 15:54:16 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1844
!
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1845
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1846
enabled
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1847
   "views are enabled by default"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1848
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1849
   ^ true
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1850
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1851
    "Modified: / 30.3.1999 / 16:27:57 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1852
!
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1853
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1854
enabled:bool
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1855
   "this is the basic machanism to enable/disable a view.
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1856
    empty in this class; may be redefined by subclasses"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1857
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1858
    "Modified: / 30.3.1999 / 14:46:24 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1859
    "Created: / 30.3.1999 / 15:54:21 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1860
!
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1861
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1862
isEnabled:aState
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1863
    "ST-80 compatibility; set enabled state
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1864
    "
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1865
    self enabled:aState
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1866
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1867
    "Created: / 30.3.1999 / 15:54:29 / stefan"
6132
732fec785d8d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6127
diff changeset
  1868
!
732fec785d8d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6127
diff changeset
  1869
6845
fdb621c14223 class: SimpleView
Michael Beyl <mb@exept.de>
parents: 6798
diff changeset
  1870
preferFirstInputFieldWhenAssigningInitialFocus
fdb621c14223 class: SimpleView
Michael Beyl <mb@exept.de>
parents: 6798
diff changeset
  1871
    "define the focus behavior for dialogs.
fdb621c14223 class: SimpleView
Michael Beyl <mb@exept.de>
parents: 6798
diff changeset
  1872
     If true is returned, input fields take precedence over other keyboard consumers.
fdb621c14223 class: SimpleView
Michael Beyl <mb@exept.de>
parents: 6798
diff changeset
  1873
     This used to return true, but the behavior is somewhat ugly."
fdb621c14223 class: SimpleView
Michael Beyl <mb@exept.de>
parents: 6798
diff changeset
  1874
fdb621c14223 class: SimpleView
Michael Beyl <mb@exept.de>
parents: 6798
diff changeset
  1875
    ^ false
fdb621c14223 class: SimpleView
Michael Beyl <mb@exept.de>
parents: 6798
diff changeset
  1876
fdb621c14223 class: SimpleView
Michael Beyl <mb@exept.de>
parents: 6798
diff changeset
  1877
    "Created: / 29-08-2006 / 14:28:54 / cg"
fdb621c14223 class: SimpleView
Michael Beyl <mb@exept.de>
parents: 6798
diff changeset
  1878
!
fdb621c14223 class: SimpleView
Michael Beyl <mb@exept.de>
parents: 6798
diff changeset
  1879
6132
732fec785d8d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6127
diff changeset
  1880
readOnly:aBoolean
732fec785d8d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6127
diff changeset
  1881
    "ignored here; present for compatibility with some textView subclasses,
732fec785d8d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6127
diff changeset
  1882
     so that UIPainter can handle it in its TextView spec (which contains a
732fec785d8d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6127
diff changeset
  1883
     readOnly field)"
2549
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1884
! !
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1885
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1886
!SimpleView methodsFor:'accessing-bg & border'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1887
3356
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1888
allSubViewsBackground:something
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1889
    "set the viewBackground to something, a color, image or form,
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1890
     recursively in all of my subviews"
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1891
4958
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1892
    self allSubViewsBackground:something if:[:v |true]
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1893
!
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1894
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1895
allSubViewsBackground:something if:condition
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1896
    "set the viewBackground to something, a color, image or form,
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1897
     recursively in all of my subviews"
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1898
3356
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1899
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1900
	subViews do:[:v|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1901
	    v allViewBackground:something if:condition
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1902
	]
3356
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1903
    ]
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1904
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1905
    "Modified: / 18.7.1996 / 13:34:26 / cg"
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1906
    "Created: / 31.10.2000 / 13:06:02 / bg"
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1907
!
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1908
4897
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1909
allSubViewsForeground:something
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1910
    "set the foreground to something, a color, image or form,
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1911
     recursively in all of my subviews"
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1912
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1913
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1914
	subViews do:[:v|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1915
	    v allViewForeground:something
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1916
	]
4897
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1917
    ]
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1918
!
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1919
955
34b6c1529fdc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
  1920
allViewBackground:something
34b6c1529fdc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
  1921
    "set the viewBackground to something, a color, image or form,
34b6c1529fdc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
  1922
     in myself and recursively in all of my subviews"
34b6c1529fdc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
  1923
4958
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1924
    self allViewBackground:something if:[:v |true]
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1925
!
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1926
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1927
allViewBackground:something if:condition
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1928
    "set the viewBackground to something, a color, image or form,
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1929
     in myself and recursively in all of my subviews"
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1930
6606
e961c7adbbf7 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6604
diff changeset
  1931
    self viewBackground:something if:condition.
4958
bfa2bf30f449 allViewBackground: with optional condition
sr
parents: 4942
diff changeset
  1932
    self allSubViewsBackground:something if:condition
955
34b6c1529fdc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
  1933
!
34b6c1529fdc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
  1934
4897
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1935
allViewForeground:something
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1936
    "set the foreground to something, a color, image or form,
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1937
     in myself and recursively in all of my subviews"
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1938
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1939
    self foregroundColor:something.
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1940
    self allSubViewsForeground:something
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1941
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1942
    "Modified: / 31.10.2000 / 13:06:17 / bg"
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1943
!
12e882ab6ecf +allViewForeground:
Claus Gittinger <cg@exept.de>
parents: 4891
diff changeset
  1944
2158
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1945
backgroundColor
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1946
    "return the background color of the contents -
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1947
     here, (since there is no contents), the viewBackground is returned."
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1948
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1949
    ^ self viewBackground
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1950
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1951
    "Modified: / 3.5.1997 / 10:28:04 / cg"
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1952
    "Created: / 18.6.1998 / 15:59:36 / cg"
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1953
!
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1954
1726
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1955
backgroundColor:aColor
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1956
    "set the background color of the contents -
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1957
     here, (since there is no contents), the viewBackground is changed."
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1958
4192
6c14a21d5600 invalidate on backgroundChange
ca
parents: 4191
diff changeset
  1959
    self viewBackground:aColor.
6c14a21d5600 invalidate on backgroundChange
ca
parents: 4191
diff changeset
  1960
    shown ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1961
	self clear; invalidate.
4192
6c14a21d5600 invalidate on backgroundChange
ca
parents: 4191
diff changeset
  1962
    ].
1726
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1963
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1964
    "Created: 3.5.1997 / 10:26:49 / cg"
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1965
    "Modified: 3.5.1997 / 10:28:04 / cg"
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1966
!
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1967
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1968
border
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1969
    "return my border"
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1970
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1971
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1972
	^ superView border
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1973
    ].
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1974
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1975
    ^ border
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1976
!
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1977
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1978
border:aBorder
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1979
    "set my border"
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1980
6716
e9b2ebb0e8cf class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6709
diff changeset
  1981
    |prevMargin m|
e9b2ebb0e8cf class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6709
diff changeset
  1982
e9b2ebb0e8cf class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6709
diff changeset
  1983
    prevMargin := margin.
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1984
    border := aBorder.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1985
    self computeMargin.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  1986
    realized ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1987
	m := prevMargin max:margin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1988
	self invalidate:(0@0 corner:width@m).               "/ top margin
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1989
	self invalidate:((width-m)@m corner:width@height).  "/ right margin
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1990
	self invalidate:(0@(height-m) corner:width@height). "/ bottom margin
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  1991
	self invalidate:(0@m corner:m@(height-m)).          "/ left margin
6720
a5858f01bcd8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6719
diff changeset
  1992
    ].
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1993
!
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  1994
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1995
borderColor
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1996
    "return my borderColor"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1997
5414
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  1998
    |clr|
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  1999
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2000
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2001
	^ superView borderColor
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2002
    ].
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2003
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2004
    "/ ^ borderColor
5612
f7b84930b3fb Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5608
diff changeset
  2005
    border notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2006
	clr := border color
5612
f7b84930b3fb Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5608
diff changeset
  2007
    ].
5414
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2008
    clr isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2009
	^ self blackColor
5414
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2010
    ].
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2011
    ^ clr.
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2012
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2013
    "Modified: 5.6.1996 / 14:11:44 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2014
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2015
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2016
borderColor:aColor
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2017
    "set my borderColor"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2018
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2019
    "/ backward compatibility
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2020
    "/ superView will be renamed to container soon.
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2021
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2022
	superView borderColor:aColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2023
	^ self
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2024
    ].
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2025
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2026
    aColor isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2027
	border isNil ifTrue:[^ self].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2028
	self border:nil.
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2029
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2030
	aColor = (self borderColor) ifTrue:[^ self].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2031
	self border:(SimpleBorder new width:(self borderWidth) color:aColor)
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2032
    ].
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2033
    self invalidate.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2034
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2035
"/    (aColor ~~ borderColor) ifTrue:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2036
"/        borderColor := aColor.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2037
"/        drawableId notNil ifTrue:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2038
"/            self setBorderColor
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2039
"/        ]
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2040
"/    ]
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2041
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2042
    "Modified: 5.6.1996 / 14:11:50 / cg"
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2043
    "Modified: 23.10.2009 / 14:11:50 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2044
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2045
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2046
borderShape:aForm
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2047
    "set the borderShape to aForm"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2048
2757
e26b401eeb0c allow for a shape to be taken away (i.e. no longer a shaped view)
Claus Gittinger <cg@exept.de>
parents: 2750
diff changeset
  2049
    aForm isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2050
	viewShape := nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2051
	self drawableId notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2052
	    device setWindowBorderShape:nil in:self drawableId
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2053
	]
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2054
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2055
	viewShape isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2056
	    viewShape := ArbitraryViewShape new
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2057
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2058
	viewShape borderShapeForm:aForm.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2059
	self drawableId notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2060
	    device setWindowBorderShape:(aForm id) in:self drawableId
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2061
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2062
    ]
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  2063
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  2064
    "Modified: 18.9.1997 / 11:09:40 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2065
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2066
5414
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2067
borderWidth
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2068
    "return my borderWidth"
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2069
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2070
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2071
	^ superView borderWidth
5414
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2072
    ].
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2073
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2074
    border isNil ifTrue:[^ 0].
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2075
    ^ border width ? 0
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2076
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2077
    "Modified: 5.6.1996 / 14:11:57 / cg"
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2078
    "Modified: 23.10.2009 / 14:11:50 / cg"
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2079
!
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2080
6515
5d55e5781b73 class: SimpleView
ca
parents: 6490
diff changeset
  2081
borderWidth:aNumberOrNil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2082
    "set my borderWidth"
6515
5d55e5781b73 class: SimpleView
ca
parents: 6490
diff changeset
  2083
    |aNumber|
5d55e5781b73 class: SimpleView
ca
parents: 6490
diff changeset
  2084
5d55e5781b73 class: SimpleView
ca
parents: 6490
diff changeset
  2085
    aNumber := aNumberOrNil.
5d55e5781b73 class: SimpleView
ca
parents: 6490
diff changeset
  2086
    aNumber notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2087
	self assert:(aNumber >= 0).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2088
	aNumber := aNumber max: 0
6515
5d55e5781b73 class: SimpleView
ca
parents: 6490
diff changeset
  2089
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2090
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2091
    "/ backward compatibility
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2092
    "/ superView will be renamed to container soon.
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2093
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2094
	^ superView borderWidth:aNumber
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2095
    ].
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2096
5422
b43b5950922d changed:
Claus Gittinger <cg@exept.de>
parents: 5414
diff changeset
  2097
    (aNumber == 0 or:[aNumber isNil]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2098
	border isNil ifTrue:[^ self].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2099
	self border:nil.
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2100
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2101
	border notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2102
	    self border:(border copy width:aNumber)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2103
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2104
	    self border:(SimpleBorder new width:aNumber color:(self borderColor)).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2105
	]
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2106
    ].
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2107
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2108
"/    (aNumber ~~ borderWidth) ifTrue:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2109
"/        borderWidth := aNumber.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2110
"/        drawableId notNil ifTrue:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2111
"/            self setBorderWidth.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2112
"/        ]
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2113
"/    ]
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2114
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2115
    "Modified: 5.6.1996 / 14:12:05 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2116
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2117
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2118
computeMargin
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2119
    border isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2120
	margin := level abs.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2121
	^ self.
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2122
    ].
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2123
    margin := border width.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2124
!
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2125
4150
werner
parents: 4139
diff changeset
  2126
fillFormWithBorderShape:aForm
werner
parents: 4139
diff changeset
  2127
    "fill aForm with my borderShape"
werner
parents: 4139
diff changeset
  2128
werner
parents: 4139
diff changeset
  2129
    aForm fillRectangle:(Rectangle origin:self origin corner:self corner).
werner
parents: 4139
diff changeset
  2130
!
werner
parents: 4139
diff changeset
  2131
2158
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  2132
foregroundColor
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  2133
    "return the foreground color of the contents -
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  2134
     here, (since there is no contents), some default is returned."
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  2135
7429
12036015c6cc #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7419
diff changeset
  2136
    ^ self blackColor
2158
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  2137
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  2138
    "Modified: / 3.5.1997 / 10:28:04 / cg"
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  2139
    "Created: / 18.6.1998 / 16:57:33 / cg"
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  2140
!
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  2141
3392
70bf6d99f0c5 dummy #foregroundColor:
Claus Gittinger <cg@exept.de>
parents: 3384
diff changeset
  2142
foregroundColor:aColor
70bf6d99f0c5 dummy #foregroundColor:
Claus Gittinger <cg@exept.de>
parents: 3384
diff changeset
  2143
    "set the foreground color of the contents -
70bf6d99f0c5 dummy #foregroundColor:
Claus Gittinger <cg@exept.de>
parents: 3384
diff changeset
  2144
     ignored here, since there is no contents."
70bf6d99f0c5 dummy #foregroundColor:
Claus Gittinger <cg@exept.de>
parents: 3384
diff changeset
  2145
!
70bf6d99f0c5 dummy #foregroundColor:
Claus Gittinger <cg@exept.de>
parents: 3384
diff changeset
  2146
4966
3a8ffabd2fa3 changed #foregroundColor:backgroundColor:
Claus Gittinger <cg@exept.de>
parents: 4964
diff changeset
  2147
foregroundColor:fgColor backgroundColor:bgColor
3a8ffabd2fa3 changed #foregroundColor:backgroundColor:
Claus Gittinger <cg@exept.de>
parents: 4964
diff changeset
  2148
    "set both the foreground and background colors of the contents"
3a8ffabd2fa3 changed #foregroundColor:backgroundColor:
Claus Gittinger <cg@exept.de>
parents: 4964
diff changeset
  2149
5008
468d1a62a90f middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5004
diff changeset
  2150
    self
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2151
	foregroundColor:fgColor;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2152
	backgroundColor:bgColor
4966
3a8ffabd2fa3 changed #foregroundColor:backgroundColor:
Claus Gittinger <cg@exept.de>
parents: 4964
diff changeset
  2153
!
3a8ffabd2fa3 changed #foregroundColor:backgroundColor:
Claus Gittinger <cg@exept.de>
parents: 4964
diff changeset
  2154
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2155
level
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2156
    "return my level relative to superView (3D)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2157
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2158
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2159
	^ superView level
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2160
    ].
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2161
    border notNil ifTrue:[^ border level].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2162
    ^ level
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2163
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2164
    "Modified: 5.6.1996 / 14:12:10 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2165
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2166
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2167
level:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2168
    "set my level relative to superView (3D)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2169
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2170
    |oldMargin how|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2171
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2172
    "/ backward compatibility
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2173
    "/ superView will be renamed to container soon.
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2174
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2175
	^ superView level:aNumber
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2176
    ].
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2177
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2178
    (aNumber ~~ level and:[aNumber notNil]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2179
	self is3D ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2180
	    level := aNumber.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2181
	    oldMargin := margin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2182
	    margin := level abs.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2183
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2184
	    realized ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2185
		margin ~~ oldMargin ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2186
		    (margin > oldMargin) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2187
			how := #smaller
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2188
		    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2189
			how := #larger
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2190
		    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2191
		    self sizeChanged:how.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2192
		    self setInnerClip.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2193
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2194
		shown ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2195
		    margin ~~ oldMargin ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2196
			self clearView.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2197
			self redrawX:margin y:margin
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2198
			       width:width-(margin*2)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2199
			      height:height-(margin*2)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2200
		    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2201
		    self redrawEdges.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2202
	       ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2203
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2204
	]
135
claus
parents:
diff changeset
  2205
    ]
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2206
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  2207
    "Modified: 5.6.1996 / 14:12:17 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2208
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2209
3698
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  2210
lightColor
6987
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  2211
    "return the color to be used for lighted edges (3D only)"
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  2212
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  2213
    lightColor isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2214
	|avgColor|
6987
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  2215
        
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2216
	avgColor := viewBackground averageColorIn:(0@0 corner:7@7).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2217
	lightColor := avgColor lightened.
6987
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  2218
    ].
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2219
    ^ lightColor
3698
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  2220
!
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  2221
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2222
lightColor:aColorOrImage
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2223
    "set the color to be used for lighted edges (3D only)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2224
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2225
    lightColor := aColorOrImage
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2226
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2227
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2228
margin
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  2229
    "return my inner margin - this is usually the level,
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2230
     but can be more for some views
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  2231
     (textViews which add more margin between the border and the text)"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2232
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2233
    ^ margin
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  2234
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  2235
    "Modified: 5.6.1996 / 14:37:54 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2236
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2237
5405
369200caeaaf border stuff
Claus Gittinger <cg@exept.de>
parents: 5390
diff changeset
  2238
setBorderWidth
369200caeaaf border stuff
Claus Gittinger <cg@exept.de>
parents: 5390
diff changeset
  2239
    "set my borderWidth in the devices physical view"
369200caeaaf border stuff
Claus Gittinger <cg@exept.de>
parents: 5390
diff changeset
  2240
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2241
"/    |bw|
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2242
"/
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2243
"/    bw := borderWidth.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2244
"/    (device supportsWindowBorder:bw) ifFalse:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2245
"/        bw > 1 ifTrue:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2246
"/            (device supportsWindowBorder:(bw := 1)) ifFalse:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2247
"/                ^ self
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2248
"/            ].
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2249
"/        ]
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2250
"/    ].
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2251
"/
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2252
"/    drawableId notNil ifTrue:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2253
"/        device setWindowBorderWidth:bw in:drawableId
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2254
"/    ]
5405
369200caeaaf border stuff
Claus Gittinger <cg@exept.de>
parents: 5390
diff changeset
  2255
!
369200caeaaf border stuff
Claus Gittinger <cg@exept.de>
parents: 5390
diff changeset
  2256
5390
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  2257
setBorderWidth:aNumber
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  2258
    "set my borderWidth without affecting the real view (private only)"
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  2259
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  2260
    "/ borderWidth := aNumber
5414
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  2261
    self borderWidth:aNumber
5390
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  2262
!
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  2263
3698
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  2264
shadowColor
6987
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  2265
    "return the color to be used for shadowed edges (3D only)"
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  2266
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  2267
    shadowColor isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2268
	|avgColor|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2269
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2270
	avgColor := viewBackground averageColorIn:(0@0 corner:7@7).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2271
	shadowColor := avgColor darkened.
6987
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  2272
    ].
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2273
    ^ shadowColor
3698
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  2274
!
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  2275
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2276
shadowColor:aColorOrImage
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2277
    "set the color to be used for shadowed edges (3D only)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2278
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2279
    shadowColor := aColorOrImage
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2280
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2281
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2282
viewBackground:something
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2283
    "set the viewBackground to something, a color, image or form.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2284
     If its a color and we run on a color display, also set shadow and light
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2285
     colors - this means, that a red view will get light-red and dark-red
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2286
     edges."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2287
2584
55a405cec086 when lighting/darkening colors, take the average in the topLeft
Claus Gittinger <cg@exept.de>
parents: 2583
diff changeset
  2288
    |avgColor|
55a405cec086 when lighting/darkening colors, take the average in the topLeft
Claus Gittinger <cg@exept.de>
parents: 2583
diff changeset
  2289
1808
b3485bfc7acf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1761
diff changeset
  2290
    "/ debug check only:
4891
af5300103883 nil view-background
Claus Gittinger <cg@exept.de>
parents: 4855
diff changeset
  2291
    self assert:(something notNil) message:'invalid viewBackground argument'.
1808
b3485bfc7acf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1761
diff changeset
  2292
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2293
    something isColor ifTrue:[
7638
cad04b8422f5 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
  2294
        (device notNil and:[device hasGrayscales]) ifTrue:[
cad04b8422f5 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
  2295
            avgColor := something averageColorIn:(0@0 corner:7@7).
cad04b8422f5 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
  2296
            shadowColor := avgColor darkened "on:device".
cad04b8422f5 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
  2297
            lightColor := avgColor lightened "on:device".
cad04b8422f5 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
  2298
        ]
135
claus
parents:
diff changeset
  2299
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2300
    super viewBackground:something
749
c83c6d93760d grey vs. gray
Claus Gittinger <cg@exept.de>
parents: 747
diff changeset
  2301
1808
b3485bfc7acf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1761
diff changeset
  2302
    "Modified: 4.7.1997 / 20:09:22 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2303
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2304
6606
e961c7adbbf7 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6604
diff changeset
  2305
viewBackground:something if:condition
e961c7adbbf7 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6604
diff changeset
  2306
    "set the viewBackground to something, a color, image or form,
e961c7adbbf7 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6604
diff changeset
  2307
     in myself and recursively in all of my subviews"
e961c7adbbf7 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6604
diff changeset
  2308
e961c7adbbf7 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6604
diff changeset
  2309
    (condition value:self) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2310
	viewBackground ~~ something ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2311
	    self viewBackground:something.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2312
	    self invalidate
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2313
	].
6606
e961c7adbbf7 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6604
diff changeset
  2314
    ].
e961c7adbbf7 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6604
diff changeset
  2315
!
e961c7adbbf7 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6604
diff changeset
  2316
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2317
viewShape:aForm
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2318
    "set the viewShape to aForm"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2319
2757
e26b401eeb0c allow for a shape to be taken away (i.e. no longer a shaped view)
Claus Gittinger <cg@exept.de>
parents: 2750
diff changeset
  2320
    aForm isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2321
	viewShape := nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2322
	self drawableId notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2323
	    device setWindowShape:nil in:self drawableId
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2324
	]
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2325
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2326
	viewShape isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2327
	    viewShape := ArbitraryViewShape new
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2328
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2329
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2330
	viewShape viewShapeForm:aForm.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2331
	self drawableId notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2332
	    device setWindowShape:(aForm id) in:self drawableId
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2333
	]
135
claus
parents:
diff changeset
  2334
    ]
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  2335
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  2336
    "Modified: 18.9.1997 / 11:11:04 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2337
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2338
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2339
!SimpleView methodsFor:'accessing-channels'!
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2340
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2341
setupChannel:newChannel for:changeSelector withOld:oldChannel
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2342
    "common code to change a channel.
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2343
     If changeSelector is non-nil, arrange for it to be sent when
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2344
     the channel changes its value; otherwise, arrange for a simple update.
7729
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2345
     This is so common, that it's worth a helper method:
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2346
     release any old channel (if non-nil),
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2347
     arrange for changeSelector (or #update) to be sent for the new channel."
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2348
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2349
    |oldValue|
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2350
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2351
    oldChannel == newChannel ifTrue:[^ self].
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2352
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2353
    oldChannel notNil ifTrue:[
7729
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2354
        changeSelector isNil ifTrue:[
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2355
            oldChannel removeDependent:self
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2356
        ] ifFalse:[
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2357
            oldChannel retractInterestsFor:self.
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2358
        ].
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2359
        oldValue := oldChannel value.
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2360
    ].
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2361
    newChannel notNil ifTrue:[
7729
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2362
        changeSelector isNil ifTrue:[
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2363
            newChannel addDependent:self.
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2364
            newChannel value ~~ oldValue ifTrue:[
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2365
                self update:#value with:nil from:newChannel.
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2366
            ]
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2367
        ] ifFalse:[
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2368
            newChannel onChangeSend:changeSelector to:self.
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2369
            newChannel value ~~ oldValue ifTrue:[
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2370
                self perform:changeSelector.
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2371
            ]
0f3e3a39bc44 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7728
diff changeset
  2372
        ]
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2373
    ].
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2374
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2375
    ^ newChannel
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2376
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2377
    "Modified: / 31.10.1997 / 14:47:21 / cg"
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2378
! !
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  2379
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2380
!SimpleView methodsFor:'accessing-contents'!
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2381
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2382
heightOfContents
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2383
    "return the height of the contents in logical units
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2384
     - defaults to view's visible area here.
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2385
    This method MUST be redefined in all view classess which are
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2386
    going to be scrolled AND show data which has different size than
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2387
    the view. For example, a view showing A4-size documents should return
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2388
    the number of vertical pixels such a document has on this device.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2389
    A view showing a bitmap of height 1000 should return 1000.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2390
    If not redefined, scrollbars have no way of knowing the actual size
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2391
    of the contents being shown. This is called by scrollBars to compute
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2392
    the relative height of the document vs. the views actual size.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2393
    The value returned here must be based on a scale of 1, since users
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2394
    of this will scale as appropriate."
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2395
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  2396
    ^ (self innerHeight max:(self maxSubViewBottom)) max:self maxComponentBottom
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  2397
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  2398
    "Modified: 26.5.1996 / 12:44:21 / cg"
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2399
!
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2400
7023
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2401
heightOfContentsDependsOnWidth
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2402
    "a very special which is only used by the scrollableView,
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2403
     to check if it should NOT automatically hide scrollbars, when the
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2404
     pointer leaves the view.
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2405
     Currently, there are only a small number of views which return true here,
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2406
     one being the HTML view, which rearranges its text depending on the width,
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2407
     and therefore, it is a bad idea to hide/show scrollbars dynamically"
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2408
     
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2409
    ^ false  
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2410
!
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2411
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2412
widthOfContents
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2413
    "return the width of the contents in logical units
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2414
     - defaults to views visible area here.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2415
    This method MUST be redefined in all view classess which are
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2416
    going to be scrolled AND show data which has different size than
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2417
    the view. For example, a view showing A4-size documents should return
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2418
    the number of horizontal pixels such a document has on this device.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2419
    A view showing a bitmap of width 500 should return 500.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2420
    If not redefined, scrollbars have no way of knowing the actual size
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2421
    of the contents being shown. This is called by scrollBars to compute
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2422
    the relative width of the document vs. the view's actual width.
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2423
    The value returned here must be based on a scale of 1, since users
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2424
    of this will scale as appropriate."
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2425
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  2426
    ^ (self innerWidth max:(self maxSubViewRight)) max:self maxComponentRight
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  2427
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  2428
    "Modified: 26.5.1996 / 13:02:50 / cg"
7023
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2429
!
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2430
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2431
widthOfContentsDependsOnHeight
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2432
    "a very special query which is only used by the scrollableView,
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2433
     to check if it should NOT automatically hide scrollbars, when the
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2434
     pointer leaves the view.
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2435
     Currently, there is no view, which returns true
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2436
     (maybe if we ever support chinese writing top to bottom..."
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2437
     
91423b65ebce #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 7014
diff changeset
  2438
    ^ false  
422
bb19798ffda1 fixed openAutonomous for new model opening setup
Claus Gittinger <cg@exept.de>
parents: 420
diff changeset
  2439
! !
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2440
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2441
!SimpleView methodsFor:'accessing-dimensions'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2442
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2443
allInset:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2444
    "set all insets; positive makes the view smaller,
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  2445
     negative makes it larger..
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  2446
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2447
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2448
    insets isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2449
	insets := Array new:4.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2450
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2451
    insets atAllPut:aNumber.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2452
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2453
    "force recomputation"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2454
"/    drawableId isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2455
"/        self originChangedFlag:true
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2456
"/    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2457
	self containerChangedSize.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2458
"/    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2459
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2460
    "Modified: 19.7.1996 / 17:30:18 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2461
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2462
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2463
bottom
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2464
    "return the y position of the actual bottom edge (in pixels)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2465
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2466
    ^ top + height - 1
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2467
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2468
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2469
bottom:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2470
    "set the corners y position"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2471
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2472
    self corner:(self corner x @ aNumber)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2473
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2474
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2475
bottomInset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2476
    "return the inset of the bottom edge; positive is to the top,
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  2477
     negative to the bottom.
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  2478
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2479
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2480
    insets isNil ifTrue:[^ 0].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2481
    ^ insets at:4
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2482
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2483
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2484
bottomInset:aNumber
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2485
    "set the inset of the bottom edge;
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2486
     positive is to the top (view becomes smaller),
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  2487
     negative to the bottom (becomes larger).
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  2488
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2489
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  2490
    |newInset|
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  2491
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2492
    insets isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2493
	insets := Array with:0 with:0 with:0 with:0
4426
83f66a9c0be1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4425
diff changeset
  2494
    ].
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  2495
    newInset := aNumber.
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  2496
    newInset isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2497
	newInset := 0.
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  2498
    ].
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  2499
    (insets at:4) ~= newInset ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2500
	insets at:4 put:newInset.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2501
	self containerChangedSize
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  2502
    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2503
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2504
    "Modified: 19.7.1996 / 17:30:22 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2505
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2506
5547
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2507
bounds
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2508
    "ST-80 compatibility: return my bounds"
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2509
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2510
    ^ (self origin) corner:(self corner)
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2511
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2512
    "Created: 4.6.1996 / 21:23:27 / cg"
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2513
    "Modified: 10.1.1997 / 19:46:21 / cg"
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2514
!
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2515
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2516
bounds:aRectangle
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2517
    "ST-80 compatibility: change my bounds"
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2518
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2519
    self explicitExtent:true.
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2520
    self pixelOrigin:aRectangle origin
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2521
	      corner:aRectangle corner
5547
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2522
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2523
    "Created: 4.6.1996 / 21:44:27 / cg"
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2524
    "Modified: 10.1.1997 / 19:46:36 / cg"
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2525
!
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  2526
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2527
center
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2528
    "return the point at the center of the receiver (in pixels)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2529
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2530
    ^ (left + (width // 2)) @ (top + (height // 2))
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2531
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2532
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2533
center:newCenter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2534
    "move the receiver so that newCenter, aPoint becomes the center point"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2535
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2536
    self origin:(newCenter - ((width // 2) @ (height // 2)))
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2537
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2538
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2539
computeCorner
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2540
    "compute my corner; if I have a layoutObject,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2541
     relative origins or blocks to evaluate, compute it now ..
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2542
     Blocks may return relative values or nil; nil means: take current value.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2543
     Returns the corner point in device coordinates (pixels)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2544
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2545
    |org newCorner newExt x y|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2546
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2547
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2548
     slowly migrating to use layoutObjects ...
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2549
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2550
    layout notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2551
	superView isNil ifTrue:[^ self preferredBounds corner].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2552
	^ (layout rectangleRelativeTo:(superView viewRectangle)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2553
			    preferred:[self preferredBounds]) corner rounded
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2554
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2555
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2556
    (cornerRule notNil) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2557
	newCorner := cornerRule value.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2558
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2559
	 allow return of relative values ...
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2560
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2561
	x := newCorner x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2562
	y := newCorner y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2563
	x isNil ifTrue:[x := self corner x].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2564
	y isNil ifTrue:[y := self corner y].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2565
	((x isInteger not) or:[y isInteger not]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2566
	    newCorner := self cornerFromRelativeCorner:x@y
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2567
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2568
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2569
	(relativeCorner notNil) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2570
	    newCorner := self cornerFromRelativeCorner:relativeCorner
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2571
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2572
	    org := self computeOrigin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2573
	    (extentRule notNil) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2574
		newExt := extentRule value
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2575
	    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2576
		(relativeExtent notNil) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2577
		    newExt := self extentFromRelativeExtent:relativeExtent
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2578
		] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2579
		    newExt := self extent.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2580
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2581
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2582
	    newCorner := org + newExt
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2583
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2584
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2585
    ^ newCorner
1389
8ee35214f5eb computeCorner fixed.
Claus Gittinger <cg@exept.de>
parents: 1381
diff changeset
  2586
8ee35214f5eb computeCorner fixed.
Claus Gittinger <cg@exept.de>
parents: 1381
diff changeset
  2587
    "Modified: 28.2.1997 / 10:33:39 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2588
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2589
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2590
computeExtent
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2591
    "compute my extent; if I have a layoutObject, a relative extent
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2592
     or blocks to evaluate, compute it now ..
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2593
     There is one catch here, if the dimension was defined
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2594
     by origin/corner, compute them here and take that value.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2595
     I.e. origin/corner definition has precedence over extent definition.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2596
     Returns the extent in device coordinates (pixels)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2597
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2598
    |newOrg newExt newCorner x y|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2599
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2600
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2601
     slowly migrating to use layoutObjects ...
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2602
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2603
    layout notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2604
	^ (layout rectangleRelativeTo:(superView viewRectangle)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2605
			    preferred:[self preferredBounds]) extent rounded
135
claus
parents:
diff changeset
  2606
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2607
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2608
    (cornerRule notNil) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2609
	newCorner := cornerRule value.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2610
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2611
	 allow return of relative values ...
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2612
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2613
	x := newCorner x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2614
	y := newCorner y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2615
	x isNil ifTrue:[x := self corner x].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2616
	y isNil ifTrue:[y := self corner y].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2617
	((x isInteger not) or:[y isInteger not]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2618
	    newCorner := self cornerFromRelativeCorner:x@y
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2619
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2620
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2621
	(relativeCorner notNil) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2622
	    newCorner := self cornerFromRelativeCorner:relativeCorner
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2623
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2624
	    (extentRule notNil) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2625
		newExt := extentRule value.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2626
		"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2627
		 allow return of relative values ...
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2628
		"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2629
		x := newExt x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2630
		y := newExt y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2631
		x isNil ifTrue:[x := width].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2632
		y isNil ifTrue:[y := height].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2633
		((x isInteger not) or:[y isInteger not]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2634
		    newExt := self extentFromRelativeExtent:x@y
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2635
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2636
	    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2637
		(relativeExtent notNil) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2638
		    newExt := self extentFromRelativeExtent:relativeExtent
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2639
		] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2640
		    newExt := (width @ height).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2641
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2642
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2643
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2644
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2645
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2646
    newCorner notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2647
	newOrg := self computeOrigin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2648
	^ newCorner - newOrg.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2649
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2650
    ^ newExt.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2651
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2652
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2653
computeOrigin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2654
    "compute my origin; if I have a layoutObject, a relative origin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2655
     or blocks to evaluate, compute it now ..
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2656
     Blocks may return relative values or nil; nil means: take current value.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2657
     Returns the origin point in device coordinates (pixels)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2658
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2659
    |newOrg x y|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2660
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2661
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2662
     slowly migrating to use layoutObjects ...
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2663
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2664
    layout notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2665
	superView isNil ifTrue:[^ 0@0].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2666
	^ (layout rectangleRelativeTo:(superView viewRectangle)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2667
			    preferred:[self preferredBounds]) origin rounded
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2668
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2669
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2670
    (originRule notNil) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2671
	newOrg := originRule value.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2672
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2673
	 allow return of relative values ...
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2674
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2675
	x := newOrg x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2676
	y := newOrg y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2677
	x isNil ifTrue:[x := self origin x].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2678
	y isNil ifTrue:[y := self origin y].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2679
	((x isInteger not) or:[y isInteger not]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2680
	    newOrg := self originFromRelativeOrigin:x@y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2681
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2682
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2683
	(relativeOrigin notNil) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2684
	    newOrg := self originFromRelativeOrigin:relativeOrigin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2685
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2686
	    ^ (left @ top).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2687
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2688
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2689
    ^ newOrg
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2690
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2691
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2692
corner
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2693
    "return the lower right corner-point (in pixels)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2694
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2695
"/    ^ (left + width "- 1") @ (top + height "- 1")
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2696
    ^ (left + width - 1) @ (top + height - 1)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2697
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2698
    "Modified: 31.8.1995 / 16:51:40 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2699
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2700
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2701
corner:corner
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2702
    "set the view's corner;
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2703
     the corner argument may be:
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2704
         a point
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2705
            where integer fields mean 'pixel-values'
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2706
            and float values mean 'relative-to-superview'
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2707
            and nil means 'take current value';
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2708
     or a block returning a point which is interpreted as above.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2709
     Please migrate to use layoutObjects, if possible."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2710
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2711
    |x y pixelCorner c|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2712
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  2713
    self explicitExtent:true.
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2714
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2715
    corner isBlock ifTrue:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2716
        cornerRule := corner.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2717
        self drawableId notNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2718
            pixelCorner := corner value
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2719
        ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2720
            self extentChangedFlag:true
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2721
        ]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2722
    ] ifFalse:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2723
        x := corner x.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2724
        y := corner y.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2725
        x isNil ifTrue:[x := self corner x].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2726
        y isNil ifTrue:[y := self corner y].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2727
        c := x @ y.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2728
        ((x isInteger not) or:[y isInteger not]) ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2729
            relativeCorner := c.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2730
            pixelCorner := self cornerFromRelativeCorner.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2731
            pixelCorner isNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2732
                self extentChangedFlag:true
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2733
            ]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2734
        ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2735
            pixelCorner := c
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2736
        ]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2737
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2738
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2739
    pixelCorner notNil ifTrue:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2740
        self pixelCorner:pixelCorner
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2741
    ]
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2742
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2743
    "Modified: 15.7.1996 / 09:51:06 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2744
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2745
1327
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2746
cornerRule
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2747
    "return the corner block - non public; this will vanish without notice"
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2748
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2749
    ^ cornerRule
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2750
!
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2751
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2752
extent:extent
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2753
    "set the view's extent;
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2754
     extent may be:
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2755
        a point
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2756
            where integer fields mean 'pixel-values'
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2757
            and float values mean 'relative-to-superview'
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2758
            and nil means 'leave current value';
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2759
     or a block returning a point which is interpreted as above.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2760
     Be careful when using relative extents: rounding errors may
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2761
     accumulate. Better use origin/corner.
1048
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2762
     Best: migrate to use layour objects.
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2763
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2764
     Notice: this sets the views explicitExtent flag, which prevents it normally
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2765
             from resizing itself to its preferredExtent.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2766
             See initialExtent: for a variation."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2767
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2768
    |w h pixelExtent e|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2769
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  2770
    self explicitExtent:true.
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2771
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2772
    extent isBlock ifTrue:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2773
        extentRule := extent.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2774
        self drawableId notNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2775
            pixelExtent := extent value
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2776
        ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2777
            self extentChangedFlag:true
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2778
        ]
135
claus
parents:
diff changeset
  2779
    ] ifFalse:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2780
        extentRule := nil.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2781
        w := extent x.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2782
        h := extent y.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2783
        w isNil ifTrue:[w := width].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2784
        h isNil ifTrue:[h := height].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2785
        e := w@h.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2786
        ((w isInteger not) or:[h isInteger not]) ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2787
            "/ w > 1 ifTrue:[self halt].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2788
            relativeExtent := e.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2789
            pixelExtent := self extentFromRelativeExtent.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2790
            pixelExtent isNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2791
                self extentChangedFlag:true
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2792
            ]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2793
        ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2794
            relativeExtent := nil.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2795
            pixelExtent := e
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2796
        ]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2797
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2798
    pixelExtent notNil ifTrue:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2799
        self pixelExtent:pixelExtent
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2800
    ]
573
578ae7a2f7fa clear any relative origin/extent, if set to an absolute
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
  2801
5571
3f610d50c464 comment
Claus Gittinger <cg@exept.de>
parents: 5557
diff changeset
  2802
    "Modified: / 07-07-2010 / 16:44:57 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2803
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2804
1327
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2805
extentRule
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2806
    "return the extent block - non public; this will vanish without notice"
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2807
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2808
    ^ extentRule
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2809
!
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2810
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  2811
frame
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  2812
    "compatibility with displayObjects: returns my bounds"
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  2813
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  2814
    ^ self bounds
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  2815
!
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  2816
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2817
geometryLayout
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2818
    "this method will vanish, as soon as all implementations of
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2819
     #layout: are removed ...
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2820
     (conflict for example in label>>layout:).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2821
     DO NOT USE #geometryLayout: in your code; it will be removed without
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2822
     notice."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2823
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2824
    ^ here layout
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2825
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2826
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2827
geometryLayout:aLayoutObject
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2828
    "this method will vanish, as soon as all implementations of
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2829
     #layout: are removed ...
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2830
     (conflict for example in label>>layout:).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2831
     DO NOT USE #geometryLayout: in your code; it will be removed without
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2832
     notice."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2833
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2834
    here layout:aLayoutObject
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2835
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2836
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  2837
hasExplicitExtent
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  2838
    "/ ^ explicitExtent.
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  2839
    ^ flagBits bitTest:FlagHasExplicitExtent.
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  2840
!
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  2841
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2842
height:aNumber
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2843
    "set the view's height in pixels"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2844
5703
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  2845
    "/ check: the following leads to an error in the notebook...
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  2846
"/    aNumber isInteger ifTrue:[
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  2847
"/        height := aNumber.
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  2848
"/    ] ifFalse:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2849
        self extent:(width @ aNumber)
5703
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  2850
"/    ].
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  2851
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  2852
    "Modified: / 02-02-2011 / 12:16:44 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2853
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2854
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2855
heightIncludingBorder
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2856
    "return my height including border
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2857
     (this is my height as seen from the outside view;
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2858
      while #height returns the height as seen by myself)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2859
5390
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  2860
    ^ height + (2*self borderWidth)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2861
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2862
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2863
horizontalInset:aNumber
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  2864
    "set the insets of the left/right edge;
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  2865
     positive makes it smaller, negative makes it larger.
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  2866
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2867
4530
5afcace584e4 compact: #dropMessage:data:view:position:handle:
Stefan Vogel <sv@exept.de>
parents: 4524
diff changeset
  2868
    |newInset|
5afcace584e4 compact: #dropMessage:data:view:position:handle:
Stefan Vogel <sv@exept.de>
parents: 4524
diff changeset
  2869
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2870
    insets isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2871
	insets := Array with:0 with:0 with:0 with:0
4426
83f66a9c0be1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4425
diff changeset
  2872
    ].
4530
5afcace584e4 compact: #dropMessage:data:view:position:handle:
Stefan Vogel <sv@exept.de>
parents: 4524
diff changeset
  2873
    newInset := aNumber.
4426
83f66a9c0be1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4425
diff changeset
  2874
    aNumber isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2875
	newInset := 0.
4530
5afcace584e4 compact: #dropMessage:data:view:position:handle:
Stefan Vogel <sv@exept.de>
parents: 4524
diff changeset
  2876
    ].
5afcace584e4 compact: #dropMessage:data:view:position:handle:
Stefan Vogel <sv@exept.de>
parents: 4524
diff changeset
  2877
    insets at:1 put:newInset.
5afcace584e4 compact: #dropMessage:data:view:position:handle:
Stefan Vogel <sv@exept.de>
parents: 4524
diff changeset
  2878
    insets at:3 put:newInset.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2879
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2880
    "force recomputation"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2881
"/    drawableId isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2882
"/        self originChangedFlag:true
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2883
"/    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2884
	self containerChangedSize.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2885
"/    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2886
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  2887
    "Modified: / 30-09-2006 / 15:19:28 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2888
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2889
1048
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2890
initialExtent:extent
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2891
    "set the view's extent, but don't change its explicitExtent setting.
1048
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2892
     a variant of #extent."
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2893
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2894
    |expl|
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2895
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  2896
    expl := self hasExplicitExtent.
1048
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2897
    self extent:extent.
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  2898
    self explicitExtent:expl
1048
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2899
!
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2900
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2901
initialHeight:aNumber
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2902
    "set the view's height in pixels, but don't change its explicitExtent setting"
1048
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2903
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2904
    self initialExtent:(width @ aNumber)
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2905
!
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2906
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2907
initialWidth:aNumber
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  2908
    "set the view's width in pixels, but don't change its explicitExtent setting"
1048
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2909
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2910
    self initialExtent:(aNumber @ height)
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2911
!
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2912
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2913
innerHeight
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2914
    "return the height of the view minus any 3D-shadow-borders"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2915
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2916
    (margin == 0) ifTrue:[^ height].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2917
    ^ height - (2 * margin)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2918
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2919
369
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2920
innerHeight:pixels
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2921
    "set the height of the view plus any 3D-shadow-borders.
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2922
     This does not work with a relative size."
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2923
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2924
    ^ self height:( pixels + (margin + self innerVerticalMargin * 2) ).
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2925
!
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2926
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2927
innerHorizontalMargin
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2928
    "return any additional inner margin (i.e. contents margin).
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2929
     This should be redefined by views which do add margins
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2930
     (for example: textViews do this)"
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2931
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2932
    ^ 0
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2933
!
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2934
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2935
innerVerticalMargin
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2936
    "return any additional inner margin (i.e. contents margin).
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2937
     This should be redefined by views which do add margins
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2938
     (for example: textViews do this)"
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2939
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2940
    ^ 0
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2941
!
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2942
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2943
innerWidth
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2944
    "return the width of the view minus any 3D-shadow-borders"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2945
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2946
    (level == 0) ifTrue:[^ width].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2947
    ^ width - (2 * margin)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2948
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2949
369
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2950
innerWidth:pixels
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2951
    "set the width of the view plus any 3D-shadow-borders.
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2952
     This does not work with a relative size."
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2953
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2954
    ^ self width:( pixels + (margin + self innerHorizontalMargin * 2) ).
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2955
!
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2956
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2957
inset:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2958
    "set all insets; positive makes the view smaller,
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  2959
     negative makes it larger..
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  2960
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2961
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2962
    self allInset:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2963
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2964
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2965
layout
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2966
    "return the layout object which controls my geometry.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2967
     Currently, this is nil in most cases, and my geometry is
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2968
     defined by relativeOrigin/relativeCorner/relativeExtent,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2969
     originRule/extentRule/cornerRule and inset.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2970
     Applications should be changed to use layoutObjects,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2971
     since the above listed instance variables will vanish."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2972
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2973
    ^ layout
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2974
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2975
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2976
layout:aLayoutObject
6487
07daeb3f1bec class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6476
diff changeset
  2977
    "set the layout object which controls my geometry."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2978
7401
005c12498bd9 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7397
diff changeset
  2979
    layout ~= aLayoutObject ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2980
	layout := aLayoutObject.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2981
	self layoutChanged.
6470
cdcc01e0ce13 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6468
diff changeset
  2982
    ].
6249
28e5a459b5d1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6246
diff changeset
  2983
28e5a459b5d1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6246
diff changeset
  2984
    "Modified: 19.9.1995 / 16:17:25 / claus"
28e5a459b5d1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6246
diff changeset
  2985
    "Modified: 19.7.1996 / 17:30:27 / cg"
28e5a459b5d1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6246
diff changeset
  2986
!
28e5a459b5d1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6246
diff changeset
  2987
28e5a459b5d1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6246
diff changeset
  2988
layoutChanged
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2989
    superView isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2990
	self originChangedFlag:true extentChangedFlag:true cornerChangedFlag:true.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2991
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  2992
	self containerChangedSize.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2993
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2994
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2995
    "Modified: 19.9.1995 / 16:17:25 / claus"
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2996
    "Modified: 19.7.1996 / 17:30:27 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2997
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2998
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2999
left
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3000
    "return the x position of the left border (in pixels)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3001
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3002
    ^ left
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3003
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3004
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3005
left:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3006
    "set the x position"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3007
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3008
    self origin:(aNumber @ top)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3009
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3010
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3011
left:newLeft top:newTop width:newWidth height:newHeight
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3012
    "another way of specifying origin and extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3013
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3014
    self origin:(newLeft @ newTop) extent:(newWidth @ newHeight)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3015
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3016
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3017
leftInset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3018
    "return the inset of the left edge; positive is to the right,
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3019
     negative to the left.
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3020
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3021
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3022
    insets isNil ifTrue:[^ 0].
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3023
    ^ insets at:1
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3024
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3025
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3026
leftInset:aNumber
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3027
    "set the inset of the left edge;
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3028
     positive is to the right (view becomes smaller),
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3029
     negative to the left (becomes larger).
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3030
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3031
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3032
    |newInset|
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3033
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3034
    insets isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3035
	insets := Array with:0 with:0 with:0 with:0
4426
83f66a9c0be1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4425
diff changeset
  3036
    ].
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3037
    newInset := aNumber.
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3038
    newInset isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3039
	newInset := 0.
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3040
    ].
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3041
    (insets at:1) ~= newInset ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3042
	insets at:1 put:newInset.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3043
	self containerChangedSize.
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3044
    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  3045
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  3046
    "Modified: 19.7.1996 / 17:30:30 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3047
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3048
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3049
makeFullyVisible
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3050
    "make sure, that the view is fully visible by shifting it
5729
a2d13b74741a changed: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5727
diff changeset
  3051
     into the visible screen area if nescessary."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3052
6778
366410d32851 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6748
diff changeset
  3053
    |myDevice originVisible cornerVisible newTop newLeft deviceBounds
5944
1d17a1a7af44 changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5924
diff changeset
  3054
     deviceLeft deviceRight deviceTop deviceBottom origin corner
1d17a1a7af44 changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5924
diff changeset
  3055
     referencePoint|
5617
135132a35699 changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5612
diff changeset
  3056
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  3057
    myDevice := device.
6778
366410d32851 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6748
diff changeset
  3058
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3059
    newTop := top.
5617
135132a35699 changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5612
diff changeset
  3060
    newLeft := left.
5612
f7b84930b3fb Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5608
diff changeset
  3061
5623
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3062
    origin := left@top.
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3063
    corner := (left + width)@(top + height).
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3064
6778
366410d32851 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6748
diff changeset
  3065
    originVisible := myDevice pointIsVisible:origin.
366410d32851 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6748
diff changeset
  3066
    cornerVisible := myDevice pointIsVisible:corner.
366410d32851 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6748
diff changeset
  3067
366410d32851 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6748
diff changeset
  3068
    (myDevice pointsAreOnSameMonitor:origin and:corner) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3069
	referencePoint := origin.
5623
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3070
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3071
	originVisible ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3072
	    "origin is visible"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3073
	    referencePoint := origin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3074
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3075
	    cornerVisible notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3076
		"corner is visible"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3077
		referencePoint := corner.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3078
	    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3079
		referencePoint := 1@1.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3080
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3081
	].
6778
366410d32851 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6748
diff changeset
  3082
    ].
366410d32851 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6748
diff changeset
  3083
    deviceBounds := myDevice monitorBoundsAt:referencePoint.
5623
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3084
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3085
    deviceLeft := deviceBounds left.
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3086
    deviceRight := deviceBounds right.
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3087
    deviceTop := deviceBounds top.
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3088
    deviceBottom := deviceBounds bottom.
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3089
6778
366410d32851 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6748
diff changeset
  3090
    originVisible ifTrue:[ deviceBottom := deviceBottom min:(myDevice usableHeightAt:origin) ].
366410d32851 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6748
diff changeset
  3091
    cornerVisible ifTrue:[ deviceBottom := deviceBottom min:(myDevice usableHeightAt:corner) ].
5627
c8c301e002bd changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5623
diff changeset
  3092
c8c301e002bd changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5623
diff changeset
  3093
    corner y > deviceBottom ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3094
	cornerVisible := false.
5627
c8c301e002bd changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5623
diff changeset
  3095
    ].
c8c301e002bd changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5623
diff changeset
  3096
c8c301e002bd changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5623
diff changeset
  3097
    UserPreferences current forceWindowsIntoMonitorBounds ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3098
	(originVisible and:[cornerVisible]) ifTrue:[^ self].
5627
c8c301e002bd changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5623
diff changeset
  3099
    ].
5617
135132a35699 changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5612
diff changeset
  3100
135132a35699 changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5612
diff changeset
  3101
    "/ deviceRight := deviceRight min:device usableWidth.
5623
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3102
    originVisible ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3103
	cornerVisible ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3104
	    newTop := deviceBottom - height.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3105
	    newLeft := deviceRight - width.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3106
	    newLeft := newLeft max:deviceLeft.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3107
	    newTop := newTop max:deviceTop.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3108
	] ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3109
	    "/ origin is not; corner is in
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3110
	    newLeft := (deviceLeft max:newLeft).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3111
	    newTop := (deviceTop max:newTop).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3112
	].
5623
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3113
    ] ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3114
	"/ notice, the position-dependent query: if there is a higher secondary screen,
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3115
	"/ this makes a difference in where a popUpMenu is allowed...
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3116
	(corner y > deviceBottom) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3117
	    newTop := deviceBottom - height
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3118
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3119
	(corner x > deviceRight) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3120
	    newLeft := deviceRight - width
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3121
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3122
	newLeft := newLeft max:deviceLeft.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3123
	newTop := newTop max:deviceTop.
5623
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  3124
    ].
5617
135132a35699 changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5612
diff changeset
  3125
135132a35699 changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5612
diff changeset
  3126
    ((newTop ~~ top) or:[newLeft ~~ left]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3127
	self origin:newLeft @ newTop
5729
a2d13b74741a changed: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5727
diff changeset
  3128
    ].
a2d13b74741a changed: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5727
diff changeset
  3129
5944
1d17a1a7af44 changed: #makeFullyVisible
Claus Gittinger <cg@exept.de>
parents: 5924
diff changeset
  3130
    "Modified: / 27-10-2012 / 13:15:58 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3131
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3132
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  3133
makeRoundViewShapeWithBorder:bw
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  3134
    "setup my window for a round shaped view;
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  3135
     this is not supported by all devices"
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  3136
3167
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3137
    self makeRoundViewShapeWithBorder:bw opaque:true.
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3138
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3139
!
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3140
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3141
makeRoundViewShapeWithBorder:bw opaque:opaque
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3142
    "setup my window for a round shaped view;
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3143
     this is not supported by all devices"
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3144
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  3145
    |extent shapeForm borderForm w h f lw|
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  3146
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  3147
"/    device supportsRoundShapedViews ifTrue:[
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  3148
"/        "/ TODO: add code for round shaped view (mswin)
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  3149
"/    ].
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  3150
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  3151
    device supportsArbitraryShapedViews ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3152
	extent := self extent.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3153
	w := extent x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3154
	h := extent y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3155
	borderForm := Form extent:extent.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3156
	shapeForm  := Form extent:extent.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3157
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3158
	borderForm fillArcX:0 y:0
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3159
		  width:w
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3160
		 height:h
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3161
		   from:0
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3162
		  angle:360.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3163
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3164
	opaque ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3165
	    f := borderForm.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3166
	    borderForm foreground:(Color colorId:0).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3167
	] ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3168
	    f := shapeForm.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3169
	    shapeForm foreground:(Color colorId:1).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3170
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3171
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3172
	f fillArcX:(lw := gc lineWidth) y:lw
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3173
		width:w - (bw * 2)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3174
	       height:h - (bw * 2)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3175
		 from:0
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3176
		angle:360.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3177
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3178
	self borderShape:borderForm.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3179
	self viewShape:shapeForm.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3180
	^ self.
3474
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3181
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3182
"/
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3183
"/        extent := self extent.
3167
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3184
"/
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3185
"/        w := extent x.
3474
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3186
"/        h := extent y.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3187
"/        borderForm := Form width:w height:h.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3188
"/        "/        borderForm fill:(Color colorId:0).
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3189
"/
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3190
"/        shapeForm := Form width:w height:h.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3191
"/        "/        shapeForm fill:(Color colorId:0).
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3192
"/
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3193
"/        borderForm foreground:(Color colorId:1).
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3194
"/        borderForm
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3195
"/            fillArcX:0 y:0
3474
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3196
"/            width:w
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3197
"/            height:h
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3198
"/            from:0
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3199
"/            angle:360.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3200
"/
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3201
"/        opaque ifFalse:[
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3202
"/            f := borderForm.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3203
"/            borderForm foreground:(Color colorId:0).
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3204
"/        ] ifTrue:[
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3205
"/            f := shapeForm.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3206
"/            shapeForm foreground:(Color colorId:1).
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3207
"/        ].
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3208
"/        f
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3209
"/            fillArcX:bw y:bw
3474
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3210
"/            width:(w - (bw * 2))
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3211
"/            height:(h - (bw * 2))
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3212
"/            from:0
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3213
"/            angle:360.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3214
"/
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3215
"/        self borderShape:borderForm.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  3216
"/        self viewShape:shapeForm
3167
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3217
    ]
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3218
!
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3219
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3220
makeTransparentRectangularViewShapeWithBorder:bw
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3221
    "setup my window for a rectangluar transparent shaped view;
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3222
     this is not supported by all devices"
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3223
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3224
    |extent shapeForm borderForm w h f|
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3225
7287
1e2a3258dd8a Replace all `self graphicsDevice` with `device`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7286
diff changeset
  3226
"/    device supportsPolygonShapedViews ifTrue:[
3167
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3227
"/        "/ TODO: add code for mswin
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3228
"/    ].
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3229
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  3230
    device supportsArbitraryShapedViews ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3231
	extent := self extent.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3232
	w := extent x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3233
	h := extent y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3234
	borderForm := Form extent:extent.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3235
	shapeForm  := Form extent:extent.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3236
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3237
	borderForm
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3238
	    fillRectangleX:0 y:0
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3239
	    width:w
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3240
	    height:h.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3241
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3242
	f := borderForm.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3243
	borderForm foreground:(Color colorId:0).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3244
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3245
	borderForm
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3246
	    fillRectangleX:bw y:bw
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3247
	    width:w - (bw * 2)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3248
	    height:h - (bw * 2).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3249
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3250
	self borderShape:borderForm.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3251
	self viewShape:shapeForm.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3252
	^ self.
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  3253
    ]
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  3254
!
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  3255
7081
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3256
maxExtent
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3257
    ^ self getAttribute:#maxExtent.
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3258
!
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3259
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3260
maxExtent:aPoint
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3261
    ^ self setAttribute:#maxExtent to:aPoint.
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3262
!
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3263
2127
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  3264
minExtent
7081
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3265
    ^ self getAttribute:#minExtent.
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3266
!
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3267
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3268
minExtent:aPoint
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  3269
    ^ self setAttribute:#minExtent to:aPoint.
2103
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  3270
!
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  3271
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3272
origin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3273
    "return the origin (in pixels)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3274
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3275
    ^ left@top
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3276
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3277
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3278
origin:origin
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3279
    "set the view's origin;
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3280
     origin may be:
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3281
        a point
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3282
            where integer fields mean 'pixel-values'
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3283
            and float values mean 'relative-to-superview'
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3284
            and nil means 'take current value';
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3285
     or a block returning a point which is interpreted as above.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3286
     Please migrate to use layout objects."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3287
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3288
    |newLeft newTop pixelOrigin o|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3289
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3290
    origin isBlock ifTrue:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3291
        originRule := origin.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3292
        self drawableId notNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3293
            pixelOrigin := origin value
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3294
        ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3295
            self originChangedFlag:true
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3296
        ]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3297
    ] ifFalse:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3298
        o := origin.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3299
        newLeft := origin x.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3300
        newTop := origin y.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3301
        newLeft isNil ifTrue:[newLeft := left].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3302
        newTop isNil ifTrue:[newTop := top].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3303
        o := newLeft @ newTop.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3304
        ((newLeft isInteger not) or:[newTop isInteger not]) ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3305
            relativeOrigin := o.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3306
            pixelOrigin := self originFromRelativeOrigin.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3307
            pixelOrigin isNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3308
                self originChangedFlag:true
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3309
            ]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3310
        ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3311
            relativeOrigin := nil.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3312
            pixelOrigin := o
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3313
        ]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3314
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3315
    pixelOrigin notNil ifTrue:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3316
        self pixelOrigin:pixelOrigin
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3317
    ].
573
578ae7a2f7fa clear any relative origin/extent, if set to an absolute
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
  3318
578ae7a2f7fa clear any relative origin/extent, if set to an absolute
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
  3319
    "Modified: 19.4.1996 / 15:12:36 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3320
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3321
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3322
origin:origin corner:corner
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3323
    "set both origin and extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3324
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3325
    |newLeft newTop newRight newBot|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3326
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  3327
    self explicitExtent:true.
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  3328
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3329
    "do it as one operation if possible"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3330
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3331
    origin isBlock ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3332
	corner isBlock ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3333
	    newLeft := origin x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3334
	    newLeft isInteger ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3335
		newTop := origin y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3336
		newTop isInteger ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3337
		    newRight := corner x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3338
		    newRight isInteger ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3339
			newBot := corner y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3340
			newBot isInteger ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3341
			    self pixelOrigin:origin corner:corner
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3342
			]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3343
		    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3344
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3345
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3346
	]
135
claus
parents:
diff changeset
  3347
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3348
    self origin:origin.
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  3349
    self corner:corner
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  3350
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  3351
    "Modified: 15.7.1996 / 09:52:43 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3352
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3353
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3354
origin:origin extent:extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3355
    "set both origin and extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3356
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3357
    |newLeft newTop newWidth newHeight|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3358
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  3359
    self explicitExtent:true.
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  3360
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3361
    "do it as one operation if possible"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3362
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3363
    origin isBlock ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3364
	extent isBlock ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3365
	    newLeft := origin x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3366
	    newLeft isInteger ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3367
		newTop := origin y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3368
		newTop isInteger ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3369
		    newWidth := extent x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3370
		    newWidth isInteger ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3371
			newHeight := extent y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3372
			newHeight isInteger ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3373
			    self pixelOrigin:origin extent:extent
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3374
			]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3375
		    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3376
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3377
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3378
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3379
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3380
    self extent:extent.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3381
    self origin:origin
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  3382
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  3383
    "Modified: 15.7.1996 / 09:52:39 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3384
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3385
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3386
originRelativeTo:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3387
    "return the origin (in pixels) relative to a superView,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3388
     or relative to the rootView (if the aView argument is nil).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3389
     If the receiver is nonNil and not a subview of aView, return nil."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3390
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3391
    |currentView
2414
1d8968995199 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2410
diff changeset
  3392
     bw   "{ Class: SmallInteger }"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3393
     sumX "{ Class: SmallInteger }"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3394
     sumY "{ Class: SmallInteger }" |
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3395
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3396
    currentView := self.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3397
    sumX := 0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3398
    sumY := 0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3399
    [currentView notNil] whileTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3400
	(currentView == aView) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3401
	    ^ (sumX @ sumY)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3402
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3403
	bw := currentView borderWidth.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3404
	sumX := sumX + (currentView left) + bw.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3405
	sumY := sumY + (currentView top) + bw.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3406
	currentView := currentView superView
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  3407
    ].
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  3408
    (aView isNil or:[aView == device rootView]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3409
	"return relative to screen ..."
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3410
	^ (sumX @ sumY)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3411
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3412
    ^ nil
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3413
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3414
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3415
     |top sub1 sub2|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3416
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3417
     top := StandardSystemView new.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3418
     top extent:200@200.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3419
     sub1 := View origin:0.2 @ 0.2 corner:0.8 @ 0.8 in:top.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3420
     sub2 := Button origin:0.3 @ 0.3 corner:0.7 @ 0.7 in:sub1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3421
     top openAndWait.
697
cba925eed3da showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  3422
     Transcript show:'button in top:'; showCR:(sub2 originRelativeTo:top).
cba925eed3da showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  3423
     Transcript show:'button on screen:'; showCR:(sub2 originRelativeTo:nil).
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3424
    "
2171
df6af7cc7a62 fixed #originRelativeTo: when borderWidth ~~ 0
Claus Gittinger <cg@exept.de>
parents: 2167
diff changeset
  3425
2414
1d8968995199 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2410
diff changeset
  3426
    "Modified: / 5.12.1998 / 14:30:57 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3427
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3428
1327
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  3429
originRule
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  3430
    "return the origin block - non public; this will vanish without notice"
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  3431
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  3432
    ^ originRule
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  3433
!
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  3434
763
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  3435
preferredExtent:anExtentPoint
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3436
    "override the view's own preferredExtent computation,
763
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  3437
     and let it prefer the size given by the argument."
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  3438
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  3439
    preferredExtent := anExtentPoint.
5021
b35cef3e421d changed #copyDataEvent:eventData:view:
Claus Gittinger <cg@exept.de>
parents: 5017
diff changeset
  3440
    explicitExtent := anExtentPoint.
1038
fb193cba16b6 #preferredExtent: no longer changes the extent
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
  3441
fb193cba16b6 #preferredExtent: no longer changes the extent
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
  3442
    "Modified: 22.8.1996 / 13:41:47 / cg"
763
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  3443
!
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  3444
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3445
relativeCorner
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3446
    "return the relative corner or nil"
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3447
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3448
    "MB:added  {" "needed if layout is used e.g. POUEditor"
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3449
    layout notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3450
	layout isRectangle ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3451
	    ^ 0@0
7011
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  3452
        ].    
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3453
	^(layout rightFraction) @ (layout bottomFraction)
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3454
    ].
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3455
    "MB:added  }"
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3456
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3457
    ^relativeCorner
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3458
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3459
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3460
relativeCorner:aPoint
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3461
    "set the relative corner"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3462
3627
eefbbc5c3d04 when setting a relativeExtent, clear any relativeCorner
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  3463
    aPoint notNil ifTrue:[relativeExtent := nil].
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3464
    relativeCorner := aPoint.
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3465
    "MB:added  {" "needed if layout is used e.g. POUEditor"
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  3466
    layout notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3467
	layout rightFraction: aPoint x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3468
	layout bottomFraction: aPoint y.
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3469
    ].
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3470
    "MB:added  }"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3471
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3472
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3473
relativeExtent
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3474
    "return the relative extent or nil.
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3475
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3476
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3477
    ^ relativeExtent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3478
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3479
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3480
relativeExtent:aPoint
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3481
    "set the relative extent.
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3482
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3483
3627
eefbbc5c3d04 when setting a relativeExtent, clear any relativeCorner
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  3484
    aPoint notNil ifTrue:[relativeCorner := nil].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3485
    relativeExtent := aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3486
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3487
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3488
relativeOrigin
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3489
    "return the relative corner or nil"
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3490
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3491
    "MB:added  {"  "needed if layout is used e.g. POUEditor"
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3492
    layout notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3493
	layout isRectangle ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3494
	    ^ 0@0
7011
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  3495
        ].    
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3496
	^(layout leftFraction) @ (layout topFraction)
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3497
    ].
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3498
    "MB:added  }"
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3499
    ^relativeOrigin
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3500
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3501
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3502
relativeOrigin:aPoint
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3503
    "set the relative origin"
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3504
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3505
    relativeOrigin := aPoint.
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3506
    "MB:added  {" "needed if layout is used e.g. POUEditor"
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3507
    layout notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3508
	layout leftFraction: aPoint x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3509
	layout topFraction: aPoint y.
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3510
    ].
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  3511
    "MB:added  }"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3512
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3513
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3514
right
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3515
    "return the x position of the right edge  (in pixels)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3516
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3517
    ^ left + width - 1
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3518
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3519
    "Modified: 31.8.1995 / 19:31:10 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3520
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3521
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3522
right:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3523
    "set the corners x position"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3524
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3525
    self corner:(aNumber @ self corner y)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3526
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3527
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3528
rightInset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3529
    "return the inset of the right edge; positive is to the left,
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3530
     negative to the right.
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3531
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3532
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3533
    insets isNil ifTrue:[^ 0].
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3534
    ^ insets at:3
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3535
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3536
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3537
rightInset:aNumber
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3538
    "set the inset of the right edge;
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3539
     positive is to the left (view becomes smaller),
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3540
     negative to the right (becomes larger).
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3541
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3542
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3543
    |newInset|
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3544
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3545
    insets isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3546
	insets := Array with:0 with:0 with:0 with:0
4426
83f66a9c0be1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4425
diff changeset
  3547
    ].
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3548
    newInset := aNumber.
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3549
    newInset isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3550
	newInset := 0.
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3551
    ].
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3552
    (insets at:3) ~= newInset ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3553
	insets at:3 put:newInset.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3554
	self containerChangedSize.
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3555
    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  3556
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  3557
    "Modified: 19.7.1996 / 17:30:32 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3558
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3559
5547
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  3560
screenBounds
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  3561
    "return my bounds on the screen"
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  3562
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  3563
    ^ (self originRelativeTo:nil) extent:(self extent)
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  3564
!
07869f48d479 added: #screenBounds
Claus Gittinger <cg@exept.de>
parents: 5543
diff changeset
  3565
5695
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3566
setHeight:aNumber
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3567
    "set the view's height in pixels"
5695
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3568
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3569
    height := aNumber.
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3570
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3571
    "Created: / 01-02-2011 / 23:34:51 / cg"
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3572
!
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3573
3007
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  3574
setOrigin:aPoint
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  3575
    "set the origin only"
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  3576
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  3577
    left := aPoint x.
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  3578
    top := aPoint y.
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  3579
!
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  3580
5695
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3581
setWidth:aNumber
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3582
    "set the view's width in pixels"
5695
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3583
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3584
    width := aNumber.
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3585
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3586
    "Created: / 01-02-2011 / 23:36:44 / cg"
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3587
!
Claus Gittinger <cg@exept.de>
parents: 5694
diff changeset
  3588
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3589
sizeFixed:aBoolean
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3590
    "set/clear the fix-size attribute, if supported by concrete subclasses.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3591
     Views which want to resize themselfes as appropriate to their contents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3592
     should cease to do so and take their current size if sizeFixed is set to
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3593
     true. Currently, only supported by Labels.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3594
     This does NOT prevent the window manager from resizing the view,
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3595
     instead it tell the view to NOT resize ITSELF.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3596
     Added here to provide a common protocol for all views."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3597
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3598
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3599
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3600
5228
b925a9bc8c6b new: #superViewRectangle
Stefan Vogel <sv@exept.de>
parents: 5221
diff changeset
  3601
superViewRectangle
b925a9bc8c6b new: #superViewRectangle
Stefan Vogel <sv@exept.de>
parents: 5221
diff changeset
  3602
    "return the inside area of the superView."
b925a9bc8c6b new: #superViewRectangle
Stefan Vogel <sv@exept.de>
parents: 5221
diff changeset
  3603
b925a9bc8c6b new: #superViewRectangle
Stefan Vogel <sv@exept.de>
parents: 5221
diff changeset
  3604
    superView isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3605
	^ Rectangle left:0 top:0 right:0 bottom:0.
5228
b925a9bc8c6b new: #superViewRectangle
Stefan Vogel <sv@exept.de>
parents: 5221
diff changeset
  3606
    ].
b925a9bc8c6b new: #superViewRectangle
Stefan Vogel <sv@exept.de>
parents: 5221
diff changeset
  3607
b925a9bc8c6b new: #superViewRectangle
Stefan Vogel <sv@exept.de>
parents: 5221
diff changeset
  3608
    ^ superView viewRectangle.
b925a9bc8c6b new: #superViewRectangle
Stefan Vogel <sv@exept.de>
parents: 5221
diff changeset
  3609
!
b925a9bc8c6b new: #superViewRectangle
Stefan Vogel <sv@exept.de>
parents: 5221
diff changeset
  3610
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3611
top
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3612
    "return the y position of the top border"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3613
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3614
    ^ top
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3615
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3616
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3617
top:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3618
    "set the y position"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3619
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3620
    self origin:(left @ aNumber)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3621
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3622
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3623
topInset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3624
    "return the inset of the top edge; positive is to the bottom,
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3625
     negative to the top.
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3626
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3627
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3628
    insets isNil ifTrue:[^ 0].
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3629
    ^ insets at:2
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3630
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3631
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3632
topInset:aNumber
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3633
    "set the inset of the top edge;
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3634
     positive is to the bottom (view becomes smaller),
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3635
     negative to the top (becomes larger).
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3636
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3637
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3638
    |newInset|
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3639
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3640
    insets isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3641
	insets := Array with:0 with:0 with:0 with:0
4426
83f66a9c0be1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4425
diff changeset
  3642
    ].
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3643
    newInset := aNumber.
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3644
    newInset isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3645
	newInset := 0.
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3646
    ].
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3647
    (insets at:2) ~= newInset ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3648
	insets at:2 put:newInset.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3649
	self containerChangedSize.
4427
d704798bb679 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4426
diff changeset
  3650
    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  3651
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  3652
    "Modified: 19.7.1996 / 17:30:45 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3653
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3654
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3655
verticalInset:aNumber
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3656
    "set the insets of the top/bottom edge;
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3657
     positive makes it smaller, negative makes it larger.
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3658
     Obsolete: please use a layout object."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3659
4530
5afcace584e4 compact: #dropMessage:data:view:position:handle:
Stefan Vogel <sv@exept.de>
parents: 4524
diff changeset
  3660
    |newInset|
5afcace584e4 compact: #dropMessage:data:view:position:handle:
Stefan Vogel <sv@exept.de>
parents: 4524
diff changeset
  3661
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3662
    insets isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3663
	insets := Array with:0 with:0 with:0 with:0
4426
83f66a9c0be1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4425
diff changeset
  3664
    ].
4530
5afcace584e4 compact: #dropMessage:data:view:position:handle:
Stefan Vogel <sv@exept.de>
parents: 4524
diff changeset
  3665
    newInset := aNumber.
4426
83f66a9c0be1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4425
diff changeset
  3666
    aNumber isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3667
	newInset := 0.
4530
5afcace584e4 compact: #dropMessage:data:view:position:handle:
Stefan Vogel <sv@exept.de>
parents: 4524
diff changeset
  3668
    ].
5afcace584e4 compact: #dropMessage:data:view:position:handle:
Stefan Vogel <sv@exept.de>
parents: 4524
diff changeset
  3669
    insets at:2 put:newInset.
5afcace584e4 compact: #dropMessage:data:view:position:handle:
Stefan Vogel <sv@exept.de>
parents: 4524
diff changeset
  3670
    insets at:4 put:newInset.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3671
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3672
    "force recomputation"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3673
"/    drawableId isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  3674
"/        self originChangedFlag:true
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3675
"/    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3676
	self containerChangedSize.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3677
"/    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  3678
4630
644153ecf775 comments
Claus Gittinger <cg@exept.de>
parents: 4609
diff changeset
  3679
    "Modified: / 30-09-2006 / 15:19:45 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3680
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3681
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3682
viewRectangle
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3683
    "return the inside area.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3684
     This is used by relative sized subviews and layout-computations
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3685
     to base relative coordinates on.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3686
     For most views, the value returned here (actual extent minus any
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3687
     margins required for 3D levels) is ok.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3688
     However, views which want some extra area around (for example: FramedBox)
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3689
     may redefine this method to return a rectangle without this area
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3690
     (thus, a relative sized subviews coordinates will be based on this net area) "
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3691
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3692
    |m2|
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3693
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3694
    m2 := margin + margin.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3695
    ^ (margin @ margin) extent:((width - m2) @ (height - m2))
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3696
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3697
    "Modified: 8.2.1996 / 20:05:00 / cg"
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3698
!
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3699
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3700
width:aNumber
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3701
    "set the view's width in pixels"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3702
5703
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  3703
    "/ check: the following leads to an error in the notebook...
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  3704
"/    aNumber isInteger ifTrue:[
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  3705
"/        width := aNumber.
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  3706
"/    ] ifFalse:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  3707
        self extent:(aNumber @ height)
5703
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  3708
"/    ]
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  3709
b2982d12a3ad changed:
Claus Gittinger <cg@exept.de>
parents: 5695
diff changeset
  3710
    "Modified: / 02-02-2011 / 12:16:26 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3711
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3712
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3713
widthIncludingBorder
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3714
    "return my width including border
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3715
     (this is my width as seen from the outside view;
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3716
      while #width returns the width as seen by myself)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3717
5390
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  3718
    ^ width + (2*self borderWidth)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3719
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3720
3918
f708df11e804 Set windowClasses based on application class name.
Stefan Vogel <sv@exept.de>
parents: 3909
diff changeset
  3721
!SimpleView methodsFor:'accessing-display attributes'!
f708df11e804 Set windowClasses based on application class name.
Stefan Vogel <sv@exept.de>
parents: 3909
diff changeset
  3722
4497
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
  3723
beMDIChildView
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  3724
    flagBits := (flagBits ? 0) bitOr:FlagIsMDIChild
4497
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
  3725
!
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
  3726
4230
6e80dbe10f18 nativeWidget stuff
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
  3727
beNativeWidget
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  3728
    flagBits := (flagBits ? 0) bitOr:FlagNativeWidget
4230
6e80dbe10f18 nativeWidget stuff
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
  3729
!
6e80dbe10f18 nativeWidget stuff
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
  3730
4262
129e10b82f57 *** empty log message ***
ca
parents: 4230
diff changeset
  3731
beNonNativeWidget
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  3732
    flagBits := (flagBits ? 0) bitClear:FlagNativeWidget
4262
129e10b82f57 *** empty log message ***
ca
parents: 4230
diff changeset
  3733
!
129e10b82f57 *** empty log message ***
ca
parents: 4230
diff changeset
  3734
4497
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
  3735
isMDIChildView
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
  3736
    ^ flagBits bitTest:FlagIsMDIChild
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
  3737
!
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
  3738
4407
d0f371afaa58 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4406
diff changeset
  3739
isMarkedAsUnmappedModalBox
d0f371afaa58 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4406
diff changeset
  3740
    ^ flagBits bitTest:FlagIsUnmappedModalBox
d0f371afaa58 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4406
diff changeset
  3741
!
d0f371afaa58 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4406
diff changeset
  3742
4230
6e80dbe10f18 nativeWidget stuff
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
  3743
isNativeWidget
6e80dbe10f18 nativeWidget stuff
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
  3744
    ^ flagBits bitTest:FlagNativeWidget
6e80dbe10f18 nativeWidget stuff
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
  3745
!
6e80dbe10f18 nativeWidget stuff
Claus Gittinger <cg@exept.de>
parents: 4215
diff changeset
  3746
4407
d0f371afaa58 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4406
diff changeset
  3747
markAsUnmappedModalBox
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  3748
    flagBits := (flagBits ? 0) bitOr:FlagIsUnmappedModalBox
4407
d0f371afaa58 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4406
diff changeset
  3749
!
d0f371afaa58 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4406
diff changeset
  3750
d0f371afaa58 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4406
diff changeset
  3751
unmarkAsUnmappedModalBox
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  3752
    flagBits := (flagBits ? 0) bitClear:FlagIsUnmappedModalBox
3918
f708df11e804 Set windowClasses based on application class name.
Stefan Vogel <sv@exept.de>
parents: 3909
diff changeset
  3753
! !
f708df11e804 Set windowClasses based on application class name.
Stefan Vogel <sv@exept.de>
parents: 3909
diff changeset
  3754
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3755
!SimpleView methodsFor:'accessing-hierarchy'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3756
756
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  3757
components
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  3758
    "return the collection of non-view components"
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  3759
4516
d17fa135d9a3 no nil components
Claus Gittinger <cg@exept.de>
parents: 4515
diff changeset
  3760
    ^ components ? #()
756
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  3761
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  3762
    "Created: 28.5.1996 / 23:59:37 / cg"
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  3763
!
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  3764
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3765
container
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3766
    "return my container"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3767
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3768
    ^ superView
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3769
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3770
    "Created: 5.6.1996 / 01:08:36 / cg"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3771
    "Modified: 10.1.1997 / 19:47:59 / cg"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3772
!
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3773
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3774
container:aContainer
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3775
    "set my container (i.e. superView) to be aContainer"
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3776
3558
5b0c805753aa fixed container: (no error if same container is given)
martin
parents: 3556
diff changeset
  3777
    superView == aContainer ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3778
	"/ no change
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3779
	^ self.
3558
5b0c805753aa fixed container: (no error if same container is given)
martin
parents: 3556
diff changeset
  3780
    ].
5b0c805753aa fixed container: (no error if same container is given)
martin
parents: 3556
diff changeset
  3781
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  3782
    (self drawableId notNil) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3783
	"/ actually, this is worth an exception
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3784
	"/ ('View [error]: ' , self printString , ' already realized - cannot change container') errorPrintCR.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3785
	self error:'already realized - cannot change container' mayProceed:true.
3485
ee2792750943 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3474
diff changeset
  3786
    ].
1296
dc646cdf78f0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
  3787
    (superView notNil and:[superView ~~ aContainer]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3788
	"/ actually, this is worth an exception
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3789
	('View [warning]: ' , self printString , ' already has a container') errorPrintCR.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3790
	superView removeComponent:self.
1296
dc646cdf78f0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
  3791
    ].
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3792
    superView := aContainer
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3793
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3794
    "Created: 9.5.1996 / 00:40:56 / cg"
1297
6fe5dfeba2c8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
  3795
    "Modified: 29.1.1997 / 17:37:38 / cg"
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3796
!
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3797
5211
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3798
hierarchicalIndex
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3799
    ^ superView hierarchicalIndexOfChild:self
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3800
!
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3801
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3802
hierarchicalIndexInList:aViewCollection
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3803
    |viewsWithSameName myName|
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3804
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3805
    myName := self uuidStringOrName.
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3806
    viewsWithSameName := aViewCollection select:[:v | v uuidStringOrName = myName].
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3807
    viewsWithSameName size = 1 ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3808
	^ nil "/ no conflict
5211
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3809
    ].
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3810
    ^ viewsWithSameName indexOf:self
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3811
!
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3812
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3813
hierarchicalIndexOfChild:aView
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3814
    ^ nil
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3815
!
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3816
5050
f83e429938f3 hierarchicalUUID
fm
parents: 5031
diff changeset
  3817
hierarchicalUUID
f83e429938f3 hierarchicalUUID
fm
parents: 5031
diff changeset
  3818
5211
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3819
    |uuidOrName superV hierarchicalViews hierarchicalUUID separator indexOrNil indexString|
5050
f83e429938f3 hierarchicalUUID
fm
parents: 5031
diff changeset
  3820
f83e429938f3 hierarchicalUUID
fm
parents: 5031
diff changeset
  3821
    hierarchicalUUID := ''.
f83e429938f3 hierarchicalUUID
fm
parents: 5031
diff changeset
  3822
    hierarchicalViews := OrderedCollection with: self.
f83e429938f3 hierarchicalUUID
fm
parents: 5031
diff changeset
  3823
    superV := self superView.
f83e429938f3 hierarchicalUUID
fm
parents: 5031
diff changeset
  3824
f83e429938f3 hierarchicalUUID
fm
parents: 5031
diff changeset
  3825
    [superV isNil] whileFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3826
	hierarchicalViews addFirst: superV.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3827
	superV := superV superView.
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  3828
    ].
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  3829
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  3830
    hierarchicalViews doWithIndex:[:aView :index |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3831
	uuidOrName := aView uuidStringOrName.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3832
	indexString := nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3833
	index > 1 ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3834
	    indexOrNil := aView hierarchicalIndex.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3835
	    (indexOrNil notNil and:[indexOrNil ~= 1]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3836
		indexString := '[',indexOrNil printString,']'
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3837
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3838
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3839
	separator := index == 1 ifTrue:[''] ifFalse:['.'].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3840
	hierarchicalUUID := hierarchicalUUID,separator,uuidOrName,(indexString?'').
5050
f83e429938f3 hierarchicalUUID
fm
parents: 5031
diff changeset
  3841
    ].
f83e429938f3 hierarchicalUUID
fm
parents: 5031
diff changeset
  3842
    ^ hierarchicalUUID
f83e429938f3 hierarchicalUUID
fm
parents: 5031
diff changeset
  3843
!
f83e429938f3 hierarchicalUUID
fm
parents: 5031
diff changeset
  3844
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3845
lower
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3846
    "bring to back"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3847
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  3848
    self drawableId isNil ifTrue:[self create].
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  3849
    device lowerWindow:self drawableId
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3850
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3851
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3852
     Transcript topView lower
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3853
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3854
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3855
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3856
raise
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3857
    "bring to front"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3858
5262
d7651814a2db fixed raise, when a modal view opens another modal dialog,
Claus Gittinger <cg@exept.de>
parents: 5258
diff changeset
  3859
    "MS-windows:
d7651814a2db fixed raise, when a modal view opens another modal dialog,
Claus Gittinger <cg@exept.de>
parents: 5258
diff changeset
  3860
     Raise does not raise a window above windows marked as 'TOPMOST'.
d7651814a2db fixed raise, when a modal view opens another modal dialog,
Claus Gittinger <cg@exept.de>
parents: 5258
diff changeset
  3861
     (e.g. cmd.exe appears to mark itself as topmost when it gets the focus).
d7651814a2db fixed raise, when a modal view opens another modal dialog,
Claus Gittinger <cg@exept.de>
parents: 5258
diff changeset
  3862
     Use #setForegroundWindow to raise above the currently active window,
d7651814a2db fixed raise, when a modal view opens another modal dialog,
Claus Gittinger <cg@exept.de>
parents: 5258
diff changeset
  3863
     or mark as #beScreenDialog before opening"
d7651814a2db fixed raise, when a modal view opens another modal dialog,
Claus Gittinger <cg@exept.de>
parents: 5258
diff changeset
  3864
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  3865
    self drawableId isNil ifTrue:[self create].
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  3866
    device raiseWindowToTop:self drawableId
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3867
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3868
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3869
     Transcript topView raise
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3870
    "
6121
17d2c885beac class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6119
diff changeset
  3871
17d2c885beac class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6119
diff changeset
  3872
    "Modified: / 29-08-2013 / 16:19:02 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3873
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3874
5680
66a7359fc640 added: #scrolledView
Claus Gittinger <cg@exept.de>
parents: 5679
diff changeset
  3875
scrolledView
66a7359fc640 added: #scrolledView
Claus Gittinger <cg@exept.de>
parents: 5679
diff changeset
  3876
    "for compatibility with scrolledView, return myself.
66a7359fc640 added: #scrolledView
Claus Gittinger <cg@exept.de>
parents: 5679
diff changeset
  3877
     So you can ignore the scrollability of a component when accessing it,
6880
f2af2640ad4d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6864
diff changeset
  3878
     without a need to ask for being a scrollwrapper first.
f2af2640ad4d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6864
diff changeset
  3879
     Eg, you can send someView scrolledView to get the underlying view,
f2af2640ad4d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6864
diff changeset
  3880
     without a danger of a DNU, if the component is not scrolled."
5680
66a7359fc640 added: #scrolledView
Claus Gittinger <cg@exept.de>
parents: 5679
diff changeset
  3881
66a7359fc640 added: #scrolledView
Claus Gittinger <cg@exept.de>
parents: 5679
diff changeset
  3882
    ^ self
66a7359fc640 added: #scrolledView
Claus Gittinger <cg@exept.de>
parents: 5679
diff changeset
  3883
66a7359fc640 added: #scrolledView
Claus Gittinger <cg@exept.de>
parents: 5679
diff changeset
  3884
    "Created: / 22-01-2011 / 12:00:41 / cg"
66a7359fc640 added: #scrolledView
Claus Gittinger <cg@exept.de>
parents: 5679
diff changeset
  3885
!
66a7359fc640 added: #scrolledView
Claus Gittinger <cg@exept.de>
parents: 5679
diff changeset
  3886
3625
e8664f0060b5 + setContainer:
Claus Gittinger <cg@exept.de>
parents: 3617
diff changeset
  3887
setContainer:aContainer
e8664f0060b5 + setContainer:
Claus Gittinger <cg@exept.de>
parents: 3617
diff changeset
  3888
    "set my container (i.e. superView) to be aContainer"
e8664f0060b5 + setContainer:
Claus Gittinger <cg@exept.de>
parents: 3617
diff changeset
  3889
e8664f0060b5 + setContainer:
Claus Gittinger <cg@exept.de>
parents: 3617
diff changeset
  3890
    superView := aContainer
e8664f0060b5 + setContainer:
Claus Gittinger <cg@exept.de>
parents: 3617
diff changeset
  3891
!
e8664f0060b5 + setContainer:
Claus Gittinger <cg@exept.de>
parents: 3617
diff changeset
  3892
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3893
subViews
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3894
    "return the collection of subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3895
3626
fa436ffc8ae7 subViews always returns a collection
Claus Gittinger <cg@exept.de>
parents: 3625
diff changeset
  3896
    ^ subViews ? #()
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3897
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3898
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3899
subViews:aListOfViews
5214
b87c11b492f5 Mark obsolete methods
Stefan Vogel <sv@exept.de>
parents: 5211
diff changeset
  3900
    <resource: #obsolete>
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3901
    "set the collection of subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3902
3616
0ddaf2ce9b06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3614
diff changeset
  3903
    self obsoleteMethodWarning.
0ddaf2ce9b06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3614
diff changeset
  3904
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3905
    subViews := aListOfViews.
135
claus
parents:
diff changeset
  3906
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3907
	subViews do:[:view |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3908
	    view container:self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3909
	]
135
claus
parents:
diff changeset
  3910
    ]
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3911
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3912
    "Modified: 9.5.1996 / 00:42:28 / cg"
135
claus
parents:
diff changeset
  3913
!
claus
parents:
diff changeset
  3914
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3915
superView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3916
    "return my superView"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3917
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3918
    ^ superView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3919
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3920
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3921
superView:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3922
    "set my superView to be aView"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3923
3434
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  3924
    <resource:#obsolete>
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  3925
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3926
    self obsoleteMethodWarning:'use #container:'.
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3927
    self container:aView.
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3928
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3929
    "Modified: 9.5.1996 / 00:46:24 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3930
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3931
662
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3932
topComponent
7586
53e42e99e908 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7570
diff changeset
  3933
    "return the topmost component - that's the one with no superview.
662
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3934
     For ST-80 compatibility."
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3935
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3936
    ^ self topView
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3937
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3938
    "Modified: 9.5.1996 / 01:40:24 / cg"
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3939
!
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3940
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3941
topView
6643
cb79c35159b4 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6640
diff changeset
  3942
    "return the topView - that's the one with no superview"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3943
3425
9b2a3191f47b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3423
diff changeset
  3944
    |v next n|
9b2a3191f47b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3423
diff changeset
  3945
9b2a3191f47b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3423
diff changeset
  3946
    n := 1.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3947
    v := self.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3948
    [v notNil] whileTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3949
	(next := v container) isNil ifTrue:[^ v].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3950
	v := next.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3951
	n := n + 1.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  3952
	n > 1000 ifTrue:[self error:'circular superView chain'].
135
claus
parents:
diff changeset
  3953
    ].
claus
parents:
diff changeset
  3954
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3955
    ^ nil
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3956
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3957
    "Modified: 5.6.1996 / 01:09:12 / cg"
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3958
!
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3959
5211
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3960
uuidStringOrName
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3961
    |uuid|
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3962
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3963
    (uuid := self uuid) isNil ifTrue: [^ self name].
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3964
    ^ uuid printString
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3965
!
569dcac3ee7d hierarchicalUUID fix for duplicate viewNames
fm
parents: 5202
diff changeset
  3966
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3967
view
7586
53e42e99e908 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7570
diff changeset
  3968
    "return my view - for real views, that's the receiver.
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3969
     For wrappers, its the real view that contains it"
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3970
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3971
    ^ self
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3972
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3973
    "Created: 4.6.1996 / 21:32:11 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3974
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3975
7969
2bac4f32553f Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7856
diff changeset
  3976
!SimpleView methodsFor:'accessing-keyboard mappings'!
2bac4f32553f Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7856
diff changeset
  3977
2bac4f32553f Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7856
diff changeset
  3978
shortKeyStringFor:symbolicOrRawKey
2bac4f32553f Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7856
diff changeset
  3979
    ^ device shortKeyStringFor:symbolicOrRawKey usingMap: self keyboardMap.
2bac4f32553f Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7856
diff changeset
  3980
2bac4f32553f Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7856
diff changeset
  3981
    "Created: / 08-02-2017 / 23:20:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2bac4f32553f Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7856
diff changeset
  3982
! !
2bac4f32553f Allow individual applications to define their own shortcut mapping
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7856
diff changeset
  3983
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3984
!SimpleView methodsFor:'accessing-menus'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3985
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3986
menuHolder
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  3987
    "who has the menu ?
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3988
     By default, I have it."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3989
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3990
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3991
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3992
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3993
menuMessage
7405
594bd11c3502 #OTHER by mawalch
mawalch
parents: 7401
diff changeset
  3994
    "Return the symbol sent to myself to acquire the menu"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3995
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3996
    ^ #middleButtonMenu
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3997
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3998
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3999
menuPerformer
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4000
    "who should perform the menu actions ?
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4001
     By default, I do it."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4002
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4003
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4004
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4005
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4006
yellowButtonMenu
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4007
    "actually, this should be called 'middleButtonMenu'.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4008
     But for ST-80 compatibility ....
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4009
     This method will vanish, once all views have controllers
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4010
     associated with them; for now, duplicate some code also found in
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4011
     controller."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4012
3821
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4013
    |sym menuHolder|
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4014
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4015
    menuHolder := self menuHolder.
3821
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4016
    menuHolder isNil ifTrue:[^ nil].
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4017
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4018
    (menuHolder isKindOf:Menu) ifTrue:[^ menuHolder].
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4019
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4020
    sym := self menuMessage.
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4021
    sym isNil ifTrue:[^ nil].
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4022
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4023
    "
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4024
     mhmh - for backward compatibility, try to ask
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  4025
     the model first, then use the view's menu.
3821
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4026
    "
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4027
    (menuHolder respondsTo:sym) ifFalse:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  4028
        (self respondsTo:sym) ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  4029
            menuHolder := self
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  4030
        ]
5292
7a7caa9d3e7a changed #yellowButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  4031
    ].
7a7caa9d3e7a changed #yellowButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  4032
7a7caa9d3e7a changed #yellowButtonMenu
Claus Gittinger <cg@exept.de>
parents: 5290
diff changeset
  4033
    sym numArgs > 0 ifTrue:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  4034
        "/ squeak compatibility (with args): create the empty menu here, let model add items
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  4035
        ^ menuHolder perform:sym withOptionalArgument:(Menu new) and:(device shiftDown).
3894
9ce47094d67e menu: squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3889
diff changeset
  4036
    ].
9ce47094d67e menu: squeak compatibility
Claus Gittinger <cg@exept.de>
parents: 3889
diff changeset
  4037
3821
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4038
    "
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4039
     ask the menuHolder for the menu
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4040
    "
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  4041
    ^ menuHolder perform:sym.
135
claus
parents:
diff changeset
  4042
! !
claus
parents:
diff changeset
  4043
claus
parents:
diff changeset
  4044
!SimpleView methodsFor:'accessing-misc'!
claus
parents:
diff changeset
  4045
claus
parents:
diff changeset
  4046
bitGravity
7014
c6314e2eacb8 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7011
diff changeset
  4047
    "return the bitGravity - that's the direction where the contents will move
7479
0d77199594d6 #DOCUMENTATION by mawalch
mawalch
parents: 7471
diff changeset
  4048
     when the view is resized."
135
claus
parents:
diff changeset
  4049
claus
parents:
diff changeset
  4050
    ^ bitGravity
claus
parents:
diff changeset
  4051
!
claus
parents:
diff changeset
  4052
claus
parents:
diff changeset
  4053
bitGravity:gravity
7014
c6314e2eacb8 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7011
diff changeset
  4054
    "set the bitGravity - that's the direction where the contents will move
135
claus
parents:
diff changeset
  4055
     when the view is resized."
claus
parents:
diff changeset
  4056
claus
parents:
diff changeset
  4057
    bitGravity ~~ gravity ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4058
	bitGravity := gravity.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4059
	gc bitGravity:gravity.
135
claus
parents:
diff changeset
  4060
    ]
claus
parents:
diff changeset
  4061
!
claus
parents:
diff changeset
  4062
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  4063
clippingBounds:aRectangleOrNil
153
claus
parents: 151
diff changeset
  4064
    "set the clipping rectangle for drawing (in logical coordinates);
754
a50c0b52aa82 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 753
diff changeset
  4065
     a nil argument turns off clipping (i.e. whole view is drawable).
153
claus
parents: 151
diff changeset
  4066
     Redefined to care for any margin."
claus
parents: 151
diff changeset
  4067
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  4068
    |x y w h currentClippingBounds newBounds|
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4069
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4070
    currentClippingBounds := gc clippingBoundsOrNil.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  4071
    (currentClippingBounds = aRectangleOrNil) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4072
	^ self
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  4073
    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  4074
    newBounds := aRectangleOrNil.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  4075
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  4076
    aRectangleOrNil notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4077
	|currentTransformation|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4078
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4079
	x := aRectangleOrNil left.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4080
	y := aRectangleOrNil top.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4081
	w := aRectangleOrNil width.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4082
	h := aRectangleOrNil height.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4083
	currentTransformation := gc transformation.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4084
	currentTransformation notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4085
	    x := currentTransformation applyToX:x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4086
	    y := currentTransformation applyToY:y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4087
	    w := currentTransformation applyScaleX:w.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4088
	    h := currentTransformation applyScaleY:h.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4089
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4090
	(x class ~~ SmallInteger) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4091
	    w := w + (x - x truncated).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4092
	    x := x truncated
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4093
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4094
	(y class ~~ SmallInteger) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4095
	    h := h + (y - y truncated).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4096
	    y := y truncated
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4097
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4098
	(w class ~~ SmallInteger) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4099
	    w := w truncated + 1
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4100
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4101
	(h class ~~ SmallInteger) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4102
	    h := h truncated + 1
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4103
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4104
	x < margin ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4105
	    x := margin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4106
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4107
	y < margin ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4108
	    y := margin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4109
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4110
	x + w - 1 >= (width-margin) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4111
	    w := width - margin - x
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4112
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4113
	y + h - 1 >= (height-margin) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4114
	    h := height - margin - y
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4115
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4116
	w := w max:0.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4117
	h := h max:0.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4118
	newBounds := Rectangle left:x top:y width:w height:h.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  4119
    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  4120
    gc deviceClippingBounds:newBounds
737
f194e4851d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
  4121
f194e4851d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
  4122
    "Created: 28.5.1996 / 19:50:03 / cg"
754
a50c0b52aa82 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 753
diff changeset
  4123
    "Modified: 28.5.1996 / 22:32:15 / cg"
153
claus
parents: 151
diff changeset
  4124
!
claus
parents: 151
diff changeset
  4125
claus
parents: 151
diff changeset
  4126
fullName
claus
parents: 151
diff changeset
  4127
    "return my full name to be used for resource-access"
claus
parents: 151
diff changeset
  4128
claus
parents: 151
diff changeset
  4129
    superView notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4130
	^ superView fullName , '.' , self name
5290
5c7a67abec31 name setup lazy
Claus Gittinger <cg@exept.de>
parents: 5289
diff changeset
  4131
    ].
5c7a67abec31 name setup lazy
Claus Gittinger <cg@exept.de>
parents: 5289
diff changeset
  4132
    ^ self name
153
claus
parents: 151
diff changeset
  4133
!
claus
parents: 151
diff changeset
  4134
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4135
name
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4136
    "return my name component to be used for resource-access"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4137
5290
5c7a67abec31 name setup lazy
Claus Gittinger <cg@exept.de>
parents: 5289
diff changeset
  4138
    name isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4139
	name := self class name "asString" asLowercaseFirst
5290
5c7a67abec31 name setup lazy
Claus Gittinger <cg@exept.de>
parents: 5289
diff changeset
  4140
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4141
    ^ name
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4142
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4143
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4144
name:aString
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4145
    "set my name component to be used for resource-access"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4146
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4147
    name := aString
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4148
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4149
153
claus
parents: 151
diff changeset
  4150
processName
claus
parents: 151
diff changeset
  4151
    "return a string to be shown in the process monitor"
claus
parents: 151
diff changeset
  4152
claus
parents: 151
diff changeset
  4153
    ^ self name
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4154
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4155
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4156
styleSheet
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4157
    "return the styleSheet. This is set at early view-creation time,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4158
     from the defaultStyleSheet which is valid at that time.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4159
     It is not affected by later defaultStyle changes"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4160
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4161
    ^ styleSheet
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4162
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4163
    "Created: 10.9.1995 / 11:02:20 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4164
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4165
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4166
styleSheet:aStyleSheet
3384
4af722e8336c allow change of the styleSheet
tm
parents: 3383
diff changeset
  4167
    "change the styleSheet. Knowledgable users only, please."
4af722e8336c allow change of the styleSheet
tm
parents: 3383
diff changeset
  4168
4af722e8336c allow change of the styleSheet
tm
parents: 3383
diff changeset
  4169
    styleSheet := aStyleSheet.
4af722e8336c allow change of the styleSheet
tm
parents: 3383
diff changeset
  4170
!
4af722e8336c allow change of the styleSheet
tm
parents: 3383
diff changeset
  4171
4990
0aec48bba22a temporary kludge to support both names and uuid's
fm
parents: 4978
diff changeset
  4172
uuid
5017
ea0e1c5afc63 uuid support
Claus Gittinger <cg@exept.de>
parents: 5008
diff changeset
  4173
    "return my uuid (for the pollonium st/x capture/replay tool)"
ea0e1c5afc63 uuid support
Claus Gittinger <cg@exept.de>
parents: 5008
diff changeset
  4174
ea0e1c5afc63 uuid support
Claus Gittinger <cg@exept.de>
parents: 5008
diff changeset
  4175
    ^ uuid
4990
0aec48bba22a temporary kludge to support both names and uuid's
fm
parents: 4978
diff changeset
  4176
!
0aec48bba22a temporary kludge to support both names and uuid's
fm
parents: 4978
diff changeset
  4177
0aec48bba22a temporary kludge to support both names and uuid's
fm
parents: 4978
diff changeset
  4178
uuid:aUUID
5017
ea0e1c5afc63 uuid support
Claus Gittinger <cg@exept.de>
parents: 5008
diff changeset
  4179
    "set my uuid (for the pollonium st/x capture/replay tool)"
ea0e1c5afc63 uuid support
Claus Gittinger <cg@exept.de>
parents: 5008
diff changeset
  4180
ea0e1c5afc63 uuid support
Claus Gittinger <cg@exept.de>
parents: 5008
diff changeset
  4181
    uuid := aUUID
4990
0aec48bba22a temporary kludge to support both names and uuid's
fm
parents: 4978
diff changeset
  4182
!
0aec48bba22a temporary kludge to support both names and uuid's
fm
parents: 4978
diff changeset
  4183
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4184
viewGravity
7014
c6314e2eacb8 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7011
diff changeset
  4185
    "return the viewGravity - that's the direction where the view will move
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4186
     when the superView is resized."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4187
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4188
    ^ viewGravity
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4189
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4190
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4191
viewGravity:gravity
7014
c6314e2eacb8 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7011
diff changeset
  4192
    "set the viewGravity - that's the direction where the view will move
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4193
     when the superView is resized."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4194
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4195
    viewGravity ~~ gravity ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4196
	viewGravity := gravity.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4197
	gc viewGravity:gravity.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4198
    ]
140
claus
parents: 138
diff changeset
  4199
! !
claus
parents: 138
diff changeset
  4200
claus
parents: 138
diff changeset
  4201
!SimpleView methodsFor:'accessing-mvc'!
claus
parents: 138
diff changeset
  4202
1187
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  4203
application
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  4204
    "return the application, under which this view was opened,
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  4205
     or nil, if there is no application"
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  4206
1751
15381229b2d8 accessing application through superView (not topView)
ca
parents: 1750
diff changeset
  4207
    superView notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4208
	^ superView application
1187
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  4209
    ].
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  4210
    ^ nil
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  4211
1190
2ae6212c581d avoid recursion trouble
Claus Gittinger <cg@exept.de>
parents: 1187
diff changeset
  4212
    "Modified: 13.1.1997 / 20:30:31 / cg"
1187
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  4213
!
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  4214
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4215
aspect:aspectSymbol
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4216
    "ST-80 style updating: If a views aspectSymbol is nonNil,
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4217
     it will respond to changes of this aspect from the model.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4218
     Alias for aspectMessage: for ST-80 compatibility."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4219
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4220
    self aspectMessage:aspectSymbol
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4221
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4222
140
claus
parents: 138
diff changeset
  4223
controller
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4224
    "return the controller. For views which implement the controller
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4225
     functionality themself, return the receiver itself"
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4226
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4227
    ^ controller ? self
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4228
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4229
    "Modified: / 31.10.1997 / 19:58:10 / cg"
140
claus
parents: 138
diff changeset
  4230
!
claus
parents: 138
diff changeset
  4231
claus
parents: 138
diff changeset
  4232
controller:aController
7586
53e42e99e908 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7570
diff changeset
  4233
    "set the controller - that's the one handling user events"
140
claus
parents: 138
diff changeset
  4234
7779
5931d9c57148 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7778
diff changeset
  4235
    aController == self ifTrue:[
5931d9c57148 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7778
diff changeset
  4236
        controller := nil
5931d9c57148 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7778
diff changeset
  4237
    ] ifFalse:[    
5931d9c57148 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7778
diff changeset
  4238
        controller := aController.
5931d9c57148 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7778
diff changeset
  4239
        controller notNil ifTrue:[
5931d9c57148 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7778
diff changeset
  4240
            controller view:self.
5931d9c57148 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7778
diff changeset
  4241
        ]
135
claus
parents:
diff changeset
  4242
    ]
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4243
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4244
    "Modified: / 31.10.1997 / 19:58:33 / cg"
135
claus
parents:
diff changeset
  4245
!
claus
parents:
diff changeset
  4246
140
claus
parents: 138
diff changeset
  4247
model
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  4248
    "return nil - simpleViews have no model (only providing geometric)"
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  4249
135
claus
parents:
diff changeset
  4250
    ^ nil
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  4251
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  4252
    "Modified: 5.6.1996 / 14:17:29 / cg"
135
claus
parents:
diff changeset
  4253
!
claus
parents:
diff changeset
  4254
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  4255
sensor
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  4256
    "return the view's sensor"
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  4257
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  4258
    windowGroup notNil ifTrue:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  4259
        ^ windowGroup sensor.
3856
45fccc92d834 Use SynchronousWindoeSensor if no windowGroup
Stefan Vogel <sv@exept.de>
parents: 3838
diff changeset
  4260
    ].
45fccc92d834 Use SynchronousWindoeSensor if no windowGroup
Stefan Vogel <sv@exept.de>
parents: 3838
diff changeset
  4261
4209
af2ef9ba90c5 typo in comment
Stefan Vogel <sv@exept.de>
parents: 4196
diff changeset
  4262
    "there is no window group. Deliver events synchronously"
3856
45fccc92d834 Use SynchronousWindoeSensor if no windowGroup
Stefan Vogel <sv@exept.de>
parents: 3838
diff changeset
  4263
45fccc92d834 Use SynchronousWindoeSensor if no windowGroup
Stefan Vogel <sv@exept.de>
parents: 3838
diff changeset
  4264
    ^ SynchronousWindowSensor new.
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  4265
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  4266
    "Modified: 10.1.1997 / 19:47:13 / cg"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  4267
!
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  4268
954
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  4269
setController:aController
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  4270
    "set the controller but do not affect the model/view releationship"
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  4271
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  4272
    controller := aController.
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  4273
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  4274
    "Created: 18.7.1996 / 11:43:40 / cg"
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  4275
!
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  4276
1874
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4277
setWindowGroup:aGroup
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4278
    "set the window group."
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4279
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4280
    windowGroup := aGroup
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4281
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4282
    "Created: 19.8.1997 / 17:58:35 / cg"
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4283
!
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4284
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4285
windowGroup
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4286
    "return the window group. For old style views, return nil"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4287
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4288
    ^ windowGroup
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4289
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4290
1874
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4291
windowGroup:newGroup
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4292
    "set the window group of myself and recursively of any children.
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4293
     If I am currently in a group, remove me from it it."
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4294
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4295
    windowGroup notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4296
	windowGroup removeView:self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4297
	windowGroup := nil
1874
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4298
    ].
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4299
    windowGroup := newGroup.
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4300
    newGroup notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4301
	newGroup addView:self.
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  4302
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  4303
    ].
1874
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4304
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4305
	subViews do:[:aSubview |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4306
	    aSubview windowGroup:newGroup
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4307
	]
1874
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4308
    ].
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  4309
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  4310
    "Modified: 20.8.1997 / 13:26:37 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4311
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4312
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4313
!SimpleView methodsFor:'accessing-transformation'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4314
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  4315
maxComponentBottom
5623
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  4316
    "return the maximum of all components bottoms"
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  4317
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  4318
    components isNil ifTrue:[^ 0].
5623
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  4319
    ^ components inject:0 into:[:maxSoFar :sub | (sub bottom) max:maxSoFar].
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  4320
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  4321
    "Created: / 26-05-1996 / 12:44:05 / cg"
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  4322
    "Modified: / 22-10-2010 / 10:49:08 / cg"
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  4323
!
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  4324
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  4325
maxComponentRight
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  4326
    "return the maximum of all components rights"
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  4327
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  4328
    components isNil ifTrue:[^ 0].
5623
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  4329
    ^ components inject:0 into:[:maxSoFar :sub | (sub right) max:maxSoFar].
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  4330
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  4331
    "Created: / 26-05-1996 / 13:02:19 / cg"
41308e6e401a comment/format in: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5617
diff changeset
  4332
    "Modified: / 22-10-2010 / 10:48:53 / cg"
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  4333
!
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  4334
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4335
maxSubViewBottom
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4336
"/    subViews isNil ifTrue:[^ 0].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4337
"/    ^ subViews inject:0 into:[:maxSoFar :sub | (sub top + sub height) max:maxSoFar].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4338
      ^ 0
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4339
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4340
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4341
maxSubViewRight
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4342
"/    subViews isNil ifTrue:[^ 0].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4343
"/    ^ subViews inject:0 into:[:maxSoFar :sub | (sub left + sub width) max:maxSoFar].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4344
    ^ 0
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4345
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4346
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4347
scale:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4348
    "set the scale factor of the transformation"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4349
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  4350
    super scale:aPoint.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4351
    self computeInnerClip
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4352
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4353
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4354
setViewOrigin:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4355
    "set the viewOrigin - i.e. virtually scroll without redrawing"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4356
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  4357
    |currentTransformation|
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  4358
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4359
    currentTransformation := gc transformation.
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4360
    currentTransformation isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4361
	(aPoint x ~~ 0 or:[aPoint y ~~ 0]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4362
	    gc transformation:(WindowingTransformation scale:1 translation:aPoint negated).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4363
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4364
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4365
	currentTransformation translation:aPoint negated.
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4366
    ].
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4367
    self clippingBoundsOrNil notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4368
	self setInnerClip.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4369
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4370
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4371
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4372
viewOrigin
7586
53e42e99e908 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7570
diff changeset
  4373
    "return the viewOrigin; that's the coordinate of the contents
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4374
     which is shown topLeft in the view
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4375
     (i.e. the origin of the visible part of the contents)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4376
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4377
    |currentTransformation|
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4378
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4379
    currentTransformation := gc transformation.
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4380
    currentTransformation isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4381
	^ 0@0
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4382
    ].
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4383
    ^ currentTransformation translation negated
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4384
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4385
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  4386
visibleArea
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  4387
    "return the rectangle that contains the visible part
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  4388
     of the view in user coordinates."
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  4389
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  4390
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4391
    |currentTransformation|
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4392
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4393
    currentTransformation := gc transformation.
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4394
    currentTransformation isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4395
	^ Rectangle left:0 top:0 width:width height:height.
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  4396
    ].
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4397
    ^ Rectangle origin:(currentTransformation translation negated)
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4398
		extent:((width @ height) scaledBy:(currentTransformation scale)).
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  4399
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  4400
    "Created: 12.7.1996 / 11:57:04 / stefan"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  4401
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  4402
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4403
xOriginOfContents
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4404
    "return the x coordinate of the viewOrigin in pixels;
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4405
     used by scrollBars to compute thumb position within the document."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4406
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4407
    ^ self viewOrigin x
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4408
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4409
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4410
yOriginOfContents
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4411
    "return the y coordinate of the viewOrigin in pixels;
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4412
     used by scrollBars to compute thumb position within the document."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4413
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4414
    ^ self viewOrigin y
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4415
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4416
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4417
!SimpleView methodsFor:'accessing-visibility'!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4418
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4419
beInvisible
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4420
    "make the view invisible; if my container is visible,
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4421
     change visibility immediately;
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4422
     otherwise, arrange for the receiver to be not realized,
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4423
     when the container is made visible."
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4424
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4425
    self hiddenOnRealize:true.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4426
    realized ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4427
	(superView isNil              "/ I am a topView
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4428
	or:[superView realized        "/ superview already shown
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4429
	or:[superView id notNil]])     "/ superview already created
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4430
	    ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4431
		self unmap
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4432
	    ]
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4433
    ]
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4434
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4435
    "Modified: 3.4.1997 / 21:20:40 / cg"
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4436
!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4437
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4438
beVisible
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4439
    "make the view visible; if my container is already visible,
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4440
     change visibility immediately; otherwise, arrange for the receiver
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4441
     to be made visible when the container is made visible.
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4442
     Notice, that the command may not be sent immediately to the display,
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4443
     and that ST/X considers the view to be still invisible until a
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4444
     visibility event arrives from the display.
1754
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  4445
     Thus, the view may remain logically invisible
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4446
     for a while. (see #beVisibleNow for more on this)"
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4447
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4448
    self hiddenOnRealize:false.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4449
    realized ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4450
	superView isNil ifTrue:[                "/ I am a topView
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  4451
	    self drawableId isNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4452
		"this once was:
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4453
		   self realize.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4454
		 but we don't want Topviews to realize implicitly.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4455
		 BTW. the code doesn't work anyway"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4456
	    ] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4457
		self remap.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4458
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4459
	] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4460
	    (superView realized          "/ superview already shown
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4461
	    or:[superView id notNil])    "/ superview already created
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4462
	    ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4463
		self realize
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4464
	    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4465
	].
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4466
    ]
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4467
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4468
    "
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4469
     |top topFrame check list|
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4470
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4471
     top := StandardSystemView new.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4472
     top extent:150@400.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4473
     topFrame := VerticalPanelView origin:0.0@0.0 corner:1.0@0.4 in:top.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4474
     topFrame horizontalLayout:#leftSpace.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4475
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4476
     topFrame add:(check := CheckBox label:'hidden').
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4477
     check pressAction:[list beInvisible].
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4478
     check releaseAction:[list beVisible].
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4479
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4480
     list := ScrollableView for:SelectionInListView.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4481
     list origin:0.0@0.4 corner:1.0@1.0.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4482
     list list:#('foo' 'bar' 'baz').
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4483
     top add:list.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4484
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4485
     check turnOn.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4486
     list beInvisible.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4487
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4488
     top open
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4489
    "
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4490
1981
0c3b8ef42df8 Take care of views with nil visibleID in #beVisible
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  4491
    "Created: / 22.9.1995 / 15:50:33 / claus"
0c3b8ef42df8 Take care of views with nil visibleID in #beVisible
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  4492
    "Modified: / 17.6.1997 / 11:23:00 / cg"
0c3b8ef42df8 Take care of views with nil visibleID in #beVisible
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  4493
    "Modified: / 14.1.1998 / 17:33:15 / stefan"
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4494
!
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4495
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4496
beVisibleNow
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4497
    "make the view visible immediately.
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4498
     In contrast to #beVisible, this waits until the view is really
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4499
     visible."
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4500
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4501
    self beVisible.
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  4502
    device sync.    "that's a round-trip; when returning, the view is definitely visible"
3648
95c073f74e25 comments
Claus Gittinger <cg@exept.de>
parents: 3642
diff changeset
  4503
2721
2575a1e771cc mapped event handling
Claus Gittinger <cg@exept.de>
parents: 2719
diff changeset
  4504
"/    realized := true.
2575a1e771cc mapped event handling
Claus Gittinger <cg@exept.de>
parents: 2719
diff changeset
  4505
"/    shown := true.
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4506
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4507
    "Created: 3.4.1997 / 21:23:28 / cg"
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4508
!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4509
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4510
hidden
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4511
    "return true, if the view does not want to be realized
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4512
     automatically when superview is realized"
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4513
3434
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  4514
    <resource:#obsolete>
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  4515
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4516
    self obsoleteMethodWarning:'use #isHiddenOnRealize'.
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  4517
    ^ self isHiddenOnRealize
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4518
1754
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  4519
    "Modified: 17.6.1997 / 11:19:55 / cg"
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4520
!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4521
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4522
hidden:aBoolean
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4523
    "if the argument is true, the receiver view will not
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4524
     be realized automatically when superview is realized"
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4525
3434
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  4526
    <resource:#obsolete>
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  4527
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  4528
    self obsoleteMethodWarning:'use #hiddenOnRealize:'.
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  4529
    self hiddenOnRealize:aBoolean
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4530
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4531
    "Modified: 17.1.1996 / 11:45:06 / cg"
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4532
!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4533
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4534
hiddenOnRealize:aBoolean
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4535
    "if the argument is true, the receiver view will not
1754
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  4536
     be mapped (i.e. shown) automatically when the superview is realized.
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4537
     The hiddenOnRealize flag is useful to create views which are
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4538
     to be made visible conditionally or later.
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
  4539
     Notice: if there is a visibilityChanne, this static flag is ignored.
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4540
     For ST-80 compatibility, please use #beVisible / #beInvisible."
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4541
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  4542
    aBoolean ifTrue:[
5008
468d1a62a90f middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5004
diff changeset
  4543
	flagBits := flagBits bitOr:FlagHiddenOnRealize
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  4544
    ] ifFalse:[
5008
468d1a62a90f middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5004
diff changeset
  4545
	flagBits := flagBits bitClear:FlagHiddenOnRealize
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  4546
    ].
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  4547
1754
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  4548
    "Modified: 17.6.1997 / 11:23:26 / cg"
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  4549
!
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  4550
7094
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4551
isBeingDestroyed
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4552
    "a flag which is set, when the view is being destroyed.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4553
     Can be checked to avoid some resizing and other layout reorganizations
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4554
     (especially in panels), which otherwise occur while subviews are removed."
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4555
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4556
    ^ flagBits bitTest:FlagBeingDestroyed.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4557
!
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4558
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4559
isBeingDestroyed:aBoolean
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4560
    "a flag which is set, when the view is being destroyed.
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4561
     Can be checked to avoid some resizing and other layout reorganizations
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4562
     (especially in panels), which otherwise occur while subviews are removed."
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4563
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4564
    aBoolean ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4565
	flagBits := flagBits bitOr:FlagBeingDestroyed
7094
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4566
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4567
	flagBits := flagBits bitClear:FlagBeingDestroyed
7094
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4568
    ].
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4569
!
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  4570
1754
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  4571
isHiddenOnRealize
5008
468d1a62a90f middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5004
diff changeset
  4572
    "return true, if the receiver will NOT be mapped when realized.
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  4573
     False otherwise.
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4574
     The hiddenOnRealize flag is useful to create views which are
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
  4575
     to be made visible conditionally or later.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
  4576
     Notice: if there is a visibilityChanne, the static flag is ignored."
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
  4577
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
  4578
    visibilityChannel isNil ifTrue:[
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
  4579
        ^ flagBits bitTest:FlagHiddenOnRealize.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
  4580
    ].
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
  4581
    ^ visibilityChannel value not
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
  4582
    
1754
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  4583
    "Created: 17.6.1997 / 11:21:42 / cg"
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4584
!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4585
5679
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4586
isReallyShown
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4587
    "return true, if the view is visible AND all of its containers are"
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4588
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4589
    |v|
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4590
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4591
    v := self.
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4592
    [v notNil] whileTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4593
	v shown ifFalse:[^ false].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4594
	v := v container.
5679
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4595
    ].
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4596
    ^ true
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4597
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4598
    "Created: / 21-01-2011 / 15:54:18 / cg"
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4599
!
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  4600
3516
6b4bc198c7f1 added #isVisible
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4601
isVisible
6b4bc198c7f1 added #isVisible
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4602
    "return true, if the view is visible"
6b4bc198c7f1 added #isVisible
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4603
6b4bc198c7f1 added #isVisible
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4604
    ^ self realized
6b4bc198c7f1 added #isVisible
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4605
!
6b4bc198c7f1 added #isVisible
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4606
1938
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  4607
isVisible:aBoolean
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  4608
    "make the view visible or invisible"
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  4609
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  4610
    aBoolean ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4611
	self beVisible
1938
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  4612
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4613
	self beInvisible
1938
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  4614
    ]
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  4615
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  4616
    "Created: / 27.10.1997 / 04:23:04 / cg"
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  4617
!
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  4618
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4619
setVisibilityChannel:aValueHolder
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  4620
    "set the valueHolder, which holds the visible boolean value"
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  4621
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4622
    visibilityChannel := aValueHolder
6087
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4623
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4624
    "
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4625
      |v h|
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4626
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4627
      v := View new.
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4628
      v visibilityChannel:(h := ValueHolder with:true).
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4629
      v open.
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4630
      Delay waitForSeconds:2.
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4631
      h value:false.
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4632
      Delay waitForSeconds:2.
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4633
      h value:true.
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4634
      Delay waitForSeconds:2.
fa548561a48a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6082
diff changeset
  4635
    "
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  4636
!
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  4637
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4638
shown
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4639
    "return true if the view is shown; false if not.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4640
     Shown means: the view is mapped and is not completely covered."
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4641
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4642
    ^ shown
3366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  4643
!
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  4644
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4645
visibilityChannel
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4646
    "return a valueHolder for visible/invisible"
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4647
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4648
    ^ visibilityChannel
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4649
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4650
    "Modified: / 30.3.1999 / 13:49:56 / stefan"
3366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  4651
!
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  4652
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4653
visibilityChannel:aValueHolder
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4654
    "set the valueHolder, which holds the visible boolean value"
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4655
3366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  4656
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  4657
    |prev|
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  4658
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4659
    prev := visibilityChannel.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4660
    visibilityChannel := aValueHolder.
3366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  4661
    self setupChannel:aValueHolder for:#visibilityStateChanged withOld:prev
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  4662
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4663
    "
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4664
      |v h|
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4665
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4666
      v := View new.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4667
      v visibilityChannel:(h := ValueHolder with:true).
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4668
      v open.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4669
      Delay waitForSeconds:2.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4670
      h value:false.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4671
      Delay waitForSeconds:2.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4672
      h value:true.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4673
      Delay waitForSeconds:2.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4674
    "
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4675
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4676
    "Created: / 14.1.1998 / 17:11:15 / stefan"
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4677
    "Modified: / 14.1.1998 / 17:33:40 / stefan"
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4678
! !
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  4679
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4680
!SimpleView methodsFor:'adding & removing components'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4681
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4682
add:aComponent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4683
    "add a component (either a view or gadget) to the collection of
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4684
     subComponents."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4685
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4686
    self addComponent:aComponent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4687
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4688
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4689
add:aComponent at:anOrigin
1335
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4690
    "for ST-80 compatibility.
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4691
     add a component at some origin"
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4692
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4693
    |l comp|
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4694
1614
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  4695
    comp := aComponent.
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  4696
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  4697
"/    (comp isWrapper not
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  4698
"/    or:[comp isLayoutWrapper not]) ifTrue:[
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  4699
"/        comp := LayoutWrapper on:comp
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  4700
"/    ].
1335
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4701
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4702
    l := anOrigin asLayout.
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4703
    comp layout:l.
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4704
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4705
    self addComponent:comp
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4706
1614
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  4707
    "Modified: 18.4.1997 / 20:00:20 / cg"
1335
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4708
!
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4709
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4710
add:aComponentOrCollection in:aRectangleOrLayoutFrame
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4711
    "for ST-80 compatibility.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4712
     add a component in some frame; the argument may be either a rectangle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4713
     with relative coordinates, or an instance of LayoutFrame, specifying
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4714
     both relative coordinates and the insets."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4715
1617
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  4716
    |l wrapper|
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  4717
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  4718
    aComponentOrCollection isCollection ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4719
	wrapper := View new.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4720
	aComponentOrCollection do:[:aComponent |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4721
	    wrapper add:aComponent
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4722
	]
1617
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  4723
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4724
	wrapper := aComponentOrCollection
1617
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  4725
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4726
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  4727
    l := aRectangleOrLayoutFrame asLayout.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4728
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4729
"/  will soon be replaced by:
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4730
"/    aComponent layout:l.
1617
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  4731
    wrapper geometryLayout:l.
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  4732
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  4733
    self addComponent:wrapper.
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  4734
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  4735
    ^ wrapper
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  4736
1756
d5b82895461e removed debugHalt
Claus Gittinger <cg@exept.de>
parents: 1754
diff changeset
  4737
    "Modified: 17.6.1997 / 18:03:34 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4738
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4739
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4740
addComponent:aComponent
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4741
    "components (i.e. gadgets or lightweight views) are being prepared.
7663
4c01465c9f75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7638
diff changeset
  4742
     Don't use this right now for non-views"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4743
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4744
    aComponent isView ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4745
	self addSubView:aComponent
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4746
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4747
	components isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4748
	    components := OrderedCollection new
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4749
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4750
	components add:aComponent.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4751
	aComponent container:self.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4752
	shown ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4753
	    aComponent displayOn:self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4754
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4755
    ]
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4756
683
ecc5d13f22b2 redraw new components if already visible
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
  4757
    "Modified: 13.5.1996 / 21:19:51 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4758
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4759
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4760
addSubView:newView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4761
    "add a view to the collection of subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4762
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4763
    subViews isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4764
	subViews := OrderedCollection with:newView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4765
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4766
	(subViews includesIdentical:newView) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4767
	    self error:'trying to add a view twice' mayProceed:true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4768
	    ^ self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4769
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4770
	subViews add:newView.
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4771
    ].
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4772
    self setContainerIn:newView.
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4773
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4774
    "Modified: 9.5.1996 / 00:47:16 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4775
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4776
5896
f7566dab943c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 5888
diff changeset
  4777
addSubView:newView after:aViewOrNil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4778
    "add a view to the collection of subviews after another view.
5896
f7566dab943c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 5888
diff changeset
  4779
     If the argument aViewOrNil is nil, the newView is added at the end.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4780
     This makes sense, in Panels and other layout views, to enter a new
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4781
     element at some defined place."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4782
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4783
    subViews isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4784
	subViews := OrderedCollection with:newView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4785
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4786
	(subViews includesIdentical:newView) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4787
	    self error:'trying to add a view twice' mayProceed:true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4788
	    ^ self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4789
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4790
	aViewOrNil isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4791
	    subViews add:newView
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4792
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4793
	    subViews add:newView after:aViewOrNil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4794
	]
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4795
    ].
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4796
    self setContainerIn:newView.
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4797
5896
f7566dab943c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 5888
diff changeset
  4798
    "Modified: / 09-05-1996 / 00:47:20 / cg"
f7566dab943c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 5888
diff changeset
  4799
    "Modified (comment): / 22-03-2012 / 10:39:04 / cg"
f7566dab943c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 5888
diff changeset
  4800
!
f7566dab943c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 5888
diff changeset
  4801
f7566dab943c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 5888
diff changeset
  4802
addSubView:newView before:aViewOrNil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4803
    "add a view to the collection of subviews before another view.
5896
f7566dab943c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 5888
diff changeset
  4804
     If the argument aViewOrNil is nil, the newView is added at the end.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4805
     This makes sense, in Panels and other layout views, to enter a new
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4806
     element at some defined place."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4807
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4808
    subViews isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4809
	subViews := OrderedCollection with:newView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4810
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4811
	(subViews includesIdentical:newView) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4812
	    self error:'trying to add a view twice' mayProceed:true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4813
	    ^ self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4814
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4815
	aViewOrNil isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4816
	    subViews addFirst:newView
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4817
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4818
	    subViews add:newView before:aViewOrNil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4819
	]
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4820
    ].
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4821
    self setContainerIn:newView.
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4822
5896
f7566dab943c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 5888
diff changeset
  4823
    "Modified: / 09-05-1996 / 00:47:23 / cg"
f7566dab943c comment/format in:
Claus Gittinger <cg@exept.de>
parents: 5888
diff changeset
  4824
    "Modified (comment): / 22-03-2012 / 10:39:18 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4825
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4826
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4827
addSubView:aView in:bounds borderWidth:bw
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4828
    "for ST-80 V2.x compatibility"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4829
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4830
    aView borderWidth:bw.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4831
    self add:aView in:bounds.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4832
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4833
1439
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  4834
addSubViewFirst:newView
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  4835
    "add a view to the front of the collection of subviews"
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  4836
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  4837
    subViews isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4838
	subViews := OrderedCollection with:newView
1439
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  4839
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4840
	(subViews includesIdentical:newView) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4841
	    self error:'trying to add a view twice' mayProceed:true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4842
	    ^ self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4843
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4844
	subViews addFirst:newView.
1439
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  4845
    ].
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  4846
    self setContainerIn:newView.
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  4847
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  4848
    "Modified: 9.5.1996 / 00:47:16 / cg"
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  4849
    "Created: 6.3.1997 / 18:43:38 / cg"
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  4850
!
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  4851
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4852
component:aComponent
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4853
    "components (i.e. gadgets or lightweight views) are being prepared.
7663
4c01465c9f75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7638
diff changeset
  4854
     Don't use this right now for non-views"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4855
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4856
    aComponent origin:0.0@0.0 corner:1.0@1.0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4857
    aComponent isView ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4858
	self addSubView:aComponent
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4859
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4860
	components := OrderedCollection with:aComponent.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4861
	aComponent container:self.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4862
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4863
	shown ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4864
	    aComponent displayOn:self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4865
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4866
    ]
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4867
683
ecc5d13f22b2 redraw new components if already visible
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
  4868
    "Modified: 13.5.1996 / 21:20:29 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4869
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4870
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4871
destroySubViews
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4872
    "remove all subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4873
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4874
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4875
	subViews copy do:[:aSubView |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4876
	    aSubView destroy.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4877
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4878
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4879
	"/ paranoia ;-)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4880
	subViews size ~~ 0 ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4881
	    (self class name , ' >>View [warning]: some subView(s) did not destroy: ' , subViews printString) infoPrintCR.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4882
	    subViews := nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4883
	].
5245
af593d6e31a9 handle non-view components in destroySubViews
Claus Gittinger <cg@exept.de>
parents: 5229
diff changeset
  4884
    ].
af593d6e31a9 handle non-view components in destroySubViews
Claus Gittinger <cg@exept.de>
parents: 5229
diff changeset
  4885
af593d6e31a9 handle non-view components in destroySubViews
Claus Gittinger <cg@exept.de>
parents: 5229
diff changeset
  4886
    components notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4887
	components copy do:[:aComponent |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4888
	    aComponent destroy.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4889
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4890
	components := nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4891
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4892
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4893
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4894
removeComponent:aComponent
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4895
    "components (i.e. gadgets or lightweight views) are being prepared.
7663
4c01465c9f75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7638
diff changeset
  4896
     Don't use this right now for non-views"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4897
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4898
    aComponent isView ifTrue:[
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  4899
	self removeSubView:aComponent
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4900
    ] ifFalse:[
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  4901
	components isNil ifTrue:[^self].
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  4902
	components remove:aComponent ifAbsent:[].
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  4903
	aComponent container:nil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4904
    ]
4579
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  4905
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  4906
    "Modified: / 11-09-2006 / 17:14:30 / User"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4907
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4908
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4909
removeSubView:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4910
    "remove a view from the collection of subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4911
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4912
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4913
	subViews remove:aView ifAbsent:[nil].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4914
	aView setContainer:nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4915
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4916
	(subViews size == 0) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4917
	    subViews := nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4918
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4919
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4920
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4921
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4922
setContainerIn:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4923
    "common code for addSubView* methods"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4924
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4925
    aView container:self.
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  4926
    (aView graphicsDevice ~~ device) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4927
	'SimpleView [warning]: subview (' errorPrint. aView class name errorPrint.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4928
	') has different device than me (' errorPrint.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4929
	self class name errorPrint. ').' errorPrintCR.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4930
	aView device:device
3616
0ddaf2ce9b06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3614
diff changeset
  4931
    ].
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4932
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4933
    "Created: 9.5.1996 / 00:46:59 / cg"
1172
a69398754511 newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
  4934
    "Modified: 10.1.1997 / 18:06:49 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4935
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4936
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4937
!SimpleView methodsFor:'change & update'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4938
1437
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4939
changedPreferredBounds:someArgument
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4940
    "tell any dependents, that I have changed my preferred bounds;
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4941
     Interface is provided mostly provided for ST80 compatibility;
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4942
     here, translate into ST/X's mechanism for telling others about this."
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4943
7397
11bd586c3a73 #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7378
diff changeset
  4944
    dependents notNil ifTrue:[ self changed:#preferredExtent ]
1437
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4945
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4946
    "Modified: 6.3.1997 / 16:12:02 / cg"
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4947
!
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4948
4038
538491244f6f preps for handling language changes
Claus Gittinger <cg@exept.de>
parents: 3968
diff changeset
  4949
languageChanged
538491244f6f preps for handling language changes
Claus Gittinger <cg@exept.de>
parents: 3968
diff changeset
  4950
!
538491244f6f preps for handling language changes
Claus Gittinger <cg@exept.de>
parents: 3968
diff changeset
  4951
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4952
update:aspect with:aParameter from:changedObject
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4953
    "an update request"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4954
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4955
    aspect == #sizeOfView ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4956
	"one of the views we depend on changed its size"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4957
	"/ cg: #containerChangedSize has already been sent by the caller
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4958
	^ self "containerChangedSize".
3730
00bc72f859c5 code beautified
Claus Gittinger <cg@exept.de>
parents: 3715
diff changeset
  4959
    ].
00bc72f859c5 code beautified
Claus Gittinger <cg@exept.de>
parents: 3715
diff changeset
  4960
    super update:aspect with:aParameter from:changedObject
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4961
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4962
    "Modified: 19.7.1996 / 17:30:48 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4963
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4964
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4965
!SimpleView methodsFor:'cursor animation'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4966
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4967
showBusyWhile:aBlock
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4968
    "evaluate some time consuming block, while doing this,
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4969
     show a spinning wheel cursor. If those bitmaps are not found,
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4970
     fallback to the standard busy cursor.
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4971
     Experimental."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4972
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4973
    |ok bitmaps cursors maskForm process oldCursor|
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4974
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4975
    oldCursor := cursor.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4976
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4977
    ok := true.
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  4978
    bitmaps := #('wheel1' 'wheel2' 'wheel3' 'wheel4')
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4979
	       collect:[:name |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4980
		   |f|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4981
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4982
		   f := Smalltalk imageFromFileNamed:(name , '.xbm') forClass:self class.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4983
		   f isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4984
			('SimpleView [warning]: no bitmap file: ' , name , '.xbm') errorPrintCR.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4985
			ok := false
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4986
		   ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4987
		   f
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4988
	       ].
1141
787b2fb75816 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  4989
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  4990
    ok ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4991
	maskForm := Smalltalk imageFromFileNamed:'wheelm.xbm' forClass:self class.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4992
	maskForm isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4993
	    ('SimpleView [warning]: no bitmap file: wheelm.xbm') errorPrintCR.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4994
	    ok := false
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4995
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4996
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4997
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4998
    ok ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  4999
	self cursor:Cursor wait.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5000
	aBlock ensure:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5001
	    self cursor:oldCursor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5002
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5003
    ] ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5004
	cursors := bitmaps collect:[:form | (Cursor sourceForm:form
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5005
						      maskForm:maskForm
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5006
							  hotX:8
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5007
							  hotY:8) onDevice:device].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5008
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5009
	process := [
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5010
		    Delay waitForSeconds:0.25.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5011
		    [
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5012
			cursors do:[:curs |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5013
			    self cursor:curs.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5014
			    Delay waitForSeconds:0.05.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5015
			]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5016
		    ] loop.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5017
	   ] forkAt:(Processor activeProcess priority + 1).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5018
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5019
	aBlock ensure:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5020
	    process terminate.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5021
	    self cursor:oldCursor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5022
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5023
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5024
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5025
    "
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  5026
     View new realize showBusyWhile:[ Delay waitForSeconds:5 ]
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  5027
     Transcript showBusyWhile:[ Delay waitForSeconds:5 ]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5028
    "
1141
787b2fb75816 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  5029
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  5030
    "Modified: / 31.10.1997 / 19:59:49 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5031
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5032
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5033
!SimpleView methodsFor:'dependents access'!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5034
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5035
addDependent:anObject
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5036
    "make the argument, anObject be a dependent of the receiver"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5037
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5038
    |wasBlocked|
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5039
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5040
    wasBlocked := OperatingSystem blockInterrupts.
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5041
    [
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5042
	|deps|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5043
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5044
	deps := dependents.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5045
	"/
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5046
	"/ store the very first dependent directly in
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5047
	"/ the dependents instVar
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5048
	"/
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5049
	(deps isNil and:[anObject isCollection not]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5050
	    dependents := anObject
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5051
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5052
	    "/
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5053
	    "/ store more dependents in the dependents collection
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5054
	    "/
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5055
	    deps isCollection ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5056
		deps add:anObject
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5057
	    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5058
		deps == anObject ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5059
		    deps isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5060
			dependents := (IdentitySet with:anObject)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5061
		    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5062
			dependents := (IdentitySet with:deps with:anObject)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5063
		    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5064
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5065
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5066
	]
3604
e32b5044a59e #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3601
diff changeset
  5067
    ] ensure:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5068
	wasBlocked ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5069
	    OperatingSystem unblockInterrupts
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5070
	]
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5071
    ]
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5072
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5073
    "Modified: 8.1.1997 / 23:40:30 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5074
    "Created: 11.6.1997 / 13:10:40 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5075
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5076
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5077
dependents
7397
11bd586c3a73 #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7378
diff changeset
  5078
    "return a Collection of dependents.
11bd586c3a73 #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7378
diff changeset
  5079
     Views keep them in an instance variable to avoid overhead."
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5080
1938
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  5081
    dependents isNil ifTrue:[^ #()].
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5082
    dependents isCollection ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5083
	^ dependents
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5084
    ].
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5085
    ^ IdentitySet with:dependents
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5086
1938
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  5087
    "Created: / 11.6.1997 / 13:10:44 / cg"
2015
f53883507ed9 comment
Claus Gittinger <cg@exept.de>
parents: 2009
diff changeset
  5088
    "Modified: / 26.1.1998 / 11:18:36 / cg"
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5089
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5090
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5091
dependents:aCollection
7397
11bd586c3a73 #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7378
diff changeset
  5092
    "set the collection of dependents.
11bd586c3a73 #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7378
diff changeset
  5093
     Views keep them in an instance variable to avoid overhead."
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5094
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5095
    |dep|
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5096
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5097
    aCollection size == 1 ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5098
	dep := aCollection first.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5099
	dep isCollection ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5100
	    dependents := aCollection first.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5101
	    ^ self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5102
	]
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5103
    ].
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5104
    dependents := aCollection
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5105
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5106
    "Modified: 19.4.1996 / 12:23:05 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5107
    "Created: 11.6.1997 / 13:10:47 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5108
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5109
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5110
dependentsDo:aBlock
7397
11bd586c3a73 #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7378
diff changeset
  5111
    "evaluate aBlock for all of my dependents.
11bd586c3a73 #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7378
diff changeset
  5112
     Views keep them in an instance variable to avoid overhead."
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5113
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5114
    |deps|
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5115
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5116
    deps := dependents.
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5117
    deps notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5118
	deps isCollection ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5119
	    deps do:aBlock
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5120
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5121
	    aBlock value:deps
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5122
	]
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5123
    ]
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5124
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5125
    "Created: 11.6.1997 / 13:10:51 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5126
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5127
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5128
removeDependent:anObject
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5129
    "make the argument, anObject be independent of the receiver"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5130
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5131
    |wasBlocked|
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5132
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5133
    "/ must do this save from interrupts, since the dependents collection
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5134
    "/ is possibly accessed from multiple threads.
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5135
    "/ Used to use #valueUninterruptably here; inlined that code for slightly
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5136
    "/ faster execution.
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5137
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5138
    wasBlocked := OperatingSystem blockInterrupts.
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5139
    [
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5140
	|deps sz dep|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5141
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5142
	deps := dependents.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5143
	deps notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5144
	    deps isCollection ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5145
		deps remove:anObject ifAbsent:[].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5146
		(sz := deps size) == 0 ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5147
		    dependents := nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5148
		] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5149
		    sz == 1 ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5150
			(dep := deps first) isCollection ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5151
			    dependents := dep
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5152
			]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5153
		    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5154
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5155
	    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5156
		deps == anObject ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5157
		    dependents := nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5158
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5159
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5160
	]
3604
e32b5044a59e #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3601
diff changeset
  5161
    ] ensure:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5162
	wasBlocked ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5163
	    OperatingSystem unblockInterrupts
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5164
	]
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5165
    ]
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5166
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5167
    "Modified: 8.1.1997 / 23:41:39 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5168
    "Created: 11.6.1997 / 13:11:58 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5169
! !
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5170
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5171
!SimpleView methodsFor:'dependents access (non weak)'!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5172
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5173
addNonWeakDependent:anObject
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5174
    "make the argument, anObject be a dependent of the receiver.
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5175
     Since all dependencies are nonWeak in Model, this is simply
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5176
     forwarded to addDependent:"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5177
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5178
    ^ self addDependent:anObject
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5179
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5180
    "Created: 11.6.1997 / 13:15:40 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5181
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5182
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5183
interests
2037
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  5184
    "return a Collection of interests - empty if there is none.
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5185
     Here, we use the normal dependents collection for interests."
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5186
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5187
    ^ self dependents
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5188
2037
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  5189
    "Modified: / 14.10.1996 / 22:19:58 / stefan"
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  5190
    "Created: / 11.6.1997 / 13:15:44 / cg"
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  5191
    "Modified: / 30.1.1998 / 14:07:48 / cg"
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5192
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5193
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5194
nonWeakDependents
2037
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  5195
    "return a Collection of dependents - empty if there is none.
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5196
     Since all dependencies are nonWeak in Model, this is a dummy."
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5197
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5198
    ^ self dependents
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5199
2037
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  5200
    "Created: / 11.6.1997 / 13:15:48 / cg"
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  5201
    "Modified: / 30.1.1998 / 14:06:55 / cg"
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5202
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5203
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5204
removeNonWeakDependent:anObject
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5205
    "make the argument, anObject be independent of the receiver.
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5206
     Since all dependencies are nonWeak in Model, this is simply
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5207
     forwarded to removeDependent:"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5208
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5209
    ^ self removeDependent:anObject
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5210
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5211
    "Created: 11.6.1997 / 13:15:52 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5212
! !
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  5213
1308
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  5214
!SimpleView methodsFor:'drag & drop'!
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  5215
4649
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5216
canDrop:aDropContext
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5217
    "return true, if we can drop using a dropContexts information (the new drop interface).
4647
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  5218
     This method should be redefined in views which can take objects"
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  5219
1308
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  5220
    ^ false
1581
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  5221
4649
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5222
    "Modified: / 13-10-2006 / 16:05:23 / cg"
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5223
!
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5224
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5225
canDrop:aDropContext at:positionInView
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5226
    "return true, if we can drop using a dropContexts information (the new drop interface).
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5227
     This method should be redefined in views which can take objects"
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5228
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5229
    ^ self canDrop:aDropContext
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5230
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5231
    "Modified: / 13-10-2006 / 16:05:42 / cg"
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5232
!
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5233
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5234
canDropObjects:aCollectionOfDropObjects
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5235
    "return true, if we can drop aCollectionOfDropObjects (the OLD drop interface).
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5236
     This method should be redefined in views which can take objects"
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5237
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5238
    ^ false
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5239
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5240
    "Modified: / 13-10-2006 / 16:06:03 / cg"
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5241
!
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5242
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5243
canDropObjects:aCollectionOfDropObjects at:positionInView
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5244
    "return true, if we can drop aCollectionOfDropObjects (the OLD drop interface).
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5245
     This method should be redefined in views which can take objects"
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5246
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5247
    ^ self canDropObjects:aCollectionOfDropObjects
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5248
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5249
    "Modified: / 13-10-2006 / 16:06:15 / cg"
1581
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  5250
!
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  5251
3947
64b185ae7d41 support autoScroll during drag operation
ca
parents: 3945
diff changeset
  5252
dragAutoScroll:aContext
64b185ae7d41 support autoScroll during drag operation
ca
parents: 3945
diff changeset
  5253
    "called by the DragAndDropManager to scroll during a drag/drop operation
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  5254
     if necassery (decided by the widget itself);
4460
c8537e5fe249 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4455
diff changeset
  5255
     If a scroll is done, return true otherwise false (used to restore the background).
c8537e5fe249 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4455
diff changeset
  5256
     By default false is returned."
c8537e5fe249 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4455
diff changeset
  5257
3947
64b185ae7d41 support autoScroll during drag operation
ca
parents: 3945
diff changeset
  5258
    ^ false
64b185ae7d41 support autoScroll during drag operation
ca
parents: 3945
diff changeset
  5259
!
64b185ae7d41 support autoScroll during drag operation
ca
parents: 3945
diff changeset
  5260
4649
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5261
drop:aDropContext
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5262
    "drop manager wants to drop using info in aDropContext (the new drop interface).
4647
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  5263
     An error here, because this is only sent, if #canDrop: returned true;
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  5264
     if you redefined #canDrop: in a subclass, #drop: must also be redefined."
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  5265
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  5266
    self subclassResponsibility
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  5267
4649
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5268
    "Modified: / 13-10-2006 / 16:07:58 / cg"
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5269
!
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5270
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5271
drop:aDropContext at:aPoint
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5272
    "drop manager wants to drop using info in aDropContext (the new drop interface).
1308
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  5273
     If I have an application, forward the request.
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  5274
     Otherwise, ignore it. This is only sent, if #canDrop: returned true;
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  5275
     if you redefined #canDrop: in a subclass, #drop:at: must also be redefined."
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  5276
4649
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5277
    self drop:aDropContext
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5278
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5279
    "Modified: / 13-10-2006 / 16:07:41 / cg"
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5280
!
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5281
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5282
dropObjects:aCollectionOfDropObjects
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5283
    "someone wants to drop aCollectionOfDropObjects (the OLD drop interface).
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5284
     An error here, because this is only sent, if #canDrop: returned true;
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5285
     if you redefined #canDropObjects: in a subclass, #dropObjects: must also be redefined."
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5286
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5287
    self subclassResponsibility
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5288
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5289
    "Created: / 13-10-2006 / 16:06:48 / cg"
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5290
!
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5291
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5292
dropObjects:aCollectionOfDropObjects at:aPoint
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5293
    "someone wants to drop aCollectionOfDropObjects (the OLD drop interface).
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5294
     An error here, because this is only sent, if #canDrop: returned true;
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5295
     if you redefined #canDropObjects: in a subclass, #dropObjects: must also be redefined."
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5296
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5297
    self dropObjects:aCollectionOfDropObjects
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5298
939a1d4beed7 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4647
diff changeset
  5299
    "Created: / 13-10-2006 / 16:07:03 / cg"
3591
3f7190c5750c + dropTarget
Claus Gittinger <cg@exept.de>
parents: 3590
diff changeset
  5300
!
3f7190c5750c + dropTarget
Claus Gittinger <cg@exept.de>
parents: 3590
diff changeset
  5301
3f7190c5750c + dropTarget
Claus Gittinger <cg@exept.de>
parents: 3590
diff changeset
  5302
dropTarget
4460
c8537e5fe249 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4455
diff changeset
  5303
    "returns the dropTarget or nil"
c8537e5fe249 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4455
diff changeset
  5304
4471
c14257db22fa dropTarget
Claus Gittinger <cg@exept.de>
parents: 4470
diff changeset
  5305
    ^ dropTarget
c14257db22fa dropTarget
Claus Gittinger <cg@exept.de>
parents: 4470
diff changeset
  5306
!
c14257db22fa dropTarget
Claus Gittinger <cg@exept.de>
parents: 4470
diff changeset
  5307
c14257db22fa dropTarget
Claus Gittinger <cg@exept.de>
parents: 4470
diff changeset
  5308
dropTarget:aDropTragetOrNil
c14257db22fa dropTarget
Claus Gittinger <cg@exept.de>
parents: 4470
diff changeset
  5309
    "set the dropTarget"
c14257db22fa dropTarget
Claus Gittinger <cg@exept.de>
parents: 4470
diff changeset
  5310
c14257db22fa dropTarget
Claus Gittinger <cg@exept.de>
parents: 4470
diff changeset
  5311
    dropTarget := aDropTragetOrNil.
1308
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  5312
! !
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  5313
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5314
!SimpleView methodsFor:'edge drawing'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5315
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5316
drawBottomEdge
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5317
    "draw bottom 3D edge into window frame"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5318
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5319
    self drawBottomEdgeLevel:level
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5320
		      shadow:shadowColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5321
		      light:lightColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5322
		      halfShadow:nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5323
		      halfLight:nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5324
		      style:nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5325
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5326
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5327
drawBottomEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5328
    |botFg
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  5329
     count "{ Class: SmallInteger }"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5330
     b r|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5331
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5332
    count := level.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5333
    count == 0 ifTrue:[^ self].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5334
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5335
    (count < 0) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5336
	botFg := lightColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5337
	count := count negated
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5338
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5339
	((edgeStyle == #soft) and:[level > 1]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5340
	    botFg := halfShadowColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5341
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5342
	    botFg := shadowColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5343
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5344
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5345
    super paint:botFg.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5346
    super lineWidth:0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5347
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5348
    r := width - 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5349
    0 to:(count - 1) do:[:i |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5350
	b := height - 1 - i.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5351
	super displayDeviceLineFromX:i y:b toX:(r - i) y:b
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5352
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5353
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5354
    ((edgeStyle == #soft) and:[level > 1]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5355
	b := height - 1.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5356
	super paint:shadowColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5357
	super displayDeviceLineFromX:1 y:b toX:r y:b.
1444
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5358
    ].
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5359
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5360
    self edgeDrawn:#bottom.
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5361
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5362
    "Modified: 7.3.1997 / 17:59:39 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5363
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5364
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5365
drawEdges
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5366
    "draw all of my 3D edges"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5367
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5368
    self drawEdgesForX:0 y:0 width:width height:height level:level
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5369
		shadow:shadowColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5370
		light:lightColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5371
		halfShadow:nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5372
		halfLight:nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5373
		style:nil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5374
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5375
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5376
drawEdgesForX:x y:y width:w height:h level:l
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5377
    "draw 3D edges into a rectangle"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5378
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  5379
    self
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5380
	drawEdgesForX:x y:y width:w height:h level:l
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5381
	shadow:shadowColor light:lightColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5382
	halfShadow:nil halfLight:nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5383
	style:nil
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  5384
!
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5385
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5386
drawLeftEdge
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5387
    "draw left 3D edge into window frame"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5388
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5389
    self drawLeftEdgeLevel:level
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5390
		    shadow:shadowColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5391
		     light:lightColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5392
		     halfShadow:nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5393
		     halfLight:nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5394
		     style:nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5395
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5396
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  5397
drawLeftEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5398
    |leftFg leftHalfFg paint b
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5399
     count "{ Class: SmallInteger }" |
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5400
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5401
    count := level.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5402
    count == 0 ifTrue:[^ self].
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  5403
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5404
    (count < 0) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5405
	leftFg := shadowColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5406
	leftHalfFg := halfShadowColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5407
	count := count negated.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5408
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5409
	leftFg := lightColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5410
	leftHalfFg := halfLightColor.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5411
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5412
    leftHalfFg isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5413
	leftHalfFg := leftFg
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5414
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5415
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5416
    ((edgeStyle == #soft) and:[level > 0]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5417
	paint := leftHalfFg
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5418
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5419
	paint := leftFg
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5420
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5421
    super paint:paint.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5422
    super lineWidth:0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5423
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5424
    b := height - 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5425
    0 to:(count - 1) do:[:i |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5426
	super displayDeviceLineFromX:i y:i toX:i y:(b - i)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5427
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5428
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5429
    ((edgeStyle == #soft) and:[level > 2]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5430
	super paint:(device blackColor).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5431
	super displayDeviceLineFromX:0 y:0 toX:0 y:b.
1444
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5432
    ].
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5433
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5434
    self edgeDrawn:#left.
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5435
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5436
    "Modified: 7.3.1997 / 17:59:53 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5437
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5438
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5439
drawRightEdge
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5440
    "draw right 3D edge into window frame"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5441
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5442
    self drawRightEdgeLevel:level
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5443
		     shadow:shadowColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5444
		      light:lightColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5445
		      halfShadow:nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5446
		      halfLight:nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5447
		      style:nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5448
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5449
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  5450
drawRightEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5451
    |rightFg
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  5452
     count "{ Class: SmallInteger }"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5453
     r b|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5454
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5455
    count := level.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5456
    count == 0 ifTrue:[^ self].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5457
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5458
    (count < 0) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5459
	rightFg := lightColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5460
	count := count negated
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5461
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5462
	((edgeStyle == #soft) and:[level > 1]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5463
	    rightFg := halfShadowColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5464
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5465
	    rightFg := shadowColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5466
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5467
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5468
    super paint:rightFg.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5469
    super lineWidth:0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5470
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5471
    b := height - 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5472
    0 to:(count - 1) do:[:i |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5473
	r := width - 1 - i.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5474
	super displayDeviceLineFromX:r y:i toX:r y:(b - i)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5475
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5476
    ((edgeStyle == #soft) and:[level > 1]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5477
	r := width - 1.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5478
	super paint:shadowColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5479
	super displayDeviceLineFromX:r y:1 toX:r y:b.
1444
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5480
    ].
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5481
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5482
    self edgeDrawn:#right.
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5483
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5484
    "Modified: 7.3.1997 / 18:00:02 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5485
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5486
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5487
drawTopEdge
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5488
    "draw top 3D edge into window frame"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5489
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5490
    self drawTopEdgeLevel:level
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5491
		   shadow:shadowColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5492
		    light:lightColor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5493
		    halfShadow:nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5494
		    halfLight:nil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5495
		    style:nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5496
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5497
7011
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5498
drawTopEdgeLevel:level atY:y shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5499
    |topFg topHalfFg paint r
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5500
     count "{ Class: SmallInteger }" |
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5501
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5502
    count := level.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5503
    count == 0 ifTrue:[^ self].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5504
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5505
    (count < 0) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5506
	topFg := shadowColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5507
	topHalfFg := halfShadowColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5508
	count := count negated
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5509
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5510
	topFg := lightColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5511
	topHalfFg := halfLightColor.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5512
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5513
    topHalfFg isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5514
	topHalfFg := topFg
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5515
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5516
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5517
    ((edgeStyle == #soft) and:[level > 0]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5518
	paint := topHalfFg
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5519
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5520
	paint := topFg
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5521
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5522
    super paint:paint.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5523
    super lineWidth:0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5524
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5525
    r := width - 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5526
    0 to:(count - 1) do:[:i |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5527
	super displayDeviceLineFromX:i y:y+i toX:(r - i) y:y+i
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5528
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5529
    ((edgeStyle == #soft) and:[level > 2]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5530
	super paint:(device blackColor).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5531
	super displayDeviceLineFromX:0 y:y+0 toX:r y:y+0.
7011
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5532
    ].
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5533
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5534
    self edgeDrawn:#top.
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5535
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5536
    "Modified: 7.3.1997 / 18:00:11 / cg"
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5537
!
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5538
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5539
drawTopEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5540
    self drawTopEdgeLevel:level atY:0 shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5541
!
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5542
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5543
drawTopEdgeLevel:level y:y shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5544
    |topFg topHalfFg paint r
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5545
     count "{ Class: SmallInteger }" |
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5546
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5547
    count := level.
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5548
    count == 0 ifTrue:[^ self].
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5549
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5550
    (count < 0) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5551
	topFg := shadowColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5552
	topHalfFg := halfShadowColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5553
	count := count negated
7011
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5554
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5555
	topFg := lightColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5556
	topHalfFg := halfLightColor.
7011
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5557
    ].
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5558
    topHalfFg isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5559
	topHalfFg := topFg
7011
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5560
    ].
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5561
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5562
    ((edgeStyle == #soft) and:[level > 0]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5563
	paint := topHalfFg
7011
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5564
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5565
	paint := topFg
7011
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5566
    ].
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5567
    super paint:paint.
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5568
    super lineWidth:0.
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5569
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5570
    r := width - 1.
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5571
    0 to:(count - 1) do:[:i |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5572
	super displayDeviceLineFromX:i y:i toX:(r - i) y:i
7011
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5573
    ].
64461ec3691e #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 6988
diff changeset
  5574
    ((edgeStyle == #soft) and:[level > 2]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5575
	super paint:(device blackColor).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5576
	super displayDeviceLineFromX:0 y:0 toX:r y:0.
1444
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5577
    ].
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5578
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5579
    self edgeDrawn:#top.
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5580
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  5581
    "Modified: 7.3.1997 / 18:00:11 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5582
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5583
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5584
redrawEdges
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5585
    "redraw my edges (if any)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5586
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5587
    (level ~~ 0) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5588
	shown ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5589
	    gc clippingBounds:nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5590
	    self drawEdges.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5591
	    gc deviceClippingBounds:innerClipRect
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5592
	]
739
3d809aa492ec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 738
diff changeset
  5593
    ]
3d809aa492ec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 738
diff changeset
  5594
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  5595
    "Modified: / 25.5.1999 / 14:50:25 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5596
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5597
6468
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5598
!SimpleView methodsFor:'enumerating view hierarchy'!
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5599
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5600
allSubViewsDetect:aBlock ifNone:exceptionValue
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5601
    "find a subview for which aBlock returns true (recursively).
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5602
     If there is none, return the value from exceptionValue"
4720
eaa1e97f9028 added #allSubViewsDetect:
Claus Gittinger <cg@exept.de>
parents: 4675
diff changeset
  5603
eaa1e97f9028 added #allSubViewsDetect:
Claus Gittinger <cg@exept.de>
parents: 4675
diff changeset
  5604
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5605
	subViews do:[:aSubview |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5606
	    |v|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5607
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5608
	    (aBlock value:aSubview) ifTrue:[ ^ aSubview ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5609
	    v := aSubview allSubViewsDetect:aBlock ifNone:nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5610
	    v notNil ifTrue:[^ v].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5611
	]
6468
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5612
    ].
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5613
    ^ exceptionValue value.
4720
eaa1e97f9028 added #allSubViewsDetect:
Claus Gittinger <cg@exept.de>
parents: 4675
diff changeset
  5614
eaa1e97f9028 added #allSubViewsDetect:
Claus Gittinger <cg@exept.de>
parents: 4675
diff changeset
  5615
    "Modified: 12.2.1997 / 12:23:38 / cg"
eaa1e97f9028 added #allSubViewsDetect:
Claus Gittinger <cg@exept.de>
parents: 4675
diff changeset
  5616
!
eaa1e97f9028 added #allSubViewsDetect:
Claus Gittinger <cg@exept.de>
parents: 4675
diff changeset
  5617
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5618
allSubViewsDo:aBlock
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5619
    "evaluate aBlock for all subviews (recursively)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5620
1335
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  5621
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5622
	subViews do:[:aSubview |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5623
	    aSubview withAllSubViewsDo:aBlock
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5624
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5625
    ]
1335
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  5626
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  5627
    "Modified: 12.2.1997 / 12:23:38 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5628
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5629
6468
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5630
allSuperViewsDetect:aBlock ifNone:exceptionValue
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5631
    "find a container for which aBlock returns true (recursively).
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5632
     If there is none, return the value from exceptionValue"
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5633
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5634
    |v|
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5635
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5636
    v := self container.
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5637
    [v notNil] whileTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5638
	(aBlock value:v) ifTrue:[^ v].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5639
	v := v container.
6468
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5640
    ].
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5641
    ^ exceptionValue value
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5642
!
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5643
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5644
allSuperViewsDo:aBlock
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5645
    "evaluate aBlock for all superviews (recursively)"
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5646
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5647
    |v|
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5648
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5649
    v := self container.
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5650
    [v notNil] whileTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5651
	aBlock value:v.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5652
	v := v container.
6468
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5653
    ].
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5654
!
2fd167f08b5d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6386
diff changeset
  5655
5548
4bc2de4d03f9 added: #allVisibleSubViewsDetect:ifNone:
Claus Gittinger <cg@exept.de>
parents: 5547
diff changeset
  5656
allVisibleSubViewsDetect:aBlock ifNone:exceptionBlock
4bc2de4d03f9 added: #allVisibleSubViewsDetect:ifNone:
Claus Gittinger <cg@exept.de>
parents: 5547
diff changeset
  5657
    "find a visible subview for which aBlock returns true (recursively)"
4bc2de4d03f9 added: #allVisibleSubViewsDetect:ifNone:
Claus Gittinger <cg@exept.de>
parents: 5547
diff changeset
  5658
4bc2de4d03f9 added: #allVisibleSubViewsDetect:ifNone:
Claus Gittinger <cg@exept.de>
parents: 5547
diff changeset
  5659
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5660
	subViews do:[:aSubview |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5661
	    |v|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5662
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5663
	    aSubview shown ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5664
		(aBlock value:aSubview) ifTrue:[ ^ aSubview ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5665
		v := aSubview allVisibleSubViewsDetect:aBlock ifNone:nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5666
		v notNil ifTrue:[^ v].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5667
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5668
	]
5548
4bc2de4d03f9 added: #allVisibleSubViewsDetect:ifNone:
Claus Gittinger <cg@exept.de>
parents: 5547
diff changeset
  5669
    ].
4bc2de4d03f9 added: #allVisibleSubViewsDetect:ifNone:
Claus Gittinger <cg@exept.de>
parents: 5547
diff changeset
  5670
    ^ exceptionBlock value.
4bc2de4d03f9 added: #allVisibleSubViewsDetect:ifNone:
Claus Gittinger <cg@exept.de>
parents: 5547
diff changeset
  5671
!
4bc2de4d03f9 added: #allVisibleSubViewsDetect:ifNone:
Claus Gittinger <cg@exept.de>
parents: 5547
diff changeset
  5672
5254
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5673
changeSequenceOrderFor:aSubViewOrComponent to:anIndex
1984
e34624152bf3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1981
diff changeset
  5674
    "change a subview's position in the subviews collection.
5254
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5675
     Usually, this only affects the order of components in a panelView,
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5676
     unless they overlap. In that case, the later view is placed above the earlier."
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5677
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5678
    aSubViewOrComponent isView ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5679
	^ self changeSequenceOrderForComponent:aSubViewOrComponent to:anIndex
5254
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5680
    ].
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5681
    ^ self changeSequenceOrderForView:aSubViewOrComponent to:anIndex
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5682
!
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5683
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5684
changeSequenceOrderForComponent:aComponent to:anIndex
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5685
    "change a components's position in the components collection.
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5686
     The later components is drawn above the earlier."
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5687
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5688
    |removedComponent|
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5689
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5690
    (components notNil and:[components size >= anIndex]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5691
	removedComponent := components remove:aComponent ifAbsent:nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5692
	removedComponent notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5693
	    components add:removedComponent beforeIndex:anIndex.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5694
	    ^ true
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5695
	]
5254
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5696
    ].
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5697
    ^ false
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5698
!
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5699
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5700
changeSequenceOrderForView:aSubView to:anIndex
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5701
    "change a subview's position in the subviews collection.
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5702
     Usually, this only affects the order of components in a panelView,
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5703
     unless they overlap. In that case, the later view is placed above the earlier."
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5704
ba9d96c13e7a changeSequence: care for disjoint components/subView containers
Claus Gittinger <cg@exept.de>
parents: 5250
diff changeset
  5705
    |removedView|
1363
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  5706
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  5707
    (subViews notNil and:[subViews size >= anIndex]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5708
	removedView := subViews remove:aSubView ifAbsent:nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5709
	removedView notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5710
	    subViews add:removedView beforeIndex:anIndex.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5711
	    ^ true
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5712
	]
1363
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  5713
    ].
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  5714
    ^ false
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  5715
!
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  5716
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5717
withAllSubViewsDo:aBlock
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5718
    "evaluate aBlock for the receiver and all subviews (recursively)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5719
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5720
    aBlock value:self.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5721
    self allSubViewsDo:aBlock
135
claus
parents:
diff changeset
  5722
! !
claus
parents:
diff changeset
  5723
claus
parents:
diff changeset
  5724
!SimpleView methodsFor:'event handling'!
claus
parents:
diff changeset
  5725
4455
934b54c11ed4 drop from windows
Claus Gittinger <cg@exept.de>
parents: 4452
diff changeset
  5726
alienDrop:aCollectionOfDropObjects position:positionOrNil
1581
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  5727
    "a drop from some other non-ST/X application."
1555
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  5728
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  5729
    |view positionInView tDelayed
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  5730
     anyNonExisting whichNonExisting checkForAnyNonExisting
4654
baa4bc036ec4 drag & drop
Claus Gittinger <cg@exept.de>
parents: 4652
diff changeset
  5731
     app target dropContext|
4652
7e85c43bb11e aliendrop
Claus Gittinger <cg@exept.de>
parents: 4651
diff changeset
  5732
7e85c43bb11e aliendrop
Claus Gittinger <cg@exept.de>
parents: 4651
diff changeset
  5733
    "/ mhmh - sometimes, the dropped file is not present.
7e85c43bb11e aliendrop
Claus Gittinger <cg@exept.de>
parents: 4651
diff changeset
  5734
    "/ how comes ? And what should be done to avoid this ?
4463
d61225317fe6 oops - must wait for a while after a drop - sigh (win32)
Claus Gittinger <cg@exept.de>
parents: 4460
diff changeset
  5735
d61225317fe6 oops - must wait for a while after a drop - sigh (win32)
Claus Gittinger <cg@exept.de>
parents: 4460
diff changeset
  5736
    checkForAnyNonExisting :=
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5737
	[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5738
	    anyNonExisting := false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5739
	    aCollectionOfDropObjects do:[:eachDropObject |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5740
		eachDropObject isFileObject ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5741
		    eachDropObject isDirectory ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5742
			eachDropObject theObject asFilename exists ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5743
			    anyNonExisting := true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5744
			    whichNonExisting := eachDropObject theObject asFilename.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5745
			]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5746
		    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5747
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5748
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5749
	    anyNonExisting
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5750
	].
4463
d61225317fe6 oops - must wait for a while after a drop - sigh (win32)
Claus Gittinger <cg@exept.de>
parents: 4460
diff changeset
  5751
4652
7e85c43bb11e aliendrop
Claus Gittinger <cg@exept.de>
parents: 4651
diff changeset
  5752
    self withWaitCursorDo:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5753
	tDelayed := 0.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5754
	checkForAnyNonExisting doWhile:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5755
	    anyNonExisting ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5756
		Delay waitForSeconds:0.3.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5757
		tDelayed := tDelayed + 0.3.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5758
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5759
	    anyNonExisting and:[ tDelayed <= 3].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5760
	].
4463
d61225317fe6 oops - must wait for a while after a drop - sigh (win32)
Claus Gittinger <cg@exept.de>
parents: 4460
diff changeset
  5761
    ].
d61225317fe6 oops - must wait for a while after a drop - sigh (win32)
Claus Gittinger <cg@exept.de>
parents: 4460
diff changeset
  5762
d61225317fe6 oops - must wait for a while after a drop - sigh (win32)
Claus Gittinger <cg@exept.de>
parents: 4460
diff changeset
  5763
    (anyNonExisting and:[checkForAnyNonExisting value]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5764
	Dialog warn:('Dropfile not present: %1' bindWith:whichNonExisting pathName).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5765
	^ self
4463
d61225317fe6 oops - must wait for a while after a drop - sigh (win32)
Claus Gittinger <cg@exept.de>
parents: 4460
diff changeset
  5766
    ].
4455
934b54c11ed4 drop from windows
Claus Gittinger <cg@exept.de>
parents: 4452
diff changeset
  5767
934b54c11ed4 drop from windows
Claus Gittinger <cg@exept.de>
parents: 4452
diff changeset
  5768
    view := self.
934b54c11ed4 drop from windows
Claus Gittinger <cg@exept.de>
parents: 4452
diff changeset
  5769
    positionInView := positionOrNil.
4647
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  5770
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  5771
    app := view application.
5031
733b5e829b2b care for nil application in alienDrop:position:
Claus Gittinger <cg@exept.de>
parents: 5029
diff changeset
  5772
    app notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5773
	(app canDropObjects:aCollectionOfDropObjects in:view at:positionInView) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5774
	    app dropObjects:aCollectionOfDropObjects in:view at:positionInView.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5775
	    ^ self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5776
	].
4647
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  5777
    ].
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  5778
4455
934b54c11ed4 drop from windows
Claus Gittinger <cg@exept.de>
parents: 4452
diff changeset
  5779
    [view notNil] whileTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5780
	"new mechanism to get a dropTarget"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5781
	target := view dropTarget.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5782
	target notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5783
	    dropContext := DropContext new.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5784
	    dropContext dropObjects:aCollectionOfDropObjects.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5785
	    dropContext dropTarget:target.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5786
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5787
	    (target canDrop:dropContext) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5788
		target drop:dropContext.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5789
		^ self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5790
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5791
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5792
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5793
	(view canDropObjects:aCollectionOfDropObjects at:positionInView) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5794
	    view dropObjects:aCollectionOfDropObjects at:positionInView.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5795
	    ^ self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5796
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5797
	view := view superView.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5798
	positionInView := nil.
1555
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  5799
    ]
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  5800
4654
baa4bc036ec4 drag & drop
Claus Gittinger <cg@exept.de>
parents: 4652
diff changeset
  5801
    "Modified: / 17-10-2006 / 18:00:46 / cg"
1555
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  5802
!
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  5803
5722
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5804
buttonMotion:state x:x y:y
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5805
    "button was moved"
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5806
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5807
    self topView == TopView currentWindowBeingMoved ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5808
	self topView doWindowMove.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5809
	^ self.
5722
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5810
    ].
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5811
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5812
    "Created: / 03-03-2011 / 19:11:11 / cg"
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5813
!
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5814
4579
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  5815
buttonMultiPress:button x:x y:y
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  5816
    "button was pressed quickly again - check my components for a hit."
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  5817
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  5818
    components notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5819
	self componentsContainingX:x y:y do:[:comp :cx :cy |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5820
	    comp buttonMultiPress:button x:cx y:cy.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5821
	    ^ self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5822
	]
4579
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  5823
    ].
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  5824
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  5825
    super buttonMultiPress:button x:x y:y
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  5826
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  5827
    "Modified: / 08-05-1996 / 23:43:41 / cg"
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  5828
    "Created: / 13-09-2006 / 16:34:23 / User"
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  5829
!
0aef1a98a4c9 + button multipress for lightweight components
fm
parents: 4530
diff changeset
  5830
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5831
buttonPress:button x:x y:y
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5832
    "button was pressed - check my components for a hit."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5833
6082
4d2c90e6561d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6077
diff changeset
  5834
    |topView|
4d2c90e6561d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6077
diff changeset
  5835
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5836
    components notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5837
	self componentsContainingX:x y:y do:[:comp :cx :cy |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5838
	    comp buttonPress:button x:cx y:cy.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5839
	    ^ self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5840
	]
5722
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5841
    ].
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5842
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5843
    "/ an undecorated (but modeless) topView -> do a window move
6082
4d2c90e6561d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6077
diff changeset
  5844
    (topView := self topView) startWindowMoveOnButtonPress ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5845
	topView startWindowMove.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5846
	^ self.
140
claus
parents: 138
diff changeset
  5847
    ].
claus
parents: 138
diff changeset
  5848
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5849
    super buttonPress:button x:x y:y
271
88d9e485a5da menu handling: if entry is a checkToggleEntry, AND selector wants an argument,
Claus Gittinger <cg@exept.de>
parents: 269
diff changeset
  5850
5727
d0b9ef9c0cc0 added: #startWindowMoveOnButtonPress
Claus Gittinger <cg@exept.de>
parents: 5722
diff changeset
  5851
    "Modified: / 04-03-2011 / 08:57:01 / cg"
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5852
!
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5853
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5854
buttonRelease:button x:x y:y
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5855
    "button was released - check my components for a hit."
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5856
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5857
    components notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5858
	self componentsContainingX:x y:y do:[:comp :cx :cy |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5859
	    comp buttonRelease:button x:cx y:cy.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5860
	    ^ self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5861
	]
5722
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5862
    ].
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5863
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5864
    self topView == TopView currentWindowBeingMoved ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5865
	self topView endWindowMove.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5866
	^ self.
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5867
    ].
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5868
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5869
    super buttonRelease:button x:x y:y
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5870
5722
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5871
    "Created: / 08-05-1996 / 23:43:25 / cg"
7349997cf281 class definition
Claus Gittinger <cg@exept.de>
parents: 5713
diff changeset
  5872
    "Modified: / 03-03-2011 / 19:23:48 / cg"
193
Claus Gittinger <cg@exept.de>
parents: 192
diff changeset
  5873
!
Claus Gittinger <cg@exept.de>
parents: 192
diff changeset
  5874
5133
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5875
changeScaleForMouseWheelZoom:amount
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5876
    "CTRL-wheel action.
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5877
     ignored here - redefined in views which can zoom"
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5878
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5879
    |oldScale newScale factor|
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5880
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5881
    amount > 0 ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5882
	factor := 1.2.
5133
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5883
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5884
	factor := 0.8.
5133
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5885
    ].
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5886
    oldScale := self scale.
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5887
    newScale := (oldScale * factor) max:0.1.
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5888
    self scale:newScale.
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5889
    self invalidate.
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5890
!
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  5891
1544
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  5892
clientMessage:msgType format:msgFormat eventData:msgData
4999
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  5893
    "a client message - very X-specific and only useful for special applications.
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  5894
     Forwarded to my application (if I have one)"
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  5895
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  5896
    |app|
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  5897
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  5898
    (app := self application) notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  5899
	app clientMessage:msgType format:msgFormat eventData:msgData
4999
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  5900
    ].
1544
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  5901
!
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  5902
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  5903
closeRequest
2216
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5904
    "programmatic close request"
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5905
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5906
    self destroy
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5907
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5908
    "Modified: / 3.8.1998 / 19:50:50 / cg"
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5909
!
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5910
140
claus
parents: 138
diff changeset
  5911
configureX:x y:y width:newWidth height:newHeight
claus
parents: 138
diff changeset
  5912
    "my size has changed by window manager action"
claus
parents: 138
diff changeset
  5913
5612
f7b84930b3fb Multi Screen Support
Michael Beyl <mb@exept.de>
parents: 5608
diff changeset
  5914
    |how anyEdge mustRedrawBottomEdge mustRedrawRightEdge
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5915
     mustRedrawPreviousRightBorderArea mustRedrawPreviousBottomBorderArea p originChanged
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5916
     oldWidth oldHeight|
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  5917
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  5918
    originChanged := (left ~= x) or:[top ~= y].
180
claus
parents: 176
diff changeset
  5919
2966
b84e83209de4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2960
diff changeset
  5920
    left := x.
b84e83209de4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2960
diff changeset
  5921
    top := y.
b84e83209de4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2960
diff changeset
  5922
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  5923
    (superView isNil
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  5924
    and:[self drawableId notNil]) ifTrue:[
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5925
        "/ have to be careful - some window managers (motif) wrap another
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5926
        "/ view around and the reported origin is relative to that.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5927
        "/ not relative to the screen.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5928
        p := device translatePoint:0@0 fromView:self toView:nil.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5929
        p := p + self borderWidth.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5930
        left := p x.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5931
        top := p y.
2414
1d8968995199 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2410
diff changeset
  5932
    ].
1d8968995199 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2410
diff changeset
  5933
140
claus
parents: 138
diff changeset
  5934
    ((width ~~ newWidth) or:[height ~~ newHeight]) ifTrue:[
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5935
        realized ifFalse:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5936
            width := newWidth.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5937
            height := newHeight.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5938
            self extentChangedFlag:true.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5939
            ^ self
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5940
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5941
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5942
        ((newWidth <= width) and:[newHeight <= height]) ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5943
            how := #smaller
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5944
        ] ifFalse:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5945
            ((newWidth >= width) and:[newHeight >= height]) ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5946
                how := #larger
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5947
            ]
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5948
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5949
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5950
        margin ~~ 0 ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5951
            mustRedrawBottomEdge := newHeight < height.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5952
            mustRedrawRightEdge := newWidth < width.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5953
            anyEdge := mustRedrawBottomEdge or:[mustRedrawRightEdge].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5954
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5955
            mustRedrawPreviousRightBorderArea := newWidth > width.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5956
            mustRedrawPreviousBottomBorderArea := newHeight > height.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5957
        ] ifFalse:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5958
            anyEdge := mustRedrawPreviousRightBorderArea := mustRedrawPreviousBottomBorderArea := false
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5959
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5960
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5961
        mustRedrawPreviousRightBorderArea ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5962
            self invalidateDeviceRectangle:((width-margin)@0 extent:margin@height) repairNow:false.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5963
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5964
        mustRedrawPreviousBottomBorderArea ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5965
            self invalidateDeviceRectangle:((0 @ (height-margin)) extent:width@margin) repairNow:false.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5966
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5967
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5968
        oldWidth := width.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5969
        oldHeight := height.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5970
        
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5971
        width := newWidth.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5972
        height := newHeight.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5973
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5974
        "recompute inner-clip if needed"
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5975
        self setInnerClip.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5976
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5977
        "
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5978
         must first process pending exposes;
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5979
         otherwise, those may be drawn at a wrong position
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5980
        "
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5981
        "/ claus: no; expose events are in the same queue as configure events;
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5982
        "/        which is exactly for that reason ...
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5983
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5984
        "/        windowGroup notNil ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5985
        "/            windowGroup processExposeEvents
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5986
        "/        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5987
        self sizeChanged:how from:(oldWidth@oldHeight).
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5988
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5989
        (anyEdge and:[shown]) ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5990
            mustRedrawBottomEdge ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5991
                self invalidateDeviceRectangle:((0 @ (height-margin)) extent:width@margin) repairNow:false.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5992
            ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5993
            mustRedrawRightEdge ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5994
                self invalidateDeviceRectangle:((width-margin)@0 extent:margin@height) repairNow:false.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5995
            ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5996
        ]
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  5997
    ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  5998
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  5999
    originChanged ifTrue:[
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6000
        dependents notNil ifTrue:[ self changed:#origin ].
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6001
    ].
739
3d809aa492ec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 738
diff changeset
  6002
3518
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  6003
    "Modified: / 10.10.2001 / 14:14:19 / cg"
138
claus
parents: 137
diff changeset
  6004
!
claus
parents: 137
diff changeset
  6005
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6006
containerChangedSize
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6007
    "my container has changed size; if I have relative
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6008
     origin/extent or blocks to evaluate, do it now .."
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6009
1063
ba1bf8091bc1 unused variable cleanup
Claus Gittinger <cg@exept.de>
parents: 1052
diff changeset
  6010
    |oldWidth oldHeight oldTop oldLeft newExt newOrg r|
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6011
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6012
    oldWidth := width.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6013
    oldHeight := height.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6014
    oldTop := top.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6015
    oldLeft := left.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6016
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6017
    "
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6018
     slowly migrating to use layoutObjects ...
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6019
    "
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6020
    layout isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6021
	newOrg := self computeOrigin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6022
	newExt := self computeExtent.
7109
ff747d290e30 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 7105
diff changeset
  6023
    ] ifFalse:[layout isAssociation ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6024
	layout key == #extent ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6025
	    newOrg := 1@1.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6026
	    newExt := layout value.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6027
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6028
	    self shouldImplement.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6029
	].
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6030
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6031
	r := (layout rectangleRelativeTo:(superView viewRectangle)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6032
			       preferred:[self preferredBounds]).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6033
	newOrg := r origin rounded.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6034
	newExt := r extent rounded.
7109
ff747d290e30 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 7105
diff changeset
  6035
"/ newOrg printCR.
ff747d290e30 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 7105
diff changeset
  6036
"/ newExt printCR.
ff747d290e30 #BUGFIX
Stefan Vogel <sv@exept.de>
parents: 7105
diff changeset
  6037
    ]].
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6038
3394
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6039
"/    newOrg notNil ifTrue:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6040
"/        ((newOrg x == oldLeft) and:[newOrg y == oldTop]) ifTrue:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6041
"/            newOrg := nil
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6042
"/        ]
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6043
"/    ].
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6044
"/    newExt notNil ifTrue:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6045
"/        ((newExt x == width) and:[newExt y == height]) ifTrue:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6046
"/            newExt := nil
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6047
"/        ]
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6048
"/    ].
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6049
"/
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6050
"/    newExt isNil ifTrue:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6051
"/        newOrg notNil ifTrue:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6052
"/            self pixelOrigin:newOrg
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6053
"/        ]
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6054
"/    ] ifFalse:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6055
"/        newOrg isNil ifTrue:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6056
"/            self pixelExtent:newExt
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6057
"/        ] ifFalse:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6058
"/            self pixelOrigin:newOrg extent:newExt
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6059
"/        ]
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6060
"/    ]
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  6061
    self pixelOrigin:newOrg extent:newExt
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6062
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6063
    "Modified: 19.7.1996 / 17:32:50 / cg"
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6064
!
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6065
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6066
containerMapped
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6067
    "my container was mapped (became visible).
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6068
     If I was previously realized, this implies that I myself
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6069
     am now mapped as well."
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6070
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6071
    "/ if I was not previously shown, tell it to all of
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6072
    "/ my subviews (they remember this in the shown instVar)
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6073
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6074
    realized ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6075
	shown ifFalse:[
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6076
"/ old:
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6077
"/            shown := true.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6078
"/            subViews notNil ifTrue:[
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6079
"/                subViews do:[:v |
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6080
"/                    v containerMapped
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6081
"/                ]
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6082
"/            ]
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6083
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6084
"/ which is equivalent to:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6085
	    self mapped.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6086
	]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6087
    ].
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6088
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6089
    "Modified: 30.5.1996 / 11:41:02 / cg"
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6090
    "Created: 19.7.1996 / 17:41:10 / cg"
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6091
!
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6092
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6093
containerUnmapped
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  6094
    "my container was unmapped
7232
316a6bdc26a7 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7178
diff changeset
  6095
     - this implies that the receiver is now also unmapped."
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6096
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6097
    "/ if I was previously shown, tell it to all of
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6098
    "/ my subviews (they remember this in the shown instVar)
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6099
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6100
    realized ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6101
	shown ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6102
	    self unmapped
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6103
	]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6104
    ]
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6105
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6106
    "Modified: 30.5.1996 / 11:41:25 / cg"
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6107
    "Created: 19.7.1996 / 17:43:50 / cg"
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6108
!
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6109
5021
b35cef3e421d changed #copyDataEvent:eventData:view:
Claus Gittinger <cg@exept.de>
parents: 5017
diff changeset
  6110
copyDataEvent:parameter eventData:msgData
4999
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6111
    "a copyData message - very Win32-specific and only useful for special applications.
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6112
     Forwarded to my application (If I have one)"
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6113
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6114
    |app|
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6115
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6116
    (app := self application) notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6117
	app copyDataEvent:parameter eventData:msgData
4999
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6118
    ].
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6119
!
b56e53c1b4d4 hooks for client and copyData events
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6120
5749
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6121
createWindowX:x y:y width:w height:h
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6122
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6123
    "A window has been created in myself, nothing to do here.
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6124
     Note, that SubstructureNotify events must be enabled to get
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6125
     this event. To enable, do:
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6126
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6127
    self enableEvent: #substructureNotify
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6128
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6129
    "
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6130
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6131
    "Created: / 01-06-2011 / 12:59:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6132
!
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6133
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6134
destroyed
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6135
    "view has been destroyed by someone else (usually window system)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6136
5087
a66493cf7fdd sending of visibility-change fixed
Claus Gittinger <cg@exept.de>
parents: 5082
diff changeset
  6137
    shown ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6138
	shown := false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6139
	dependents notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6140
	    self changed:#visibility.
7397
11bd586c3a73 #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7378
diff changeset
  6141
            self changed:#destroyed 
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6142
	].
5087
a66493cf7fdd sending of visibility-change fixed
Claus Gittinger <cg@exept.de>
parents: 5082
diff changeset
  6143
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6144
    super destroyed
3183
e55c249cd6e5 kludge: remove objectAttributes when destroyed.
Claus Gittinger <cg@exept.de>
parents: 3182
diff changeset
  6145
e55c249cd6e5 kludge: remove objectAttributes when destroyed.
Claus Gittinger <cg@exept.de>
parents: 3182
diff changeset
  6146
    "Modified: / 18.2.2000 / 11:20:34 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6147
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6148
4460
c8537e5fe249 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4455
diff changeset
  6149
dropMessage:dropTypeSymbol data:dropValue position:dropPosition handle:dropHandle
4455
934b54c11ed4 drop from windows
Claus Gittinger <cg@exept.de>
parents: 4452
diff changeset
  6150
    "a drop from some other window (X: DND or Win32 drag&drop).
1544
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  6151
     Convert to the ST/X drag and drop protocol here."
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  6152
1559
b23f130589d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
  6153
    |dropObjects|
b23f130589d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
  6154
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  6155
    (dropTypeSymbol == WindowEvent dropType_file
4647
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  6156
    or:[dropTypeSymbol == WindowEvent dropType_directory]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6157
	dropObjects := Array with:(DropObject newFile:dropValue)
1559
b23f130589d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
  6158
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6159
	dropTypeSymbol == WindowEvent dropType_files ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6160
	   dropObjects := (dropValue collect:[:fn | DropObject newFile:fn])
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6161
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6162
	    dropTypeSymbol == WindowEvent dropType_text ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6163
	       dropObjects := Array with:(DropObject newText:dropValue)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6164
	    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6165
	       dropObjects := Array with:(DropObject new:dropValue)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6166
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6167
	]
4455
934b54c11ed4 drop from windows
Claus Gittinger <cg@exept.de>
parents: 4452
diff changeset
  6168
    ].
934b54c11ed4 drop from windows
Claus Gittinger <cg@exept.de>
parents: 4452
diff changeset
  6169
4460
c8537e5fe249 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4455
diff changeset
  6170
"/    Transcript showCR:'Drop:'.
c8537e5fe249 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4455
diff changeset
  6171
"/    Transcript show:'  View:'; showCR:self.
c8537e5fe249 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4455
diff changeset
  6172
"/    Transcript show:'  Position:'; showCR:dropPosition.
c8537e5fe249 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4455
diff changeset
  6173
"/    Transcript show:'  Data:'; showCR:dropObjects.
c8537e5fe249 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4455
diff changeset
  6174
c8537e5fe249 drag and drop cleanup
Claus Gittinger <cg@exept.de>
parents: 4455
diff changeset
  6175
    self alienDrop:dropObjects position:dropPosition.
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  6176
    device dragFinish:dropHandle.
1559
b23f130589d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
  6177
4647
a13c63aed017 drop: canDrop:at:/drop:at: now invoke canDrop:/drop:;
Claus Gittinger <cg@exept.de>
parents: 4630
diff changeset
  6178
    "Modified: / 13-10-2006 / 10:10:23 / cg"
1544
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  6179
!
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  6180
135
claus
parents:
diff changeset
  6181
exposeX:x y:y width:w height:h
claus
parents:
diff changeset
  6182
    "a low level redraw event from device
claus
parents:
diff changeset
  6183
      - let subclass handle the redraw and take care of edges here"
claus
parents:
diff changeset
  6184
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  6185
    |leftEdge topEdge rightEdge botEdge anyEdge nx ny nw nh old oldPaint|
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6186
3856
45fccc92d834 Use SynchronousWindoeSensor if no windowGroup
Stefan Vogel <sv@exept.de>
parents: 3838
diff changeset
  6187
    shown ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6188
	^ self
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  6189
    ].
7160
8f9d12cabaec Dobule check for already disposed drawable in SimpleView>>exposeX:y:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7145
diff changeset
  6190
    "/ JV@2016-02-21: Double check to make sure GC is not already destroyed
8f9d12cabaec Dobule check for already disposed drawable in SimpleView>>exposeX:y:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7145
diff changeset
  6191
    "/ to avoid 'attempt to draw to closed drawable. Not sure how this could 
8f9d12cabaec Dobule check for already disposed drawable in SimpleView>>exposeX:y:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7145
diff changeset
  6192
    "/ happen but apparently it sometimes happens...
8f9d12cabaec Dobule check for already disposed drawable in SimpleView>>exposeX:y:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7145
diff changeset
  6193
    gc drawableId isNil ifTrue:[
6694
223cc6f806af class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6649
diff changeset
  6194
        ^ self
3856
45fccc92d834 Use SynchronousWindoeSensor if no windowGroup
Stefan Vogel <sv@exept.de>
parents: 3838
diff changeset
  6195
    ].
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  6196
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  6197
    nw := w.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  6198
    nh := h.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  6199
    nx := x.
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  6200
    ny := y.
135
claus
parents:
diff changeset
  6201
claus
parents:
diff changeset
  6202
    anyEdge := false.
claus
parents:
diff changeset
  6203
claus
parents:
diff changeset
  6204
    "
claus
parents:
diff changeset
  6205
     check if there is a need to draw an edge (i.e. if margin is hit)
claus
parents:
diff changeset
  6206
    "
claus
parents:
diff changeset
  6207
    (margin ~~ 0) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6208
	|currentTransformation|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6209
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6210
	leftEdge := false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6211
	topEdge := false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6212
	rightEdge := false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6213
	botEdge := false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6214
	currentTransformation := gc transformation.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6215
	currentTransformation notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6216
	    "
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6217
	     need device coordinates for this test
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6218
	    "
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6219
	    nx := currentTransformation applyToX:nx.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6220
	    ny := currentTransformation applyToY:ny.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6221
	    nw := currentTransformation applyScaleX:nw.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6222
	    nh := currentTransformation applyScaleY:nh.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6223
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6224
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6225
	 adjust expose rectangle, to exclude the margin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6226
	 Care for rounding errors ...
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6227
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6228
	(nx class ~~ SmallInteger) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6229
	    old := nx.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6230
	    nx := nx truncated.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6231
	    nw := nw + (nx - old).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6232
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6233
	(ny class ~~ SmallInteger) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6234
	    old := ny.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6235
	    ny := ny truncated.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6236
	    nh := nh + (ny - old).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6237
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6238
	(nw class ~~ SmallInteger) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6239
	    nw := nw truncated + 1
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6240
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6241
	(nh class ~~ SmallInteger) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6242
	    nh := nh truncated + 1
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6243
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6244
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6245
	(nx < margin) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6246
	    old := nx.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6247
	    nx := margin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6248
	    nw := nw - (nx - old).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6249
	    leftEdge := anyEdge := true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6250
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6251
	((nx + nw - 1) >= (width - margin)) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6252
	    nw := (width - margin - nx).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6253
	    rightEdge := anyEdge := true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6254
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6255
	(ny < margin) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6256
	    old := ny.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6257
	    ny := margin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6258
	    nh := nh - (ny - old).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6259
	    topEdge := anyEdge := true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6260
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6261
	((ny + nh - 1) >= (height - margin)) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6262
	    nh := (height - margin - ny).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6263
	    botEdge := anyEdge := true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6264
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6265
	currentTransformation notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6266
	    "
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6267
	     need logical coordinates for redraw
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6268
	    "
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6269
	    nx := currentTransformation applyInverseToX:nx.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6270
	    ny := currentTransformation applyInverseToY:ny.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6271
	    nw := currentTransformation applyInverseScaleX:nw.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6272
	    nh := currentTransformation applyInverseScaleY:nh.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6273
	].
135
claus
parents:
diff changeset
  6274
    ].
claus
parents:
diff changeset
  6275
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  6276
    (nw > 0 and:[nh > 0]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6277
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6278
	 redraw inside area
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6279
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6280
	self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6281
	    clippingBounds:(Rectangle left:nx top:ny width:nw height:nh);
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6282
	    redrawX:nx y:ny width:nw height:nh.
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  6283
    ].
135
claus
parents:
diff changeset
  6284
claus
parents:
diff changeset
  6285
    "
claus
parents:
diff changeset
  6286
     redraw edge(s)
claus
parents:
diff changeset
  6287
    "
claus
parents:
diff changeset
  6288
    anyEdge ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6289
	self clippingBounds:nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6290
	oldPaint := self paint.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6291
	border notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6292
	    border displayOn:self forDisplayBox:(Rectangle left:0 top:0 width:width height:height).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6293
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6294
	    (topEdge and:[leftEdge and:[botEdge and:[rightEdge]]]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6295
		self drawEdges
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6296
	    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6297
		topEdge ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6298
		    self drawTopEdge
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6299
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6300
		leftEdge ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6301
		    self drawLeftEdge
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6302
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6303
		botEdge ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6304
		    self drawBottomEdge
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6305
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6306
		rightEdge ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6307
		    self drawRightEdge
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6308
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6309
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6310
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6311
	self paint:oldPaint.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  6312
    ].
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  6313
    gc deviceClippingBounds:innerClipRect.
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6314
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6315
    "Modified: / 25.5.1999 / 14:57:38 / cg"
135
claus
parents:
diff changeset
  6316
!
claus
parents:
diff changeset
  6317
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6318
focusIn
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  6319
    "got keyboard focus (via the window manager).
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  6320
     Nothing done here"
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  6321
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  6322
    ^ self
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6323
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6324
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6325
focusOut
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  6326
    "lost keyboard focus (via the window manager).
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  6327
     Nothing done here"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6328
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6329
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6330
hasKeyboardFocus:aBoolean
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  6331
    "notification from the windowGroup that I got the keyboardFocus."
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  6332
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  6333
    delegate notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6334
	delegate perform:#hasKeyboardFocus: with:aBoolean ifNotUnderstood:nil
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  6335
    ].
140
claus
parents: 138
diff changeset
  6336
    ^ self
claus
parents: 138
diff changeset
  6337
!
claus
parents: 138
diff changeset
  6338
claus
parents: 138
diff changeset
  6339
keyPress:key x:x y:y
claus
parents: 138
diff changeset
  6340
    "a key has been pressed. If there are components,
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  6341
     pass it to the corresponding one.
140
claus
parents: 138
diff changeset
  6342
     Otherwise, forward it to the superview, if there is any."
claus
parents: 138
diff changeset
  6343
7628
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6344
    <resource: #keyboard ( #Menu 
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6345
                           #ZoomIn #ZoomOut
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6346
                           #ZoomInAll #ZoomOutAll) >
510
c0c7a04317a9 resources
Claus Gittinger <cg@exept.de>
parents: 503
diff changeset
  6347
3247
d6e631975bd1 forward Menu-key (CMD-Z) to focusView if there is one.
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  6348
    |focusView|
d6e631975bd1 forward Menu-key (CMD-Z) to focusView if there is one.
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  6349
140
claus
parents: 138
diff changeset
  6350
    components notNil ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6351
	components notNil ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6352
	    self componentsContainingX:x y:y do:[:comp :cx :cy |
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6353
		comp keyPress:key x:cx y:cy.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6354
		^ self
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6355
	    ]
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6356
	].
490
1d2ed059a063 delegated keyboardMessages get nil as x/y
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  6357
    ].
1d2ed059a063 delegated keyboardMessages get nil as x/y
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  6358
494
cc7765901744 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 490
diff changeset
  6359
    key == #Menu ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6360
	((focusView := self windowGroup focusView) notNil
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6361
	and:[focusView ~~ self])
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6362
	ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6363
	   "/ forward to the focusView
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6364
	   focusView keyPress:key x:-1 y:-1.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6365
	    ^ self
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6366
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6367
	^ self activateMenu.
7628
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6368
    ].
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6369
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6370
    (key == #ZoomIn or:[key == #ZoomOut]) ifTrue:[ 
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6371
        self keyboardZoom:(key == #ZoomIn).
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6372
        ^ self
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6373
    ].
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6374
    (key == #ZoomInAll or:[key == #ZoomOutAll]) ifTrue:[ 
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6375
        self keyboardZoomInAllViews:(key == #ZoomInAll).
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6376
        ^ self
135
claus
parents:
diff changeset
  6377
    ].
claus
parents:
diff changeset
  6378
490
1d2ed059a063 delegated keyboardMessages get nil as x/y
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  6379
    x isNil ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6380
	"/ already redelegated, but nowhere handled
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6381
	superView notNil ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6382
	    superView keyPress:key x:nil y:nil.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6383
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6384
	^ self
490
1d2ed059a063 delegated keyboardMessages get nil as x/y
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  6385
    ].
1d2ed059a063 delegated keyboardMessages get nil as x/y
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  6386
1d2ed059a063 delegated keyboardMessages get nil as x/y
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  6387
    superView notNil ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6388
	superView
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6389
	    dispatchEvent:#keyPress:x:y:
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6390
	    arguments:(Array with:key with:0 with:0)
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  6391
2127
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  6392
"/        WindowEvent
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  6393
"/            sendEvent:#keyPress:x:y:
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  6394
"/            arguments:(Array with:key with:0 with:0)
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  6395
"/            view:superView
411
2d5deb02d8f8 if not already forwarded, let keyEvents be handled by superView
Claus Gittinger <cg@exept.de>
parents: 393
diff changeset
  6396
    ] ifFalse:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  6397
	super keyPress:key x:x y:y
135
claus
parents:
diff changeset
  6398
    ]
411
2d5deb02d8f8 if not already forwarded, let keyEvents be handled by superView
Claus Gittinger <cg@exept.de>
parents: 393
diff changeset
  6399
2127
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  6400
    "Modified: / 20.5.1998 / 22:55:08 / cg"
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6401
!
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6402
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6403
keyRelease:key x:x y:y
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6404
    "a key has been released. If there are components,
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  6405
     pass it to the corresponding one.
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6406
     Otherwise, do whatever my superclass would do."
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6407
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6408
    components notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6409
	components notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6410
	    self componentsContainingX:x y:y do:[:comp :cx :cy |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6411
		comp keyRelease:key x:cx y:cy.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6412
		^ self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6413
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6414
	].
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6415
    ].
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6416
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6417
    super keyRelease:key x:x y:y
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6418
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6419
    "Modified: 8.5.1996 / 23:44:36 / cg"
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6420
    "Created: 8.5.1996 / 23:45:28 / cg"
135
claus
parents:
diff changeset
  6421
!
claus
parents:
diff changeset
  6422
7417
a7e3b6a9aa63 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7416
diff changeset
  6423
keyboardZoom:larger
a7e3b6a9aa63 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7416
diff changeset
  6424
    "CTRL+/- action.
a7e3b6a9aa63 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7416
diff changeset
  6425
     ignored here - redefined in views which can zoom"
a7e3b6a9aa63 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7416
diff changeset
  6426
7626
b6c8623c5226 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7622
diff changeset
  6427
    "/ self changeScaleForMouseWheelZoom:amount
7417
a7e3b6a9aa63 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7416
diff changeset
  6428
!
a7e3b6a9aa63 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7416
diff changeset
  6429
7628
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6430
keyboardZoomInAllViews:larger 
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6431
    "CTRL+/- zoom action global.
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6432
     Sent to all windows; some may ignore it."
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6433
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6434
    self device allViewsDo:[:each |
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6435
        each keyboardZoom:larger 
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6436
    ].    
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6437
!
7b637c35e9ea #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7626
diff changeset
  6438
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6439
mapped
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6440
    "the view has been mapped (by some outside
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6441
     action - i.e. window manager de-iconified me)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6442
5082
3b3aaba11664 only send visibility-change if there really is one when mapped
Claus Gittinger <cg@exept.de>
parents: 5060
diff changeset
  6443
    |shownBefore|
3b3aaba11664 only send visibility-change if there really is one when mapped
Claus Gittinger <cg@exept.de>
parents: 5060
diff changeset
  6444
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6445
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6446
     the old code was:
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6447
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6448
	realized := true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6449
	shown := true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6450
	...
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6451
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6452
     this created a race condition, if the view was
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6453
     realized and shortly after unrealized - before the mapped event
1379
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  6454
     arrived. This lead to realized being set to true even thought the
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  6455
     view was not.
1379
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  6456
     Boy - that was a bad one (hard to reproduce and hard to find).
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6457
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6458
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6459
    realized ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6460
	shownBefore := shown.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6461
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6462
	"/ currently, the 'shown ifFalse:' optimization is
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6463
	"/ not ok, since 'shown' is also modified by visibilityChanges.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6464
	"/ Also, when remapped, X11 only sends a mapped event for the topView.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6465
	"/ Therefore, synthetically generate those #superViewMapped messages
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6466
	"/ in any case.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6467
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6468
	shown := true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6469
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6470
	 backed views will not get expose events - have
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6471
	 to force a redraw here to get things drawn into
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6472
	 backing store.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6473
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6474
	backed ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6475
	    self redrawX:0 y:0 width:width height:height
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6476
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6477
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6478
	"/ tell my subViews ...
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6479
	subViews notNil ifTrue:[
7132
2cbd7562cfc8 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7127
diff changeset
  6480
            subViews do:[:v | 
2721
2575a1e771cc mapped event handling
Claus Gittinger <cg@exept.de>
parents: 2719
diff changeset
  6481
"/                v shown ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6482
		    v  mapped.
2721
2575a1e771cc mapped event handling
Claus Gittinger <cg@exept.de>
parents: 2719
diff changeset
  6483
"/                ]
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6484
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6485
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6486
	shownBefore ~~ true ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6487
	    dependents notNil ifTrue:[ self changed:#visibility ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6488
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6489
	self takeFocusWhenMapped ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6490
	    "/ this is a one-shot!!
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6491
	    self takeFocusWhenMapped:false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6492
	    self assignKeyboardFocusToFirstKeyboardConsumer.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6493
	    "/ self requestFocus
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6494
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6495
    ]
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  6496
5667
c065259f0d5c added: #topViewWasMapped
Claus Gittinger <cg@exept.de>
parents: 5665
diff changeset
  6497
    "Modified: / 09-12-2010 / 18:12:24 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6498
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6499
2733
5af2417bc450 pass x/y with mouseWheel event
Claus Gittinger <cg@exept.de>
parents: 2727
diff changeset
  6500
mouseWheelMotion:buttonState x:x y:y amount:amount deltaTime:dTime
2701
ac077dbc60be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2699
diff changeset
  6501
    "the mouseWheel was turned - handle as a scroll operation.
ac077dbc60be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2699
diff changeset
  6502
     Specialized application windows may redefine this for any other
2709
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  6503
     operation.
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6504
     Here, we scroll some amount which depends upon the view's contents height
2709
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  6505
     (but never too much);
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  6506
     if shift is pressed, always scroll a single scroll-step;
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  6507
     if ctrl is pressed, always scroll one page."
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  6508
6952
832f15fc0e4c #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6911
diff changeset
  6509
    |horizontal pageScroll amountToScroll zoomInOrOut sensor|
2709
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  6510
3856
45fccc92d834 Use SynchronousWindoeSensor if no windowGroup
Stefan Vogel <sv@exept.de>
parents: 3838
diff changeset
  6511
    sensor := self sensor.
5130
0bc49bea4bab allowMouseWheelZoom
Claus Gittinger <cg@exept.de>
parents: 5087
diff changeset
  6512
0bc49bea4bab allowMouseWheelZoom
Claus Gittinger <cg@exept.de>
parents: 5087
diff changeset
  6513
    UserPreferences current allowMouseWheelZoom ifTrue:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6514
        zoomInOrOut := sensor ctrlDown or:[sensor metaDown].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6515
        zoomInOrOut ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6516
            self mouseWheelZoom:amount.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6517
            ^ self.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6518
        ].
5130
0bc49bea4bab allowMouseWheelZoom
Claus Gittinger <cg@exept.de>
parents: 5087
diff changeset
  6519
    ].
0bc49bea4bab allowMouseWheelZoom
Claus Gittinger <cg@exept.de>
parents: 5087
diff changeset
  6520
6952
832f15fc0e4c #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6911
diff changeset
  6521
    horizontal := pageScroll := false.
832f15fc0e4c #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6911
diff changeset
  6522
    (UserPreferences current shiftMouseWheelScrollsHorizontally) ifTrue:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6523
        horizontal := sensor shiftDown
6952
832f15fc0e4c #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6911
diff changeset
  6524
    ] ifFalse:[                              
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6525
        pageScroll := sensor shiftDown.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  6526
    ].
6952
832f15fc0e4c #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6911
diff changeset
  6527
    
2709
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  6528
    pageScroll ifFalse:[
6952
832f15fc0e4c #FEATURE
Claus Gittinger <cg@exept.de>
parents: 6911
diff changeset
  6529
        amountToScroll := horizontal 
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6530
                            ifTrue:[ self horizontalScrollStep]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6531
                            ifFalse:[ self verticalScrollStep ].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6532
        amountToScroll := self scaleMouseWheelScrollAmount:amountToScroll.
2709
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  6533
    ].
2701
ac077dbc60be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2699
diff changeset
  6534
2699
01594e76fc92 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2655
diff changeset
  6535
    amount > 0 ifTrue:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6536
        pageScroll ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6537
            horizontal ifTrue:[self pageLeft] ifFalse:[self pageUp]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6538
        ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6539
            horizontal ifTrue:[self scrollLeft:amountToScroll] ifFalse:[self scrollUp:amountToScroll]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6540
        ]
2699
01594e76fc92 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2655
diff changeset
  6541
    ] ifFalse:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6542
        pageScroll ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6543
            horizontal ifTrue:[self pageRight] ifFalse:[self pageDown]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6544
        ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6545
            horizontal ifTrue:[self scrollRight:amountToScroll] ifFalse:[self scrollDown:amountToScroll]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  6546
        ]
2709
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  6547
    ].
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  6548
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  6549
    "Modified: / 21.5.1999 / 19:58:42 / cg"
2699
01594e76fc92 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2655
diff changeset
  6550
!
01594e76fc92 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2655
diff changeset
  6551
5130
0bc49bea4bab allowMouseWheelZoom
Claus Gittinger <cg@exept.de>
parents: 5087
diff changeset
  6552
mouseWheelZoom:amount
5132
b1161f2c78ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5130
diff changeset
  6553
    "CTRL-wheel action.
b1161f2c78ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5130
diff changeset
  6554
     ignored here - redefined in views which can zoom"
b1161f2c78ca *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5130
diff changeset
  6555
5133
6d3761ef1e2a mouseWheel zoom
Claus Gittinger <cg@exept.de>
parents: 5132
diff changeset
  6556
"/    self changeScaleForMouseWheelZoom:amount
5130
0bc49bea4bab allowMouseWheelZoom
Claus Gittinger <cg@exept.de>
parents: 5087
diff changeset
  6557
!
0bc49bea4bab allowMouseWheelZoom
Claus Gittinger <cg@exept.de>
parents: 5087
diff changeset
  6558
1381
31b981e0dcad delegate focusIn/out
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
  6559
pointerEnter:state x:x y:y
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  6560
    "mouse pointer entered - request the keyboard focus (sometimes)"
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  6561
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  6562
    |doRequestFocus|
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  6563
4968
63f18801bab8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4966
diff changeset
  6564
    "/ first ask my flags if its enforced or forbidden
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  6565
    self requestFocusOnPointerEnter ifTrue:[
7690
f961b5d77d50 #BUGFIX by mawalch
mawalch
parents: 7675
diff changeset
  6566
        doRequestFocus := true
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  6567
    ] ifFalse:[
7690
f961b5d77d50 #BUGFIX by mawalch
mawalch
parents: 7675
diff changeset
  6568
        self doNotRequestFocusOnPointerEnter ifTrue:[
f961b5d77d50 #BUGFIX by mawalch
mawalch
parents: 7675
diff changeset
  6569
            doRequestFocus := false
f961b5d77d50 #BUGFIX by mawalch
mawalch
parents: 7675
diff changeset
  6570
        ] ifFalse:[
f961b5d77d50 #BUGFIX by mawalch
mawalch
parents: 7675
diff changeset
  6571
            "/ then look for the settings.
f961b5d77d50 #BUGFIX by mawalch
mawalch
parents: 7675
diff changeset
  6572
            doRequestFocus := self wantsFocusWithPointerEnter
f961b5d77d50 #BUGFIX by mawalch
mawalch
parents: 7675
diff changeset
  6573
        ]
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  6574
    ].
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  6575
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  6576
    doRequestFocus ifTrue:[
7690
f961b5d77d50 #BUGFIX by mawalch
mawalch
parents: 7675
diff changeset
  6577
        self requestFocus.
f961b5d77d50 #BUGFIX by mawalch
mawalch
parents: 7675
diff changeset
  6578
    ].
f961b5d77d50 #BUGFIX by mawalch
mawalch
parents: 7675
diff changeset
  6579
    dependents notNil ifTrue:[ self changed:#pointerInView with:true ]
6987
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  6580
    
5924
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  6581
    "Modified: / 01-08-2012 / 17:06:41 / cg"
1381
31b981e0dcad delegate focusIn/out
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
  6582
!
31b981e0dcad delegate focusIn/out
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
  6583
6987
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  6584
pointerLeave:buttonState
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  6585
    "mouse pointer left"
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  6586
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  6587
    super pointerLeave:buttonState.
7690
f961b5d77d50 #BUGFIX by mawalch
mawalch
parents: 7675
diff changeset
  6588
    dependents notNil ifTrue:[ self changed:#pointerInView with:false]
6987
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  6589
!
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  6590
5749
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6591
propertyChange:propertyId state: state
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6592
6291
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  6593
    "A property has changed, nothing to do here.
5749
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6594
     Note:
6291
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  6595
     This is very X specific. PropertyChange events must be enabled
5749
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6596
     to get this event. To enable, do:
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6597
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6598
    self enableEvent: #propertyChange
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6599
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6600
    "
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6601
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6602
    "Created: / 01-06-2011 / 13:39:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6603
!
aad1af079611 Jan's changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5729
diff changeset
  6604
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6605
reparented
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6606
    "the view has changed its parent by some outside
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6607
     action - i.e. window manager has added a frame.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6608
     nothing done here"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6609
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6610
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6611
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6612
6516
41d8ab4b00c4 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6515
diff changeset
  6613
requestAutoAccept
41d8ab4b00c4 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6515
diff changeset
  6614
    "request to accept: this is invoked when a dialog closes via accept or cancel.
41d8ab4b00c4 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6515
diff changeset
  6615
     This forces my value to be accepted into my model.
41d8ab4b00c4 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6515
diff changeset
  6616
     Any widget may suppress the ok/cancel, by returning false."
41d8ab4b00c4 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6515
diff changeset
  6617
41d8ab4b00c4 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6515
diff changeset
  6618
    ^ true
41d8ab4b00c4 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6515
diff changeset
  6619
!
41d8ab4b00c4 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6515
diff changeset
  6620
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6621
saveAndTerminate
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  6622
    "window manager wants me to save and go away;
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  6623
     - notice, that not all window managers are nice enough to
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6624
       send this event, but simply destroy the view instead.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6625
     Can be redefined in subclasses to do whatever is required
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6626
     to prepare for restart."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6627
2216
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  6628
    self closeRequest
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  6629
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  6630
    "Modified: / 3.8.1998 / 19:51:26 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6631
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6632
4674
5677b78c2790 mouse wheel scrolling refactoring
fm
parents: 4654
diff changeset
  6633
scaleMouseWheelScrollAmount:amountToScroll
4739
a0041d972c79 bugfix for views with innerHeight < 1
ca
parents: 4736
diff changeset
  6634
    |hCont factor innerHeight|
a0041d972c79 bugfix for views with innerHeight < 1
ca
parents: 4736
diff changeset
  6635
a0041d972c79 bugfix for views with innerHeight < 1
ca
parents: 4736
diff changeset
  6636
    "/ test whether innerHeight == 0
4855
1a47c76fa152 comment
Stefan Vogel <sv@exept.de>
parents: 4853
diff changeset
  6637
    "/ could happen if the view is resized to 0 (panel)
4739
a0041d972c79 bugfix for views with innerHeight < 1
ca
parents: 4736
diff changeset
  6638
    innerHeight := self innerHeight.
a0041d972c79 bugfix for views with innerHeight < 1
ca
parents: 4736
diff changeset
  6639
    innerHeight > 0 ifFalse:[ ^ 1 ].
4674
5677b78c2790 mouse wheel scrolling refactoring
fm
parents: 4654
diff changeset
  6640
5677b78c2790 mouse wheel scrolling refactoring
fm
parents: 4654
diff changeset
  6641
    hCont := self heightOfContents.
4739
a0041d972c79 bugfix for views with innerHeight < 1
ca
parents: 4736
diff changeset
  6642
    hCont > (innerHeight * 3) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6643
	factor := (hCont // innerHeight) min:4.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6644
	^ amountToScroll * factor.
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  6645
    ].
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  6646
    ^ amountToScroll
4674
5677b78c2790 mouse wheel scrolling refactoring
fm
parents: 4654
diff changeset
  6647
!
5677b78c2790 mouse wheel scrolling refactoring
fm
parents: 4654
diff changeset
  6648
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6649
sizeChanged:how
6318
51e71bc70bce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6315
diff changeset
  6650
    "tell subviews that I changed size.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6651
     How is either #smaller, #larger or nil, and is used to control the order,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6652
     in which subviews are notified (possibly reducing redraw activity)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6653
1290
1cc24cff6fe9 eliminated some references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 1261
diff changeset
  6654
    |subViews|
1cc24cff6fe9 eliminated some references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 1261
diff changeset
  6655
6954
Claus Gittinger <cg@exept.de>
parents: 6952
diff changeset
  6656
    viewBackground isViewBackground ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6657
	"/ there is only one, which needs this: a gradient over the actual height/width;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6658
	"/ this cannot just fill the new exposed area, but must recompute the gradient scales
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6659
	(viewBackground needsFullRedrawOnChangeOfWidth
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6660
	or:[ viewBackground needsFullRedrawOnChangeOfHeight]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6661
	    self invalidate
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6662
	]
6954
Claus Gittinger <cg@exept.de>
parents: 6952
diff changeset
  6663
    ].    
Claus Gittinger <cg@exept.de>
parents: 6952
diff changeset
  6664
6114
52c6e2447fff class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6090
diff changeset
  6665
    (subViews := self subViews) notEmptyOrNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6666
	(how isNil "false"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6667
	or:[how == #smaller]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6668
	    subViews do:[:view |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6669
		view notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6670
		    view containerChangedSize
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6671
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6672
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6673
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6674
	    "doing it reverse speeds up resizing - usually subviews
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6675
	     are created from top-left to bottom-right; therefore
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6676
	     bottom-right views will be moved/resized first, then top-left ones;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6677
	     this avoids multiple redraws of subviews"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6678
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6679
	    subViews reverseDo:[:view |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6680
		view notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6681
		    view containerChangedSize
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6682
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6683
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6684
	]
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  6685
    ].
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  6686
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  6687
    components notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6688
	(how isNil "false"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6689
	or:[how == #smaller]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6690
	    components do:[:view |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6691
		view containerChangedSize
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6692
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6693
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6694
	    "doing it reverse speeds up resizing - usually subviews
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6695
	     are created from top-left to bottom-right; therefore
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6696
	     bottom-right views will be moved/resized first, then top-left ones;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6697
	     this avoids multiple redraws of subviews"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6698
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6699
	    components reverseDo:[:view |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6700
		view containerChangedSize
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6701
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6702
	]
135
claus
parents:
diff changeset
  6703
    ].
1290
1cc24cff6fe9 eliminated some references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 1261
diff changeset
  6704
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6705
    self changed:#sizeOfView with:how.
1290
1cc24cff6fe9 eliminated some references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 1261
diff changeset
  6706
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6707
    superView notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6708
	superView subViewChangedSize
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6709
    ]
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  6710
2084
e997f6ea54c2 also pass down #larger to sizeCanged: method.
Claus Gittinger <cg@exept.de>
parents: 2061
diff changeset
  6711
    "Modified: / 2.4.1998 / 13:59:59 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6712
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6713
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6714
sizeChanged:how from:oldExtent
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6715
    "tell subviews that I changed size.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6716
     How is either #smaller, #larger or nil, and is used to control the order,
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6717
     in which subviews are notified (possibly reducing redraw activity).
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6718
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6719
     In previous versions, there was only one argument, how,
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6720
     which was either #smaller or #larger or nil (if not known).
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6721
     This argument was used in some widgets to optimize (avoid) some recomputations.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6722
     However, it was too unspecific on which dimension changed;
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6723
     therefore, now this method is called.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6724
     For backward compatibility, it calls the old sizeChanged: method.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6725
     If you redefine this, make sure to call super sizeChanged:, not super sizeChanged:from:,
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6726
     to avoid an endless recursion."
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6727
     
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6728
    self sizeChanged:how
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6729
!
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  6730
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6731
subViewChangedSize
320
b7b8dc88fe9f interest is written with one 'r' (shame on me)
Claus Gittinger <cg@exept.de>
parents: 312
diff changeset
  6732
    "some subview has changed its size; we are not interested
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6733
     in that here, but some geometry managers redefine this, to reorganize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6734
     components if that happens."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6735
7253
1b427e95d77c Inform GC (DeviceGraphicsContext) when it's size or children's size or origin changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7244
diff changeset
  6736
    "/ Inform the GC
1b427e95d77c Inform GC (DeviceGraphicsContext) when it's size or children's size or origin changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7244
diff changeset
  6737
    gc subViewChangedSizeOrOrigin.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6738
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6739
7253
1b427e95d77c Inform GC (DeviceGraphicsContext) when it's size or children's size or origin changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7244
diff changeset
  6740
    "Created: / 22-09-1995 / 14:44:59 / claus"
1b427e95d77c Inform GC (DeviceGraphicsContext) when it's size or children's size or origin changes
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7244
diff changeset
  6741
    "Modified: / 02-04-2016 / 15:36:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6742
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6743
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6744
terminate
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6745
    "window manager wants me to go away;
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  6746
     - notice, that not all window managers are nice enough to
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6747
       send this event, but simply destroy the view instead.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  6748
     Can be redefined in subclasses to do whatever cleanup is
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6749
     required."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6750
2216
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  6751
    self closeRequest
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  6752
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  6753
    "Modified: / 3.8.1998 / 19:51:23 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6754
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6755
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6756
unmapped
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  6757
    "the view has been unmapped
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6758
     (either by some outside action - i.e. window manager iconified me,
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  6759
     or due to unmapping of my parentView)."
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  6760
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  6761
    "/ if I was previously shown, tell it to all of
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  6762
    "/ my subviews (they remember this in the shown instVar)
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  6763
769
9470770c306e map/unmap messages
Claus Gittinger <cg@exept.de>
parents: 765
diff changeset
  6764
    "/ currently, the 'shown ifTrue:' optimization is
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6765
    "/ not ok, since 'shown' is also modified by visibilityChanges.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  6766
    "/ Also, when remapped, X11 only sends a mapped event for the topView.
769
9470770c306e map/unmap messages
Claus Gittinger <cg@exept.de>
parents: 765
diff changeset
  6767
    "/ Therefore, synthetically generate those #superViewUnmapped messages
9470770c306e map/unmap messages
Claus Gittinger <cg@exept.de>
parents: 765
diff changeset
  6768
    "/ in any case.
4736
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  6769
    |wdgr|
769
9470770c306e map/unmap messages
Claus Gittinger <cg@exept.de>
parents: 765
diff changeset
  6770
5087
a66493cf7fdd sending of visibility-change fixed
Claus Gittinger <cg@exept.de>
parents: 5082
diff changeset
  6771
    shown ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6772
	shown := false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6773
	dependents notNil ifTrue:[ self changed:#visibility ].
5087
a66493cf7fdd sending of visibility-change fixed
Claus Gittinger <cg@exept.de>
parents: 5082
diff changeset
  6774
    ].
4736
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  6775
    (wdgr := self windowGroup) notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6776
	wdgr focusView == self ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6777
	    wdgr focusViewUnmapped.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6778
	].
4736
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  6779
    ].
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  6780
1379
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  6781
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6782
	subViews do:[:v |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6783
	    v containerUnmapped
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6784
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6785
	dependents notNil ifTrue:[ self changed:#visibility ].
1379
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  6786
    ]
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  6787
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  6788
    "Modified: 25.2.1997 / 22:40:52 / cg"
135
claus
parents:
diff changeset
  6789
!
claus
parents:
diff changeset
  6790
claus
parents:
diff changeset
  6791
visibilityChange:how
claus
parents:
diff changeset
  6792
    "the visibility of the view has changed (by some outside
claus
parents:
diff changeset
  6793
     action - i.e. window manager rearranged things).
5029
b9b004d17044 do not realize, if visibilityChannel says that the view should be invisible
Stefan Vogel <sv@exept.de>
parents: 5026
diff changeset
  6794
     Using this knowledge avoids useless redraw in obscured views."
135
claus
parents:
diff changeset
  6795
7132
2cbd7562cfc8 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7127
diff changeset
  6796
    |newShown|
2cbd7562cfc8 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7127
diff changeset
  6797
2cbd7562cfc8 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7127
diff changeset
  6798
    newShown := how ~~ #fullyObscured.
2cbd7562cfc8 #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 7127
diff changeset
  6799
    newShown ~~ shown ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6800
	shown := newShown.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6801
	dependents notNil ifTrue:[ self changed:#visibility ].
5087
a66493cf7fdd sending of visibility-change fixed
Claus Gittinger <cg@exept.de>
parents: 5082
diff changeset
  6802
    ].
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  6803
!
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  6804
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  6805
visibilityStateChanged
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  6806
    "this is called when our visibilityChannel changes"
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  6807
3410
f345f5f8e704 Undo prev change.
Stefan Vogel <sv@exept.de>
parents: 3409
diff changeset
  6808
    self isVisible:visibilityChannel value
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6809
!
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6810
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6811
win32NativeScroll:scrollCode position:newPosition
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  6812
    "this is generated by a native scrollBar widget.
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  6813
     We should never arrive here, as its only supposed to be
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  6814
     sent to scrollableViews..."
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6815
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6816
    scrollCode == #SB_LINEDOWN ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6817
	self scrollDown.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6818
	^ self.
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6819
    ].
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6820
    scrollCode == #SB_LINEUP ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6821
	self scrollUp.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6822
	^ self.
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6823
    ].
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6824
    scrollCode == #SB_LINELEFT ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6825
	self scrollLeft.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6826
	^ self.
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6827
    ].
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6828
    scrollCode == #SB_LINERIGHT ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6829
	self scrollRight.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6830
	^ self.
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6831
    ].
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6832
    scrollCode == #SB_PAGEDOWN ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6833
	self pageDown.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6834
	^ self.
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6835
    ].
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6836
    scrollCode == #SB_PAGEUP ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6837
	self pageUp.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6838
	^ self.
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6839
    ].
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6840
    scrollCode == #SB_PAGELEFT ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6841
	self pageLeft.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6842
	^ self.
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6843
    ].
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6844
    scrollCode == #SB_PAGERIGHT ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6845
	self pageRight.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6846
	^ self.
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6847
    ].
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6848
    scrollCode == #SB_THUMBPOSITIONVERTICAL ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6849
	self scrollVerticalToPercent:newPosition.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6850
	^ self.
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6851
    ].
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6852
    scrollCode == #SB_THUMBPOSITIONHORIZONTAL ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6853
	self scrollHorizontalToPercent:newPosition.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6854
	^ self.
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6855
    ].
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6856
    scrollCode == #SB_THUMBTRACKVERTICAL ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6857
	self scrollVerticalToPercent:newPosition.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6858
	^ self.
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6859
    ].
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6860
    scrollCode == #SB_THUMBTRACKHORIZONTAL ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6861
	self scrollHorizontalToPercent:newPosition.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6862
	^ self.
4833
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6863
    ].
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6864
384612cc7d37 win32NativeScroll:position: moved from ScrollableView
Claus Gittinger <cg@exept.de>
parents: 4825
diff changeset
  6865
    scrollCode == #SB_ENDSCROLL ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6866
	^ self.
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  6867
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6868
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6869
1302
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6870
!SimpleView methodsFor:'event simulation'!
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6871
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6872
pushEvent:aSelector
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6873
    "push some messageSend into my event queue -
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6874
     I will perform the corresponding method when its time
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6875
     to handle events (useful to update low-prio views from
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6876
     a higher prio process, to avoid blocking in the high prio one)"
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6877
2143
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6878
    ^ self pushEvent:aSelector withArguments:#()
1302
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6879
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6880
    "
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6881
     |v|
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6882
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6883
     v := View new openAndWait.
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6884
     v fill:Color red.
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6885
     v pushEvent:#redraw
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6886
    "
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6887
2143
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6888
    "Modified: / 10.6.1998 / 17:28:40 / cg"
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6889
!
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6890
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6891
pushEvent:aSelector with:arg
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6892
    "push some 1-arg messageSend into my event queue -
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6893
     I will perform the corresponding method when its time
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6894
     to handle events (useful to update low-prio views from
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6895
     a higher prio process, to avoid blocking in the high prio one)"
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6896
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6897
    ^ self pushEvent:aSelector withArguments:(Array with:arg)
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6898
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6899
    "Created: / 10.6.1998 / 17:27:17 / cg"
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6900
!
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6901
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6902
pushEvent:aSelector with:arg1 with:arg2
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6903
    "push some 1-arg messageSend into my event queue -
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6904
     I will perform the corresponding method when its time
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6905
     to handle events (useful to update low-prio views from
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6906
     a higher prio process, to avoid blocking in the high prio one)"
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6907
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6908
    ^ self pushEvent:aSelector withArguments:(Array with:arg1 with:arg2)
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6909
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6910
    "Created: / 10.6.1998 / 17:27:41 / cg"
1302
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6911
!
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6912
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6913
pushEvent:aSelector withArguments:args
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6914
    "push some messageSend into my event queue -
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6915
     I will perform the corresponding method when its time
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6916
     to handle events (useful to update low-prio views from
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6917
     a higher prio process, to avoid blocking in the high prio one)"
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6918
3856
45fccc92d834 Use SynchronousWindoeSensor if no windowGroup
Stefan Vogel <sv@exept.de>
parents: 3838
diff changeset
  6919
    self sensor pushUserEvent:aSelector for:self withArguments:args
1302
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6920
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6921
    "
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6922
     |v|
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6923
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6924
     v := (Button label:'hello') openAndWait.
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6925
     Delay waitForSeconds:1.
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6926
     v pushEvent:#buttonPress:x:y: withArguments:#(1 10 10).
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6927
     Delay waitForSeconds:1.
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6928
     v pushEvent:#buttonRelease:x:y: withArguments:#(1 10 10).
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6929
    "
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  6930
2143
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  6931
    "Modified: / 10.6.1998 / 17:28:16 / cg"
4347
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  6932
!
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  6933
5774
56671ce7160c added: #simulateButtonPress:at:
Claus Gittinger <cg@exept.de>
parents: 5770
diff changeset
  6934
simulateButtonPress:button at:aPoint
6291
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  6935
    "simulate a button press by determining which sub-view is affected and
6853
541c6d924a41 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6851
diff changeset
  6936
     synthetically generating a buttonPressEvent for whatever view is underneath.
5775
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6937
     Returns the view which precessed the event or nil."
5774
56671ce7160c added: #simulateButtonPress:at:
Claus Gittinger <cg@exept.de>
parents: 5770
diff changeset
  6938
6864
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6939
    ^ self simulateButtonPress:button at:aPoint sendDisplayEvent:false
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6940
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6941
    "Created: / 12-07-2011 / 14:36:02 / cg"
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6942
!
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6943
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6944
simulateButtonPress:button at:aPoint sendDisplayEvent:sendDisplayEvent
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6945
    "simulate a button press by determining which sub-view is affected and
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6946
     synthetically generating a buttonPressEvent for whatever view is underneath.
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6947
     Returns the view which precessed the event or nil."
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6948
5774
56671ce7160c added: #simulateButtonPress:at:
Claus Gittinger <cg@exept.de>
parents: 5770
diff changeset
  6949
    |ev|
56671ce7160c added: #simulateButtonPress:at:
Claus Gittinger <cg@exept.de>
parents: 5770
diff changeset
  6950
5775
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6951
    ev := WindowEvent buttonPress:button x:0 y:0 view:self.
6851
4c1547ff5459 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6845
diff changeset
  6952
    "/ x/y will be set in simulateUserEvent:ev at:aPoint
6864
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6953
    ^ self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
5775
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6954
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6955
    "Created: / 12-07-2011 / 14:36:02 / cg"
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6956
!
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6957
6864
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6958
simulateButtonRelease:button at:aPoint 
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6959
    "simulate a button release by determining which sub-view is affected and
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6960
     synthetically generating a buttonPressEvent for whatever view is underneath.
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6961
     Returns the view which precessed the event or nil."
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6962
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6963
    ^ self simulateButtonRelease:button at:aPoint sendDisplayEvent:false
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6964
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6965
    "Created: / 12-07-2011 / 14:54:37 / cg"
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6966
!
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6967
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6968
simulateButtonRelease:button at:aPoint sendDisplayEvent:sendDisplayEvent
6291
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  6969
    "simulate a button release by determining which sub-view is affected and
6853
541c6d924a41 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6851
diff changeset
  6970
     synthetically generating a buttonPressEvent for whatever view is underneath.
5775
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6971
     Returns the view which precessed the event or nil."
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6972
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6973
    |ev|
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6974
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6975
    ev := WindowEvent buttonRelease:button x:0 y:0 view:self.
6851
4c1547ff5459 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6845
diff changeset
  6976
    "/ x/y will be set in simulateUserEvent:ev at:aPoint
6864
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6977
    ^ self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
5775
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6978
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6979
    "Created: / 12-07-2011 / 14:54:37 / cg"
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6980
!
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  6981
6854
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  6982
simulateKeyPress:keyOrStringOrSymbol at:aPoint
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  6983
    "simulate a key press by determining which sub-view is affected and
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  6984
     synthetically generating a keyPressEvent for whatever view is underneath.
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  6985
     Returns the view which processed the event or nil."
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  6986
6864
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6987
    ^ self simulateKeyPress:keyOrStringOrSymbol at:aPoint sendDisplayEvent:false
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6988
!
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6989
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6990
simulateKeyPress:keyOrStringOrSymbol at:aPoint sendDisplayEvent:sendDisplayEvent
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6991
    "simulate a key press by determining which sub-view is affected and
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6992
     synthetically generating a keyPressEvent for whatever view is underneath.
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6993
     Returns the view which processed the event or nil."
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  6994
6854
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  6995
    |sequence ev lastView|
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  6996
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  6997
    (keyOrStringOrSymbol isCharacter or:[keyOrStringOrSymbol isSymbol])
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6998
	ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  6999
	ifFalse:[ sequence := keyOrStringOrSymbol ].
6854
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7000
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7001
    sequence do:[:each |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7002
	ev := WindowEvent keyPress:each x:0 y:0 view:self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7003
	"/ x/y will be set in simulateUserEvent:ev at:aPoint
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7004
	lastView := self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
6854
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7005
    ].
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7006
    ^ lastView
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7007
!
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7008
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7009
simulateKeyPressRelease:keyOrStringOrSymbol at:aPoint
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7010
    "simulate a key release by determining which sub-view is affected and
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7011
     synthetically generating a keyPressEvent for whatever view is underneath.
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7012
     Returns the view which processed the event or nil."
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7013
6864
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7014
    ^ self simulateKeyPressRelease:keyOrStringOrSymbol at:aPoint sendDisplayEvent:false
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7015
!
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7016
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7017
simulateKeyPressRelease:keyOrStringOrSymbol at:aPoint sendDisplayEvent:sendDisplayEvent
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7018
    "simulate a key release by determining which sub-view is affected and
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7019
     synthetically generating a keyPressEvent for whatever view is underneath.
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7020
     Returns the view which processed the event or nil."
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7021
6854
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7022
    |sequence ev1 ev2 lastView|
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7023
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7024
    (keyOrStringOrSymbol isCharacter or:[keyOrStringOrSymbol isSymbol])
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7025
	ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7026
	ifFalse:[ sequence := keyOrStringOrSymbol ].
6854
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7027
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7028
    sequence do:[:each |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7029
	ev1 := WindowEvent keyPress:each x:0 y:0 view:self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7030
	"/ x/y will be set in simulateUserEvent:ev at:aPoint
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7031
	lastView := self simulateUserEvent:ev1 at:aPoint sendDisplayEvent:sendDisplayEvent.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7032
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7033
	ev2 := WindowEvent keyRelease:each x:0 y:0 view:self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7034
	"/ x/y will be set in simulateUserEvent:ev at:aPoint
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7035
	lastView := self simulateUserEvent:ev2 at:aPoint sendDisplayEvent:sendDisplayEvent.
6854
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7036
    ].
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7037
    ^ lastView
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7038
!
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7039
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7040
simulateKeyRelease:keyOrStringOrSymbol at:aPoint
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7041
    "simulate a key release by determining which sub-view is affected and
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7042
     synthetically generating a keyPressEvent for whatever view is underneath.
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7043
     Returns the view which processed the event or nil."
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7044
6864
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7045
    ^ self simulateKeyRelease:keyOrStringOrSymbol at:aPoint sendDisplayEvent:false
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7046
!
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7047
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7048
simulateKeyRelease:keyOrStringOrSymbol at:aPoint sendDisplayEvent:sendDisplayEvent
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7049
    "simulate a key release by determining which sub-view is affected and
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7050
     synthetically generating a keyPressEvent for whatever view is underneath.
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7051
     Returns the view which processed the event or nil."
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7052
6854
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7053
    |sequence ev lastView|
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7054
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7055
    (keyOrStringOrSymbol isCharacter or:[keyOrStringOrSymbol isSymbol])
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7056
	ifTrue:[ sequence := Array with:keyOrStringOrSymbol ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7057
	ifFalse:[ sequence := keyOrStringOrSymbol ].
6854
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7058
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7059
    sequence do:[:each |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7060
	ev := WindowEvent keyRelease:each x:0 y:0 view:self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7061
	"/ x/y will be set in simulateUserEvent:ev at:aPoint
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7062
	lastView := self simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
6854
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7063
    ].
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7064
    ^ lastView
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7065
!
e0fc5d0dfc25 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6853
diff changeset
  7066
5775
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  7067
simulateUserEvent:ev at:aPoint
6291
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  7068
    "simulate a button press by determining which sub-view is affected and
6855
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7069
     synthetically generating a buttonPressEvent for whatever view is underneath.
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7070
     Cares for any active grab - i.e. if some other view has grabbed the pointer or keyboard
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7071
     the event is sent to the grabView with pointer coordinate translated as required
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7072
     (typically these are popup views like menus)
5775
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  7073
     Returns the view which precessed the event or nil."
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  7074
6864
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7075
    ^ self simulateUserEvent:ev at:aPoint sendDisplayEvent:false
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7076
!
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7077
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7078
simulateUserEvent:ev at:aPoint sendDisplayEvent:sendDisplayEvent
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7079
    "simulate a button press by determining which sub-view is affected and
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7080
     synthetically generating a buttonPressEvent for whatever view is underneath.
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7081
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7082
     If sendDisplayEvent is true, a real physical event is generated via sendEvent,
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7083
     from the Display (xserver). Otherwise, the event is pushed into the widget's event
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7084
     queue, without a roundtrip through the display.
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7085
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7086
     Otherwise, care for any active grab - i.e. if some other view has grabbed the pointer or keyboard
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7087
     the event is sent to the grabView with pointer coordinate translated as required
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7088
     (typically these are popup views like menus)
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7089
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7090
     Returns the view which processed the event or nil. For displayEvent sending,
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7091
     always return the receiver, as we do not know how the grab processing came out at the end"
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7092
6855
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7093
    |targetView pointXLated|
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7094
6864
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7095
    sendDisplayEvent ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7096
	"/ translate to screen coordinates
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7097
	pointXLated := device translatePoint:aPoint from:(self id) to:(device rootWindowId).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7098
	device
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7099
	    sendKeyOrButtonEvent:ev type
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7100
	    x:pointXLated x y:pointXLated y
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7101
	    keyOrButton:(ev isKeyEvent ifTrue:[ev rawKey] ifFalse:[ev button])
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7102
	    state:(ev modifierFlags)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7103
	    toViewId:self id.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7104
	^ self.
6864
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7105
    ].
ab6d4dbee1ce class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6863
diff changeset
  7106
6856
36d81d2f7228 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6855
diff changeset
  7107
    (ev isButtonEvent or:[ev isPointerEnterLeaveEvent]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7108
	"/ if there is a pointer grab, the event has to sent to that one
6857
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6852 6856
diff changeset
  7109
        targetView := self device activePointerGrab.
6855
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7110
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7111
	(ev isKeyEvent) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7112
	    "/ if there is a pointer grab, the event has to sent to that one
6857
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6852 6856
diff changeset
  7113
            targetView := self device activeKeyboardGrab.
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7114
	].
6855
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7115
    ].
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7116
    targetView isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7117
	((0@0 corner:self extent) containsPoint:aPoint) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7118
	    self subViews do:[:each |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7119
		|whichView|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7120
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7121
		whichView := each simulateUserEvent:ev at:(device translatePoint:aPoint fromView:self toView:each).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7122
		whichView notNil ifTrue:[^ whichView].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7123
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7124
	    targetView := self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7125
	].
6855
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7126
    ].
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7127
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7128
    targetView notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7129
	pointXLated := device translatePoint:aPoint fromView:self toView:targetView.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7130
	ev x:(pointXLated x).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7131
	ev y:(pointXLated y).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7132
	ev view:targetView.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7133
	targetView sensor pushEvent:ev.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7134
	^ targetView
6855
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7135
    ].
02ba4d520821 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6854
diff changeset
  7136
5774
56671ce7160c added: #simulateButtonPress:at:
Claus Gittinger <cg@exept.de>
parents: 5770
diff changeset
  7137
    ^ nil
56671ce7160c added: #simulateButtonPress:at:
Claus Gittinger <cg@exept.de>
parents: 5770
diff changeset
  7138
5775
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
  7139
    "Created: / 12-07-2011 / 14:53:19 / cg"
5774
56671ce7160c added: #simulateButtonPress:at:
Claus Gittinger <cg@exept.de>
parents: 5770
diff changeset
  7140
!
56671ce7160c added: #simulateButtonPress:at:
Claus Gittinger <cg@exept.de>
parents: 5770
diff changeset
  7141
4347
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7142
startButtonLongPressedHandlerProcess
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7143
    "start a process, which simulates a right-button press if the left-button
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7144
     has been pressed, but not released, and stayed pressed for a while.
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7145
     This is very handy for single-button-mice, as used with the MAC"
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7146
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7147
    |p|
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7148
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7149
    self stopButtonLongPressedHandlerProcess.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  7150
    p :=
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7151
	[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7152
	    Delay waitForSeconds:0.7.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7153
	    self sensor leftButtonPressed ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7154
		"/ simulate a right-button press
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7155
		self buttonPress:2 x:0 y:0
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7156
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7157
	] newProcess.
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  7158
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  7159
    device buttonLongPressedHandlerProcess:p.
4347
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7160
    p resume.
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7161
!
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7162
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7163
stopButtonLongPressedHandlerProcess
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7164
    "stop any long-button-pressed process"
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7165
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7166
    |p|
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7167
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  7168
    (p := device buttonLongPressedHandlerProcess) notNil ifTrue:[
4347
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7169
"/ Transcript showCR:'stop'.
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7170
	device buttonLongPressedHandlerProcess:nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7171
	p terminate.
4347
528ba872cca6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4345
diff changeset
  7172
    ].
1302
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  7173
! !
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  7174
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7175
!SimpleView methodsFor:'focus handling'!
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7176
6789
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7177
assignKeyboardFocusTo:aConsumer
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7178
    |wg|
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7179
6792
b086ceb76f72 bugfix - check if windowGroup is nil
Michael Beyl <mb@exept.de>
parents: 6789
diff changeset
  7180
    wg := self windowGroup.
b086ceb76f72 bugfix - check if windowGroup is nil
Michael Beyl <mb@exept.de>
parents: 6789
diff changeset
  7181
    wg notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7182
	device isWindowsPlatform ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7183
	    wg focusView:aConsumer byTab:true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7184
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7185
	    aConsumer requestFocus.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7186
	    "/ consumer requestFocus. - could be denied; but we force it here
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7187
	    wg focusView:aConsumer byTab:false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7188
	].
6789
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7189
    ].
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7190
!
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7191
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7192
assignKeyboardFocusToFirstInputField
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7193
    "assign the keyboard focus to the first first keyboardConsumer.
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7194
     (in older versions, this used to favour inputfields over editFields;
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7195
      see (or redefine) preferFirstInputFieldWhenAssigningInitialFocus)"
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7196
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7197
    self obsoleteMethodWarning.
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7198
    self assignKeyboardFocusToFirstKeyboardConsumer
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7199
!
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7200
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7201
assignKeyboardFocusToFirstKeyboardConsumer
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7202
    "assign the keyboard focus to the first first keyboardConsumer.
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7203
     (in older versions, this used to favour inputfields over editFields;
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7204
      see (or redefine) preferFirstInputFieldWhenAssigningInitialFocus)"
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7205
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7206
    |firstInputField firstConsumer firstCursorConsumer consumer|
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7207
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7208
    self withAllSubViewsDo:[:v |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7209
	v shown ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7210
	    (firstInputField isNil and:[v isInputField]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7211
		firstInputField := v
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7212
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7213
	    (firstConsumer isNil and:[v isKeyboardConsumer]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7214
		firstConsumer := v
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7215
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7216
	    (firstCursorConsumer isNil and:[v isCursorKeyConsumer]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7217
		firstCursorConsumer := v
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7218
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7219
	].
6789
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7220
    ].
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7221
    (firstInputField notNil and:[self preferFirstInputFieldWhenAssigningInitialFocus]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7222
	consumer := firstInputField.
6789
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7223
    ].
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7224
    consumer := (consumer ? firstConsumer ? firstCursorConsumer).
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7225
    "/ Transcript showCR:consumer.
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7226
    consumer notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7227
	self assignKeyboardFocusTo:consumer
6789
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7228
    ].
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7229
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7230
    "Modified: / 29-08-2006 / 14:32:30 / cg"
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7231
!
a1d3aeba44c8 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6778
diff changeset
  7232
3150
547754678cb9 add new method(s) canTab(:)
ca
parents: 3139
diff changeset
  7233
canTab
4446
49376dd5489f dont want 'em ugly comments !!!!!
Claus Gittinger <cg@exept.de>
parents: 4433
diff changeset
  7234
    "returns true if the widget is tabable"
49376dd5489f dont want 'em ugly comments !!!!!
Claus Gittinger <cg@exept.de>
parents: 4433
diff changeset
  7235
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7236
    "/ ^ canTab == true
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7237
    ^ flagBits bitTest:FlagCanTab
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7238
!
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7239
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7240
canTab:aBoolean
4446
49376dd5489f dont want 'em ugly comments !!!!!
Claus Gittinger <cg@exept.de>
parents: 4433
diff changeset
  7241
    "set widget tabable or not"
49376dd5489f dont want 'em ugly comments !!!!!
Claus Gittinger <cg@exept.de>
parents: 4433
diff changeset
  7242
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7243
    "/ canTab := aBoolean
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7244
    aBoolean ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7245
	flagBits := flagBits bitOr:FlagCanTab
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7246
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7247
	flagBits := flagBits bitClear:FlagCanTab
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7248
    ].
3150
547754678cb9 add new method(s) canTab(:)
ca
parents: 3139
diff changeset
  7249
!
547754678cb9 add new method(s) canTab(:)
ca
parents: 3139
diff changeset
  7250
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7251
doNotRequestFocusOnPointerEnter
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7252
    "returns true if widget SHOULD NOT request the focus on pointer enter;
4446
49376dd5489f dont want 'em ugly comments !!!!!
Claus Gittinger <cg@exept.de>
parents: 4433
diff changeset
  7253
     if false is returned, the behavior depends upon the settings."
49376dd5489f dont want 'em ugly comments !!!!!
Claus Gittinger <cg@exept.de>
parents: 4433
diff changeset
  7254
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7255
    ^ flagBits bitTest:FlagDoNotRequestFocusOnPointerEnter
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7256
!
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7257
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7258
doNotRequestFocusOnPointerEnter:aBoolean
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7259
    "if true, setup that the widget SHOULD NOT request the focus on pointer enter;
4446
49376dd5489f dont want 'em ugly comments !!!!!
Claus Gittinger <cg@exept.de>
parents: 4433
diff changeset
  7260
     if false, the behavior depends upon the settings."
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7261
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7262
    aBoolean ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7263
	flagBits := flagBits bitOr:FlagDoNotRequestFocusOnPointerEnter
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7264
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7265
	flagBits := flagBits bitClear:FlagDoNotRequestFocusOnPointerEnter
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7266
    ].
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7267
!
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7268
3155
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7269
focusNext
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7270
    "get next focus view to self
4734
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7271
     Skip invisible, disabled or widgets the extent is to small"
4446
49376dd5489f dont want 'em ugly comments !!!!!
Claus Gittinger <cg@exept.de>
parents: 4433
diff changeset
  7272
4736
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7273
    shown ifFalse:[^ nil].
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7274
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7275
    ^ self focusNextForWhich:[:v | v shown]
4734
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7276
!
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7277
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7278
focusNextChildAfter:aChildView
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7279
    "get the next focus view after aChildView in mySelf or nil,
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7280
     if there is none.
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7281
     Skip invisible or disabled widgets"
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7282
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7283
    |viewInSubView index subviewsInFocusOrder|
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7284
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7285
    shown ifFalse:[ ^ nil ].
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7286
    subViews isNil ifTrue:[ ^ nil ].
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7287
    subviewsInFocusOrder := self subviewsInFocusOrder.
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7288
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7289
    index := subviewsInFocusOrder identityIndexOf:aChildView.
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7290
    index == 0 ifTrue:[ ^ nil ].
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7291
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7292
    subviewsInFocusOrder from:(index + 1) do:[:eachChildAfterTheOne |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7293
	eachChildAfterTheOne shown ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7294
	    (eachChildAfterTheOne canTab
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7295
	    and:[eachChildAfterTheOne enabled]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7296
		^ eachChildAfterTheOne
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7297
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7298
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7299
	    (viewInSubView := eachChildAfterTheOne focusNext) notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7300
		^ viewInSubView
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7301
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7302
	].
3155
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7303
    ].
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7304
    ^ nil
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7305
!
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7306
4736
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7307
focusNextForWhich:aCondition
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7308
    "get next focus view to self
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7309
     Skip invisible, disabled or widgets the extent is to small"
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7310
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7311
    |viewInSubView|
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7312
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7313
    self subviewsInFocusOrder do:[:aSubView|
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7314
	(aSubView canTab
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7315
	and:[aSubView enabled
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7316
	and:[aCondition value:aSubView]]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7317
	    ^ aSubView
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7318
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7319
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7320
	(viewInSubView := aSubView focusNextForWhich:aCondition) notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7321
	    ^ viewInSubView
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7322
	]
4736
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7323
    ].
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7324
    ^ nil
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7325
!
a17606a09947 focus handling
ca
parents: 4734
diff changeset
  7326
3155
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7327
focusPrevious
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7328
    "get previous focus view to self
4446
49376dd5489f dont want 'em ugly comments !!!!!
Claus Gittinger <cg@exept.de>
parents: 4433
diff changeset
  7329
     Skip invisible & disabled widgets."
49376dd5489f dont want 'em ugly comments !!!!!
Claus Gittinger <cg@exept.de>
parents: 4433
diff changeset
  7330
3155
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7331
    |viewInSubView|
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7332
4734
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7333
    shown ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7334
	self subviewsInFocusOrder reverseDo:[:aSubView|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7335
	    aSubView shown ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7336
		viewInSubView := aSubView focusPrevious.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7337
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7338
		viewInSubView notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7339
		    ^ viewInSubView
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7340
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7341
		(aSubView canTab and:[aSubView enabled]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7342
		    ^ aSubView
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7343
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7344
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7345
	]
4734
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7346
    ].
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7347
    ^ nil
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7348
!
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7349
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7350
focusPreviousChildBefore:aChildView
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7351
    "get the previous focus view before aChildView in mySelf or nil, if there is none.
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7352
     Skip invisible or disabled widgets"
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7353
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7354
    |viewInSubView index subviewsInFocusOrder|
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7355
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7356
    shown ifFalse:[ ^ nil ].
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7357
    subViews isNil ifTrue:[ ^ nil ].
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7358
    subviewsInFocusOrder := self subviewsInFocusOrder.
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7359
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7360
    index := subviewsInFocusOrder identityIndexOf:aChildView.
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7361
    index == 0 ifTrue:[ ^ nil ].
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7362
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7363
    subviewsInFocusOrder from:1 to:(index - 1) reverseDo:[:eachChildBeforeTheOne |
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7364
	eachChildBeforeTheOne shown ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7365
	    (viewInSubView := eachChildBeforeTheOne focusPrevious) notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7366
		^ viewInSubView
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7367
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7368
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7369
	    (eachChildBeforeTheOne canTab and:[eachChildBeforeTheOne enabled]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7370
		^ eachChildBeforeTheOne
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7371
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7372
	].
4734
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7373
    ].
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7374
    "/ the code below allows for a notebooks tab-list to be reached
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7375
    (self canTab and:[self enabled]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7376
	^ self
4734
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7377
    ].
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7378
3155
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7379
    ^ nil
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7380
!
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  7381
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7382
requestDoNotFocusOnPointerEnter
5924
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7383
    <resource: #obsolete>
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7384
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7385
    self obsoleteMethodWarning:'use doNotRequestFocusOnPointerEnter'.
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7386
    ^ flagBits bitTest:FlagDoNotRequestFocusOnPointerEnter
5924
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7387
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7388
    "Modified: / 01-08-2012 / 17:05:56 / cg"
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7389
!
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7390
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7391
requestDoNotFocusOnPointerEnter:aBoolean
5924
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7392
    "very bad naming - wrong english"
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7393
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7394
    <resource: #obsolete>
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7395
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7396
    self obsoleteMethodWarning:'use doNotRequestFocusOnPointerEnter:'.
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7397
    self doNotRequestFocusOnPointerEnter:aBoolean
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7398
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7399
    "Modified (format): / 01-08-2012 / 17:05:42 / cg"
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7400
!
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7401
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7402
requestFocus
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7403
    "request focus from my windowGroup;
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7404
     typically, this is invoked when the mouse pointer enters a
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7405
     widget. The request may or may not be ignored by the wGroup
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7406
     (it will be ignored, if an explicit focus-change is currently
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7407
      active - i.e. if the user tabbed into a widget)"
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7408
5924
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7409
    "/ Transcript show:'take: '; showCR:self.
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7410
    windowGroup notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7411
	^ windowGroup focusRequestFrom:self
5924
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7412
    ].
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7413
    "/ Transcript show:'oops: '; showCR:self.
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7414
    ^ true
5664
4546b913860e comment/format in: #mapped
Claus Gittinger <cg@exept.de>
parents: 5663
diff changeset
  7415
5665
f901e164a7ba changed: #requestFocus
Claus Gittinger <cg@exept.de>
parents: 5664
diff changeset
  7416
    "Modified: / 09-12-2010 / 14:33:40 / cg"
5924
50df967c642d #requestDoNotFocusOnPointerEnter
Claus Gittinger <cg@exept.de>
parents: 5913
diff changeset
  7417
    "Modified (format): / 01-08-2012 / 17:02:30 / cg"
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7418
!
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7419
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7420
requestFocusOnPointerEnter
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7421
    "returns true if widget SHOULD request the focus on pointer enter;
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7422
     if false is returned, the behavior depends upon the settings.
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7423
    "
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7424
    ^ flagBits bitTest:FlagRequestFocusOnPointerEnter
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7425
!
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7426
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7427
requestFocusOnPointerEnter:aBoolean
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7428
    "if true, setup that the widget SHOULD request the focus on pointer enter;
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7429
     if false, the behavior depends upon the settings.
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7430
    "
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7431
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7432
    aBoolean ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7433
	flagBits := flagBits bitOr:FlagRequestFocusOnPointerEnter
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7434
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7435
	flagBits := flagBits bitClear:FlagRequestFocusOnPointerEnter
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7436
    ].
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7437
!
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  7438
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7439
showFocus:explicit
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7440
    "highlight myself somehow to tell user that I have the focus.
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7441
     If explicit is true, the focus came via focusStepping (i.e. tabbing);
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7442
     if false, it came via the window manager (i.e. pointer entering).
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7443
     Only change my border, if this is an explicit focusChange."
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7444
6640
a0abbda92054 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6637
diff changeset
  7445
    |delta clrId bd graphicsDevice|
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7446
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7447
    explicit ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7448
	(self drawableId notNil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7449
	and:[superView notNil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7450
	and:[styleSheet notNil]]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7451
	    (styleSheet at:#'focus.showBorder' default:true) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7452
		graphicsDevice := device.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7453
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7454
		(graphicsDevice supportsWindowBorder:(bd := DefaultFocusBorderWidth)) ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7455
		    (graphicsDevice supportsWindowBorder:(bd := 1)) ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7456
			bd := 0.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7457
		    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7458
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7459
		delta := bd - self borderWidth.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7460
		delta ~~ 0 ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7461
		    (left == 0 or:[top == 0]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7462
			graphicsDevice resizeWindow:self drawableId width:width-delta-delta height:height-delta-delta.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7463
		    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7464
			graphicsDevice moveWindow:self drawableId x:left-delta y:top-delta.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7465
		    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7466
		    graphicsDevice setWindowBorderWidth:bd in:self drawableId.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7467
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7468
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7469
		clrId := (DefaultFocusColor onDevice:graphicsDevice) colorId.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7470
		clrId isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7471
		    clrId := graphicsDevice blackpixel
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7472
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7473
		graphicsDevice setWindowBorderColor:clrId in:self drawableId.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7474
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7475
	]
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7476
    ] ifFalse:[
2560
a19faec26261 showFocus/showNoFocus
Claus Gittinger <cg@exept.de>
parents: 2559
diff changeset
  7477
"/        superView notNil ifTrue:[
a19faec26261 showFocus/showNoFocus
Claus Gittinger <cg@exept.de>
parents: 2559
diff changeset
  7478
"/            superView showFocus:explicit
a19faec26261 showFocus/showNoFocus
Claus Gittinger <cg@exept.de>
parents: 2559
diff changeset
  7479
"/        ]
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7480
    ]
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7481
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7482
    "Modified: / 17.9.1998 / 15:08:34 / cg"
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7483
!
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7484
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7485
showNoFocus:explicit
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7486
    "undo the effect of showFocus.
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7487
     Explicit tells if the focus came via focusStepping (i.e. tabbing)
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7488
     or via the window manager (i.e. pointer entering).
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7489
     Only change my border, if this is an explicit focusChange."
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7490
6640
a0abbda92054 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6637
diff changeset
  7491
    |delta bd graphicsDevice|
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7492
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7493
    explicit ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7494
	(self drawableId notNil and:[superView notNil]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7495
	    (styleSheet at:#'focus.showBorder' default:true) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7496
		graphicsDevice := device.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7497
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7498
		(graphicsDevice supportsWindowBorder:(bd := self borderWidth)) ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7499
		    (graphicsDevice supportsWindowBorder:(bd := 1)) ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7500
			bd := 0.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7501
		    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7502
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7503
		delta := DefaultFocusBorderWidth - bd.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7504
		delta ~~ 0 ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7505
		    graphicsDevice setWindowBorderWidth:bd in:self drawableId.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7506
		    graphicsDevice moveWindow:self drawableId x:left y:top.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7507
		    graphicsDevice resizeWindow:self drawableId width:width height:height.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7508
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7509
		self setBorderColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7510
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7511
	]
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7512
    ]
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7513
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7514
    "Modified: / 17.9.1998 / 15:08:02 / cg"
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7515
!
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7516
4734
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7517
subviewsInFocusOrder
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7518
    ^ subViews ? #()
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7519
!
cad9cacb9cde focus handling changed: looking for subviewsInFocusOrder
ca
parents: 4720
diff changeset
  7520
4425
7b2d529158e1 +takeFocus
Claus Gittinger <cg@exept.de>
parents: 4407
diff changeset
  7521
takeFocus
7b2d529158e1 +takeFocus
Claus Gittinger <cg@exept.de>
parents: 4407
diff changeset
  7522
    "Unconditionally take the focus from my windowGroup"
7b2d529158e1 +takeFocus
Claus Gittinger <cg@exept.de>
parents: 4407
diff changeset
  7523
7b2d529158e1 +takeFocus
Claus Gittinger <cg@exept.de>
parents: 4407
diff changeset
  7524
    windowGroup notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7525
	windowGroup focusView:self byTab:nil "/false.
4425
7b2d529158e1 +takeFocus
Claus Gittinger <cg@exept.de>
parents: 4407
diff changeset
  7526
    ].
7b2d529158e1 +takeFocus
Claus Gittinger <cg@exept.de>
parents: 4407
diff changeset
  7527
!
7b2d529158e1 +takeFocus
Claus Gittinger <cg@exept.de>
parents: 4407
diff changeset
  7528
5663
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7529
takeFocusWhenMapped
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7530
    ^ flagBits bitTest:FlagTakeFocusWhenMapped
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7531
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7532
    "Created: / 09-12-2010 / 10:34:30 / cg"
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7533
!
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7534
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7535
takeFocusWhenMapped:aBoolean
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7536
    aBoolean ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7537
	flagBits := flagBits bitOr:FlagTakeFocusWhenMapped
5663
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7538
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7539
	flagBits := flagBits bitClear:FlagTakeFocusWhenMapped
5663
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7540
    ].
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7541
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7542
    "Created: / 09-12-2010 / 10:34:11 / cg"
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7543
!
e72ce3f3ae68 focus handling when mapped
Claus Gittinger <cg@exept.de>
parents: 5662
diff changeset
  7544
5667
c065259f0d5c added: #topViewWasMapped
Claus Gittinger <cg@exept.de>
parents: 5665
diff changeset
  7545
topViewWasMapped
c065259f0d5c added: #topViewWasMapped
Claus Gittinger <cg@exept.de>
parents: 5665
diff changeset
  7546
    "invoked when my topView is mapped"
c065259f0d5c added: #topViewWasMapped
Claus Gittinger <cg@exept.de>
parents: 5665
diff changeset
  7547
c065259f0d5c added: #topViewWasMapped
Claus Gittinger <cg@exept.de>
parents: 5665
diff changeset
  7548
    self isKeyboardConsumer ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7549
	self takeFocusWhenMapped ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7550
	    self requestFocus
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7551
	]
5667
c065259f0d5c added: #topViewWasMapped
Claus Gittinger <cg@exept.de>
parents: 5665
diff changeset
  7552
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7553
	subViews notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7554
	    subViews do:[:eachSubView |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7555
		eachSubView topViewWasMapped
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7556
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7557
	].
5667
c065259f0d5c added: #topViewWasMapped
Claus Gittinger <cg@exept.de>
parents: 5665
diff changeset
  7558
    ].
c065259f0d5c added: #topViewWasMapped
Claus Gittinger <cg@exept.de>
parents: 5665
diff changeset
  7559
c065259f0d5c added: #topViewWasMapped
Claus Gittinger <cg@exept.de>
parents: 5665
diff changeset
  7560
    "Created: / 09-12-2010 / 18:11:51 / cg"
c065259f0d5c added: #topViewWasMapped
Claus Gittinger <cg@exept.de>
parents: 5665
diff changeset
  7561
!
c065259f0d5c added: #topViewWasMapped
Claus Gittinger <cg@exept.de>
parents: 5665
diff changeset
  7562
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7563
wantsFocusWithButtonPress
2741
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  7564
    "views which do not like to take the keyboard focus
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  7565
     with buttonPress can do so by redefining this
6291
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  7566
     to return false
6127
e0dd6ee24d9e class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6126
diff changeset
  7567
     (actually: they should, because it is quite annoying
6649
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  7568
      in the UI, if a menuPanel or button takes my keyboard focus.
88f48ade4b42 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6644
diff changeset
  7569
      So we should consider making the default false here, so every
6127
e0dd6ee24d9e class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6126
diff changeset
  7570
      widget writer has to think twice...
e0dd6ee24d9e class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6126
diff changeset
  7571
      Can we do such a major change?)"
2741
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  7572
5654
3039f635dcba changed: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 5639
diff changeset
  7573
"/    (self class == SimpleView) ifTrue:[
3039f635dcba changed: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 5639
diff changeset
  7574
"/        "/ a pure filler/geometric layout view
3039f635dcba changed: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 5639
diff changeset
  7575
"/        ^ false
3039f635dcba changed: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 5639
diff changeset
  7576
"/    ].
3581
72e09769d372 do not take focus when disabled
Claus Gittinger <cg@exept.de>
parents: 3559
diff changeset
  7577
    ^ self enabled
5654
3039f635dcba changed: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 5639
diff changeset
  7578
3039f635dcba changed: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 5639
diff changeset
  7579
    "Modified: / 17-11-2010 / 16:07:01 / cg"
2741
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  7580
!
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  7581
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  7582
wantsFocusWithPointerEnter
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7583
    "views which like to take the keyboard focus
2741
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  7584
     when the pointer enters can do so by redefining this
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7585
     to return true"
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7586
2741
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  7587
    ^ false
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7588
! !
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7589
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7590
!SimpleView methodsFor:'grabbing'!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7591
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7592
forceUngrabKeyboard
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7593
    "force a keyboard ungrab - even if was not the grabber"
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7594
7554
f3bcd1141929 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7547
diff changeset
  7595
    device notNil ifTrue:[ gc device ungrabKeyboard ].
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7596
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7597
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7598
forceUngrabPointer
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7599
    "force a pointer ungrab - even if was not the grabber"
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7600
7554
f3bcd1141929 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7547
diff changeset
  7601
    device notNil ifTrue:[ device ungrabPointer ]
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7602
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7603
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7604
grabKeyboard
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  7605
    "grab the keayboard - that is: report all keyboard events to myself,
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7606
     even if the mouse moved out of myself.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7607
     Returns true, if the grab was sucessfull (could fail, if some other
7586
53e42e99e908 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7570
diff changeset
  7608
     application has a grab - but that's very unlikely)."
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7609
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  7610
    ^ device grabKeyboardInView:self.
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7611
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7612
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7613
grabPointer
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7614
    "grab the pointer - that is: report all motion events relative to
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7615
     myself, even if moved out of myself.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7616
     Returns true, if the grab was sucessfull (could fail, if some other
7586
53e42e99e908 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7570
diff changeset
  7617
     application has a grab - but that's very unlikely)."
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7618
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7619
    ^ self grabPointerWithCursor:nil
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7620
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7621
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7622
grabPointerWithCursor:aCursorOrNil
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7623
    "grab the pointer - that is: report all motion events relative to
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7624
     myself, even if moved out of myself.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7625
     Show aCursor during the grab, if the cursor argument is not nil.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7626
     Returns true, if the grab was sucessfull (could fail, if some other
7586
53e42e99e908 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7570
diff changeset
  7627
     application has a grab - but that's very unlikely)."
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7628
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7629
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7630
"/    (sensor := self sensor) notNil ifTrue:[
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7631
"/        "/ make certain all X events have been received
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7632
"/        device sync.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7633
"/        "/ now all events have been received.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7634
"/        "/ now, flush all pointer events
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7635
"/        sensor flushMotionEventsFor:nil
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7636
"/    ].
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7637
    aCursorOrNil notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7638
	cursor := (aCursorOrNil onDevice:device).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7639
	^ device grabPointerInView:self withCursor:cursor
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  7640
    ].
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  7641
    ^ device grabPointerInView:self
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7642
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7643
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7644
ungrabKeyboard
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7645
    "ungrab the keyboard - but only if I was the grabber"
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7646
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7647
    |sensor|
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7648
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  7649
    device activeKeyboardGrab == self ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7650
	(sensor := self sensor) notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7651
	    "/ make certain all X events have been received
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7652
	    device sync.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7653
	    "/ now all events have been received.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7654
	    "/ now, flush all pointer events
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7655
	    sensor flushKeyboardFor:self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7656
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7657
	device ungrabKeyboard.
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  7658
    ].
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7659
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7660
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7661
ungrabPointer
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7662
    "ungrab the pointer - but only if I was the grabber"
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7663
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7664
    |sensor|
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7665
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  7666
    device activePointerGrab == self ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7667
	(sensor := self sensor) notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7668
	    "/ make certain all X events have been received
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7669
	    device sync.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7670
	    "/ now all events have been received.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7671
	    "/ now, flush all pointer events
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7672
	    sensor flushMotionEventsFor:self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7673
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7674
	device ungrabPointer.
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7675
    ]
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7676
! !
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7677
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7678
!SimpleView methodsFor:'informing others of changes'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7679
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7680
contentsChanged
6090
d4a3672f917c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6087
diff changeset
  7681
    "this one is sent, whenever contents changes its size -
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7682
     tell dependents about the change (i.e. scrollers)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7683
7397
11bd586c3a73 #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7378
diff changeset
  7684
    dependents notNil ifTrue:[ self changed:#sizeOfContents ]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7685
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7686
3383
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7687
noticeOfWindowClose
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7688
    |app|
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7689
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7690
    (app := self application) notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7691
	app noticeOfWindowClose:self
3383
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7692
    ].
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7693
!
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7694
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7695
noticeOfWindowOpen
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7696
    |app|
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7697
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7698
    (app := self application) notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7699
	app noticeOfWindowOpen:self
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  7700
    ].
7397
11bd586c3a73 #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7378
diff changeset
  7701
    dependents notNil ifTrue:[ self changed:#opened ] 
3383
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7702
!
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7703
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7704
originChanged:delta
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7705
    "this one is sent, after the origin of my contents has changed -
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7706
     tell dependents (i.e. scrollers) about this"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7707
3510
f8d3abbf10d5 *** empty log message ***
frank
parents: 3485
diff changeset
  7708
    (delta = (0@0)) ifTrue:[^ self].
7397
11bd586c3a73 #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7378
diff changeset
  7709
    dependents notNil ifTrue:[ self changed:#originOfContents with:delta ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7710
"/   subViews notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7711
"/        subViews do:[:aSubView |
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7712
"/            aSubView pixelOrigin:((aSubView left @ aSubView top) - delta)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7713
"/        ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7714
"/    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7715
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7716
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7717
originWillChange
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7718
    "this one is sent, just before viewOrigin changes -
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7719
     gives subclasses a chance to catch scrolls easily
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7720
     (for example to hide cursor before scroll)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7721
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7722
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7723
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7724
3165
Claus Gittinger <cg@exept.de>
parents: 3164
diff changeset
  7725
!SimpleView methodsFor:'initialization & release'!
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7726
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7727
defaultControllerClass
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7728
    ^ nil "/ Controller
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7729
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7730
483
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  7731
defaultExtent
586
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  7732
    "return the default extent of my instances."
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  7733
483
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  7734
    ^ self class defaultExtent
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  7735
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  7736
    "Created: 1.3.1996 / 19:20:46 / cg"
586
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  7737
    "Modified: 22.4.1996 / 23:38:27 / cg"
483
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  7738
!
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  7739
3662
faf50c1021e0 defaultFont
Michael Beyl <mb@exept.de>
parents: 3653
diff changeset
  7740
defaultFont
faf50c1021e0 defaultFont
Michael Beyl <mb@exept.de>
parents: 3653
diff changeset
  7741
    ^ self class defaultFont
faf50c1021e0 defaultFont
Michael Beyl <mb@exept.de>
parents: 3653
diff changeset
  7742
!
faf50c1021e0 defaultFont
Michael Beyl <mb@exept.de>
parents: 3653
diff changeset
  7743
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7744
destroy
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7745
    "unmap & destroy - make me invisible, destroy subviews then
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7746
     make me unknown to the device"
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7747
7094
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
  7748
    self isBeingDestroyed:true.
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7749
    realized ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7750
	self unmap.
5087
a66493cf7fdd sending of visibility-change fixed
Claus Gittinger <cg@exept.de>
parents: 5082
diff changeset
  7751
    ].
a66493cf7fdd sending of visibility-change fixed
Claus Gittinger <cg@exept.de>
parents: 5082
diff changeset
  7752
    shown ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7753
	shown := false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7754
	dependents notNil ifTrue:[ self changed:#visibility ].
5087
a66493cf7fdd sending of visibility-change fixed
Claus Gittinger <cg@exept.de>
parents: 5082
diff changeset
  7755
    ].
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7756
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7757
"/    controller notNil ifTrue:[
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7758
"/      controller release.
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7759
"/      controller := nil.
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7760
"/    ].
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7761
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7762
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7763
	self destroySubViews.
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7764
    ].
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7765
    superView notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7766
	superView removeSubView:self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7767
	superView := nil
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7768
    ].
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7769
    super destroy.
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7770
7397
11bd586c3a73 #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7378
diff changeset
  7771
    dependents notNil ifTrue:[ self changed:#destroyed ]. "/ must do before release, which clears the dependents
3709
7f3f08a3607d flush in #unmap
Claus Gittinger <cg@exept.de>
parents: 3708
diff changeset
  7772
    self release.
7f3f08a3607d flush in #unmap
Claus Gittinger <cg@exept.de>
parents: 3708
diff changeset
  7773
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7774
"/    superView isNil ifTrue:[
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7775
"/        device flush
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7776
"/    ].
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7777
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7778
    controller notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7779
	controller release.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7780
	controller := nil.
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7781
    ].
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7782
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7783
    windowGroup notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7784
	windowGroup removeView:self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7785
	windowGroup := nil
3383
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7786
    ].
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7787
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  7788
    self noticeOfWindowClose.
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7789
!
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  7790
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7791
initEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7792
    "will be sent by create - can be redefined by subclasses to enable
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7793
     view events"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7794
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7795
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7796
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7797
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7798
initStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7799
    "this method sets up all style dependent things"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7800
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7801
    self initStyleSheet.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7802
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7803
    viewBackground := DefaultViewBackgroundColor.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7804
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7805
    DefaultLightColor notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7806
	lightColor := DefaultLightColor.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7807
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7808
	device hasGrayscales ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7809
	    (viewBackground isImageOrForm and:[viewBackground colorMap isNil]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7810
		lightColor := viewBackground averageColor lightened.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7811
	    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7812
		lightColor := viewBackground lightened.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7813
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7814
	    DefaultLightColor := lightColor.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7815
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7816
	    "
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7817
	     this seems strange: on B&W screens, we create the light color
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7818
	     darker than normal viewBackground (White) -
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7819
	     to make the boundary of the view visible
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7820
	    "
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7821
	    lightColor := Color gray:50
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7822
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7823
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7824
    DefaultShadowColor notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7825
	shadowColor := DefaultShadowColor.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7826
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7827
	shadowColor := self blackColor.
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  7828
    ].
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  7829
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  7830
    ((DefaultBorderWidth ? 1) ~= 0 and:[DefaultBorderColor notNil]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7831
	self border:(SimpleBorder width:(DefaultBorderWidth ? 1) color:DefaultBorderColor)
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  7832
    ].
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  7833
3669
7f3fb4967f53 dont call defaultFont twice
Michael Beyl <mb@exept.de>
parents: 3662
diff changeset
  7834
    "/ font := self defaultFont.  -- already done in #initialize
747
5980e7ccac8e gray vs. grey
Claus Gittinger <cg@exept.de>
parents: 743
diff changeset
  7835
749
c83c6d93760d grey vs. gray
Claus Gittinger <cg@exept.de>
parents: 747
diff changeset
  7836
    "Modified: 28.5.1996 / 21:13:58 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7837
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7838
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7839
initStyleSheet
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7840
    "this method gets the styleSheet"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7841
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7842
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7843
     when coming here the first time, we read the styleSheet
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7844
     and keep the values in fast class variables
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7845
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7846
    StyleSheet isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7847
	DefaultStyle isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7848
	    "/ the very-very first time (no styleSheet yet)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7849
	    View setDefaultStyle.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7850
	    View defaultStyle:DefaultStyle.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7851
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7852
	SimpleView updateAllStyleCaches
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7853
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7854
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7855
    styleSheet := StyleSheet.
1005
03041f7fb340 init styleSheet (in case no startup file did it)
Claus Gittinger <cg@exept.de>
parents: 997
diff changeset
  7856
03041f7fb340 init styleSheet (in case no startup file did it)
Claus Gittinger <cg@exept.de>
parents: 997
diff changeset
  7857
    "Modified: 25.7.1996 / 22:00:06 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7858
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7859
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7860
initialize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7861
    "initialize all state of the view - usually redefined in subclasses,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7862
     but always doing a 'super initialize'. Each class should setup its
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7863
     locals - and not forget the others.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7864
     View setup is separated into two parts, the general setup done here
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7865
     and the style specific setup in initStyle. Each view should be prepared
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7866
     for a stylechange by being sent another initStyle with a new style value.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7867
     (in this case, it should set all of its style-dependent things, but
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7868
      leave the state and contents as-is)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7869
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7870
    |ext myClass controllerClass|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7871
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  7872
    flagBits := flagBits ? 0.
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7873
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7874
    super initialize.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7875
6259
f31f7e5e6531 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6249
diff changeset
  7876
    self basicFont:self defaultFont.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7877
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  7878
    shown := realized := false.
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  7879
    "/ explicitExtent := false.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7880
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7881
    "fill in some defaults - some of them are usually redefined in subclasses
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7882
     initialize methods"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7883
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7884
    myClass := self class.
5290
5c7a67abec31 name setup lazy
Claus Gittinger <cg@exept.de>
parents: 5289
diff changeset
  7885
    "/ name := myClass name "asString" asLowercaseFirst. - now lazy
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7886
    resources := myClass classResources.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7887
5390
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  7888
    level := margin := 0.
5414
6edcb212d4a0 border handling
Claus Gittinger <cg@exept.de>
parents: 5411
diff changeset
  7889
    self borderWidth:0.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7890
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7891
    self initStyle.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7892
483
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  7893
    ext := self defaultExtent.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7894
    left := top := 0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7895
    width := ext x.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7896
    height := ext y.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7897
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  7898
    "/ not needed
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  7899
    "/ self originChangedFlag:false extentChangedFlag:false cornerChangedFlag:false.
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  7900
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  7901
    name isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7902
	name := self class name.
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  7903
    ].
2084
e997f6ea54c2 also pass down #larger to sizeCanged: method.
Claus Gittinger <cg@exept.de>
parents: 2061
diff changeset
  7904
    bitGravity := #NorthWest. "/ nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7905
    viewGravity := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7906
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7907
    controllerClass := self defaultControllerClass.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7908
    controllerClass notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7909
	controller := controllerClass new.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7910
	controller view:self.
3967
ed1e413b0ded invoke #initializeMiddleButtonMenu from #initialize;
Claus Gittinger <cg@exept.de>
parents: 3947
diff changeset
  7911
    ].
ed1e413b0ded invoke #initializeMiddleButtonMenu from #initialize;
Claus Gittinger <cg@exept.de>
parents: 3947
diff changeset
  7912
ed1e413b0ded invoke #initializeMiddleButtonMenu from #initialize;
Claus Gittinger <cg@exept.de>
parents: 3947
diff changeset
  7913
    self initializeMiddleButtonMenu.
2382
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  7914
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  7915
    "Modified: / 1.10.1998 / 14:31:05 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7916
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7917
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7918
initializeMiddleButtonMenu
3968
4bd1b2b090f9 comment
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
  7919
    "a place to initialize menu - this one is sent once when the view-object is initialized.
4bd1b2b090f9 comment
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
  7920
     usually redefined in subclasses; default here is no menu.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7921
     Notice, that static middleButtonmenus are a historic thing in ST/X;
3968
4bd1b2b090f9 comment
Claus Gittinger <cg@exept.de>
parents: 3967
diff changeset
  7922
     you may prefer to create the menu dynamically."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7923
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7924
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7925
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7926
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7927
prepareForReinit
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7928
    super prepareForReinit.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7929
    windowGroup notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7930
	windowGroup reinitialize
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7931
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7932
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7933
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7934
reinitStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7935
    "this method is called for a style change"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7936
7304
3d6e5fa20cb0 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7295
diff changeset
  7937
    "Kludge: remember the old level.
3d6e5fa20cb0 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7295
diff changeset
  7938
     level may be set from the WindowSpec and not by the Stylesheet!!
3d6e5fa20cb0 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7295
diff changeset
  7939
     Systembrowser will look funny when I am called by Winworkstation>>#systemColorChange."
3d6e5fa20cb0 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7295
diff changeset
  7940
3d6e5fa20cb0 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7295
diff changeset
  7941
    |oldLevel oldBorder|
3d6e5fa20cb0 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7295
diff changeset
  7942
3d6e5fa20cb0 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7295
diff changeset
  7943
    oldLevel := self level.
3d6e5fa20cb0 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 7295
diff changeset
  7944
    oldBorder := self border.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7945
    self initStyle.
6341
088a633e67e6 Access graphicsDevice via method send instead of instVar access
Stefan Vogel <sv@exept.de>
parents: 6336
diff changeset
  7946
    (self drawableId notNil and:[self gcId notNil]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7947
	"force a change"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7948
	self border:oldBorder.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7949
	self level:oldLevel.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7950
	self viewBackground:self viewBackground.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7951
	self clearView.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7952
	self invalidate.
2357
29a966362aad clear and invalidate in reinitStyle.
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  7953
    ].
29a966362aad clear and invalidate in reinitStyle.
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  7954
29a966362aad clear and invalidate in reinitStyle.
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  7955
    "Modified: / 18.9.1998 / 21:15:33 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7956
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7957
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7958
reinitialize
795
a57f5f65d0a7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
  7959
    "this is called right after snapIn"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7960
2649
6551ac88b855 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2638
diff changeset
  7961
    |myController sv|
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7962
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7963
    "if I have already been reinited - return"
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  7964
    self drawableId notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7965
	^ self
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7966
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7967
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7968
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7969
     superView must be there, first
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7970
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7971
    superView notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7972
	(sv := superView view) id isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7973
	    sv reinitialize
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7974
	]
2452
0c63e21efd57 (re)initCursor in reinitialize (i.e. after snapIn)
Claus Gittinger <cg@exept.de>
parents: 2451
diff changeset
  7975
    ].
0c63e21efd57 (re)initCursor in reinitialize (i.e. after snapIn)
Claus Gittinger <cg@exept.de>
parents: 2451
diff changeset
  7976
0c63e21efd57 (re)initCursor in reinitialize (i.e. after snapIn)
Claus Gittinger <cg@exept.de>
parents: 2451
diff changeset
  7977
    "reinit cursor"
0c63e21efd57 (re)initCursor in reinitialize (i.e. after snapIn)
Claus Gittinger <cg@exept.de>
parents: 2451
diff changeset
  7978
    self initCursor.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7979
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7980
    myController := controller.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7981
    controller := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7982
    self recreate.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7983
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7984
    "if I was mapped, do it again"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7985
    realized ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7986
	"only remap if I have a superview - otherwise, I might be
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7987
	 a hidden iconView or menu ..."
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7988
	superView notNil ifTrue:[
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7989
"/            shown ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7990
	    device
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7991
		moveResizeWindow:self drawableId x:left y:top width:width height:height;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7992
		mapWindow:self drawableId
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  7993
"/                mapView:self id:self drawableId iconified:false
4907
9002ab7fb33f remapping views
Claus Gittinger <cg@exept.de>
parents: 4899
diff changeset
  7994
"/                atX:left y:top width:width height:height
9002ab7fb33f remapping views
Claus Gittinger <cg@exept.de>
parents: 4899
diff changeset
  7995
"/                minExtent:(self minExtent) maxExtent:(self maxExtent)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7996
"/            ].
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  7997
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7998
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7999
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8000
    "restore controller"
2452
0c63e21efd57 (re)initCursor in reinitialize (i.e. after snapIn)
Claus Gittinger <cg@exept.de>
parents: 2451
diff changeset
  8001
    controller := myController.
795
a57f5f65d0a7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
  8002
2649
6551ac88b855 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2638
diff changeset
  8003
    "Modified: / 6.5.1999 / 13:11:07 / cg"
4372
30c22dddafcf Moved up #restarted to SimpleView
Stefan Vogel <sv@exept.de>
parents: 4352
diff changeset
  8004
!
30c22dddafcf Moved up #restarted to SimpleView
Stefan Vogel <sv@exept.de>
parents: 4352
diff changeset
  8005
6138
6f2369e5755b class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  8006
release
6f2369e5755b class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  8007
    "remove all dependencies from the receiver"
6f2369e5755b class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  8008
6f2369e5755b class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  8009
    visibilityChannel notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8010
	visibilityChannel retractInterestsFor:self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8011
	visibilityChannel removeDependent:self. visibilityChannel := nil
6138
6f2369e5755b class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  8012
    ].
6f2369e5755b class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  8013
6f2369e5755b class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  8014
    dependents := nil.
6f2369e5755b class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  8015
6f2369e5755b class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  8016
    "Modified: 19.4.1996 / 10:31:35 / cg"
6f2369e5755b class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  8017
    "Created: 11.6.1997 / 13:11:53 / cg"
6f2369e5755b class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  8018
!
6f2369e5755b class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  8019
4372
30c22dddafcf Moved up #restarted to SimpleView
Stefan Vogel <sv@exept.de>
parents: 4352
diff changeset
  8020
restarted
30c22dddafcf Moved up #restarted to SimpleView
Stefan Vogel <sv@exept.de>
parents: 4352
diff changeset
  8021
    "sent by my windowGroup, when restarted from an image.
30c22dddafcf Moved up #restarted to SimpleView
Stefan Vogel <sv@exept.de>
parents: 4352
diff changeset
  8022
     Nothing done here, but can be redefined to perform any actions
30c22dddafcf Moved up #restarted to SimpleView
Stefan Vogel <sv@exept.de>
parents: 4352
diff changeset
  8023
     required to reset some state after an image-restart.
30c22dddafcf Moved up #restarted to SimpleView
Stefan Vogel <sv@exept.de>
parents: 4352
diff changeset
  8024
30c22dddafcf Moved up #restarted to SimpleView
Stefan Vogel <sv@exept.de>
parents: 4352
diff changeset
  8025
     Only top views (usually instances of TopView) get this message sent.
30c22dddafcf Moved up #restarted to SimpleView
Stefan Vogel <sv@exept.de>
parents: 4352
diff changeset
  8026
     Since SimpleViews can act as a top view, too this message is implemented
30c22dddafcf Moved up #restarted to SimpleView
Stefan Vogel <sv@exept.de>
parents: 4352
diff changeset
  8027
     in SimpleView"
30c22dddafcf Moved up #restarted to SimpleView
Stefan Vogel <sv@exept.de>
parents: 4352
diff changeset
  8028
30c22dddafcf Moved up #restarted to SimpleView
Stefan Vogel <sv@exept.de>
parents: 4352
diff changeset
  8029
    ^ self
5713
20b8609cec16 added: #subViewsHaveBeenReparented
ca
parents: 5711
diff changeset
  8030
!
20b8609cec16 added: #subViewsHaveBeenReparented
ca
parents: 5711
diff changeset
  8031
20b8609cec16 added: #subViewsHaveBeenReparented
ca
parents: 5711
diff changeset
  8032
subViewsHaveBeenReparented
20b8609cec16 added: #subViewsHaveBeenReparented
ca
parents: 5711
diff changeset
  8033
    subViews := nil
135
claus
parents:
diff changeset
  8034
! !
claus
parents:
diff changeset
  8035
7081
4778f0077b54 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7023
diff changeset
  8036
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8037
!SimpleView methodsFor:'keyboard control'!
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8038
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8039
defineShortcutAndTranslateLabelStringFrom:aString
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8040
    |i|
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8041
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8042
    aString isString ifFalse:[ ^ aString].
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8043
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8044
    (aString includes:$&) ifFalse:[ ^ aString].
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8045
    i := self shortcutAndTranslatedStringFrom:aString.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8046
    self shortcutKey:(i at:1).
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8047
    ^ i at:2.
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8048
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8049
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8050
mnemonicKey
4492
17759f9ff27d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4484
diff changeset
  8051
    "get the mnemonic key or nil if undefined"
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8052
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8053
    ^ self objectAttributeAt:#mnemonicKey
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8054
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8055
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8056
mnemonicKey:aSymbolOrNil
4492
17759f9ff27d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4484
diff changeset
  8057
    "set or clear the mnemonic key"
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8058
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8059
    aSymbolOrNil isSymbol ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8060
	self objectAttributeAt:#mnemonicKey put:aSymbolOrNil
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8061
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8062
	self removeObjectAttribute:#mnemonicKey
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8063
    ].
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8064
!
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8065
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8066
mnemonicViewNext:aKeyEvent
5832
a77aa388f490 changed: #mnemonicViewNext:
Claus Gittinger <cg@exept.de>
parents: 5831
diff changeset
  8067
    "a mnemonicKey event as forwarded from the keyboardProcessor - if there
4492
17759f9ff27d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4484
diff changeset
  8068
     is the mnemonic-key defined for a subView return the view otherwise nil."
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8069
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8070
    |key rawKey mnemonic view|
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8071
4492
17759f9ff27d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4484
diff changeset
  8072
    key := aKeyEvent key.
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8073
    rawKey := aKeyEvent rawKey.
4492
17759f9ff27d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4484
diff changeset
  8074
    (shown and:[ subViews notNil ]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8075
	subViews do:[:aSubView |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8076
	    aSubView shown ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8077
		(aSubView enabled
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8078
		    and:[ (mnemonic := aSubView mnemonicKey) notNil
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8079
		    and:[ (mnemonic == rawKey or:[ mnemonic == key ]) ]])
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8080
		ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8081
		    ^ aSubView
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8082
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8083
		(view := aSubView mnemonicViewNext:aKeyEvent) notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8084
		    ^ view
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8085
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8086
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8087
	]
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8088
    ].
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8089
    ^ nil
5832
a77aa388f490 changed: #mnemonicViewNext:
Claus Gittinger <cg@exept.de>
parents: 5831
diff changeset
  8090
a77aa388f490 changed: #mnemonicViewNext:
Claus Gittinger <cg@exept.de>
parents: 5831
diff changeset
  8091
    "Modified (comment): / 06-10-2011 / 16:15:44 / cg"
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8092
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8093
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8094
performShortcutAction
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8095
    "perform my shortcutKey action.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8096
    "
3374
3313d1faa927 compilable
Claus Gittinger <cg@exept.de>
parents: 3371
diff changeset
  8097
    "/ intentionally left blank here
3313d1faa927 compilable
Claus Gittinger <cg@exept.de>
parents: 3371
diff changeset
  8098
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8099
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8100
processShortcut:aKeyEvent
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8101
    "a  shortcutKey event as forwarded from the keyboardProcessor - if there is the
4492
17759f9ff27d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4484
diff changeset
  8102
     shortcut-key defined process the shortcut and return true otherwise false."
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8103
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8104
    |key|
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8105
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8106
    shown ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8107
	self enabled ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8108
	    (key := self shortcutKey) notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8109
		(key == aKeyEvent key or:[ key == aKeyEvent rawKey ]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8110
		    self requestFocus.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8111
		    (controller ? self) performShortcutAction.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8112
		    ^ true
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8113
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8114
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8115
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8116
	subViews notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8117
	    subViews do:[:aSubView |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8118
		(aSubView processShortcut:aKeyEvent) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8119
		    ^ true
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8120
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8121
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8122
	]
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8123
    ].
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8124
    ^ false
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8125
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8126
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8127
shortcutAndTranslatedStringFrom:aString
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8128
    "return an array filled with an extracted shortcut key and a translated string;
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8129
     looks for and reemoves any ampercent character from aString, and adds underline emphasis to the
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8130
     following character"
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8131
3642
400ffe15bba9 remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3640
diff changeset
  8132
    |xLatedString c n s pos shortcutCharacter shortcut|
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8133
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8134
    xLatedString := '' writeStream.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8135
    s := aString readStream.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8136
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8137
    [s atEnd] whileFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8138
	c := s next.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8139
	c == $& ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8140
	   n := s peek.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8141
	   (n notNil and:[n isLetter]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8142
	       c := s next.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8143
	       pos := xLatedString size + 1.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8144
	   ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8145
		n == $& ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8146
		    s next.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8147
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8148
	   ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8149
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8150
	c notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8151
	   xLatedString nextPut:c
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8152
	]
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8153
    ].
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8154
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8155
    xLatedString := xLatedString contents.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8156
    pos notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8157
	shortcutCharacter := xLatedString at:pos ifAbsent:nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8158
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8159
	xLatedString isText ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8160
	    xLatedString := xLatedString asText
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8161
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8162
	xLatedString emphasisAt:pos add:#underline.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8163
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8164
	shortcut := ('Cmd' , shortcutCharacter asLowercase) asSymbol.
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8165
    ].
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8166
    ^ Array with:shortcut with:xLatedString
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8167
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8168
    "
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8169
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'hello'        ) last
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8170
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'he&llo'       ) last
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8171
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'he&&llo'      ) last
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8172
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'he& llo'      ) last
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8173
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'he&123llo'    ) last
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8174
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'hello &'      ) last
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8175
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'hello &&'     ) last
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8176
    "
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8177
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8178
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8179
shortcutKey
4492
17759f9ff27d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4484
diff changeset
  8180
    "get the shortcut key"
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8181
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8182
    ^ self objectAttributeAt:#shortcutKey
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8183
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8184
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8185
shortcutKey:aSymbolOrNil
4492
17759f9ff27d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4484
diff changeset
  8186
    "set or clear the shortcut key"
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  8187
4492
17759f9ff27d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4484
diff changeset
  8188
    aSymbolOrNil notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8189
	self objectAttributeAt:#shortcutKey put:aSymbolOrNil
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8190
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8191
	self removeObjectAttribute:#shortcutKey
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8192
    ].
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  8193
! !
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  8194
7418
9dd8621ec788 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7417
diff changeset
  8195
!SimpleView methodsFor:'menu & menu actions'!
9dd8621ec788 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7417
diff changeset
  8196
9dd8621ec788 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7417
diff changeset
  8197
fontLargerOrSmaller:largerBoolean
7419
b594081e3710 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7418
diff changeset
  8198
    |font oldSize newFont|
b594081e3710 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7418
diff changeset
  8199
b594081e3710 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7418
diff changeset
  8200
    font := gc font.
b594081e3710 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7418
diff changeset
  8201
    oldSize := font size.
7418
9dd8621ec788 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7417
diff changeset
  8202
    newFont := font asSize:(largerBoolean
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8203
			    ifTrue:[(oldSize + 1) min:100]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8204
			    ifFalse:[(oldSize-1) max:4]).
7418
9dd8621ec788 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7417
diff changeset
  8205
    self font:newFont.
9dd8621ec788 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7417
diff changeset
  8206
9dd8621ec788 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7417
diff changeset
  8207
    "Modified: / 27-02-1996 / 00:53:51 / cg"
9dd8621ec788 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7417
diff changeset
  8208
    "Created: / 10-03-2012 / 09:38:32 / cg"
9dd8621ec788 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7417
diff changeset
  8209
! !
7417
a7e3b6a9aa63 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 7416
diff changeset
  8210
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8211
!SimpleView methodsFor:'menu handling'!
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8212
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8213
activateMenu
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8214
    "activate my menu.
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8215
     This code will move into the controller ASAP
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8216
     If there is a static middleButtonMenu, that one is taken,
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8217
     and handled in the superClass (static menus are a historic leftOver).
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8218
     Otherwise, the follwing steps are performed:
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8219
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8220
        - ask the receiver for the menu (via #yellowButtonMenu)
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8221
        - ask the receiver for the menuPerformer.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8222
        - startUp the menu - it is supposed to return an actionSelector
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8223
        - if the menuPerformer responds to the selector,
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8224
          send it to the performer;
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8225
          otherwise send it to the view (the receiver)
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8226
          This is funny, it allows additional menuItems to be added
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8227
          AND still get the view's copy/cut/paste functionality.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8228
          Without this, you had to redefine and forward all of those
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8229
          messages in the performer."
2489
f7ce16896fa1 process exposes when menu closes.
Claus Gittinger <cg@exept.de>
parents: 2465
diff changeset
  8230
f7ce16896fa1 process exposes when menu closes.
Claus Gittinger <cg@exept.de>
parents: 2465
diff changeset
  8231
    |menu menuPerformer actionSelector prevReceiver wg|
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8232
5008
468d1a62a90f middleButtonMenu and keyCommands no longer held in instvars but in moreAttributes.
Claus Gittinger <cg@exept.de>
parents: 5004
diff changeset
  8233
    self middleButtonMenu isNil ifTrue:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8234
        "
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8235
         try ST-80 style menus first:
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8236
         if there is a model, and a menuMessage is defined,
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8237
         ask model for the menu and launch that if non-nil.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8238
        "
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8239
        menu := self yellowButtonMenu.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8240
        menu notNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8241
            "
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8242
             got one, launch the menu. It is supposed
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8243
             to return an actionSelector.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8244
            "
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8245
            menuPerformer := self menuPerformer value.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8246
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8247
            "/ could be a spec ...
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8248
            menu isArray ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8249
                menu := menu decodeAsLiteralArray.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8250
                menu receiver:menuPerformer.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8251
                menu findGuiResourcesIn:(self menuHolder).
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8252
            ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8253
                (menu respondsTo:#receiver) ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8254
                    menuPerformer := menu receiver ? menuPerformer.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8255
                ].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8256
            ].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8257
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8258
            "
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8259
             a temporary kludge:
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8260
                 pass myself as receiver, the menuPerformer as performer;
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8261
                 the menu will send its messages to either the
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8262
                 menuPerformer or me (its receiver).
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8263
                 This allows for the ST-80 behavior, where some messages
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8264
                 go to the model, others to the view
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8265
                 (copy/cut/paste).
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8266
            "
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8267
            (prevReceiver := menu receiver) isNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8268
                "/ kludge for oldStyle menus (MenuView/PopUpMenu)
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8269
                "/ not req'd for real Menus
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8270
                "/ (menu isKindOf:Menu) ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8271
                (menu respondsTo:#menuPerformer:) ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8272
                    menu receiver:self.    "/ really ?
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8273
                    menu menuPerformer:menuPerformer.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8274
                ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8275
                "/ ] ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8276
                    "/ new style menu
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8277
                    menu receiver:menuPerformer.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8278
                ]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8279
            ].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8280
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8281
            "/
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8282
            "/ startup the menu - this returns a selector
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8283
            "/
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8284
            actionSelector := self startUpMenu:menu.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8285
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8286
            "/ before doing anything else, redraw expose area from
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8287
            "/ the menu (in case the action changes my state)
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8288
            (wg := self windowGroup) notNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8289
                wg processExposeEvents.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8290
            ].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8291
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8292
            (actionSelector notNil and:[actionSelector isSymbol]) ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8293
                self dispatchMenuSelection:actionSelector to: menuPerformer.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8294
            ].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8295
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8296
            menu receiver:prevReceiver.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8297
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8298
            ^ self
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  8299
        ].
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8300
    ].
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8301
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8302
    "/
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8303
    "/ old style static menu
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8304
    "/
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8305
    super activateMenu
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8306
2127
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  8307
    "Created: / 1.3.1996 / 13:24:18 / cg"
2246
8666105a8750 care for menuPerformer, when using newStyle menu in
Claus Gittinger <cg@exept.de>
parents: 2243
diff changeset
  8308
    "Modified: / 14.8.1998 / 18:09:31 / cg"
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8309
!
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8310
3241
e5c9791522af menuPerformer dispatching
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  8311
dispatchMenuSelection:menuSelection to:aMenuPerformerOrNil
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8312
    "dispatch a menu message.
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8313
     This code will move into the controller ASAP"
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8314
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  8315
    |actionSelector actionArg1 actionArg2 app menuPerformer|
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8316
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8317
    actionSelector := menuSelection.
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8318
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8319
    "
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8320
     mhmh - kludge for selectors with argument
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8321
    "
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8322
    (menuSelection isMemberOf:Array) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8323
	actionArg1 := menuSelection at:2.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8324
	actionSelector := menuSelection at:1.
3241
e5c9791522af menuPerformer dispatching
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  8325
    ].
e5c9791522af menuPerformer dispatching
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  8326
e5c9791522af menuPerformer dispatching
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  8327
    menuPerformer := aMenuPerformerOrNil ? self menuPerformer.
1839
7da27042198c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1837
diff changeset
  8328
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8329
    "
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8330
     mhmh - ST-80 seems to send some to the model and
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8331
     others (copy/cut/paste) to the controller/view
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8332
     Simulate this behavior, by looking what the model responds to.
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8333
    "
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8334
    actionSelector isSymbol ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8335
	(menuPerformer respondsTo:actionSelector) ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8336
	    ((app := self application) respondsTo:actionSelector) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8337
		menuPerformer := app.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8338
		actionArg1 := self model.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8339
		actionArg2 := self controller.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8340
	    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8341
		(self respondsTo:actionSelector) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8342
		    menuPerformer := self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8343
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8344
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8345
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8346
	menuPerformer perform:actionSelector withOptionalArgument:actionArg1 and:actionArg2.
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8347
    ].
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8348
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  8349
    "Created: / 20.6.1997 / 11:47:42 / cg"
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  8350
    "Modified: / 1.11.1997 / 13:45:23 / cg"
3533
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  8351
!
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  8352
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  8353
menuFromSpec:aMenuOrMenuSpec
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  8354
    "create a menu for the receiver from a spec"
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  8355
3559
bbdf48b9fb5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3558
diff changeset
  8356
    |spec|
bbdf48b9fb5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3558
diff changeset
  8357
bbdf48b9fb5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3558
diff changeset
  8358
    aMenuOrMenuSpec isNil ifTrue:[^ nil].
3533
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  8359
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  8360
    aMenuOrMenuSpec isArray ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8361
	spec := aMenuOrMenuSpec decodeAsLiteralArray.
3533
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  8362
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8363
	spec := aMenuOrMenuSpec.
3533
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  8364
    ].
3556
eaea177415b0 findGuiResources... now sets the receiver, if not yet set
Claus Gittinger <cg@exept.de>
parents: 3540
diff changeset
  8365
    "/ spec receiver:self.     -- now done in findGuiResources ...
3533
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  8366
    spec findGuiResourcesIn:self.
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  8367
    ^ spec.
3752
c78ca44247d5 can now specify if menu action is to be performed by
ca
parents: 3745
diff changeset
  8368
!
c78ca44247d5 can now specify if menu action is to be performed by
ca
parents: 3745
diff changeset
  8369
c78ca44247d5 can now specify if menu action is to be performed by
ca
parents: 3745
diff changeset
  8370
startUpMenu:aMenu
3753
e593d6729f4e can now specify if menu action is to be performed by
ca
parents: 3752
diff changeset
  8371
    ^ aMenu startUpFor:self
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8372
! !
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  8373
8429
e47f76ecf0d2 Inform GC (DeviceGraphicsContext) when it's size has chaged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8420
diff changeset
  8374
6559
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  8375
!SimpleView methodsFor:'native widget support'!
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  8376
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  8377
nativeWindowType
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  8378
    "return a symbol describing my native window type - here, nil is returned
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  8379
     (may be used internally by the device as a native window creation hint,
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  8380
      iff native windows are enabled AND the device supports it)"
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  8381
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  8382
    ^ nil
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  8383
! !
87057258791c class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6549
diff changeset
  8384
140
claus
parents: 138
diff changeset
  8385
!SimpleView methodsFor:'private'!
claus
parents: 138
diff changeset
  8386
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  8387
componentsContainingX:x y:y do:aBlock
4609
0fb6751514cf care for delegated events when detecting a component
fm
parents: 4579
diff changeset
  8388
    (x isNil or:[y isNil]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8389
	"/ delegated
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8390
	^ self
4609
0fb6751514cf care for delegated events when detecting a component
fm
parents: 4579
diff changeset
  8391
    ].
0fb6751514cf care for delegated events when detecting a component
fm
parents: 4579
diff changeset
  8392
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  8393
    components notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8394
	components reverseDo:[:aComponent |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8395
	    |thisFrame|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8396
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8397
	    thisFrame := aComponent bounds.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8398
	    (thisFrame containsPointX:x y:y) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8399
		"/ prepare for masked/non-rectangular components ...
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8400
		(aComponent perform:#containsPointX:y: with:x with:y ifNotUnderstood:true)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8401
		ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8402
		    aBlock value:aComponent
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8403
			   value:x - thisFrame left
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8404
			   value:y - thisFrame top.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8405
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8406
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8407
	]
4609
0fb6751514cf care for delegated events when detecting a component
fm
parents: 4579
diff changeset
  8408
    ].
0fb6751514cf care for delegated events when detecting a component
fm
parents: 4579
diff changeset
  8409
0fb6751514cf care for delegated events when detecting a component
fm
parents: 4579
diff changeset
  8410
    "Created: / 08-05-1996 / 23:40:59 / cg"
0fb6751514cf care for delegated events when detecting a component
fm
parents: 4579
diff changeset
  8411
    "Modified: / 13-09-2006 / 18:55:30 / User"
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  8412
!
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  8413
140
claus
parents: 138
diff changeset
  8414
computeInnerClip
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  8415
    "compute, but do not set the inside clip-area, in device coordinates"
140
claus
parents: 138
diff changeset
  8416
claus
parents: 138
diff changeset
  8417
    |m2 nX nY nW nH|
claus
parents: 138
diff changeset
  8418
4139
6acf2874394b WO's stuff
werner
parents: 4131
diff changeset
  8419
    margin isNil ifTrue:[margin := 0].
140
claus
parents: 138
diff changeset
  8420
    (margin ~~ 0) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8421
	m2 := margin + margin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8422
	nX := nY := margin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8423
	nW := width - m2.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8424
	nH := height - m2.
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  8425
"/        transformation notNil ifTrue:[
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  8426
"/            nX := transformation applyInverseToX:nX.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  8427
"/            nY := transformation applyInverseToY:nY.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  8428
"/            nW := transformation applyInverseScaleX:nW.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  8429
"/            nH := transformation applyInverseScaleY:nH.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  8430
"/        ].
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8431
	innerClipRect := Rectangle
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8432
				 left:nX
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8433
				 top:nY
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8434
				 width:nW
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8435
				 height:nH
140
claus
parents: 138
diff changeset
  8436
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8437
	"no clipping"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8438
	innerClipRect := nil
140
claus
parents: 138
diff changeset
  8439
    ]
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  8440
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  8441
    "Modified: / 22.5.1999 / 16:50:58 / cg"
140
claus
parents: 138
diff changeset
  8442
!
claus
parents: 138
diff changeset
  8443
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8444
cornerFromRelativeCorner
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8445
    "compute & return pixel corner from relativeCorner"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8446
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8447
    ^ self cornerFromRelativeCorner:relativeCorner
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8448
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8449
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8450
cornerFromRelativeCorner:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8451
    "compute & return pixel corner from a relativeCorner, aPoint"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8452
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8453
    |p r b bw|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8454
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8455
    p := self pointFromRelative:aPoint.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8456
5390
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  8457
    bw := self borderWidth ? 0.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8458
    insets isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8459
	bw == 0 ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8460
	    ^ p
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8461
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8462
	^ (p x - bw) @ (p y - bw)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8463
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8464
    r := (insets at:3) + bw.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8465
    b := (insets at:4) + bw.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8466
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8467
"/    r := b := bw.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8468
"/    rightInset notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8469
"/        r := rightInset + bw
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8470
"/    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8471
"/    bottomInset notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8472
"/        b := bottomInset + bw
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8473
"/    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8474
    ((r ~~ 0) or:[b ~~ 0]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8475
	^ (p x - r) @ (p y - b)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8476
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8477
    ^ p
2382
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  8478
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  8479
    "Modified: / 1.10.1998 / 13:21:33 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8480
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8481
3518
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  8482
detectViewAt:aPoint
3540
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  8483
    "find the subView which contains aPoint - invisible components are ignored.
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  8484
     This is almost the same as #componentContainingX:y: (if that existed) "
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  8485
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  8486
    ^ self detectViewAt:aPoint ignoreInvisible:false
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  8487
!
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  8488
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  8489
detectViewAt:aPoint ignoreInvisible:ignoreInvisible
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  8490
    "find the subView which contains aPoint - invisible components are ignored if
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  8491
     the ignoreInvisible argument is false.
3518
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  8492
     This is almost the same as #componentContainingX:y: (if that existed) "
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  8493
3642
400ffe15bba9 remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3640
diff changeset
  8494
    |subViews|
3518
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  8495
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  8496
    (subViews := self subViews) notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8497
	subViews do:[:v| |p|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8498
	    (ignoreInvisible or:[v shown]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8499
		(    (aPoint x between:(v left) and:(v right))
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8500
		 and:[aPoint y between:(v top)  and:(v bottom)]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8501
		) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8502
		    "/ found a subview - the point is there
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8503
		    p := device translatePoint:aPoint fromView:self toView:v.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8504
		    ^ v detectViewAt:p ignoreInvisible:ignoreInvisible.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8505
		]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8506
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8507
	]
3518
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  8508
    ].
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  8509
    "/ no subview - the point is here
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  8510
    ^ self
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  8511
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  8512
    "Modified: / 10.10.2001 / 13:45:26 / cg"
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  8513
!
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  8514
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  8515
explicitExtent:aBoolean
5060
01bb459aaa8b changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 5050
diff changeset
  8516
    "set the exeplicit extent flag to aBoolean."
01bb459aaa8b changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 5050
diff changeset
  8517
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  8518
    aBoolean ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8519
	flagBits := flagBits bitOr:FlagHasExplicitExtent
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  8520
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8521
	flagBits := flagBits bitClear:FlagHasExplicitExtent
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  8522
    ].
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  8523
!
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  8524
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8525
extentFromRelativeExtent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8526
    "compute & return pixel extent from relativeExtent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8527
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8528
    ^ self extentFromRelativeExtent:relativeExtent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8529
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8530
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8531
extentFromRelativeExtent:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8532
    "compute & return pixel extent from relativeExtent, aPoint"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8533
5390
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  8534
    |rel newX newY inRect bw bw2 i|
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  8535
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  8536
    bw := self borderWidth ? 0.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8537
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8538
    superView isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8539
	inRect := 0@0 extent:device extent
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8540
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8541
	inRect := superView viewRectangle.
5390
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  8542
    ].
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  8543
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  8544
    bw2 := bw * 2.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8545
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8546
    rel := aPoint x.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8547
    rel isInteger ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8548
	newX := (rel * (inRect width + bw2)) asInteger + inRect left.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8549
	(bw ~~ 0) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8550
	    newX := newX - bw
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8551
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8552
    ] ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8553
	newX := rel
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8554
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8555
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8556
    rel := aPoint y.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8557
    rel isInteger ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8558
	newY := (rel * (inRect height + bw2)) asInteger + inRect top.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8559
	(bw ~~ 0) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8560
	    newY := newY - bw
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8561
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8562
    ] ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8563
	newY := rel
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8564
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8565
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8566
    insets notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8567
	i := insets at:1.   "top"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8568
	(i  ~~ 0) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8569
	    newX := newX - i
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8570
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8571
	i := insets at:3.   "left"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8572
	(i  ~~ 0) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8573
	    newX := newX - i
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8574
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8575
	i := insets at:2.   "right"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8576
	(i ~~ 0) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8577
	    newY := newY - i
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8578
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8579
	i := insets at:4.   "bottom"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8580
	(i ~~ 0) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8581
	    newY := newY - i
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8582
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8583
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8584
    ^ newX @ newY
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8585
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8586
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8587
originFromRelativeOrigin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8588
    "compute & return pixel origin from relativeOrigin"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8589
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8590
    ^ self originFromRelativeOrigin:relativeOrigin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8591
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8592
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8593
originFromRelativeOrigin:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8594
    "compute & return pixel origin from relativeOrigin, aPoint"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8595
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8596
    |p l t|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8597
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8598
    p := self pointFromRelative:aPoint.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8599
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8600
    insets isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8601
	^ p
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8602
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8603
    l := insets at:1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8604
    t := insets at:2.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8605
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8606
"/  l := t := 0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8607
"/    leftInset notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8608
"/        l := leftInset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8609
"/    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8610
"/    topInset notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8611
"/        t := topInset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8612
"/    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8613
    ((l ~~ 0) or:[t ~~ 0]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8614
	^ (p x + l) @ (p y + t)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8615
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8616
    ^ p
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8617
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8618
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8619
pixelCorner:corner
6853
541c6d924a41 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6851
diff changeset
  8620
    "set the view's corner in pixels"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8621
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8622
    |w h|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8623
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8624
    w := corner x - left + 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8625
    h := corner y - top + 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8626
    self pixelOrigin:(left @ top) extent:(w @ h)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8627
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8628
    "Modified: 31.8.1995 / 18:20:22 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8629
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8630
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8631
pixelExtent:extent
6853
541c6d924a41 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6851
diff changeset
  8632
    "set the view's extent in pixels"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8633
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8634
    self pixelOrigin:(left @ top) extent:extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8635
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8636
1363
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  8637
pixelOrigin
6853
541c6d924a41 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6851
diff changeset
  8638
    "return the view's origin in pixels. For subviews. the origin is relative
541c6d924a41 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6851
diff changeset
  8639
     to the superview's top-left. For topViews, it's the screen origin."
1363
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  8640
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  8641
    ^ self computeOrigin
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  8642
!
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  8643
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8644
pixelOrigin:origin
6853
541c6d924a41 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6851
diff changeset
  8645
    "set the view's origin in pixels. For subviews. the origin is relative
541c6d924a41 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6851
diff changeset
  8646
     to the superview's top-left. For topViews, it's the screen origin."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8647
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8648
    |newLeft newTop|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8649
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8650
    newLeft := origin x.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8651
    newTop := origin y.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8652
    ((newTop ~~ top) or:[newLeft ~~ left]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8653
	top := newTop.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8654
	left := newLeft.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8655
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8656
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8657
	 if the receiver is visible, or is a topView, perform the
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8658
	 operation right away - otherwise, simply remember that the
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8659
	 origin has changed - will tell the display once we get realized
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8660
	"
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  8661
"/        (shown
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8662
"/        or:[superView isNil and:[drawableId notNil]]) ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8663
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8664
	"/ no, have to do it if drawableId is there
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8665
	"/ (otherwise, we could not move unmapped views around ...
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8666
	"/
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8667
	self drawableId notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8668
	    device moveWindow:self drawableId x:left y:top
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8669
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8670
	    self originChangedFlag:true
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8671
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8672
    ]
5679
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  8673
455385b07655 added: #isReallyShown
Claus Gittinger <cg@exept.de>
parents: 5669
diff changeset
  8674
    "Modified: / 21-01-2011 / 13:59:08 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8675
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8676
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8677
pixelOrigin:origin corner:corner
6853
541c6d924a41 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6851
diff changeset
  8678
    "set the view's origin and corner in pixels"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8679
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8680
    |w h|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8681
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8682
    w := corner x - origin x + 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8683
    h := corner y - origin y + 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8684
    self pixelOrigin:origin extent:(w @ h)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8685
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8686
    "Modified: 31.8.1995 / 18:24:16 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8687
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8688
140
claus
parents: 138
diff changeset
  8689
pixelOrigin:origin extent:extent
6853
541c6d924a41 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6851
diff changeset
  8690
    "set the view's origin and extent in pixels"
140
claus
parents: 138
diff changeset
  8691
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  8692
    |newLeft newTop newWidth newHeight how
140
claus
parents: 138
diff changeset
  8693
     mustRedrawBottomEdge mustRedrawRightEdge mustRepaintBottom
3340
f810ebc6d836 preserve current paint when drawing edges
martin
parents: 3327
diff changeset
  8694
     mustRepaintRight sameOrigin oldWidth oldHeight oldPaint|
140
claus
parents: 138
diff changeset
  8695
claus
parents: 138
diff changeset
  8696
    newLeft := origin x.
claus
parents: 138
diff changeset
  8697
    newTop := origin y.
claus
parents: 138
diff changeset
  8698
    sameOrigin := ((newTop == top) and:[newLeft == left]).
claus
parents: 138
diff changeset
  8699
claus
parents: 138
diff changeset
  8700
    newWidth := extent x.
claus
parents: 138
diff changeset
  8701
    newHeight := extent y.
claus
parents: 138
diff changeset
  8702
claus
parents: 138
diff changeset
  8703
    "
claus
parents: 138
diff changeset
  8704
     X complains badly if you try to create/resize a view with
5436
59effbe755f7 changed:
Claus Gittinger <cg@exept.de>
parents: 5428
diff changeset
  8705
     a dimension <= 0 ... (although I think that 0 makes sense ...)
140
claus
parents: 138
diff changeset
  8706
    "
claus
parents: 138
diff changeset
  8707
    newWidth < 1 ifTrue:[
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8708
        newWidth := 1.
140
claus
parents: 138
diff changeset
  8709
    ].
claus
parents: 138
diff changeset
  8710
    newHeight < 1 ifTrue:[
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8711
        newHeight := 1
140
claus
parents: 138
diff changeset
  8712
    ].
claus
parents: 138
diff changeset
  8713
claus
parents: 138
diff changeset
  8714
    ((newWidth == width) and:[newHeight == height]) ifTrue:[
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8715
        sameOrigin ifTrue:[^ self].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8716
        dependents notNil ifTrue:[ self changed:#origin ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8717
        ^ self pixelOrigin:origin
5428
62da57f5206d border drawing on resize
Claus Gittinger <cg@exept.de>
parents: 5422
diff changeset
  8718
    ].
62da57f5206d border drawing on resize
Claus Gittinger <cg@exept.de>
parents: 5422
diff changeset
  8719
140
claus
parents: 138
diff changeset
  8720
    top := newTop.
claus
parents: 138
diff changeset
  8721
    left := newLeft.
claus
parents: 138
diff changeset
  8722
claus
parents: 138
diff changeset
  8723
"/    shown ifTrue:[                  "4-nov-94 actually correct,"
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  8724
    self drawableId notNil ifTrue:[        "but theres a bug in menus when resized while hidden"
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8725
        mustRedrawBottomEdge := (margin ~~ 0) and:[newHeight < height].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8726
        mustRedrawRightEdge := (margin ~~ 0) and:[newWidth < width].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8727
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8728
        ((newHeight <= height) and:[newWidth <= width]) ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8729
            how := #smaller
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8730
        ] ifFalse:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8731
            ((newHeight >= height) and:[newWidth >= width]) ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8732
                how := #larger
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8733
            ]
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8734
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8735
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8736
        mustRepaintRight := false.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8737
        mustRepaintBottom := false.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8738
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8739
        oldWidth := width.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8740
        oldHeight := height.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8741
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8742
        shown ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8743
            (margin ~~ 0) ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8744
                "clear the old edges"
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8745
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8746
                oldPaint := nil.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8747
                newWidth > width ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8748
                    self clippingBounds:nil.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8749
                    oldPaint := self paint.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8750
                    self paint:viewBackground.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8751
                    self fillDeviceRectangleX:(width - margin)
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8752
                                            y:0
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8753
                                        width:margin
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8754
                                       height:height.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8755
                    mustRepaintRight := true.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8756
                ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8757
                newHeight > height ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8758
                    self clippingBounds:nil.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8759
                    oldPaint := self paint.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8760
                    self paint:viewBackground.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8761
                    self fillDeviceRectangleX:0
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8762
                                            y:(height - margin)
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8763
                                        width:width
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8764
                                       height:margin.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8765
                    mustRepaintBottom := true.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8766
                ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8767
                oldPaint notNil ifTrue:[ self paint:oldPaint. ]
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8768
            ]
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8769
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8770
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8771
        width := newWidth.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8772
        height := newHeight.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8773
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8774
        self setInnerClip.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8775
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8776
        "if view becomes smaller, send sizeChanged first"
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8777
        "now always"
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8778
        true  "(how == #smaller)" ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8779
            self sizeChanged:how from:(oldWidth @ oldHeight)
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8780
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8781
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8782
        "have to tell X, when extent of view is changed"
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8783
        sameOrigin ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8784
            device resizeWindow:self drawableId width:width height:height.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8785
        ] ifFalse:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8786
            "claus: some xservers seem to do better when resizing
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8787
             first ...."
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  8788
"
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8789
            (how == #smaller) ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8790
                device resizeWindow:drawableId width:width height:height.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8791
                device moveWindow:drawableId x:left y:top
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8792
            ] ifFalse:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8793
                device moveResizeWindow:drawableId x:left y:top width:width height:height
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8794
            ].
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  8795
"
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8796
            device moveResizeWindow:self drawableId x:left y:top
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8797
                                           width:width height:height.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8798
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8799
8429
e47f76ecf0d2 Inform GC (DeviceGraphicsContext) when it's size has chaged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8420
diff changeset
  8800
        "Have to tell graphics context when extent has changed.
e47f76ecf0d2 Inform GC (DeviceGraphicsContext) when it's size has chaged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8420
diff changeset
  8801
         Some graphics context implementations need that (Cairo, for
e47f76ecf0d2 Inform GC (DeviceGraphicsContext) when it's size has chaged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8420
diff changeset
  8802
         instance"
e47f76ecf0d2 Inform GC (DeviceGraphicsContext) when it's size has chaged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8420
diff changeset
  8803
        ((width ~~ oldWidth) or:[height ~~ oldHeight]) ifTrue:[
e47f76ecf0d2 Inform GC (DeviceGraphicsContext) when it's size has chaged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8420
diff changeset
  8804
            gc width:width height:height.
e47f76ecf0d2 Inform GC (DeviceGraphicsContext) when it's size has chaged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8420
diff changeset
  8805
        ].
e47f76ecf0d2 Inform GC (DeviceGraphicsContext) when it's size has chaged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8420
diff changeset
  8806
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8807
        "if view becomes bigger, send sizeChanged after"
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8808
        "no longer"
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8809
        false "(how ~~ #smaller)" ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8810
            self sizeChanged:how from:(oldWidth @ oldHeight)
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8811
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8812
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8813
        shown ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8814
            (mustRedrawBottomEdge or:[mustRedrawRightEdge]) ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8815
                border notNil ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8816
                    mustRedrawBottomEdge ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8817
                        self invalidateDeviceRectangle:((0 @ (height - margin)) extent:width@margin) repairNow:false.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8818
                    ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8819
                    mustRedrawRightEdge ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8820
                        self invalidateDeviceRectangle:(((width - margin) @ 0) extent:margin@height) repairNow:false.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8821
                    ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8822
                ] ifFalse:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8823
                    self deviceClippingBounds:nil.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8824
                    oldPaint := self paint.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8825
                    mustRedrawBottomEdge ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8826
                        self drawBottomEdge
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8827
                    ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8828
                    mustRedrawRightEdge ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8829
                        self drawRightEdge
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8830
                    ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8831
                    self paint:oldPaint.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8832
                    self deviceClippingBounds:innerClipRect
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8833
                ]
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8834
            ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8835
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8836
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8837
        mustRepaintRight ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8838
            self invalidateDeviceRectangle:(((oldWidth - margin) @ 0)
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8839
                                           extent:margin@height)
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8840
                                 repairNow:false.
2400
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  8841
"/            self redrawDeviceX:(oldWidth - margin)
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  8842
"/                             y:0
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  8843
"/                         width:margin
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  8844
"/                        height:height.
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8845
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8846
        mustRepaintBottom ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8847
            self invalidateDeviceRectangle:((0 @ (oldHeight - margin))
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8848
                                           extent:width@margin)
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8849
                                 repairNow:false.
2400
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  8850
"/            self redrawDeviceX:0
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  8851
"/                             y:(oldHeight - margin)
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  8852
"/                         width:width
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  8853
"/                        height:margin.
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8854
        ].
140
claus
parents: 138
diff changeset
  8855
    ] ifFalse:[
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8856
        "otherwise memorize the need for a sizeChanged message"
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8857
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8858
        width := newWidth.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8859
        height := newHeight.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8860
        sameOrigin ifFalse:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8861
            self originChangedFlag:true.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8862
        ].
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8863
        self extentChangedFlag:true.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8864
        subViews notEmptyOrNil ifTrue:[
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8865
            self extentChangedBeforeCreatedFlag:true.
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8866
        ].
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  8867
    ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  8868
    sameOrigin ifFalse:[
7728
00826284cb7d #TUNING by cg
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  8869
        dependents notNil ifTrue:[ self changed:#origin ].
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  8870
    ].
739
3d809aa492ec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 738
diff changeset
  8871
8429
e47f76ecf0d2 Inform GC (DeviceGraphicsContext) when it's size has chaged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8420
diff changeset
  8872
    "Modified: / 25-05-1999 / 14:49:56 / cg"
e47f76ecf0d2 Inform GC (DeviceGraphicsContext) when it's size has chaged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8420
diff changeset
  8873
    "Modified: / 17-07-2018 / 07:56:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
140
claus
parents: 138
diff changeset
  8874
!
claus
parents: 138
diff changeset
  8875
claus
parents: 138
diff changeset
  8876
pointFromRelative:p
claus
parents: 138
diff changeset
  8877
    "compute absolute coordinate from p"
claus
parents: 138
diff changeset
  8878
claus
parents: 138
diff changeset
  8879
    |newX newY rel inRect bw superWidth superHeight superLeft superTop |
claus
parents: 138
diff changeset
  8880
5390
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  8881
    bw := self borderWidth ? 0.
140
claus
parents: 138
diff changeset
  8882
claus
parents: 138
diff changeset
  8883
    superView isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8884
	superWidth := device width + bw.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8885
	superHeight := device height + bw.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8886
	superLeft := superTop := 0.
140
claus
parents: 138
diff changeset
  8887
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8888
	inRect := superView viewRectangle.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8889
	superWidth := inRect width.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8890
	superHeight := inRect height.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8891
	superLeft := inRect left.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8892
	superTop := inRect top.
140
claus
parents: 138
diff changeset
  8893
    ].
claus
parents: 138
diff changeset
  8894
claus
parents: 138
diff changeset
  8895
    rel := p x.
claus
parents: 138
diff changeset
  8896
    rel isInteger ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8897
	newX := rel
140
claus
parents: 138
diff changeset
  8898
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8899
	newX := (rel * superWidth) asInteger + superLeft.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8900
	(bw ~~ 0) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8901
	    rel ~= 1.0 ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8902
		newX := newX - bw
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8903
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8904
	]
140
claus
parents: 138
diff changeset
  8905
    ].
claus
parents: 138
diff changeset
  8906
claus
parents: 138
diff changeset
  8907
    rel := p y.
claus
parents: 138
diff changeset
  8908
    rel isInteger ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8909
	newY := rel
140
claus
parents: 138
diff changeset
  8910
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8911
	newY := (rel * superHeight) asInteger + superTop.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8912
	(bw ~~ 0) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8913
	    rel ~= 1.0 ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8914
		newY := newY - bw
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8915
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8916
	]
140
claus
parents: 138
diff changeset
  8917
    ].
claus
parents: 138
diff changeset
  8918
    ^ newX @ newY
2382
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  8919
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  8920
    "Modified: / 1.10.1998 / 13:21:14 / cg"
140
claus
parents: 138
diff changeset
  8921
!
claus
parents: 138
diff changeset
  8922
claus
parents: 138
diff changeset
  8923
setBorderColor
5405
369200caeaaf border stuff
Claus Gittinger <cg@exept.de>
parents: 5390
diff changeset
  8924
    "set my borderColor in the physical view (if supported by the device)"
140
claus
parents: 138
diff changeset
  8925
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8926
"/    |id dither|
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8927
"/
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8928
"/    drawableId notNil ifTrue:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8929
"/        borderColor := borderColor onDevice:device.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8930
"/        id := borderColor colorId.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8931
"/        id notNil ifTrue:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8932
"/            device setWindowBorderColor:id in:drawableId
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8933
"/        ] ifFalse:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8934
"/            dither := borderColor ditherForm.
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8935
"/            dither notNil ifTrue:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8936
"/                device setWindowBorderPixmap:(dither id) in:drawableId
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8937
"/            ] ifFalse:[
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8938
"/                'SimpleView [warning]: bad borderColor' errorPrintCR
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8939
"/            ]
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8940
"/        ]
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
  8941
"/    ]
1172
a69398754511 newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
  8942
a69398754511 newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
  8943
    "Modified: 10.1.1997 / 18:06:34 / cg"
135
claus
parents:
diff changeset
  8944
!
claus
parents:
diff changeset
  8945
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8946
setInnerClip
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8947
    "compute, and set the inside clip-area"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8948
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8949
    self computeInnerClip.
7416
bd3b9e9edd9e Delegate GraphicsContext objects
Stefan Vogel <sv@exept.de>
parents: 7405
diff changeset
  8950
    self clippingBounds:innerClipRect.
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  8951
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  8952
    "Modified: / 25.5.1999 / 14:45:53 / cg"
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  8953
!
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  8954
4139
6acf2874394b WO's stuff
werner
parents: 4131
diff changeset
  8955
setShown:aState
6acf2874394b WO's stuff
werner
parents: 4131
diff changeset
  8956
    shown := aState
6acf2874394b WO's stuff
werner
parents: 4131
diff changeset
  8957
6acf2874394b WO's stuff
werner
parents: 4131
diff changeset
  8958
!
6acf2874394b WO's stuff
werner
parents: 4131
diff changeset
  8959
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  8960
setViewShape
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  8961
    |form|
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  8962
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  8963
    (form := viewShape borderShapeForm) notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8964
	gc windowBorderShape:form.
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  8965
    ].
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  8966
    (form := viewShape viewShapeForm) notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8967
	gc windowShape:form.
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  8968
    ].
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  8969
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  8970
    "Created: 18.9.1997 / 11:09:00 / cg"
4139
6acf2874394b WO's stuff
werner
parents: 4131
diff changeset
  8971
!
6acf2874394b WO's stuff
werner
parents: 4131
diff changeset
  8972
6acf2874394b WO's stuff
werner
parents: 4131
diff changeset
  8973
windowGroupClass
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8974
	^ WindowGroup
140
claus
parents: 138
diff changeset
  8975
! !
claus
parents: 138
diff changeset
  8976
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8977
!SimpleView methodsFor:'queries'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8978
6117
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8979
anyComponentHasFocus
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8980
    "return true, if the receiver or any of my components has the keyboard focus
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8981
     (either via the focusView mechanism in the windowGroup,
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8982
      or via delegation)"
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8983
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8984
    |focusViewToCheck focusViewOnDisplay delegate|
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8985
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8986
    windowGroup isNil ifTrue:[^ false].
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8987
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8988
    "/ this is wrong (the old code).
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8989
    "/ focusViewInWindowGroup := windowGroup focusView.
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8990
    "/ focusViewToCheck := focusViewInWindowGroup.
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8991
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  8992
    focusViewOnDisplay := device focusView.
6117
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8993
    focusViewToCheck := focusViewOnDisplay.
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8994
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8995
    focusViewToCheck == self ifTrue:[ ^ true ].
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8996
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  8997
    focusViewToCheck notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8998
	(focusViewToCheck isComponentOf: self) ifTrue:[ ^ true ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  8999
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9000
	"mhmh - is there a delegation to me ?"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9001
	(delegate := focusViewToCheck delegate) notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9002
	    delegate == self ifTrue:[^ true].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9003
	    "/ no: delegate does not understand this (EnterFieldGroup or KbdForwarder)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9004
	    "/ we will see, if commenting this leads to problems...
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9005
	    "/ (delegate isComponentOf: self) ifTrue:[ ^ true ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9006
	    ^ delegate askFor:#delegatesTo: with:self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9007
	]
6117
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  9008
    ].
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  9009
    ^ false
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  9010
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  9011
    "Modified: / 08-11-2006 / 12:10:32 / cg"
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  9012
!
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  9013
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9014
canHandle:aKey
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9015
    "return true, if I like to handle the key (from a keyPress event).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9016
     OBSOLETE: do not use & depend on this method, it is a historic
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9017
     leftOver and will be removed. Use the delegation mechanism for this."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9018
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9019
    ^ false
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9020
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9021
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9022
canHandle:aKey from:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9023
    "return true, if I like to handle the key (from a keyPress event)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9024
     in aView.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9025
     OBSOLETE: do not use & depend on this method, it is a historic
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9026
     leftOver and will be removed. Use the delegation mechanism for this."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9027
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9028
    ^ self canHandle:aKey
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9029
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9030
4915
440fb8ebb234 changed #computePreferredExtent (from cg)
Stefan Vogel <sv@exept.de>
parents: 4907
diff changeset
  9031
computePreferredExtent
5060
01bb459aaa8b changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 5050
diff changeset
  9032
    "compute answer the preferred extent, disregarding
01bb459aaa8b changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 5050
diff changeset
  9033
     an explicit or cached preferred extent for the computation"
01bb459aaa8b changed #preferredExtent - use explicitExtent instvar
Stefan Vogel <sv@exept.de>
parents: 5050
diff changeset
  9034
5021
b35cef3e421d changed #copyDataEvent:eventData:view:
Claus Gittinger <cg@exept.de>
parents: 5017
diff changeset
  9035
    |savedPref savedExplicit computedPref|
4915
440fb8ebb234 changed #computePreferredExtent (from cg)
Stefan Vogel <sv@exept.de>
parents: 4907
diff changeset
  9036
440fb8ebb234 changed #computePreferredExtent (from cg)
Stefan Vogel <sv@exept.de>
parents: 4907
diff changeset
  9037
    savedPref := preferredExtent.
5021
b35cef3e421d changed #copyDataEvent:eventData:view:
Claus Gittinger <cg@exept.de>
parents: 5017
diff changeset
  9038
    savedExplicit := explicitExtent.
4915
440fb8ebb234 changed #computePreferredExtent (from cg)
Stefan Vogel <sv@exept.de>
parents: 4907
diff changeset
  9039
    [
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9040
	preferredExtent := explicitExtent := nil.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9041
	computedPref := self preferredExtent.
4915
440fb8ebb234 changed #computePreferredExtent (from cg)
Stefan Vogel <sv@exept.de>
parents: 4907
diff changeset
  9042
    ] ensure:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9043
	preferredExtent := savedPref.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9044
	explicitExtent := savedExplicit.
4915
440fb8ebb234 changed #computePreferredExtent (from cg)
Stefan Vogel <sv@exept.de>
parents: 4907
diff changeset
  9045
    ].
440fb8ebb234 changed #computePreferredExtent (from cg)
Stefan Vogel <sv@exept.de>
parents: 4907
diff changeset
  9046
    ^ computedPref
440fb8ebb234 changed #computePreferredExtent (from cg)
Stefan Vogel <sv@exept.de>
parents: 4907
diff changeset
  9047
!
440fb8ebb234 changed #computePreferredExtent (from cg)
Stefan Vogel <sv@exept.de>
parents: 4907
diff changeset
  9048
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9049
cornerChangedFlag
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9050
    "/ ^ cornerChangedFlag == true
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9051
    ^ flagBits bitTest:FlagCornerChanged
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9052
!
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9053
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  9054
cornerChangedFlag:aBoolean
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9055
    "/ cornerChangedFlag := aBoolean
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9056
    aBoolean ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9057
	flagBits := flagBits bitOr:FlagCornerChanged
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9058
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9059
	flagBits := flagBits bitClear:FlagCornerChanged
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9060
    ].
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9061
!
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9062
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9063
delegatesTo:someone
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9064
    "return true, if I delegate events to someone"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9065
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9066
    delegate isNil ifTrue:[^ false].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9067
    ^ delegate delegatesTo:someone
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9068
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9069
3439
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  9070
escapeIsCancel
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  9071
    "return the escapeIsCancel setting - defaults to true for popupViews here."
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  9072
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  9073
    ^ self isPopUpView
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  9074
!
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  9075
3394
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  9076
extentChangedBeforeCreatedFlag
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  9077
    ^ flagBits bitTest:FlagExtentChangedBeforeCreated
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  9078
!
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  9079
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  9080
extentChangedBeforeCreatedFlag:aBoolean
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  9081
    aBoolean ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9082
	flagBits := flagBits bitOr:FlagExtentChangedBeforeCreated
3394
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  9083
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9084
	flagBits := flagBits bitClear:FlagExtentChangedBeforeCreated
3394
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  9085
    ].
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  9086
!
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  9087
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9088
extentChangedFlag
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9089
    "/ ^ extentChangedFlag == true
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9090
    ^ flagBits bitTest:FlagExtentChanged
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9091
!
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9092
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9093
extentChangedFlag:aBoolean
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9094
    "/ extentChangedFlag := aBoolean
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9095
    aBoolean ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9096
	flagBits := flagBits bitOr:FlagExtentChanged
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9097
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9098
	flagBits := flagBits bitClear:FlagExtentChanged
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9099
    ].
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9100
!
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9101
5140
711f73e23b87 +hasExplicitFocus
Claus Gittinger <cg@exept.de>
parents: 5137
diff changeset
  9102
hasExplicitFocus
711f73e23b87 +hasExplicitFocus
Claus Gittinger <cg@exept.de>
parents: 5137
diff changeset
  9103
    "return true, if the receiver has the keyboard focus
711f73e23b87 +hasExplicitFocus
Claus Gittinger <cg@exept.de>
parents: 5137
diff changeset
  9104
     via the focusView mechanism in the windowGroup"
711f73e23b87 +hasExplicitFocus
Claus Gittinger <cg@exept.de>
parents: 5137
diff changeset
  9105
711f73e23b87 +hasExplicitFocus
Claus Gittinger <cg@exept.de>
parents: 5137
diff changeset
  9106
    windowGroup isNil ifTrue:[^ false].
711f73e23b87 +hasExplicitFocus
Claus Gittinger <cg@exept.de>
parents: 5137
diff changeset
  9107
    ^ windowGroup explicitFocusView == self
711f73e23b87 +hasExplicitFocus
Claus Gittinger <cg@exept.de>
parents: 5137
diff changeset
  9108
!
711f73e23b87 +hasExplicitFocus
Claus Gittinger <cg@exept.de>
parents: 5137
diff changeset
  9109
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9110
hasFocus
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9111
    "return true, if the receiver has the keyboard focus
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9112
     (either via the focusView mechanism in the windowGroup,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9113
      or via delegation)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9114
6077
267fb1241ec2 Fix stc compiler warnings
Stefan Vogel <sv@exept.de>
parents: 6074
diff changeset
  9115
    |focusViewToCheck focusViewOnDisplay delegate|
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9116
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9117
    windowGroup isNil ifTrue:[^ false].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9118
4675
b8e2a532c680 focusHandling
Claus Gittinger <cg@exept.de>
parents: 4674
diff changeset
  9119
    "/ this is wrong (the old code).
b8e2a532c680 focusHandling
Claus Gittinger <cg@exept.de>
parents: 4674
diff changeset
  9120
    "/ focusViewInWindowGroup := windowGroup focusView.
b8e2a532c680 focusHandling
Claus Gittinger <cg@exept.de>
parents: 4674
diff changeset
  9121
    "/ focusViewToCheck := focusViewInWindowGroup.
b8e2a532c680 focusHandling
Claus Gittinger <cg@exept.de>
parents: 4674
diff changeset
  9122
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
  9123
    focusViewOnDisplay := device focusView.
4675
b8e2a532c680 focusHandling
Claus Gittinger <cg@exept.de>
parents: 4674
diff changeset
  9124
    focusViewToCheck := focusViewOnDisplay.
4834
312cf6fbee53 *** empty log message ***
fm
parents: 4833
diff changeset
  9125
6117
b0f2ee933547 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6116
diff changeset
  9126
    focusViewToCheck == self ifTrue:[ ^ true ].
4675
b8e2a532c680 focusHandling
Claus Gittinger <cg@exept.de>
parents: 4674
diff changeset
  9127
b8e2a532c680 focusHandling
Claus Gittinger <cg@exept.de>
parents: 4674
diff changeset
  9128
    focusViewToCheck notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9129
	"mhmh - is there a delegation to me ?"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9130
	(delegate := focusViewToCheck delegate) notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9131
	    delegate == self ifTrue:[^ true].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9132
	    ^ delegate askFor:#delegatesTo: with:self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9133
	]
135
claus
parents:
diff changeset
  9134
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9135
    ^ false
4675
b8e2a532c680 focusHandling
Claus Gittinger <cg@exept.de>
parents: 4674
diff changeset
  9136
b8e2a532c680 focusHandling
Claus Gittinger <cg@exept.de>
parents: 4674
diff changeset
  9137
    "Modified: / 08-11-2006 / 12:10:32 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9138
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9139
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  9140
is3D
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  9141
    "return true, if my style is some kind of 3D style
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  9142
     This is OBSOLETE and will be removed."
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  9143
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  9144
    ^ styleSheet is3D
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  9145
!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  9146
6136
be85ab25bd44 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
  9147
isActive
be85ab25bd44 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
  9148
    "true, if I have the focus (w.r.t the windowing system);
be85ab25bd44 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
  9149
     i.e. if one of my subViews actually has the real focus.
be85ab25bd44 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
  9150
     With click-to-focus behavior, this is obviously the current application.
be85ab25bd44 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
  9151
     Use this query with caution, for example, to suppress tooltips for inactive apps."
be85ab25bd44 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
  9152
be85ab25bd44 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
  9153
    ^ windowGroup notNil and:[windowGroup anyViewHasFocus]
be85ab25bd44 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
  9154
!
be85ab25bd44 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
  9155
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  9156
isBorderedWrapper
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  9157
     ^ false
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  9158
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  9159
    "Created: 5.6.1996 / 14:11:15 / cg"
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  9160
!
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  9161
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  9162
isComponentOf:aViewOrComponent
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  9163
    "return true, if I am a (direct or indirect) component of aViewOrComponent"
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  9164
3362
6774771fc2b8 fix #isComponentOf:
ca
parents: 3358
diff changeset
  9165
    |sview|
6774771fc2b8 fix #isComponentOf:
ca
parents: 3358
diff changeset
  9166
6774771fc2b8 fix #isComponentOf:
ca
parents: 3358
diff changeset
  9167
    sview := self.
6774771fc2b8 fix #isComponentOf:
ca
parents: 3358
diff changeset
  9168
3616
0ddaf2ce9b06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3614
diff changeset
  9169
    [ (sview := sview container) notNil ] whileTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9170
	sview == aViewOrComponent ifTrue:[^ true].
3362
6774771fc2b8 fix #isComponentOf:
ca
parents: 3358
diff changeset
  9171
    ].
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9172
    ^ false
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9173
!
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  9174
3711
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  9175
isCursorKeyConsumer
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  9176
    "return true, if the receiver can be controlled by cursor keys;
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  9177
     i.e. it can handle some keyboard input,
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  9178
     isCursorKeyConsumer are potential candidates for getting the keyboard
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  9179
     focus initially within dialogBoxes, or when the focus-follows-pointer
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  9180
     mode is off.
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  9181
     Return false here, this is redefined in SelectionInListView."
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  9182
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  9183
    ^ false
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  9184
!
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  9185
2496
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  9186
isDefault
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  9187
    "return true, if I am a default widget;
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  9188
     Used with autoAccept. Currently only default buttons are supposed to return
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  9189
     true here"
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  9190
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  9191
     ^ false
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  9192
!
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  9193
2430
fbce2378d686 added isExternalTopView query.
Claus Gittinger <cg@exept.de>
parents: 2425
diff changeset
  9194
isExternalTopView
2454
f708fb443ffe method comment
Claus Gittinger <cg@exept.de>
parents: 2452
diff changeset
  9195
    "return true, if this is an external topView - always false here"
f708fb443ffe method comment
Claus Gittinger <cg@exept.de>
parents: 2452
diff changeset
  9196
2430
fbce2378d686 added isExternalTopView query.
Claus Gittinger <cg@exept.de>
parents: 2425
diff changeset
  9197
    ^ false
fbce2378d686 added isExternalTopView query.
Claus Gittinger <cg@exept.de>
parents: 2425
diff changeset
  9198
fbce2378d686 added isExternalTopView query.
Claus Gittinger <cg@exept.de>
parents: 2425
diff changeset
  9199
fbce2378d686 added isExternalTopView query.
Claus Gittinger <cg@exept.de>
parents: 2425
diff changeset
  9200
!
fbce2378d686 added isExternalTopView query.
Claus Gittinger <cg@exept.de>
parents: 2425
diff changeset
  9201
6291
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  9202
isICCCWindowGroupWindow
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  9203
    "needed for checkForEndOfDispatch"
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  9204
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  9205
    ^ false
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  9206
!
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
  9207
497
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  9208
isInputField
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  9209
    "return true, if the receiver is some kind of input view,
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  9210
     i.e. it should (can) be part of an enterGroup.
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  9211
     Return false here, this is redefined in EnterField."
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  9212
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  9213
    ^ false
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  9214
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  9215
    "Created: 4.3.1996 / 11:34:07 / cg"
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  9216
!
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  9217
2410
050a7633ba9f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2406
diff changeset
  9218
isJavaView
050a7633ba9f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2406
diff changeset
  9219
    ^ false
050a7633ba9f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2406
diff changeset
  9220
050a7633ba9f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2406
diff changeset
  9221
    "Created: / 4.12.1998 / 14:10:06 / cg"
050a7633ba9f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2406
diff changeset
  9222
!
050a7633ba9f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2406
diff changeset
  9223
2588
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  9224
isKeyboardConsumer
2727
2047aa7dd3ac comment
Claus Gittinger <cg@exept.de>
parents: 2726
diff changeset
  9225
    "return true, if the receiver is a keyboard consumer;
2588
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  9226
     i.e. it can handle (non-shortkey) keyboard input,
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  9227
     keyboardConsumer are potential candidates for getting the keyboard
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  9228
     focus initially within dialogBoxes, or when the focus-follows-pointer
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  9229
     mode is off.
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  9230
     Return false here, this is redefined in EditTextView and EditField."
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  9231
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  9232
    ^ false
2727
2047aa7dd3ac comment
Claus Gittinger <cg@exept.de>
parents: 2726
diff changeset
  9233
2047aa7dd3ac comment
Claus Gittinger <cg@exept.de>
parents: 2726
diff changeset
  9234
    "Modified: / 22.5.1999 / 16:19:27 / cg"
2588
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  9235
!
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  9236
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  9237
isLayoutWrapper
5229
3caaef23e005 UIPainter can now resize subviews of PanelViews
Stefan Vogel <sv@exept.de>
parents: 5228
diff changeset
  9238
    "answer true, if this view defines the layout of it's subviews"
3caaef23e005 UIPainter can now resize subviews of PanelViews
Stefan Vogel <sv@exept.de>
parents: 5228
diff changeset
  9239
3caaef23e005 UIPainter can now resize subviews of PanelViews
Stefan Vogel <sv@exept.de>
parents: 5228
diff changeset
  9240
    ^ false
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  9241
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  9242
    "Created: 19.7.1996 / 17:51:04 / cg"
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  9243
!
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  9244
4497
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
  9245
isMDIClientView
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
  9246
    ^false
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
  9247
!
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
  9248
4184
1b6a082d98e2 isModal added
ca
parents: 4157
diff changeset
  9249
isModal
1b6a082d98e2 isModal added
ca
parents: 4157
diff changeset
  9250
    "return true, if the receiver has been opened modal.
1b6a082d98e2 isModal added
ca
parents: 4157
diff changeset
  9251
     For compatibility with topView (if regular views are the window of an application),
1b6a082d98e2 isModal added
ca
parents: 4157
diff changeset
  9252
     return false here."
1b6a082d98e2 isModal added
ca
parents: 4157
diff changeset
  9253
1b6a082d98e2 isModal added
ca
parents: 4157
diff changeset
  9254
    ^ false
1b6a082d98e2 isModal added
ca
parents: 4157
diff changeset
  9255
!
1b6a082d98e2 isModal added
ca
parents: 4157
diff changeset
  9256
3653
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  9257
isSameOrComponentOf:aView
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  9258
    "return true, if I am aView or a (direct or indirect) component of aView"
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  9259
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  9260
    ^ self == aView or:[self isComponentOf:aView].
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  9261
!
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  9262
2161
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  9263
isScrollWrapper
4918
4c804945889f Clean up documentation & variable names
Stefan Vogel <sv@exept.de>
parents: 4915
diff changeset
  9264
     "answer true if this view wraps a possibly larger view and has scroll bars"
4c804945889f Clean up documentation & variable names
Stefan Vogel <sv@exept.de>
parents: 4915
diff changeset
  9265
2161
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  9266
     ^ false
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  9267
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  9268
    "Created: / 5.6.1996 / 14:11:15 / cg"
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  9269
    "Modified: / 20.6.1998 / 14:15:29 / cg"
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  9270
!
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  9271
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9272
isSubViewOf:aView
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  9273
    "return true, if I am a (direct or indirect) subview of aView"
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  9274
3434
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  9275
    <resource:#obsolete>
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  9276
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  9277
    self obsoleteMethodWarning:'use #isComponentOf:'.
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  9278
    ^ self isComponentOf:aView.
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  9279
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  9280
    "Modified: 5.6.1996 / 14:25:35 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9281
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9282
5804
c769d3a0325d re-added: #isTextView (it is sent at many places)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5782
diff changeset
  9283
isTextView
c769d3a0325d re-added: #isTextView (it is sent at many places)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5782
diff changeset
  9284
c769d3a0325d re-added: #isTextView (it is sent at many places)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5782
diff changeset
  9285
    "Returns true, if the view displays text"
c769d3a0325d re-added: #isTextView (it is sent at many places)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5782
diff changeset
  9286
c769d3a0325d re-added: #isTextView (it is sent at many places)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5782
diff changeset
  9287
    "JV@2011-09-16: Do not remove this method, it is called
c769d3a0325d re-added: #isTextView (it is sent at many places)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5782
diff changeset
  9288
     at many places. See senders before removing!!!!!!"
c769d3a0325d re-added: #isTextView (it is sent at many places)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5782
diff changeset
  9289
c769d3a0325d re-added: #isTextView (it is sent at many places)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5782
diff changeset
  9290
    ^ false
c769d3a0325d re-added: #isTextView (it is sent at many places)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5782
diff changeset
  9291
c769d3a0325d re-added: #isTextView (it is sent at many places)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5782
diff changeset
  9292
    "Created: / 16-09-2011 / 17:49:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c769d3a0325d re-added: #isTextView (it is sent at many places)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5782
diff changeset
  9293
!
c769d3a0325d re-added: #isTextView (it is sent at many places)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5782
diff changeset
  9294
4151
werner
parents: 4150
diff changeset
  9295
isTransparentBox
werner
parents: 4150
diff changeset
  9296
     ^ false
werner
parents: 4150
diff changeset
  9297
!
werner
parents: 4150
diff changeset
  9298
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  9299
isWrapper
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  9300
     ^ false
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  9301
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  9302
    "Created: 5.6.1996 / 01:05:06 / cg"
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  9303
!
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  9304
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9305
originChangedFlag
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9306
    "/ ^ originChangedFlag == true
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9307
    ^ flagBits bitTest:FlagOriginChanged
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9308
!
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9309
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9310
originChangedFlag:aBoolean
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9311
    "/ originChangedFlag := aBoolean
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9312
    aBoolean ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9313
	flagBits := flagBits bitOr:FlagOriginChanged
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9314
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9315
	flagBits := flagBits bitClear:FlagOriginChanged
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9316
    ].
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9317
!
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  9318
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9319
originChangedFlag:originChanged extentChangedFlag:extentChanged
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9320
    |newBits|
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9321
5946
a2a03a6445c1 changed:
Claus Gittinger <cg@exept.de>
parents: 5944
diff changeset
  9322
    newBits := flagBits bitClear:(FlagOriginChanged bitOr: FlagExtentChanged).
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9323
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9324
    originChanged ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9325
	newBits := newBits bitOr:FlagOriginChanged
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9326
    ].
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9327
    extentChanged ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9328
	newBits := newBits bitOr:FlagExtentChanged
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9329
    ].
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9330
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9331
    flagBits := newBits.
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9332
!
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9333
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9334
originChangedFlag:originChanged extentChangedFlag:extentChanged cornerChangedFlag:cornerChanged
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9335
    |newBits|
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9336
5946
a2a03a6445c1 changed:
Claus Gittinger <cg@exept.de>
parents: 5944
diff changeset
  9337
    newBits := flagBits bitClear:((FlagOriginChanged bitOr: FlagExtentChanged) bitOr: FlagCornerChanged).
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9338
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9339
    originChanged ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9340
	newBits := newBits bitOr:FlagOriginChanged
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9341
    ].
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9342
    extentChanged ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9343
	newBits := newBits bitOr:FlagExtentChanged
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9344
    ].
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9345
    cornerChanged ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9346
	newBits := newBits bitOr:FlagCornerChanged
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9347
    ].
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9348
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9349
    flagBits := newBits.
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9350
!
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9351
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9352
originOrExtentChanged
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9353
    "/ ^ originChanged or:[extentChanged].
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9354
    ^ flagBits bitTest:( FlagOriginChanged + FlagExtentChanged )
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9355
!
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9356
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9357
originOrExtentOrCornerChanged
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9358
    "/ ^ originChanged or:[extentChanged or:[cornerChanged]].
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9359
    ^ flagBits bitTest:( FlagOriginChanged + FlagExtentChanged + FlagCornerChanged )
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9360
!
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9361
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9362
preferredBounds
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9363
    "ST-80 compatibility."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9364
971
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  9365
    ^ 0@0 extent:(self preferredExtent)
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  9366
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  9367
    "Modified: 19.7.1996 / 20:41:36 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9368
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9369
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9370
preferredExtent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9371
    "return my preferred extent - this is the minimum size I would like to have.
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9372
     If the preferredExtent has been set, that one is returned.
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9373
     Otherwise, if there are any components, a rectangle enclosing them
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9374
     is returned. Otherwise, the actual extent is returned."
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9375
1063
ba1bf8091bc1 unused variable cleanup
Claus Gittinger <cg@exept.de>
parents: 1052
diff changeset
  9376
    |maxX maxY|
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9377
5021
b35cef3e421d changed #copyDataEvent:eventData:view:
Claus Gittinger <cg@exept.de>
parents: 5017
diff changeset
  9378
    "/ If I have an explicit preferredExtent..
b35cef3e421d changed #copyDataEvent:eventData:view:
Claus Gittinger <cg@exept.de>
parents: 5017
diff changeset
  9379
    explicitExtent notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9380
	^ explicitExtent
5021
b35cef3e421d changed #copyDataEvent:eventData:view:
Claus Gittinger <cg@exept.de>
parents: 5017
diff changeset
  9381
    ].
b35cef3e421d changed #copyDataEvent:eventData:view:
Claus Gittinger <cg@exept.de>
parents: 5017
diff changeset
  9382
b35cef3e421d changed #copyDataEvent:eventData:view:
Claus Gittinger <cg@exept.de>
parents: 5017
diff changeset
  9383
    "/ If I have a cached preferredExtent value..
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9384
    preferredExtent notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9385
	^ preferredExtent
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9386
    ].
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9387
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9388
    "/ mhmh - if I have subViews, collect their
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9389
    "/ preferred bounds ...
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9390
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9391
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9392
	maxX := maxY := 0.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9393
	subViews do:[:aSubView |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9394
	    |org corn|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9395
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9396
	    org := aSubView computeOrigin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9397
	    corn := org + aSubView preferredExtent.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9398
	    maxX := maxX max:corn x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9399
	    maxY := maxY max:corn y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9400
	]
5021
b35cef3e421d changed #copyDataEvent:eventData:view:
Claus Gittinger <cg@exept.de>
parents: 5017
diff changeset
  9401
    ].
b35cef3e421d changed #copyDataEvent:eventData:view:
Claus Gittinger <cg@exept.de>
parents: 5017
diff changeset
  9402
b35cef3e421d changed #copyDataEvent:eventData:view:
Claus Gittinger <cg@exept.de>
parents: 5017
diff changeset
  9403
    "/ mhmh - if I have components, collect their preferred bounds ...
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9404
    components notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9405
	maxX isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9406
	    maxX := maxY := 0.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9407
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9408
	components do:[:aComponent |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9409
	    |bounds org corn|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9410
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9411
	    bounds := aComponent preferredBounds.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9412
	    corn := bounds corner.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9413
	    maxX := maxX max:corn x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9414
	    maxY := maxY max:corn y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9415
	]
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9416
    ].
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9417
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9418
    "/ nothing found - return the actual size
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9419
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9420
    maxX isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9421
	^ self extent.
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9422
    ].
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9423
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9424
    ^ maxX @ maxY.
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  9425
971
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  9426
    "Modified: 19.7.1996 / 20:43:32 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9427
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9428
4970
6a58581288cc added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 4968
diff changeset
  9429
preferredHeight
6a58581288cc added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 4968
diff changeset
  9430
    ^ self preferredExtent y
6a58581288cc added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 4968
diff changeset
  9431
!
6a58581288cc added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 4968
diff changeset
  9432
6a58581288cc added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 4968
diff changeset
  9433
preferredWidth
6a58581288cc added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 4968
diff changeset
  9434
    ^ self preferredExtent x
6a58581288cc added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 4968
diff changeset
  9435
!
6a58581288cc added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 4968
diff changeset
  9436
2956
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  9437
reallyRealized
6246
bca5bde259bf class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6229
diff changeset
  9438
    "return true, if the receiver is realized and all containers are realized.
bca5bde259bf class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6229
diff changeset
  9439
     Realized means that it has been mapped (i.e. made visible) on
bca5bde259bf class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6229
diff changeset
  9440
     the display (as opposed to being only created and possibly invisible)"
2956
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  9441
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  9442
    realized ifFalse:[^ false].
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  9443
    superView isNil ifTrue:[^ true].
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  9444
    ^ superView reallyRealized
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  9445
!
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  9446
2130
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  9447
resources
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9448
    "return the view's resources -
5221
3c4682d4b409 comment only
Claus Gittinger <cg@exept.de>
parents: 5214
diff changeset
  9449
     that's a ResourcePack containing national language strings"
3c4682d4b409 comment only
Claus Gittinger <cg@exept.de>
parents: 5214
diff changeset
  9450
2130
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  9451
    ^ resources
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  9452
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  9453
    "Created: / 25.5.1998 / 13:00:02 / cg"
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  9454
!
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  9455
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9456
sizeFixed
7339
c51be133de59 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7337
diff changeset
  9457
    "return true, if this view wants its size to remain unchanged.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9458
     Used by panels, to check if their components want to keep their size."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9459
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9460
    ^ false
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9461
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9462
    "Created: 17.9.1995 / 20:29:20 / claus"
3901
88018bc87ad9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  9463
!
88018bc87ad9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  9464
5727
d0b9ef9c0cc0 added: #startWindowMoveOnButtonPress
Claus Gittinger <cg@exept.de>
parents: 5722
diff changeset
  9465
startWindowMoveOnButtonPress
d0b9ef9c0cc0 added: #startWindowMoveOnButtonPress
Claus Gittinger <cg@exept.de>
parents: 5722
diff changeset
  9466
    "if another view is used as topView"
d0b9ef9c0cc0 added: #startWindowMoveOnButtonPress
Claus Gittinger <cg@exept.de>
parents: 5722
diff changeset
  9467
d0b9ef9c0cc0 added: #startWindowMoveOnButtonPress
Claus Gittinger <cg@exept.de>
parents: 5722
diff changeset
  9468
    ^ false
d0b9ef9c0cc0 added: #startWindowMoveOnButtonPress
Claus Gittinger <cg@exept.de>
parents: 5722
diff changeset
  9469
d0b9ef9c0cc0 added: #startWindowMoveOnButtonPress
Claus Gittinger <cg@exept.de>
parents: 5722
diff changeset
  9470
    "Created: / 04-03-2011 / 08:57:45 / cg"
d0b9ef9c0cc0 added: #startWindowMoveOnButtonPress
Claus Gittinger <cg@exept.de>
parents: 5722
diff changeset
  9471
!
d0b9ef9c0cc0 added: #startWindowMoveOnButtonPress
Claus Gittinger <cg@exept.de>
parents: 5722
diff changeset
  9472
3901
88018bc87ad9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  9473
tabRequiresControl
88018bc87ad9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  9474
    "returns true, if a focus tabbing requires a control-key to be pressed.
88018bc87ad9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  9475
     The default is true for editTextView, false for other widgets,
88018bc87ad9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  9476
     to allow for easier text entry"
88018bc87ad9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  9477
88018bc87ad9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  9478
    ^ false
4191
7f999428c830 *** empty log message ***
ca
parents: 4189
diff changeset
  9479
!
7f999428c830 *** empty log message ***
ca
parents: 4189
diff changeset
  9480
7f999428c830 *** empty log message ***
ca
parents: 4189
diff changeset
  9481
window
7f999428c830 *** empty log message ***
ca
parents: 4189
diff changeset
  9482
    "for compatibility with applicationModels ... return the receiver"
7f999428c830 *** empty log message ***
ca
parents: 4189
diff changeset
  9483
7f999428c830 *** empty log message ***
ca
parents: 4189
diff changeset
  9484
    ^ self
1699
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  9485
! !
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  9486
5202
966f7b304597 No longer scroll the focus view for mouseWheel events.
Stefan Vogel <sv@exept.de>
parents: 5154
diff changeset
  9487
!SimpleView methodsFor:'queries-delegation'!
966f7b304597 No longer scroll the focus view for mouseWheel events.
Stefan Vogel <sv@exept.de>
parents: 5154
diff changeset
  9488
966f7b304597 No longer scroll the focus view for mouseWheel events.
Stefan Vogel <sv@exept.de>
parents: 5154
diff changeset
  9489
handlesMouseWheelMotion:event inView:aView
966f7b304597 No longer scroll the focus view for mouseWheel events.
Stefan Vogel <sv@exept.de>
parents: 5154
diff changeset
  9490
    "we do not handle delegated mousewheel events - subclasses may handle them"
966f7b304597 No longer scroll the focus view for mouseWheel events.
Stefan Vogel <sv@exept.de>
parents: 5154
diff changeset
  9491
966f7b304597 No longer scroll the focus view for mouseWheel events.
Stefan Vogel <sv@exept.de>
parents: 5154
diff changeset
  9492
    ^ false
966f7b304597 No longer scroll the focus view for mouseWheel events.
Stefan Vogel <sv@exept.de>
parents: 5154
diff changeset
  9493
! !
966f7b304597 No longer scroll the focus view for mouseWheel events.
Stefan Vogel <sv@exept.de>
parents: 5154
diff changeset
  9494
3266
4db6dd90cc17 category change
Claus Gittinger <cg@exept.de>
parents: 3251
diff changeset
  9495
!SimpleView methodsFor:'queries-events'!
2802
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9496
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9497
buttonMotionEventPending
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9498
    "return true, if a button motion event is pending.
7663
4c01465c9f75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7638
diff changeset
  9499
     Normally, you don't want to use this, since no polling is needed
2802
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9500
     (not even for mouse-tracking).
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9501
     Actually, its a historical leftover"
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9502
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9503
    windowGroup notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9504
	^ windowGroup sensor hasButtonMotionEventFor:self
2802
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9505
    ].
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9506
    ^ super buttonMotionEventPending
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9507
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9508
    "Modified: 1.11.1996 / 17:04:38 / cg"
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9509
! !
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  9510
3266
4db6dd90cc17 category change
Claus Gittinger <cg@exept.de>
parents: 3251
diff changeset
  9511
!SimpleView methodsFor:'queries-internal'!
1699
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  9512
1354
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  9513
specClass
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9514
    "fallback - heuristics to get a specClass for some viewClass.
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9515
     Based upon my className, look for a corresponding Spec-class.
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9516
     If there is none, return ArbiraryComponentSpec as a fallBack"
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9517
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9518
    |myClass myName cls|
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9519
4157
6499061440cd Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 4151
diff changeset
  9520
    myClass := self class.
6499061440cd Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 4151
diff changeset
  9521
    (myClass == View or:[myClass == SimpleView]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9522
	^ ViewSpec "/ CompositeSpecCollection
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9523
    ].
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9524
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9525
    "/ try: appending 'Spec' to my classes name
1409
3818a8a85c16 use CompositeSpecCollection as specClass for
Claus Gittinger <cg@exept.de>
parents: 1402
diff changeset
  9526
1354
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  9527
    myName := self class name.
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  9528
    cls := Smalltalk classNamed:(myName , 'Spec').
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9529
    cls notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9530
	cls := cls autoload.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9531
	(cls isSubclassOf:UISpecification) ifTrue:[^ cls].
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9532
    ].
1354
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  9533
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  9534
    (myName endsWith:'View') ifTrue:[
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9535
"/        "/ try name without 'View'
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9536
"/        cls := Smalltalk classNamed:(myName copyWithoutLast:4).
4157
6499061440cd Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 4151
diff changeset
  9537
"/        cls notNil ifTrue:[
6499061440cd Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 4151
diff changeset
  9538
"/            cls := cls autoload.
6499061440cd Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 4151
diff changeset
  9539
"/            (cls isSubclassOf:UISpecification) ifTrue:[^ cls].
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9540
"/        ].
4157
6499061440cd Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 4151
diff changeset
  9541
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9542
	"/ try with 'View' replaced by 'Spec'
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9543
	cls := Smalltalk classNamed:((myName copyButLast:4) , 'View').
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9544
	cls notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9545
	    cls := cls autoload.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9546
	    (cls isSubclassOf:UISpecification) ifTrue:[^ cls].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9547
	]
4157
6499061440cd Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 4151
diff changeset
  9548
    ].
6499061440cd Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 4151
diff changeset
  9549
6499061440cd Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 4151
diff changeset
  9550
    "/ fall back for all others
1356
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  9551
    ^ ArbitraryComponentSpec
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  9552
1354
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  9553
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  9554
    "
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  9555
     FramedBox new specClass
1354
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  9556
    "
1409
3818a8a85c16 use CompositeSpecCollection as specClass for
Claus Gittinger <cg@exept.de>
parents: 1402
diff changeset
  9557
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  9558
    "Modified: / 31.10.1997 / 19:44:55 / cg"
1699
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  9559
!
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  9560
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  9561
windowStyle
3715
70eea03a8d8d comment
Claus Gittinger <cg@exept.de>
parents: 3711
diff changeset
  9562
    "return a symbol describing my style (one of: #dialog, #popUp or #normal)"
1699
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  9563
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  9564
    self isPopUpView ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9565
	^ #popUp
4497
Claus Gittinger <cg@exept.de>
parents: 4494
diff changeset
  9566
    ].
4501
0455a5453085 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4499
diff changeset
  9567
    self isMDIChildView ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9568
	^ #mdiChild
4501
0455a5453085 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4499
diff changeset
  9569
    ].
1699
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  9570
    ^ #normal
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  9571
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  9572
    "Created: 2.5.1997 / 14:29:48 / cg"
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  9573
    "Modified: 2.5.1997 / 14:30:14 / cg"
4494
5f811173a85b preps for mdi-windowType
Claus Gittinger <cg@exept.de>
parents: 4492
diff changeset
  9574
!
5f811173a85b preps for mdi-windowType
Claus Gittinger <cg@exept.de>
parents: 4492
diff changeset
  9575
5f811173a85b preps for mdi-windowType
Claus Gittinger <cg@exept.de>
parents: 4492
diff changeset
  9576
windowType
5f811173a85b preps for mdi-windowType
Claus Gittinger <cg@exept.de>
parents: 4492
diff changeset
  9577
    "return a symbol describing my type (one of: #mdichild or nil)"
5f811173a85b preps for mdi-windowType
Claus Gittinger <cg@exept.de>
parents: 4492
diff changeset
  9578
5f811173a85b preps for mdi-windowType
Claus Gittinger <cg@exept.de>
parents: 4492
diff changeset
  9579
    ^ nil
140
claus
parents: 138
diff changeset
  9580
! !
claus
parents: 138
diff changeset
  9581
claus
parents: 138
diff changeset
  9582
!SimpleView methodsFor:'realization'!
claus
parents: 138
diff changeset
  9583
5602
eca06436db1d added: #activate
Claus Gittinger <cg@exept.de>
parents: 5595
diff changeset
  9584
activate
eca06436db1d added: #activate
Claus Gittinger <cg@exept.de>
parents: 5595
diff changeset
  9585
    "noop for protocol compatibility with TopViews (in case you do a Button new open)"
eca06436db1d added: #activate
Claus Gittinger <cg@exept.de>
parents: 5595
diff changeset
  9586
eca06436db1d added: #activate
Claus Gittinger <cg@exept.de>
parents: 5595
diff changeset
  9587
    "Created: / 17-09-2010 / 16:30:24 / cg"
eca06436db1d added: #activate
Claus Gittinger <cg@exept.de>
parents: 5595
diff changeset
  9588
    "Modified: / 17-09-2010 / 18:39:35 / cg"
eca06436db1d added: #activate
Claus Gittinger <cg@exept.de>
parents: 5595
diff changeset
  9589
!
eca06436db1d added: #activate
Claus Gittinger <cg@exept.de>
parents: 5595
diff changeset
  9590
3459
d50728855052 optionBox: cancel-value corrected
Claus Gittinger <cg@exept.de>
parents: 3439
diff changeset
  9591
closeCancel
d50728855052 optionBox: cancel-value corrected
Claus Gittinger <cg@exept.de>
parents: 3439
diff changeset
  9592
    "for protocol compatibility with modal dialogs"
d50728855052 optionBox: cancel-value corrected
Claus Gittinger <cg@exept.de>
parents: 3439
diff changeset
  9593
d50728855052 optionBox: cancel-value corrected
Claus Gittinger <cg@exept.de>
parents: 3439
diff changeset
  9594
    self hideRequest
d50728855052 optionBox: cancel-value corrected
Claus Gittinger <cg@exept.de>
parents: 3439
diff changeset
  9595
!
d50728855052 optionBox: cancel-value corrected
Claus Gittinger <cg@exept.de>
parents: 3439
diff changeset
  9596
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9597
create
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9598
    "create (i.e. tell my device about me) if not already created.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9599
     This does not make the view visible (needs a #map for that)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9600
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  9601
    self drawableId isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9602
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9603
	 make certain that superview is created also
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9604
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9605
	superView notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9606
	     superView view create.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9607
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9608
"/            "and put my controller into the superviews controller list"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9609
"/            controller notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9610
"/                superView controller notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9611
"/                    controller manager:(superView controller manager)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9612
"/                ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9613
"/            ]
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9614
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9615
	    device isNil ifTrue:[ device := Screen current ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9616
	    "/
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9617
	    "/ if the display is not already dispatching events,
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9618
	    "/ this starts the event process.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9619
	    "/
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9620
	    device startDispatch
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9621
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9622
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9623
	cursor notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9624
	    cursor := cursor onDevice:device.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9625
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9626
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9627
	self extentChangedBeforeCreatedFlag ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9628
	    "/ this is true, if the extent was changed before
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9629
	    "/ this view was created (and therefore, no sizeChangeEvent
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9630
	    "/ was sent to me, which would notify children.)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9631
	    "/ have to do this here.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9632
	    self sizeChanged:nil.   "/ must tell children (if any)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9633
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9634
	self hasExplicitExtent ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9635
	    self resize
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9636
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9637
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9638
	self physicalCreate.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9639
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9640
	viewBackground notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9641
	   self setViewBackground
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9642
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9643
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9644
	self initEvents.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9645
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9646
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9647
	 this is the first create,
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9648
	 force sizechange messages to be sent to the view
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9649
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9650
	self originChangedFlag:true extentChangedFlag:true
151
claus
parents: 145
diff changeset
  9651
    ]
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  9652
1494
4faf11deec70 cursor #on: is obsoleted by #onDevice:.
Claus Gittinger <cg@exept.de>
parents: 1490
diff changeset
  9653
    "Modified: 28.3.1997 / 13:50:17 / cg"
151
claus
parents: 145
diff changeset
  9654
!
claus
parents: 145
diff changeset
  9655
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9656
createWithAllSubViews
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9657
    "create, then create all subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9658
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  9659
    self drawableId isNil ifTrue:[self create].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9660
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9661
	subViews do:[:subView | subView createWithAllSubViews]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9662
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9663
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9664
1193
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9665
fetchDeviceResources
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9666
    "fetch all device specific resources. This is invoked,
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9667
     when the view is made visible on some device for the very first
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9668
     time, to allocate device specific colors, fonts, bitmaps etc.
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9669
     The view may keep those in instance variables, to avoid reallocating
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9670
     those with every redraw.
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9671
     If you ommit to do this, the views will still be able to display themself,
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9672
     but possibly slower, since resources are reallocated over and over.
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9673
     If you redefine this method, make certain that 'super fetchDeviceResources'
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9674
     is always sent."
6987
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  9675
    
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  9676
    shadowColor notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9677
	shadowColor := shadowColor onDevice:device
6987
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  9678
    ].
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  9679
    lightColor notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9680
	lightColor := lightColor onDevice:device
6987
46f73079d0ec #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 6954
diff changeset
  9681
    ].
1193
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9682
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9683
    "Created: 13.1.1997 / 21:51:59 / cg"
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9684
!
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  9685
140
claus
parents: 138
diff changeset
  9686
fixSize
claus
parents: 138
diff changeset
  9687
    "This is called right before the view is made visible.
claus
parents: 138
diff changeset
  9688
     Adjust the size of the view according to either relative/abs or
claus
parents: 138
diff changeset
  9689
     block extent; also set origin. Also, subclasses may redefine this
claus
parents: 138
diff changeset
  9690
     method to adjust the size based on some extent (for example, PopUpMenus
claus
parents: 138
diff changeset
  9691
     do so to take care of changed number of menu entries)."
claus
parents: 138
diff changeset
  9692
151
claus
parents: 145
diff changeset
  9693
    |org ext r|
claus
parents: 145
diff changeset
  9694
claus
parents: 145
diff changeset
  9695
    "
claus
parents: 145
diff changeset
  9696
     slowly migrating to use layoutObjects ...
claus
parents: 145
diff changeset
  9697
    "
claus
parents: 145
diff changeset
  9698
    layout notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9699
	superView notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9700
	    (self originOrExtentOrCornerChanged) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9701
		layout isAssociation ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9702
		    layout key == #extent ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9703
			org := 1@1.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9704
			ext := layout value.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9705
		    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9706
			self shouldImplement.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9707
		    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9708
		] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9709
		    r := (layout rectangleRelativeTo:(superView viewRectangle)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9710
					   preferred:[self preferredBounds]).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9711
		    org := r origin rounded.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9712
		    ext := r extent rounded.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9713
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9714
		self pixelOrigin:org extent:ext.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9715
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9716
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9717
	^ self.
151
claus
parents: 145
diff changeset
  9718
    ].
claus
parents: 145
diff changeset
  9719
140
claus
parents: 138
diff changeset
  9720
    "if the extent is not the one we created the window with ..."
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9721
"/    self extentChangedFlag ifTrue:[
890
f202a05da548 avoid sending sizeChanged: twice
Claus Gittinger <cg@exept.de>
parents: 867
diff changeset
  9722
"/        self sizeChanged:nil.
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9723
"/        self extentChangedFlag:false
890
f202a05da548 avoid sending sizeChanged: twice
Claus Gittinger <cg@exept.de>
parents: 867
diff changeset
  9724
"/    ].
140
claus
parents: 138
diff changeset
  9725
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  9726
    self originChangedFlag ifTrue:[
140
claus
parents: 138
diff changeset
  9727
"/        org := self computeOrigin.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  9728
"/        self pixelOrigin:org.
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9729
	originRule notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9730
	    self pixelOrigin:self computeOrigin
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9731
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9732
	    relativeOrigin notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9733
		self originFromRelativeOrigin:relativeOrigin
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9734
	    ] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9735
		shown ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9736
		    device moveWindow:self drawableId x:left y:top.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9737
		] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9738
		    self pixelOrigin:left@top
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9739
		].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9740
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9741
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9742
	self originChangedFlag:false
140
claus
parents: 138
diff changeset
  9743
    ]
890
f202a05da548 avoid sending sizeChanged: twice
Claus Gittinger <cg@exept.de>
parents: 867
diff changeset
  9744
f202a05da548 avoid sending sizeChanged: twice
Claus Gittinger <cg@exept.de>
parents: 867
diff changeset
  9745
    "Modified: 18.6.1996 / 21:44:03 / cg"
140
claus
parents: 138
diff changeset
  9746
!
claus
parents: 138
diff changeset
  9747
4853
86edbcfacc3b +forceResize
Claus Gittinger <cg@exept.de>
parents: 4834
diff changeset
  9748
forceResize
86edbcfacc3b +forceResize
Claus Gittinger <cg@exept.de>
parents: 4834
diff changeset
  9749
    "force resizing - even if already done"
86edbcfacc3b +forceResize
Claus Gittinger <cg@exept.de>
parents: 4834
diff changeset
  9750
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
  9751
    self explicitExtent:false.
4853
86edbcfacc3b +forceResize
Claus Gittinger <cg@exept.de>
parents: 4834
diff changeset
  9752
    self resize
86edbcfacc3b +forceResize
Claus Gittinger <cg@exept.de>
parents: 4834
diff changeset
  9753
!
86edbcfacc3b +forceResize
Claus Gittinger <cg@exept.de>
parents: 4834
diff changeset
  9754
393
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  9755
hide
1356
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  9756
    "only useful with modal views: hide the view and return control
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  9757
     back to the suspended main view. Ignored for non-modal views."
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  9758
2579
774e6fb33dde checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
  9759
    |masterGroup|
1356
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  9760
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  9761
    realized ifFalse:[^ self].
5273
9c8813e5b7a1 handling of abort of a hide-operation
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  9762
    (windowGroup notNil and:[windowGroup isModal]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9763
	masterGroup := windowGroup previousGroup.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9764
	windowGroup focusView:nil.
5273
9c8813e5b7a1 handling of abort of a hide-operation
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  9765
    ].
1356
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  9766
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  9767
    self unmap.
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  9768
    self flush.
1356
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  9769
2579
774e6fb33dde checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
  9770
    masterGroup notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9771
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9772
	 this is a kludge for IRIS and others which do not provide backingstore:
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9773
	 when we hide a modalbox (such as a searchbox) which covered
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9774
	 a scrollbar, the scrollbars bitblt-method will copy from the
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9775
	 not-yet redrawn area - effectively clearing the scroller.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9776
	 We need a short delay here, since at this time, the expose event has
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9777
	 not yet arrived.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9778
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9779
	Delay waitForSeconds:0.05.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9780
	masterGroup processExposeEvents
2576
96944b0cf18c comment;
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  9781
    ].
96944b0cf18c comment;
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  9782
96944b0cf18c comment;
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  9783
"/    WindowGroup leaveSignal raise.
96944b0cf18c comment;
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  9784
"/    "/ not reached
393
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  9785
!
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  9786
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  9787
hideForAction
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  9788
    "for popUpMenu compatibility;
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  9789
     this is invoked to hide a when it is going to perform its action
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  9790
     (in contrast to the generic hide)."
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  9791
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  9792
    ^ self hide
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  9793
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  9794
393
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  9795
hideRequest
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  9796
    "for protocol compatibility with modal dialogs;
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  9797
     ignored here."
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  9798
3439
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  9799
    self isPopUpView ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9800
	self hide
3439
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  9801
    ].
393
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  9802
    ^ self
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  9803
!
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  9804
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9805
map
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9806
    "make the view visible on the screen.
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9807
     For topViews, the windowManager will choose (or ask for) the
2103
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  9808
     views position on the screen.
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  9809
     Notice:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9810
	Actually, this method is only valid for topViews;
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9811
	however, it is defined here to allow things like 'Button new realize'"
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9812
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9813
    self mapAt:nil iconified:false
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9814
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9815
    "Modified: 24.7.1997 / 13:44:25 / cg"
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9816
!
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9817
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9818
mapAt:aPoint
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9819
    "make the view visible on the screen.
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9820
     For topViews, if aPoint is nonNil, the view's origin is located there
2103
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  9821
     (unless you have a dictator as windowManager ;-)
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  9822
     Notice:
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9823
        Actually, this method is only valid for topViews;
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9824
        however, it is defined here to allow things like 'Button new realize'"
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9825
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9826
    self mapAt:aPoint iconified:false
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9828
    "Modified: 24.7.1997 / 13:45:02 / cg"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9829
!
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9830
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9831
mapAt:aPoint iconified:iconified
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9832
    "make the view visible on the screen.
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9833
     For topViews, if aPoint is nonNil, the view's origin is located there
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9834
     (unless you have a dictator as windowManager ;-).
2103
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  9835
     If the iconified argument is true, the window is created as icon initially.
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  9836
     Notice:
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9837
        Actually, this method is only valid for topViews;
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9838
        however, it is defined here to allow things like 'Button new realize'"
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9839
1809
fec93025e9e7 mapping trouble fixed (see mswindows scrollBar remap)
Claus Gittinger <cg@exept.de>
parents: 1808
diff changeset
  9840
    |subs|
fec93025e9e7 mapping trouble fixed (see mswindows scrollBar remap)
Claus Gittinger <cg@exept.de>
parents: 1808
diff changeset
  9841
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9842
    realized ifFalse:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9843
        self drawableId isNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9844
            "
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9845
             first time ?
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9846
             yes, realize (implies a map)
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9847
            "
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9848
            self realizeKeepingGroup:false at:aPoint iconified:iconified
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9849
        ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9850
            "
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9851
             no, map only
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9852
            "
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9853
            realized := true.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9854
            aPoint isNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9855
                iconified ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9856
                    device
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9857
                        mapView:self id:self drawableId iconified:iconified
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9858
                        atX:0 y:0
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9859
                        width:width height:height
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9860
                        minExtent:(self minExtent) maxExtent:(self maxExtent).
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9861
                ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9862
                    device mapWindow:self drawableId.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9863
                ]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9864
            ] ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9865
                left := aPoint x.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9866
                top := aPoint y.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9867
                device
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9868
                    mapView:self id:self drawableId iconified:iconified
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9869
                    atX:left y:top
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9870
                    width:width height:height
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9871
                    minExtent:(self minExtent) maxExtent:(self maxExtent).
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9872
            ].
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9873
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9874
            "/
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9875
            "/ implies that all realized subviews
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9876
            "/ are now also mapped
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9877
            "/
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9878
            "/ not needed for topViews - the mapped event does exactly the same
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9879
            "/ however, X does not generate mapped events for non-topViews
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9880
            "/ when a view gets deiconified.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9881
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9882
            superView notNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9883
                (subs := self subViews) notNil ifTrue:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9884
                    subs do:[:v |
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9885
                        v realized "shown" ifFalse:[
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9886
                            v mapped
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9887
                        ]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9888
                    ]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9889
                ]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9890
            ]
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
  9891
        ].
140
claus
parents: 138
diff changeset
  9892
    ]
654
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  9893
1039
ef2ded1798df Send #realize to subviews even if hiddenOnRealize is set for myself.
Stefan Vogel <sv@exept.de>
parents: 1038
diff changeset
  9894
    "Modified: 23.8.1996 / 14:53:55 / stefan"
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9895
    "Created: 24.7.1997 / 13:43:23 / cg"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9896
    "Modified: 24.7.1997 / 13:46:21 / cg"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9897
!
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9898
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9899
mapIconified
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9900
    "make the view visible on the screen.
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9901
     For topViews, the view is created in iconified state"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9902
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9903
    self mapAt:nil iconified:true
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9904
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9905
    "Modified: 24.7.1997 / 13:44:25 / cg"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9906
    "Created: 24.7.1997 / 13:47:03 / cg"
140
claus
parents: 138
diff changeset
  9907
!
claus
parents: 138
diff changeset
  9908
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9909
physicalCreate
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
  9910
    "common code for create & recreate:
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9911
     physically create (but do not map) the view on the device."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9912
3642
400ffe15bba9 remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3640
diff changeset
  9913
    |sv isInputOnly|
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  9914
6229
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9915
    sv := superView isNil ifTrue:[nil] ifFalse:[superView view].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9916
3008
81987f198808 let WindowSensor perform the preViewCreation/postViewCreation
Claus Gittinger <cg@exept.de>
parents: 3007
diff changeset
  9917
    "/ give global eventListeners a chance to intercept windowCreation
81987f198808 let WindowSensor perform the preViewCreation/postViewCreation
Claus Gittinger <cg@exept.de>
parents: 3007
diff changeset
  9918
    "/ and provide another origin (by payching my origin via setOrigin:).
81987f198808 let WindowSensor perform the preViewCreation/postViewCreation
Claus Gittinger <cg@exept.de>
parents: 3007
diff changeset
  9919
    WindowSensor preViewCreateNotification:self.
81987f198808 let WindowSensor perform the preViewCreation/postViewCreation
Claus Gittinger <cg@exept.de>
parents: 3007
diff changeset
  9920
2088
8e40159a7913 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
  9921
    isInputOnly := self isInputOnly.
8e40159a7913 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
  9922
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
  9923
    gc
6229
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9924
      createWindowFor:self
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9925
      type:(self windowType)
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9926
      origin:(left @ top)
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9927
      extent:(width @ height)
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9928
      minExtent:nil
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9929
      maxExtent:nil
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9930
      borderWidth:0 "self borderWidth"
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9931
      subViewOf:sv
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9932
      style:(self windowStyle)
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9933
      inputOnly:isInputOnly
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9934
      label:nil
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9935
      owner:nil
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9936
      icon:nil iconMask:nil
5428c16b92f2 class: SimpleView
Stefan Vogel <sv@exept.de>
parents: 6218
diff changeset
  9937
      iconView:nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9938
3010
ea1a075505b4 Let #waitUntilVisible processExposeEvents
Stefan Vogel <sv@exept.de>
parents: 3008
diff changeset
  9939
    "/ if there is a global eventListener,
ea1a075505b4 Let #waitUntilVisible processExposeEvents
Stefan Vogel <sv@exept.de>
parents: 3008
diff changeset
  9940
    "/ give it a chance to track views
ea1a075505b4 Let #waitUntilVisible processExposeEvents
Stefan Vogel <sv@exept.de>
parents: 3008
diff changeset
  9941
3008
81987f198808 let WindowSensor perform the preViewCreation/postViewCreation
Claus Gittinger <cg@exept.de>
parents: 3007
diff changeset
  9942
    "/ give global listeners a chance to track views
81987f198808 let WindowSensor perform the preViewCreation/postViewCreation
Claus Gittinger <cg@exept.de>
parents: 3007
diff changeset
  9943
    WindowSensor postViewCreateNotification:self.
1716
d6bf8f0deb18 added werners eventListener hook for view creation
Claus Gittinger <cg@exept.de>
parents: 1713
diff changeset
  9944
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9945
    self originChangedFlag:false extentChangedFlag:false.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9946
5390
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  9947
"/    (borderColor notNil and:[borderColor ~= Black]) ifTrue:[
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  9948
"/        isInputOnly ifFalse:[
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  9949
"/            self setBorderColor
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  9950
"/        ]
9509eceb1348 no more direct accesses to borderWidth and borderColor
Claus Gittinger <cg@exept.de>
parents: 5366
diff changeset
  9951
"/    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9952
    (viewGravity notNil "and:[viewGravity ~~ #NorthWest]") ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9953
	gc viewGravity:viewGravity.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9954
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9955
    (bitGravity notNil "and:[bitGravity ~~ #NorthWest]") ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9956
	isInputOnly ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9957
	    gc bitGravity:bitGravity.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9958
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9959
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9960
    viewShape notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9961
	self setViewShape
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9962
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9963
    (backed notNil and:[backed ~~ false]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9964
	self backingStore:backed.
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9965
    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9966
    self saveUnder ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9967
	self saveUnder:true.
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  9968
    ].
1960
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1943
diff changeset
  9969
    cursor notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9970
	self setCursor
2088
8e40159a7913 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
  9971
    ].
8e40159a7913 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
  9972
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9973
    name notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
  9974
	self windowName:name.
5557
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9975
    ].
9028b831a288 set window name
Claus Gittinger <cg@exept.de>
parents: 5555
diff changeset
  9976
2088
8e40159a7913 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
  9977
    "Modified: / 9.4.1998 / 20:18:12 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9978
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9979
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9980
postRealize
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9981
    "invoked after a view was realized.
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9982
     Can be redefined in subclasses to perform delayed actions."
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9983
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9984
    "/ nothing done here
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9985
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9986
    "Created: 24.7.1997 / 14:35:36 / cg"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9987
!
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9988
4126
34e3c660a5b2 preRealize hook
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
  9989
preRealize
34e3c660a5b2 preRealize hook
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
  9990
    "invoked right before a view is realized.
34e3c660a5b2 preRealize hook
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
  9991
     Can be redefined in subclasses to perform delayed actions."
34e3c660a5b2 preRealize hook
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
  9992
34e3c660a5b2 preRealize hook
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
  9993
    "/ nothing done here
34e3c660a5b2 preRealize hook
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
  9994
34e3c660a5b2 preRealize hook
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
  9995
    "Created: 24.7.1997 / 14:35:36 / cg"
34e3c660a5b2 preRealize hook
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
  9996
!
34e3c660a5b2 preRealize hook
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
  9997
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9998
realize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9999
    "realize - make visible;
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10000
     realizing is done very late (after layout is fixed) to avoid
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10001
     visible rearranging of windows on the screen"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10002
7094
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
 10003
    self isBeingDestroyed:false. "/ in case a view gets rerealized
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10004
    self realizeKeepingGroup:false at:nil iconified:false
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10005
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10006
    "Modified: 24.7.1997 / 13:14:28 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10007
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10008
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10009
realizeAllSubViews
1193
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
 10010
    "realize all my subviews - but not myself."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10011
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10012
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10013
	subViews do:[:subView |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10014
	    subView realize
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10015
	]
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
 10016
    ].
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
 10017
    components notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10018
	components do:[:component |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10019
	    component realize
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10020
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10021
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10022
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10023
    "Modified: 5.9.1995 / 23:30:47 / claus"
1193
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
 10024
    "Modified: 13.1.1997 / 21:25:49 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10025
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10026
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10027
realizeAt:aPoint
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10028
    "realize - make visible;
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10029
     realizing is done very late (after layout is fixed) to avoid
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10030
     visible rearranging of windows on the screen"
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10031
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10032
    self realizeKeepingGroup:false at:aPoint iconified:false
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10033
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10034
    "Modified: 24.7.1997 / 13:14:28 / cg"
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10035
    "Created: 24.7.1997 / 13:21:04 / cg"
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10036
!
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10037
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10038
realizeInGroup
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10039
    "special realize - leave windowgroup as is;
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10040
     This allows a view to be realized in any windowgroup;
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10041
     for special applications, like the kill button in the Filebrowser which has
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 10042
     a windowGroup different from its superview's and is handled as a separate process."
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 10043
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 10044
    windowGroup isForModalSubview:true.
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 10045
"/    self realize.
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 10046
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 10047
    self realizeKeepingGroup:true at:nil iconified:false
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 10048
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 10049
    "Modified: 20.8.1997 / 14:56:20 / cg"
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 10050
!
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 10051
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10052
realizeKeepingGroup:keepGroupAsIs at:position iconified:iconified
151
claus
parents: 145
diff changeset
 10053
    "common helper for realize and realizeInGroup.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10054
     Create the view; if the keepGroupAsIs argument is not true,
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 10055
     assign my windowGroup."
140
claus
parents: 138
diff changeset
 10056
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 10057
    |superGroup groupChange keep|
140
claus
parents: 138
diff changeset
 10058
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10059
    "/ fetch device colors, to avoid reallocation at redraw time
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10060
    self fetchDeviceResources.
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10061
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10062
    self drawableId isNil ifTrue:[
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10063
        self create.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10064
        self drawableId isNil ifTrue:[
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10065
            ('SimpleView [warning]: could not create view: ' , self class name) errorPrintCR.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10066
            ^ self
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10067
        ]
2189
86284985c4c0 care for non-creatable views.
Claus Gittinger <cg@exept.de>
parents: 2174
diff changeset
 10068
    ].
140
claus
parents: 138
diff changeset
 10069
7094
349ae278b4f7 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7081
diff changeset
 10070
    self isBeingDestroyed:false. "/ in case a view gets rerealized
372
78e5b6e96649 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
 10071
    groupChange := false.
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 10072
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10073
    (windowGroup notNil
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 10074
     and:[superView isNil
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 10075
     and:[windowGroup isForModalSubview]]) ifTrue:[
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10076
        keep := true.
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 10077
    ] ifFalse:[
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10078
        keep := keepGroupAsIs
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 10079
    ].
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 10080
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 10081
    keep ifFalse:[
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10082
        "
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10083
         put myself into superviews windowgroup if there is a superview
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10084
         This is the default behavior, which may be suppressed by
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10085
         passing true as keepGroupAsIs-argument.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10086
         (it may be useful to assign a separate windowGroup to
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10087
          a childView to have it execute independent of the parent
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10088
          -> an example is found in the fileBrowsers kill-button)
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10089
        "
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10090
        superView notNil ifTrue:[
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10091
            superGroup := superView windowGroup.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10092
            (windowGroup notNil and:[superGroup ~~ windowGroup]) ifTrue:[
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10093
                "
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10094
                 mhmh - seems that the windowgroup has changed ....
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10095
                "
145
claus
parents: 144
diff changeset
 10096
"/                'oops - wgroup change on realize' printNL.
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10097
                groupChange := true.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10098
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10099
                "/
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10100
                "/ recursively change the windowGroup of
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10101
                "/ myself and all of my children
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10102
                "/
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10103
                self windowGroup:superGroup.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10104
            ] ifFalse:[
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10105
                windowGroup isNil ifTrue:[
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10106
                    "/
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10107
                    "/ only change the group of myself -
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10108
                    "/ subviews will fetch it when realized.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10109
                    "/
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10110
                    windowGroup := superGroup.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10111
                    superGroup notNil ifTrue:[superGroup addView:self].
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10112
                ]
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10113
            ].
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10114
        ].
140
claus
parents: 138
diff changeset
 10115
    ].
claus
parents: 138
diff changeset
 10116
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
 10117
    (self originOrExtentChanged) ifTrue:[
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10118
        self fixSize.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10119
        self sizeChanged:nil.
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10120
    ].
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10121
    position notNil ifTrue:[
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10122
        self origin:position.
1039
ef2ded1798df Send #realize to subviews even if hiddenOnRealize is set for myself.
Stefan Vogel <sv@exept.de>
parents: 1038
diff changeset
 10123
    ].
ef2ded1798df Send #realize to subviews even if hiddenOnRealize is set for myself.
Stefan Vogel <sv@exept.de>
parents: 1038
diff changeset
 10124
ef2ded1798df Send #realize to subviews even if hiddenOnRealize is set for myself.
Stefan Vogel <sv@exept.de>
parents: 1038
diff changeset
 10125
    (subViews notNil or:[components notNil]) ifTrue:[
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10126
        (realized not or:[groupChange]) ifTrue:[
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10127
            self isHiddenOnRealize ifFalse:[
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10128
                self realizeAllSubViews.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10129
            ].
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10130
        ].
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10131
    ].
1874
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
 10132
4126
34e3c660a5b2 preRealize hook
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
 10133
    self preRealize.
34e3c660a5b2 preRealize hook
Claus Gittinger <cg@exept.de>
parents: 4123
diff changeset
 10134
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10135
    iconified ifTrue:[
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10136
        realized ifFalse:[
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10137
            self mapIconified
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10138
        ]
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 10139
    ] ifFalse:[
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10140
        self isHiddenOnRealize ifFalse:[
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10141
            self setInnerClip.
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10142
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10143
            realized ifFalse:[
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10144
                "
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10145
                 now, make the view visible
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10146
                "
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10147
                self mapAt:position
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10148
            ]
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10149
        ]
140
claus
parents: 138
diff changeset
 10150
    ].
claus
parents: 138
diff changeset
 10151
claus
parents: 138
diff changeset
 10152
    controller notNil ifTrue:[
7622
c75552e285e5 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7618
diff changeset
 10153
        controller startUp
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 10154
    ].
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 10155
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 10156
    self postRealize
654
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10157
2189
86284985c4c0 care for non-creatable views.
Claus Gittinger <cg@exept.de>
parents: 2174
diff changeset
 10158
    "Modified: / 23.8.1996 / 15:07:16 / stefan"
86284985c4c0 care for non-creatable views.
Claus Gittinger <cg@exept.de>
parents: 2174
diff changeset
 10159
    "Created: / 24.7.1997 / 13:10:17 / cg"
86284985c4c0 care for non-creatable views.
Claus Gittinger <cg@exept.de>
parents: 2174
diff changeset
 10160
    "Modified: / 27.7.1998 / 20:01:02 / cg"
140
claus
parents: 138
diff changeset
 10161
!
claus
parents: 138
diff changeset
 10162
claus
parents: 138
diff changeset
 10163
recreate
7332
ff1fb34dbf49 Issue #86: WIN32: fixed depletion of user objects after a snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7312
diff changeset
 10164
    "Recreate (i.e. tell the windowing system about me) after a snapin or a migration"
ff1fb34dbf49 Issue #86: WIN32: fixed depletion of user objects after a snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7312
diff changeset
 10165
ff1fb34dbf49 Issue #86: WIN32: fixed depletion of user objects after a snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7312
diff changeset
 10166
    "/ Issue #86: Do not recreate a view which has been
ff1fb34dbf49 Issue #86: WIN32: fixed depletion of user objects after a snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7312
diff changeset
 10167
    "/ destroyed (by mean of sending it #destroy) but for
ff1fb34dbf49 Issue #86: WIN32: fixed depletion of user objects after a snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7312
diff changeset
 10168
    "/ some other reason retained. 
ff1fb34dbf49 Issue #86: WIN32: fixed depletion of user objects after a snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7312
diff changeset
 10169
    "/ See https://swing.fit.cvut.cz/projects/stx-jv
ff1fb34dbf49 Issue #86: WIN32: fixed depletion of user objects after a snapshot restart
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7312
diff changeset
 10170
    self isBeingDestroyed ifTrue:[ ^self ].
140
claus
parents: 138
diff changeset
 10171
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10172
    self drawableId isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10173
	super recreate.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10174
	self physicalCreate.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10175
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10176
	viewBackground notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10177
	    self setViewBackground
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10178
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10179
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10180
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10181
	 XXX has to be changed: eventmasks are device specific -
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10182
	 XXX will not allow restart on another Workstation-type.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10183
	 XXX event masks must become symbolic
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10184
	"
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10185
	eventMask isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10186
	    eventMask := device defaultEventMask
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10187
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10188
	device setEventMask:eventMask in:self drawableId
140
claus
parents: 138
diff changeset
 10189
    ]
claus
parents: 138
diff changeset
 10190
!
claus
parents: 138
diff changeset
 10191
6863
48127be3e1be class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6856
diff changeset
 10192
recursiveRealizeAllSubViews
48127be3e1be class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6856
diff changeset
 10193
    "realize all my subviews and all of their subviews - but not myself."
48127be3e1be class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6856
diff changeset
 10194
48127be3e1be class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6856
diff changeset
 10195
    subViews notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10196
	subViews do:[:subView |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10197
	    subView realize.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10198
	    subView recursiveRealizeAllSubViews.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10199
	]
6863
48127be3e1be class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6856
diff changeset
 10200
    ].
48127be3e1be class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6856
diff changeset
 10201
    components notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10202
	components do:[:component |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10203
	    component realize.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10204
	    component recursiveRealizeAllSubViews.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10205
	]
6863
48127be3e1be class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6856
diff changeset
 10206
    ].
48127be3e1be class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6856
diff changeset
 10207
!
48127be3e1be class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6856
diff changeset
 10208
654
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10209
remap
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10210
    "make the view visible on the screen at its previous position.
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10211
     In contrast to map, this asks the windowManager to show the view
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10212
     immediately (instead of asking for a frame). However, some windowManagers
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10213
     are known to ignore this ..."
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10214
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10215
    realized ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10216
	self drawableId isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10217
	    self realize
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10218
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10219
	    "
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10220
	     now, make the view visible
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10221
	    "
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10222
	    realized := true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10223
	    device
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10224
		mapView:self id:self drawableId iconified:false
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10225
		atX:left y:top width:width height:height
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10226
		minExtent:(self minExtent) maxExtent:(self maxExtent)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10227
	]
654
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10228
    ]
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10229
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10230
    "Created: 8.5.1996 / 09:33:06 / cg"
1379
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
 10231
    "Modified: 25.2.1997 / 22:44:33 / cg"
654
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10232
!
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
 10233
1109
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
 10234
rerealize
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
 10235
    "rerealize at old position in (a possibly different) windowGroup."
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
 10236
1193
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
 10237
    self fetchDeviceResources.
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
 10238
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
 10239
    self rerealizeInGroup:windowGroup.
1109
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
 10240
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
 10241
    "Created: 7.11.1996 / 16:27:09 / cg"
1193
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
 10242
    "Modified: 13.1.1997 / 21:53:18 / cg"
1109
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
 10243
!
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
 10244
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10245
rerealizeInGroup:aWindowGroup
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10246
    "rerealize at old position in (a possibly different) windowGroup."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10247
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10248
    self drawableId isNil ifTrue:[self create].
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10249
    self drawableId notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10250
	aWindowGroup ~~ windowGroup ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10251
	    windowGroup notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10252
		windowGroup removeView:self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10253
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10254
	    windowGroup := aWindowGroup.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10255
	    aWindowGroup addTopView:self.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10256
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10257
	self remap.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10258
    ]
646
0d2886a9ae38 Rename unrealize-->unmap, rerealize-->map.
Stefan Vogel <sv@exept.de>
parents: 640
diff changeset
 10259
0d2886a9ae38 Rename unrealize-->unmap, rerealize-->map.
Stefan Vogel <sv@exept.de>
parents: 640
diff changeset
 10260
    "Modified: 3.5.1996 / 23:59:30 / stefan"
1837
454d10a53a64 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
 10261
    "Modified: 28.7.1997 / 18:53:01 / cg"
140
claus
parents: 138
diff changeset
 10262
!
claus
parents: 138
diff changeset
 10263
claus
parents: 138
diff changeset
 10264
rerealizeWithAllSubViews
claus
parents: 138
diff changeset
 10265
    "rerealize myself with all subviews"
claus
parents: 138
diff changeset
 10266
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10267
    self drawableId notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10268
	realized := true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10269
	self realizeAllSubViews.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10270
	superView isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10271
	    device
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10272
		mapView:self id:self drawableId iconified:false
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10273
		atX:left y:top width:width height:height
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10274
		minExtent:(self minExtent) maxExtent:(self maxExtent)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10275
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10276
	    device
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10277
		mapWindow:self drawableId
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10278
	].
140
claus
parents: 138
diff changeset
 10279
    ]
1290
1cc24cff6fe9 eliminated some references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 1261
diff changeset
 10280
1cc24cff6fe9 eliminated some references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 1261
diff changeset
 10281
    "Modified: 28.1.1997 / 17:59:28 / cg"
180
claus
parents: 176
diff changeset
 10282
!
claus
parents: 176
diff changeset
 10283
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10284
resize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10285
    "resize myself to make everything fit into me.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10286
     Here, nothing special is done (except for setting my extent to the
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
 10287
     preferredExtent), but may be redefined in some subclasses."
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
 10288
4899
5d9393ff0aae use accessors for hiddenOnRealize and explicitExtents;
Claus Gittinger <cg@exept.de>
parents: 4898
diff changeset
 10289
    self hasExplicitExtent ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10290
	layout isNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10291
	    self extent:(self preferredExtent).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10292
	    self explicitExtent:false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10293
	].
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
 10294
    ]
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
 10295
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
 10296
    "Modified: 15.7.1996 / 11:20:27 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10297
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10298
6126
5cc385c35406 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6121
diff changeset
 10299
setForegroundWindow
5cc385c35406 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6121
diff changeset
 10300
    "noop for protocol compatibility with TopViews (in case you do a Button new open)"
5cc385c35406 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6121
diff changeset
 10301
5cc385c35406 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6121
diff changeset
 10302
    "Created: / 17-09-2010 / 16:30:24 / cg"
5cc385c35406 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6121
diff changeset
 10303
    "Modified: / 17-09-2010 / 18:39:35 / cg"
5cc385c35406 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6121
diff changeset
 10304
!
5cc385c35406 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6121
diff changeset
 10305
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10306
unmap
2576
96944b0cf18c comment;
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
 10307
    "unmap the view - the view stays created (but invisible), and can be remapped again later."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10308
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10309
    realized ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10310
	realized := false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10311
	self drawableId notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10312
	    device unmapWindow:self drawableId.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10313
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10314
	    "/ make it go away immediately
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10315
	    "/ (this hides the subview killing)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10316
	    self flush.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10317
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10318
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10319
	"/ Normally, this is not correct with X, where the
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10320
	"/ unmap is an asynchronous operation.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10321
	"/ (shown is cleared also in unmapped event)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10322
	"/ Do it anyway, to avoid synchronisation problems.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10323
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10324
	shown ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10325
	    shown := false.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10326
	    dependents notNil ifTrue:[ self changed:#visibility ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10327
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10328
    ].
190
claus
parents: 189
diff changeset
 10329
claus
parents: 189
diff changeset
 10330
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10331
     |top sub|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10332
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10333
     top := StandardSystemView new.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10334
     top extent:200@200.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10335
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10336
     sub := View
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10337
		origin:0.2@0.2
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10338
		corner:0.8@0.8
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10339
		in:top.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10340
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10341
     sub viewBackground:Color red.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10342
     sub hiddenOnRealize:true.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10343
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10344
     top open.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10345
     (Delay forSeconds:5) wait.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10346
     sub map.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10347
     (Delay forSeconds:3) wait.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10348
     sub unmap.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10349
     sub viewBackground:(Color green).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10350
     (Delay forSeconds:3) wait.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10351
     sub map.
151
claus
parents: 145
diff changeset
 10352
    "
1379
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
 10353
2465
193a96bd94d7 clear shown when unmapped notification arrives
Claus Gittinger <cg@exept.de>
parents: 2454
diff changeset
 10354
    "Modified: / 22.2.1999 / 20:10:58 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10355
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10356
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10357
unrealize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10358
    "alias for unmap, for historic reasons"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10359
3434
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
 10360
    <resource:#obsolete>
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
 10361
4464
58adfdb1f1d2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4463
diff changeset
 10362
    self obsoleteMethodWarning:'use #unmap'.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10363
    self unmap.
646
0d2886a9ae38 Rename unrealize-->unmap, rerealize-->map.
Stefan Vogel <sv@exept.de>
parents: 640
diff changeset
 10364
0d2886a9ae38 Rename unrealize-->unmap, rerealize-->map.
Stefan Vogel <sv@exept.de>
parents: 640
diff changeset
 10365
    "Modified: 4.5.1996 / 00:07:48 / stefan"
151
claus
parents: 145
diff changeset
 10366
! !
claus
parents: 145
diff changeset
 10367
claus
parents: 145
diff changeset
 10368
!SimpleView methodsFor:'redrawing'!
claus
parents: 145
diff changeset
 10369
5263
654f1779f5ed changed redraw to always clear the exposed area, unless
Claus Gittinger <cg@exept.de>
parents: 5262
diff changeset
 10370
clearExposedAreaInRedraw
654f1779f5ed changed redraw to always clear the exposed area, unless
Claus Gittinger <cg@exept.de>
parents: 5262
diff changeset
 10371
    "return true here, if the exposed area should be cleared here
654f1779f5ed changed redraw to always clear the exposed area, unless
Claus Gittinger <cg@exept.de>
parents: 5262
diff changeset
 10372
     or not. In almost every situation, it makes sense to do so..."
654f1779f5ed changed redraw to always clear the exposed area, unless
Claus Gittinger <cg@exept.de>
parents: 5262
diff changeset
 10373
654f1779f5ed changed redraw to always clear the exposed area, unless
Claus Gittinger <cg@exept.de>
parents: 5262
diff changeset
 10374
    ^ true
654f1779f5ed changed redraw to always clear the exposed area, unless
Claus Gittinger <cg@exept.de>
parents: 5262
diff changeset
 10375
!
654f1779f5ed changed redraw to always clear the exposed area, unless
Claus Gittinger <cg@exept.de>
parents: 5262
diff changeset
 10376
6644
c6c4686b4979 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
 10377
drawFocusFrame
c6c4686b4979 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
 10378
    self hasFocus ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10379
	(styleSheet at:#focusHighlightStyle) == #win95 ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10380
	    self windowGroup focusCameByTab ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10381
		self drawWin95FocusFrame
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10382
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10383
	].
6644
c6c4686b4979 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
 10384
    ]
c6c4686b4979 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
 10385
!
c6c4686b4979 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6643
diff changeset
 10386
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10387
flash
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10388
    "flash the view - fill it black, then white, finally
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10389
     redraw completely.
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10390
     Can be used to wakeup the user :-)
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10391
     when problem or warning conditions arise.
2174
dea03b88b1d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2173
diff changeset
 10392
     Someone may redefine this to flash its contents (instead of black/white)."
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10393
6386
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10394
    self flash:nil
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10395
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10396
    "
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10397
     |v|
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10398
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10399
     v := View new openAndWait.
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10400
     Delay waitForSeconds:2.
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10401
     v flash.
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10402
     Delay waitForSeconds:2.
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10403
     v destroy
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10404
    "
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10405
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10406
    "Modified: / 16.7.1998 / 18:46:48 / cg"
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10407
!
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10408
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10409
flash:messageOrNil
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10410
    "flash the view - fill it black, then white, finally
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10411
     redraw completely.
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10412
     Can be used to wakeup the user :-)
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10413
     when problem or warning conditions arise.
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10414
     Someone may redefine this to flash its contents (instead of black/white)."
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10415
6906
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10416
    self flash:messageOrNil withColor:self blackColor.
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10417
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10418
    "
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10419
     |v|
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10420
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10421
     v := View new openAndWait.
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10422
     Delay waitForSeconds:2.
6907
94dbd3782c96 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6906
diff changeset
 10423
     v flash:'Hello World'.
6906
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10424
     Delay waitForSeconds:2.
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10425
     v destroy
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10426
    "
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10427
!
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10428
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10429
flash:messageOrNil withColor:flashColor
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10430
    "flash the view - fill it black, then white, finally
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10431
     redraw completely.
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10432
     Can be used to wakeup the user :-)
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10433
     when problem or warning conditions arise.
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10434
     Someone may redefine this to flash its contents (instead of black/white)."
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10435
7793
44d58dad99d8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7790
diff changeset
 10436
    shown ifFalse:[^ self]. 
44d58dad99d8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7790
diff changeset
 10437
6906
f032cb9bedd3 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6880
diff changeset
 10438
    self fill:flashColor.
6386
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10439
    messageOrNil notNil ifTrue:[
7793
44d58dad99d8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7790
diff changeset
 10440
        gc withForeground:self whiteColor do:[
44d58dad99d8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7790
diff changeset
 10441
            self displayString:messageOrNil centeredAt:(self center).
44d58dad99d8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7790
diff changeset
 10442
        ].
6386
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10443
    ].
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10444
    Delay waitForSeconds:0.1.
7793
44d58dad99d8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7790
diff changeset
 10445
    shown ifFalse:[^ self]. 
44d58dad99d8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7790
diff changeset
 10446
    
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10447
    self fill:self whiteColor.
6604
5bf53c022613 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6593
diff changeset
 10448
    messageOrNil notNil ifTrue:[
7793
44d58dad99d8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7790
diff changeset
 10449
        gc withForeground:self blackColor do:[
44d58dad99d8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7790
diff changeset
 10450
            self displayString:messageOrNil centeredAt:(self center).
44d58dad99d8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7790
diff changeset
 10451
        ].
6604
5bf53c022613 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6593
diff changeset
 10452
    ].
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10453
    Delay waitForSeconds:0.1.
7793
44d58dad99d8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7790
diff changeset
 10454
    shown ifFalse:[^ self]. 
44d58dad99d8 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 7790
diff changeset
 10455
2173
0686e9f35817 flash fix
Claus Gittinger <cg@exept.de>
parents: 2171
diff changeset
 10456
    self fill:viewBackground.
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10457
    self invalidate
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10458
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10459
    "
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10460
     |v|
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10461
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10462
     v := View new openAndWait.
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10463
     Delay waitForSeconds:2.
6907
94dbd3782c96 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6906
diff changeset
 10464
     v flash:'Hello World' withColor:Color red.
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10465
     Delay waitForSeconds:2.
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10466
     v destroy
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10467
    "
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10468
2174
dea03b88b1d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2173
diff changeset
 10469
    "Modified: / 16.7.1998 / 18:46:48 / cg"
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10470
!
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
 10471
6386
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10472
flashReadOnly
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10473
    "flash the view and show 'Read Only' for a moment."
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10474
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10475
    self flash:(resources string:'Read Only')
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10476
!
d85150e57a43 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6341
diff changeset
 10477
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
 10478
invalidate
7232
316a6bdc26a7 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7178
diff changeset
 10479
    "add a damage to redraw the receiver to its input event queue.
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
 10480
     This is preferable to calling redraw directly, in that the drawing is done by
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
 10481
     the view's process itself, and there is a possibilty to merge
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10482
     multiple damage rectangles into single redraws.
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10483
     However, be aware, that the redrawing may be delayed for some time,
7232
316a6bdc26a7 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7178
diff changeset
 10484
     until the receiver's windowGroupProcess gets rescheduled."
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
 10485
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10486
    shown ifFalse:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
 10487
        "/ no need to add damage - will get a full-redraw anyway,
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
 10488
        "/ when I will be shown again.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
 10489
        ^ self
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10490
    ].
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10491
    self
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
 10492
        invalidateDeviceRectangle:(Rectangle left:0 top:0 width:width height:height)
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
 10493
        repairNow:false
2394
cfb6434f1a9c oops - invalidate must add deviceRectangles to the damage-list.
Claus Gittinger <cg@exept.de>
parents: 2382
diff changeset
 10494
cfb6434f1a9c oops - invalidate must add deviceRectangles to the damage-list.
Claus Gittinger <cg@exept.de>
parents: 2382
diff changeset
 10495
    "Modified: / 9.11.1998 / 21:04:16 / cg"
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
 10496
!
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
 10497
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
 10498
invalidate:aRectangle
7232
316a6bdc26a7 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7178
diff changeset
 10499
    "add a damage to redraw part of the receiver, to its input event queue.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10500
     This is preferable to calling redraw directly,
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
 10501
     in that the drawing is done by the view's process itself,
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10502
     and there is a possibilty to merge multiple damage rectangles into
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10503
     single redraws.
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10504
     However, be aware, that the redrawing may be delayed for some time,
7232
316a6bdc26a7 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 7178
diff changeset
 10505
     intil the receiver's windowGroupProcess gets rescheduled."
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
 10506
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10507
    shown ifFalse:[
7692
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
 10508
        "/ no need to add damage - will get a full-redraw anyway,
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
 10509
        "/ when I will be shown again.
17ded3df79d8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7690
diff changeset
 10510
        ^ self
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10511
    ].
2394
cfb6434f1a9c oops - invalidate must add deviceRectangles to the damage-list.
Claus Gittinger <cg@exept.de>
parents: 2382
diff changeset
 10512
    self invalidate:aRectangle repairNow:false
cfb6434f1a9c oops - invalidate must add deviceRectangles to the damage-list.
Claus Gittinger <cg@exept.de>
parents: 2382
diff changeset
 10513
cfb6434f1a9c oops - invalidate must add deviceRectangles to the damage-list.
Claus Gittinger <cg@exept.de>
parents: 2382
diff changeset
 10514
    "Modified: / 9.11.1998 / 21:03:14 / cg"
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10515
!
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10516
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10517
invalidate:aRectangle repairNow:doRepairNow
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10518
    "add a damage to redraw part of the receiver, to its input event queue.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10519
     and (if repairNow is true), force the receiver to repair all of its
2451
c6d3bc32f50a comments
Claus Gittinger <cg@exept.de>
parents: 2450
diff changeset
 10520
     damaged areas right now.
c6d3bc32f50a comments
Claus Gittinger <cg@exept.de>
parents: 2450
diff changeset
 10521
     The given rectangle is in logical coordinate space."
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10522
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10523
    |r currentTransformation|
3856
45fccc92d834 Use SynchronousWindoeSensor if no windowGroup
Stefan Vogel <sv@exept.de>
parents: 3838
diff changeset
 10524
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10525
    shown ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10526
	"/ no need to add damage - will get a full-redraw anyway,
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10527
	"/ when I will be shown again.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10528
	^ self
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10529
    ].
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10530
3856
45fccc92d834 Use SynchronousWindoeSensor if no windowGroup
Stefan Vogel <sv@exept.de>
parents: 3838
diff changeset
 10531
    r := aRectangle.
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10532
    currentTransformation := gc transformation.
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10533
    currentTransformation notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10534
	r := (currentTransformation transformPoint:r origin) corner:(currentTransformation transformPoint:r corner).
4971
Claus Gittinger <cg@exept.de>
parents: 4970
diff changeset
 10535
    ].
4993
bf54a6128b78 oops - invalidate:repairNow: did not care for transformation !
Claus Gittinger <cg@exept.de>
parents: 4990
diff changeset
 10536
    self invalidateDeviceRectangle:r repairNow:doRepairNow
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10537
6748
df14278f29bc bugfix: invalid transformation
az
parents: 6720
diff changeset
 10538
    "Modified: / 10-11-1998 / 01:55:03 / cg"
df14278f29bc bugfix: invalid transformation
az
parents: 6720
diff changeset
 10539
    "Modified: / 22-01-2015 / 14:23:09 / az"
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10540
!
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10541
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10542
invalidateDeviceRectangle:aRectangle repairNow:doRepairNow
2396
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
 10543
    "add a damage to redraw part of the receiver, to its input event queue.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10544
     and (if repairNow is true), force the receiver to repair all of its
2451
c6d3bc32f50a comments
Claus Gittinger <cg@exept.de>
parents: 2450
diff changeset
 10545
     damaged areas right now.
c6d3bc32f50a comments
Claus Gittinger <cg@exept.de>
parents: 2450
diff changeset
 10546
     The given rectangle is in device coordinate space."
2396
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
 10547
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10548
    shown ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10549
	"/ no need to add damage - will get a full-redraw anyway,
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10550
	"/ when I will be shown again.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10551
	^ self
6549
4832802aba27 class: SimpleView
ca
parents: 6546
diff changeset
 10552
    ].
4832802aba27 class: SimpleView
ca
parents: 6546
diff changeset
 10553
    (aRectangle width <= 0 or:[aRectangle height <= 0]) ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10554
	"/ no need to add damages with extent <= 0
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10555
	^ self
6549
4832802aba27 class: SimpleView
ca
parents: 6546
diff changeset
 10556
    ].
4049
0a306121ef88 code cleanup
Claus Gittinger <cg@exept.de>
parents: 4047
diff changeset
 10557
    self sensor addDamage:aRectangle view:self.
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10558
    doRepairNow ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10559
	self repairDamage
2396
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
 10560
    ]
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
 10561
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
 10562
    "Modified: / 10.11.1998 / 01:55:03 / cg"
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
 10563
    "Created: / 10.11.1998 / 19:02:01 / cg"
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
 10564
!
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
 10565
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10566
invalidateRepairNow:doRepair
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10567
    "add a damage to redraw all of the receiver, to its input event queue.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10568
     and (if repairNow is true), force the receiver to repair all of its
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10569
     damaged areas right now."
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10570
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10571
    shown ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10572
	"/ no need to add damage - will get a full-redraw anyway,
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10573
	"/ when I will be shown again.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10574
	^ self
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10575
    ].
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10576
    self
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10577
	invalidateDeviceRectangle:(Rectangle left:0 top:0 width:width height:height)
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10578
	repairNow:doRepair
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10579
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10580
    "Created: 19.4.1997 / 11:58:04 / cg"
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10581
    "Modified: 19.4.1997 / 12:00:00 / cg"
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
 10582
!
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
 10583
3704
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 10584
invalidateX:x y:y width:w height:h
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 10585
    "add a damage to redraw all of the receiver, to its input event queue."
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 10586
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10587
    shown ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10588
	"/ no need to add damage - will get a full-redraw anyway,
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10589
	"/ when I will be shown again.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10590
	^ self
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10591
    ].
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10592
    self invalidate:(Rectangle left:x top:y width:w height:h)
3704
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 10593
!
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 10594
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 10595
invalidateX:x y:y width:w height:h repairNow:doRepair
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 10596
    "add a damage to redraw all of the receiver, to its input event queue.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10597
     and (if repairNow is true), force the receiver to repair all of its
3704
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 10598
     damaged areas right now."
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 10599
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10600
    shown ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10601
	"/ no need to add damage - will get a full-redraw anyway,
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10602
	"/ when I will be shown again.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10603
	^ self
4047
622d06eca488 invalidate checks itself for shown-flag
Claus Gittinger <cg@exept.de>
parents: 4038
diff changeset
 10604
    ].
3704
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 10605
    self invalidate:(Rectangle left:x top:y width:w height:h) repairNow:doRepair
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 10606
!
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 10607
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10608
redraw
782
51c03bc803ce checkin from browser
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
 10609
    "redraw myself completely - this is sent by redrawX:y:width:height:
51c03bc803ce checkin from browser
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
 10610
     as a fallback.
7663
4c01465c9f75 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7638
diff changeset
 10611
     Cannot do much here - is redefined in subclasses which don't care for
782
51c03bc803ce checkin from browser
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
 10612
     updating regions but instead update everything."
51c03bc803ce checkin from browser
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
 10613
51c03bc803ce checkin from browser
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
 10614
    "Modified: 29.5.1996 / 18:02:52 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10615
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10616
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10617
redraw:aRectangle
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10618
    "redraw a part of the view immediately."
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10619
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10620
    self
7778
b88c63d76636 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7747
diff changeset
 10621
        redrawX:(aRectangle left) y:(aRectangle top)
b88c63d76636 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 7747
diff changeset
 10622
        width:(aRectangle width) height:(aRectangle height)
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10623
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10624
    "Modified: 19.4.1997 / 11:54:23 / cg"
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10625
!
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10626
5250
59bd3d76efc5 component handling
Claus Gittinger <cg@exept.de>
parents: 5245
diff changeset
 10627
redrawComponentsIn:aRectangle
59bd3d76efc5 component handling
Claus Gittinger <cg@exept.de>
parents: 5245
diff changeset
 10628
    components notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10629
	components do:[:aComponent |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10630
	    |thisFrame is|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10631
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10632
	    thisFrame := aComponent bounds.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10633
	    (thisFrame notNil and:[thisFrame intersects:aRectangle]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10634
		aComponent displayOn:self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10635
	    ]
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10636
	]
5250
59bd3d76efc5 component handling
Claus Gittinger <cg@exept.de>
parents: 5245
diff changeset
 10637
    ].
59bd3d76efc5 component handling
Claus Gittinger <cg@exept.de>
parents: 5245
diff changeset
 10638
!
59bd3d76efc5 component handling
Claus Gittinger <cg@exept.de>
parents: 5245
diff changeset
 10639
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10640
redrawDeviceX:x y:y width:w height:h
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10641
    "have to redraw part of the view.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10642
     The coordinates are in device space - if there is a transformation,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10643
     must inverse-transform back to logical coordinates. (since the view thinks
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10644
     in its coordinate space)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10645
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10646
    |lx ly lw lh currentTransformation|
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10647
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10648
    currentTransformation := gc transformation.
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10649
    currentTransformation isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10650
	lx := x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10651
	ly := y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10652
	lw := w.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10653
	lh := h.
2822
b95545cef407 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2821
diff changeset
 10654
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10655
	lx := currentTransformation applyInverseToX:x.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10656
	ly := currentTransformation applyInverseToY:y.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10657
	lw := currentTransformation applyInverseScaleX:w.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10658
	lh := currentTransformation applyInverseScaleY:h.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10659
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10660
    self redrawX:lx y:ly width:lw height:lh
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10661
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10662
151
claus
parents: 145
diff changeset
 10663
redrawX:x y:y width:w height:h
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10664
    "redraw part of myself immediately, given logical coordinates
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10665
     (if transformation is nonNil)
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10666
     The default here is to redraw everything
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10667
     - subclasses usually redefine this, adding more intelligence"
151
claus
parents: 145
diff changeset
 10668
738
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
 10669
    |area oldClip|
151
claus
parents: 145
diff changeset
 10670
claus
parents: 145
diff changeset
 10671
    shown ifFalse:[^ self].
claus
parents: 145
diff changeset
 10672
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10673
    area := Rectangle left:x top:y width:w height:h.
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10674
    oldClip := gc clippingBoundsOrNil.
7465
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
 10675
    self clippingBounds:area.
738
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
 10676
5263
654f1779f5ed changed redraw to always clear the exposed area, unless
Claus Gittinger <cg@exept.de>
parents: 5262
diff changeset
 10677
    self clearExposedAreaInRedraw ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10678
	self clearRectangleX:x y:y width:w height:h.
5542
273bf2233a67 plug for renderer
Claus Gittinger <cg@exept.de>
parents: 5530
diff changeset
 10679
    ].
273bf2233a67 plug for renderer
Claus Gittinger <cg@exept.de>
parents: 5530
diff changeset
 10680
273bf2233a67 plug for renderer
Claus Gittinger <cg@exept.de>
parents: 5530
diff changeset
 10681
    self renderOrRedraw.
5250
59bd3d76efc5 component handling
Claus Gittinger <cg@exept.de>
parents: 5245
diff changeset
 10682
59bd3d76efc5 component handling
Claus Gittinger <cg@exept.de>
parents: 5245
diff changeset
 10683
    "/ draw them afterwards - they can be used to replace heavy-weight views.
59bd3d76efc5 component handling
Claus Gittinger <cg@exept.de>
parents: 5245
diff changeset
 10684
    self redrawComponentsIn:area.
7465
8409368bbfe6 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 7429
diff changeset
 10685
    self clippingBounds:oldClip.
738
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
 10686
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10687
    "Modified: 19.4.1997 / 11:55:08 / cg"
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10688
!
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10689
5542
273bf2233a67 plug for renderer
Claus Gittinger <cg@exept.de>
parents: 5530
diff changeset
 10690
renderOrRedraw
273bf2233a67 plug for renderer
Claus Gittinger <cg@exept.de>
parents: 5530
diff changeset
 10691
    renderer notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10692
	"/ experimental feature
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10693
	thisContext isRecursive ifTrue:[self halt].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10694
	renderer render:self on:self at:0@0
5542
273bf2233a67 plug for renderer
Claus Gittinger <cg@exept.de>
parents: 5530
diff changeset
 10695
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10696
	"/ redraw everything - a fallBack for lazy views.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10697
	self redraw.
5542
273bf2233a67 plug for renderer
Claus Gittinger <cg@exept.de>
parents: 5530
diff changeset
 10698
    ].
273bf2233a67 plug for renderer
Claus Gittinger <cg@exept.de>
parents: 5530
diff changeset
 10699
!
273bf2233a67 plug for renderer
Claus Gittinger <cg@exept.de>
parents: 5530
diff changeset
 10700
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10701
repairDamage
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10702
    "force the receiver to repair all of its
2095
7aaac9675f97 checkin from browser
ca
parents: 2094
diff changeset
 10703
     damaged areas right now."
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10704
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10705
    |wg|
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10706
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10707
    shown ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10708
	(wg := self windowGroup) notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10709
	    "/ wg processRealExposeEventsFor:self. "/ this ignores map/unmap
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10710
	    wg processExposeEventsFor:self.        "/ this handles map/unmap
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10711
	]
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10712
    ]
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
 10713
2138
1800e9b5afe3 also handle map/unmap events in repairDamage.
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
 10714
    "Created: / 19.4.1997 / 12:01:13 / cg"
2406
8f6f579901ac checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2405
diff changeset
 10715
    "Modified: / 3.12.1998 / 14:02:06 / cg"
151
claus
parents: 145
diff changeset
 10716
!
claus
parents: 145
diff changeset
 10717
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10718
showActive
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10719
    "redraw myself as active (i.e. busy).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10720
     Nothing done here, but redefined in some classes."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10721
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10722
    ^ self
135
claus
parents:
diff changeset
 10723
!
claus
parents:
diff changeset
 10724
claus
parents:
diff changeset
 10725
showPassive
claus
parents:
diff changeset
 10726
    "redraw myself as inactive (i.e. nonbusy).
151
claus
parents: 145
diff changeset
 10727
     Nothing done here, but redefined in some classes."
135
claus
parents:
diff changeset
 10728
claus
parents:
diff changeset
 10729
    ^ self
claus
parents:
diff changeset
 10730
! !
claus
parents:
diff changeset
 10731
8429
e47f76ecf0d2 Inform GC (DeviceGraphicsContext) when it's size has chaged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8420
diff changeset
 10732
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10733
!SimpleView methodsFor:'scrolling'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10734
2559
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10735
halfPageDown
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10736
    "scroll down half a page
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10737
    "
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10738
    self scrollDown:(self innerHeight // 2)
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10739
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10740
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10741
!
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10742
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10743
halfPageUp
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10744
    "scroll up half a page
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10745
    "
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10746
    self scrollUp:(self innerHeight // 2)
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10747
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10748
!
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
 10749
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10750
horizontalScrollStep
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10751
    "return the amount to scroll when stepping left/right.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10752
     Subclasses may want to redefine this."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10753
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
 10754
    ^ (device horizontalPixelPerMillimeter * 20) asInteger
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10755
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10756
1052
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10757
pageDown
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10758
    self scrollDown:(self innerHeight)
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10759
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10760
    "Created: 13.9.1996 / 14:06:54 / cg"
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10761
!
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10762
4964
b059a14ce764 Define #pageLeft and #pageRight
Stefan Vogel <sv@exept.de>
parents: 4958
diff changeset
 10763
pageLeft
b059a14ce764 Define #pageLeft and #pageRight
Stefan Vogel <sv@exept.de>
parents: 4958
diff changeset
 10764
    self scrollLeft:(self innerWidth)
b059a14ce764 Define #pageLeft and #pageRight
Stefan Vogel <sv@exept.de>
parents: 4958
diff changeset
 10765
b059a14ce764 Define #pageLeft and #pageRight
Stefan Vogel <sv@exept.de>
parents: 4958
diff changeset
 10766
    "Created: 13.9.1996 / 14:06:54 / cg"
b059a14ce764 Define #pageLeft and #pageRight
Stefan Vogel <sv@exept.de>
parents: 4958
diff changeset
 10767
!
b059a14ce764 Define #pageLeft and #pageRight
Stefan Vogel <sv@exept.de>
parents: 4958
diff changeset
 10768
b059a14ce764 Define #pageLeft and #pageRight
Stefan Vogel <sv@exept.de>
parents: 4958
diff changeset
 10769
pageRight
b059a14ce764 Define #pageLeft and #pageRight
Stefan Vogel <sv@exept.de>
parents: 4958
diff changeset
 10770
    self scrollRight:(self innerWidth)
b059a14ce764 Define #pageLeft and #pageRight
Stefan Vogel <sv@exept.de>
parents: 4958
diff changeset
 10771
!
b059a14ce764 Define #pageLeft and #pageRight
Stefan Vogel <sv@exept.de>
parents: 4958
diff changeset
 10772
1052
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10773
pageUp
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10774
    self scrollUp:(self innerHeight)
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10775
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10776
    "Created: 13.9.1996 / 14:07:01 / cg"
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10777
!
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10778
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10779
scrollDown
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10780
    "scroll down by some amount; this is called when the scrollbars
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10781
     scroll-step down button is pressed."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10782
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10783
    self scrollDown:(self verticalScrollStep)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10784
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10785
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10786
scrollDown:nPixels
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10787
    "change origin to scroll down some pixels"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10788
5572
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10789
    self scrollRelative:nPixels
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10790
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10791
    "Modified: / 18-07-2010 / 09:10:47 / cg"
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10792
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10793
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10794
scrollHorizontalTo:aPixelOffset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10795
    "change origin to make aPixelOffset be the left col"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10796
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10797
    |orgY|
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10798
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10799
    orgY := self viewOrigin y.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10800
    ^ self scrollTo:(aPixelOffset @ orgY).
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10801
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10802
    "Modified: 8.7.1996 / 15:34:54 / stefan"
140
claus
parents: 138
diff changeset
 10803
!
claus
parents: 138
diff changeset
 10804
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10805
scrollHorizontalToPercent:percent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10806
    "scroll to a position given in percent of total"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10807
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10808
    |wCont currentTransformation|
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10809
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10810
    wCont := self widthOfContents.
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10811
    currentTransformation := gc transformation.
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10812
    currentTransformation notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10813
	wCont := currentTransformation applyScaleX:wCont.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10814
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10815
    self scrollHorizontalTo:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10816
	    ((((wCont * percent) / 100.0) + 0.5) asInteger)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10817
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10818
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10819
scrollLeft
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10820
    "scroll left by some amount; this is called when the scrollbars
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10821
     scroll-step left button is pressed."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10822
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10823
    self scrollLeft:(self horizontalScrollStep)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10824
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10825
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10826
scrollLeft:nPixels
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10827
    "change origin to scroll left some pixels"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10828
1035
261c3ab854f0 Use #viewOrigin instead of translation transformation to get
Stefan Vogel <sv@exept.de>
parents: 1028
diff changeset
 10829
    |viewOrigin|
261c3ab854f0 Use #viewOrigin instead of translation transformation to get
Stefan Vogel <sv@exept.de>
parents: 1028
diff changeset
 10830
2703
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
 10831
    nPixels ~~ 0 ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10832
	viewOrigin := self viewOrigin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10833
	self scrollTo:((viewOrigin x - nPixels) @ viewOrigin y).
2703
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
 10834
    ]
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
 10835
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
 10836
    "Modified: / 20.8.1996 / 17:35:09 / stefan"
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
 10837
    "Modified: / 21.5.1999 / 15:58:03 / cg"
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10838
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10839
5572
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10840
scrollRelative:nPixels
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10841
    "change origin to scroll up (nPixels < 0) or down (nPixels > 0)"
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10842
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10843
    |viewOrigin|
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10844
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10845
    nPixels ~~ 0 ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10846
	viewOrigin := self viewOrigin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10847
	self scrollTo:(viewOrigin x @ (viewOrigin y + nPixels))
5572
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10848
    ]
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10849
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10850
    "Modified: / 20-08-1996 / 17:34:36 / stefan"
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10851
    "Created: / 18-07-2010 / 09:09:54 / cg"
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10852
!
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10853
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10854
scrollRight
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10855
    "scroll right by some amount; this is called when the scrollbars
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10856
     scroll-step right button is pressed."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10857
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10858
    self scrollRight:(self horizontalScrollStep)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10859
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10860
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10861
scrollRight:nPixels
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10862
    "change origin to scroll right some pixels"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10863
1035
261c3ab854f0 Use #viewOrigin instead of translation transformation to get
Stefan Vogel <sv@exept.de>
parents: 1028
diff changeset
 10864
    |viewOrigin|
261c3ab854f0 Use #viewOrigin instead of translation transformation to get
Stefan Vogel <sv@exept.de>
parents: 1028
diff changeset
 10865
2703
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
 10866
    nPixels ~~ 0 ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10867
	viewOrigin := self viewOrigin.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10868
	self scrollTo:((viewOrigin x + nPixels) @ viewOrigin y)
2703
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
 10869
    ]
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
 10870
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
 10871
    "Modified: / 20.8.1996 / 17:35:37 / stefan"
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
 10872
    "Modified: / 21.5.1999 / 15:58:08 / cg"
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10873
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10874
1052
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10875
scrollToBottom
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10876
    self scrollTo:0 @ (self heightOfContents - self innerHeight)
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10877
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10878
    "Created: 13.9.1996 / 14:08:03 / cg"
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10879
    "Modified: 13.9.1996 / 14:09:32 / cg"
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10880
!
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 10881
2371
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10882
scrollToLeft
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10883
    "move viewOrigin to the left"
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10884
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10885
    self scrollHorizontalTo:0
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10886
!
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10887
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10888
scrollToPercent:originAsPercent
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10889
    "scroll to a position given in percent of total (x and y as a Point)"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10890
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10891
    |wCont hCont percent currentTransformation|
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10892
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10893
    percent := originAsPercent asPoint.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10894
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10895
    wCont := self widthOfContents.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10896
    hCont := self heightOfContents.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10897
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10898
    currentTransformation := gc transformation.
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10899
    currentTransformation notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10900
	wCont := currentTransformation applyScaleX:wCont.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10901
	hCont := currentTransformation applyScaleY:hCont.
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10902
    ].
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10903
    self scrollTo:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10904
	    ((((wCont * percent x) / 100.0) + 0.5) asInteger) @
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10905
	    ((((hCont * percent y) / 100.0) + 0.5) asInteger)
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10906
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10907
    "Created: 5.8.1996 / 12:15:53 / stefan"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10908
    "Modified: 5.8.1996 / 12:42:57 / stefan"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10909
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10910
2371
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10911
scrollToRight
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10912
    "move viewOrigin to the right"
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10913
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10914
    |wCont currentTransformation|
2371
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10915
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10916
    wCont := self widthOfContents.
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10917
    currentTransformation := gc transformation.
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10918
    currentTransformation notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10919
	wCont := currentTransformation applyScaleX:wCont.
2371
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10920
    ].
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10921
    self scrollHorizontalTo:((wCont - self innerWidth) max:0)
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10922
!
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
 10923
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10924
scrollToTop
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10925
    "move viewOrigin to top"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10926
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10927
    self scrollVerticalTo:0
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10928
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10929
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10930
scrollToTopLeft
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10931
    "move viewOrigin to top/left"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10932
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10933
    self scrollTo:(0 @ 0).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10934
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10935
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10936
scrollUp
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10937
    "scroll up by some amount; this is called when the scrollbars
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10938
     scroll-step up button is pressed."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10939
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10940
    self scrollUp:(self verticalScrollStep)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10941
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10942
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10943
scrollUp:nPixels
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10944
    "change origin to scroll up (towards the origin) by some pixels"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10945
5572
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10946
    self scrollRelative:nPixels negated
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10947
0b2c89db1387 added: #scrollRelative:
Claus Gittinger <cg@exept.de>
parents: 5571
diff changeset
 10948
    "Modified: / 18-07-2010 / 09:10:59 / cg"
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10949
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10950
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10951
scrollVerticalTo:aPixelOffset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10952
    "change origin to make aPixelOffset be the top line"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10953
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10954
    |orgX|
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10955
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10956
    orgX := self viewOrigin x.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10957
    ^ self scrollTo:(orgX @ aPixelOffset).
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10958
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10959
    "Modified: 8.7.1996 / 15:35:40 / stefan"
135
claus
parents:
diff changeset
 10960
!
claus
parents:
diff changeset
 10961
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10962
scrollVerticalToPercent:percent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10963
    "scroll to a position given in percent of total"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10964
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10965
    |hCont currentTransformation|
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10966
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10967
    hCont := self heightOfContents.
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10968
    currentTransformation := gc transformation.
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 10969
    currentTransformation notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10970
	hCont := currentTransformation applyScaleY:hCont.
140
claus
parents: 138
diff changeset
 10971
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10972
    self scrollVerticalTo:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 10973
	    ((((hCont * percent) / 100.0) + 0.5) asInteger)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10974
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10975
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10976
verticalScrollStep
5026
90f01342a59c comment
Claus Gittinger <cg@exept.de>
parents: 5022
diff changeset
 10977
    "return the amount to scroll when stepping up/down (also used for mouseWheel).
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10978
     Subclasses may want to redefine this."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10979
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
 10980
    ^ (device verticalPixelPerMillimeter * 20) asInteger
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10981
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10982
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10983
widthForScrollBetween:yStart and:yEnd
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10984
    "return the width in pixels for a scroll between yStart and yEnd
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10985
     - return full width here since we do not know how wide contents is.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10986
     Views which only use part of their space (short lists, text) may redefine
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10987
     this method and return the number of pixels that have to be scrolled.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10988
     On slow displays, this may make a difference; on fast ones you will probably
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10989
     not notice any difference."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10990
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 10991
    ^ (width - margin - margin)
135
claus
parents:
diff changeset
 10992
! !
claus
parents:
diff changeset
 10993
claus
parents:
diff changeset
 10994
!SimpleView methodsFor:'scrolling-basic'!
claus
parents:
diff changeset
 10995
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10996
scrollTo:newOrigin
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10997
    "change origin to have newOrigin be visible at the top-left.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 10998
     The argument defines the integer device coordinates of the new top-left
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 10999
     point."
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11000
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11001
     ^ self scrollTo:newOrigin redraw:true
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11002
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11003
    "Modified: 15.7.1996 / 11:35:08 / stefan"
1052
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
 11004
    "Modified: 13.9.1996 / 14:09:19 / cg"
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11005
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11006
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11007
scrollTo:newOrigin redraw:doRedraw
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11008
    "change origin to have newOrigin be visible at the top-left.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 11009
     The argument defines the integer device coordinates of the new top-left
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11010
     point."
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11011
3704
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 11012
    ^ self
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11013
	scrollTo:newOrigin
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11014
	redraw:doRedraw
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11015
	allowScrollBeyondContents:false
3704
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 11016
!
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
 11017
7341
5f622fa27203 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7339
diff changeset
 11018
scrollTo:newOrigin redraw:doRedraw allowScrollBeyondContents:allowScrollBeyondContents
4294
40a19f1e8c76 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
 11019
    "change origin to have newOrigin be visible at the top-left.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 11020
     The argument defines the integer device coordinates of the new top-left
4294
40a19f1e8c76 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
 11021
     point."
40a19f1e8c76 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4262
diff changeset
 11022
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11023
    |dX   "{ Class:SmallInteger }"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11024
     dY   "{ Class:SmallInteger }"
4520
8e7a5f587df7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4517
diff changeset
 11025
     orgX
8e7a5f587df7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4517
diff changeset
 11026
     orgY
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11027
     x y iw ih
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11028
     hCont wCont fromX toX fromY toY copyWidth copyHeight
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 11029
     redrawX redrawY wg currentTransformation|
135
claus
parents:
diff changeset
 11030
claus
parents:
diff changeset
 11031
    hCont := self heightOfContents.
claus
parents:
diff changeset
 11032
    wCont := self widthOfContents.
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 11033
    currentTransformation := gc transformation.
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 11034
    currentTransformation isNil ifTrue:[
7747
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11035
        orgY := orgX := 0
135
claus
parents:
diff changeset
 11036
    ] ifFalse:[
7747
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11037
        wCont := (currentTransformation applyScaleX:wCont) rounded.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11038
        hCont := (currentTransformation applyScaleY:hCont) rounded.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11039
        orgY := currentTransformation translation y negated.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11040
        orgX := currentTransformation translation x negated
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11041
    ].
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11042
135
claus
parents:
diff changeset
 11043
    iw := self innerWidth.
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11044
    ih := self innerHeight.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11045
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11046
    "don't scroll outside of displayed area"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11047
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11048
    x := newOrigin x.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11049
    y := newOrigin y.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11050
7341
5f622fa27203 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7339
diff changeset
 11051
    allowScrollBeyondContents ifFalse:[
7747
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11052
        x + iw > wCont ifTrue:[
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11053
            x := (wCont - iw) asInteger.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11054
        ].
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11055
    ].
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11056
    x < 0 ifTrue:[
7747
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11057
        x := 0
7341
5f622fa27203 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7339
diff changeset
 11058
    ].
5f622fa27203 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7339
diff changeset
 11059
    allowScrollBeyondContents ifFalse:[
7747
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11060
        y + ih > hCont ifTrue:[
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11061
            y := (hCont - ih) asInteger.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11062
        ].
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11063
    ].
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11064
    y < 0 ifTrue:[
7747
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11065
        y := 0.
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11066
    ].
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11067
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11068
    dX := x - orgX.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11069
    dY := y - orgY.
135
claus
parents:
diff changeset
 11070
1066
bd9f100a928f ignore null-scrolls
Claus Gittinger <cg@exept.de>
parents: 1063
diff changeset
 11071
    (dX == 0 and:[dY == 0]) ifTrue:[
bd9f100a928f ignore null-scrolls
Claus Gittinger <cg@exept.de>
parents: 1063
diff changeset
 11072
       ^ self
bd9f100a928f ignore null-scrolls
Claus Gittinger <cg@exept.de>
parents: 1063
diff changeset
 11073
    ].
bd9f100a928f ignore null-scrolls
Claus Gittinger <cg@exept.de>
parents: 1063
diff changeset
 11074
2649
6551ac88b855 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2638
diff changeset
 11075
    (wg := self windowGroup) notNil ifTrue:[
7747
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11076
        wg processRealExposeEventsFor:self.
2649
6551ac88b855 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2638
diff changeset
 11077
    ].
2405
95e4a8e563d8 precess expose events before scroll
Claus Gittinger <cg@exept.de>
parents: 2400
diff changeset
 11078
135
claus
parents:
diff changeset
 11079
    self originWillChange.
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
 11080
    (shown and:[doRedraw]) ifTrue:[
7747
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11081
        copyWidth := iw - dX abs.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11082
        copyHeight := ih - dY abs.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11083
        ((copyWidth > 0) and:[copyHeight > 0]) ifTrue:[
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11084
            "/ some of the currently displayed pixels
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11085
            "/ remain visible. Copy them
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11086
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11087
            dX < 0 ifTrue:[
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11088
              fromX := margin.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11089
              toX := margin - dX.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11090
              redrawX := margin
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11091
            ] ifFalse:[
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11092
              fromX := margin + dX.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11093
              toX := margin.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11094
              redrawX := margin + copyWidth.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11095
            ].
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11096
            dY < 0 ifTrue:[
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11097
              fromY := margin.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11098
              toY   := margin - dY.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11099
              redrawY := margin.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11100
            ] ifFalse:[
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11101
              fromY := margin + dY.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11102
              toY   := margin.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11103
              redrawY := margin + copyHeight.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11104
            ].
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11105
            self catchExpose.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11106
            self setViewOrigin:(x @ y).
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11107
            self
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11108
                copyFrom:self
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11109
                x:fromX y:fromY
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11110
                toX:toX   y:toY
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11111
                width:copyWidth
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11112
                height:copyHeight
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11113
                async:true.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11114
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11115
            self setInnerClip.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11116
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11117
            "first redraw the rectangle above/below the
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11118
             copied area (with full width)."
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11119
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11120
            copyHeight < ih ifTrue:[
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11121
                self invalidateDeviceRectangle:((margin@redrawY) extent:(iw@(ih - copyHeight))) repairNow:false.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11122
            ].
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11123
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11124
            "second redraw the rectangle left/right of the
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11125
             copied area"
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11126
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11127
            copyWidth < iw ifTrue:[
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11128
                self invalidateDeviceRectangle:((redrawX@toY) extent:((iw-copyWidth)@copyHeight)) repairNow:false.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11129
            ].
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11130
            self waitForExpose.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11131
        ] ifFalse:[
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11132
            "redraw everything"
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11133
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11134
            self setViewOrigin:(x @ y).
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11135
            self invalidateDeviceRectangle:((margin@margin) extent:(iw@ih)) repairNow:false.
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11136
        ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11137
    ] ifFalse:[
7747
b957c1314cca #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 7740
diff changeset
 11138
        self setViewOrigin:(x @ y).
2802
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
 11139
    ].
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
 11140
709
6a8d793633ee fixed arg to #originChanged:
Claus Gittinger <cg@exept.de>
parents: 705
diff changeset
 11141
    self originChanged:(dX negated @ dY negated).
6a8d793633ee fixed arg to #originChanged:
Claus Gittinger <cg@exept.de>
parents: 705
diff changeset
 11142
2381
9a365ce57a19 async redraw when scrolling (i.e. invalidate instead of redraw)
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
 11143
    "Modified: / 5.8.1996 / 11:57:09 / stefan"
2405
95e4a8e563d8 precess expose events before scroll
Claus Gittinger <cg@exept.de>
parents: 2400
diff changeset
 11144
    "Modified: / 1.12.1998 / 22:35:18 / cg"
135
claus
parents:
diff changeset
 11145
! !
claus
parents:
diff changeset
 11146
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11147
!SimpleView methodsFor:'startup'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11148
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11149
open
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11150
    "open up the view - for normal views, this is a modeless open
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11151
     (i.e. the new view comes up as independent process).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11152
     Although #open is only to be sent to topviews (i.e. it could have been
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11153
     implemented in TopView), it is implemented here - therefore, every view
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11154
     can be opened as a topView.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 11155
     This is redefined in ModalBox, which comes up modal (i.e.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11156
     control is under the current process, so that interaction with the
4131
30e53fab0bc0 comment
Claus Gittinger <cg@exept.de>
parents: 4126
diff changeset
 11157
     current group is blocked while the modalBox is active).
30e53fab0bc0 comment
Claus Gittinger <cg@exept.de>
parents: 4126
diff changeset
 11158
30e53fab0bc0 comment
Claus Gittinger <cg@exept.de>
parents: 4126
diff changeset
 11159
     Notice: after the open, you cannot be sure that the view is really open and
30e53fab0bc0 comment
Claus Gittinger <cg@exept.de>
parents: 4126
diff changeset
 11160
     visible, since #open forks a new process, which does the actual window opening.
30e53fab0bc0 comment
Claus Gittinger <cg@exept.de>
parents: 4126
diff changeset
 11161
     To ensure visibility, use #openAndWait or waitUntilVisible after the open."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11162
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11163
    ^ self openModeless
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11164
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11165
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11166
     View new open
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11167
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11168
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11169
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11170
     (Button label:'hello') open
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11171
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11172
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11173
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11174
     |top|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11175
     top := StandardSystemView new.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11176
     top extent:200@200.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11177
     Button label:'hello' in:top.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11178
     top open
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11179
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11180
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11181
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11182
     YesNoBox new open
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11183
    "
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11184
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11185
    "Modified: 24.7.1997 / 13:26:42 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11186
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11187
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11188
openAndWait
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11189
    "open up the view - wait until it is visible.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11190
     In normal applications, you do not need to wait till the view is
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11191
     open - it should do all of its drawing itself when it gets the
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11192
     first expose event.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11193
     However, if you want to 'manually' draw into the view (for example,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11194
     in doIt expressions) the view must be visible (realized) before doing so.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11195
     Use this open in those situations."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11196
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11197
    self open.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11198
    self waitUntilVisible.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11199
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11200
    "does not work:
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11201
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11202
	|v|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11203
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11204
	v := View new open.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11205
	v displayLineFrom:0@0 to:50@50
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11206
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11207
     does work:
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11208
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11209
	|v|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11210
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11211
	v := View new openAndWait.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11212
	v displayLineFrom:0@0 to:50@50
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11213
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11214
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11215
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11216
openAt:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11217
    "open up the view modeless - positions the view"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11218
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11219
    ^self openModelessAt:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11220
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11221
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11222
     (Button label:'hello') open
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11223
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11224
     (Button label:'hello') openAt:(100@100)
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11225
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11226
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11227
    "Modified: 24.7.1997 / 13:26:23 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11228
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11229
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11230
openAtCenter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11231
    "open up the view modeless - positions the view"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11232
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11233
    ^self openModelessAtCenter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11234
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11235
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11236
     (Button label:'hello') open
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11237
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11238
     (Button label:'hello') openAtCenter
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11239
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11240
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11241
    "Modified: 24.7.1997 / 13:01:12 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11242
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11243
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11244
openAutonomous
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11245
    "create and schedule a new windowgroup for me and open the view.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11246
     The view will be handled by its own process, effectively running in
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 11247
     parallel.
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11248
     Notice:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11249
	This entry is for NON-topviews, which want to be served
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11250
	autonomous from their real topview.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11251
	(see the fileBrowsers kill-button
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11252
	 when executing unix commands as an example)"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11253
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11254
    |wg mainGroup|
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11255
4139
6acf2874394b WO's stuff
werner
parents: 4131
diff changeset
 11256
    wg := self windowGroupClass new.
763
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
 11257
    self windowGroup:wg.
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11258
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11259
    mainGroup := WindowGroup activeGroup.
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11260
    mainGroup notNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11261
	mainGroup := mainGroup mainGroup.
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11262
    ].
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11263
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11264
    wg isForModalSubview:true.        "/ make it handle update events for the main group
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11265
    wg startupWith:[wg mainGroup:mainGroup. self realizeInGroup].
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11266
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11267
    "/ wg startupModal:[true] forGroup:mainGroup
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11268
    "/ self realizeInGroup.
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11269
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
 11270
    "Modified: 20.8.1997 / 17:57:38 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11271
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11272
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11273
openInGroup:aGroup
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11274
    "special open within another windowGroup.
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 11275
     This allows a view to be realized in any windowgroup;
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11276
     for applications where multiple views act as a group
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11277
     (i.e. close and iconify together)."
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11278
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11279
    self windowGroup:aGroup.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11280
    aGroup addTopView:self.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11281
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11282
"/    self realizeKeepingGroup:true
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11283
    aGroup isForModalSubview:true.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11284
    self realize.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11285
!
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11286
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11287
openModal
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11288
    "create a new windowgroup, but start processing in the current process
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11289
     actually suspending event processing for the currently active group.
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
 11290
     Stay in the modalLoop while the view is visible.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11291
     (i.e. control is returned to the sender when the receiver is closed)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11292
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11293
    self openModal:[true]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11294
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11295
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11296
     the same:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11297
	 YesNoBox new open
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11298
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11299
	 YesNoBox new openModal
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11300
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11301
     different:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11302
	 (Button label:'hello') open
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11303
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11304
	 (Button label:'hello') openModal
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11305
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11306
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11307
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11308
openModal:aBlock
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11309
    "create a new windowgroup, but start processing in the current process -
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11310
     actually suspending event processing for the currently active group.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11311
     Stay in this modal loop while aBlock evaluates to true AND the receiver is
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11312
     visible.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11313
     (i.e. control is returned to the sender when the receiver is closed)
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 11314
     This makes any interaction with the current window impossible -
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11315
     however, other views (in other windowgroups) still work."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11316
6077
267fb1241ec2 Fix stc compiler warnings
Stefan Vogel <sv@exept.de>
parents: 6074
diff changeset
 11317
    |activeGroup|
5271
228c32bcdd37 mainGroup detection was wrong for modal-view-open;
Claus Gittinger <cg@exept.de>
parents: 5268
diff changeset
 11318
5273
9c8813e5b7a1 handling of abort of a hide-operation
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
 11319
    activeGroup := WindowGroup activeGroup.
9c8813e5b7a1 handling of abort of a hide-operation
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
 11320
5411
26b475890a60 eliminated borderWidth & borderColor;
Claus Gittinger <cg@exept.de>
parents: 5405
diff changeset
 11321
    "/ cg - because we raise that window, we should avoid to raise the main-non-modal view,
5271
228c32bcdd37 mainGroup detection was wrong for modal-view-open;
Claus Gittinger <cg@exept.de>
parents: 5268
diff changeset
 11322
    "/ if a dialog is opend from another modal view (confirmation in a modal-box)
2167
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
 11323
5273
9c8813e5b7a1 handling of abort of a hide-operation
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
 11324
"/    mainGroup := activeGroup.
2167
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
 11325
"/    mainGroup notNil ifTrue:[mainGroup := mainGroup mainGroup].
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
 11326
5273
9c8813e5b7a1 handling of abort of a hide-operation
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
 11327
"/    masterGroup := activeGroup.
5271
228c32bcdd37 mainGroup detection was wrong for modal-view-open;
Claus Gittinger <cg@exept.de>
parents: 5268
diff changeset
 11328
"/    [masterGroup notNil and:[masterGroup isPopUp or:[masterGroup isModal]]] whileTrue:[
228c32bcdd37 mainGroup detection was wrong for modal-view-open;
Claus Gittinger <cg@exept.de>
parents: 5268
diff changeset
 11329
"/        masterGroup := masterGroup previousGroup.
228c32bcdd37 mainGroup detection was wrong for modal-view-open;
Claus Gittinger <cg@exept.de>
parents: 5268
diff changeset
 11330
"/   ].
228c32bcdd37 mainGroup detection was wrong for modal-view-open;
Claus Gittinger <cg@exept.de>
parents: 5268
diff changeset
 11331
    ^ self openModal:aBlock inGroup:activeGroup "/ masterGroup "/ mainGroup.
2167
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
 11332
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
 11333
    "Created: / 10.12.1995 / 14:06:45 / cg"
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
 11334
    "Modified: / 9.7.1998 / 01:20:57 / cg"
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
 11335
!
299
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
 11336
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11337
openModal:aBlock inGroup:activeWindowGroup
299
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
 11338
    "create a new windowgroup, but start processing in the current process -
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
 11339
     actually suspending event processing for the main group.
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
 11340
     Stay in this modal loop while aBlock evaluates to true AND the receiver is
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
 11341
     visible.
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
 11342
     (i.e. control is returned to the sender when the receiver is closed)
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 11343
     This makes any interaction with the current window impossible -
299
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
 11344
     however, other views (in other windowgroups) still work."
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
 11345
7675
1b42e334f168 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7663
diff changeset
 11346
    |tops mainView previousGroup mainGroup cursorChanged 
1b42e334f168 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7663
diff changeset
 11347
     isPopup inSystemProcess makeTransient transientFor|
5888
d83030f456a6 changed: #openModal:inGroup:
Stefan Vogel <sv@exept.de>
parents: 5871
diff changeset
 11348
6072
69ba59e3fe6d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6070
diff changeset
 11349
    StandardSystemView cancelAutoRaise.
69ba59e3fe6d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6070
diff changeset
 11350
6116
332ca0cd606f class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6115
diff changeset
 11351
    isPopup := self isPopUpView.
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11352
    activeWindowGroup notNil ifTrue:[
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11353
        mainGroup := activeWindowGroup mainGroup.
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11354
	mainView := mainGroup mainView.
5888
d83030f456a6 changed: #openModal:inGroup:
Stefan Vogel <sv@exept.de>
parents: 5871
diff changeset
 11355
    ].
1397
932c517ad29c moved tranientView setup up in the hierarchy
Claus Gittinger <cg@exept.de>
parents: 1393
diff changeset
 11356
6115
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11357
    "/ set the windowgroup BEFORE sending the aboutToOpen notification
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11358
    "/ (so the handler sees me with a wGroup, sensor etc).
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11359
    "/ this allows for the handler to enqueue an event,
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11360
    "/ or to add event hooks.
7675
1b42e334f168 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7663
diff changeset
 11361
    (inSystemProcess := Processor activeProcessIsSystemProcess) ifTrue:[
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11362
	"
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11363
	 put myself into the modal group, let it handle events for
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11364
	 me as well. This is only a half way solution, since the view
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11365
	 is not modal at all ... however, the only situation
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11366
	 where this happens is with modal boxes popped while in a
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11367
	 modal browser. You will forgive me for that inconvenience.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11368
	"
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11369
        windowGroup := activeWindowGroup.
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11370
        activeWindowGroup notNil ifTrue:[activeWindowGroup addTopView:self].
6115
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11371
    ] ifFalse:[
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11372
        previousGroup := activeWindowGroup.
7378
3f51596365af #OTHER by sr
sr
parents: 7341
diff changeset
 11373
    ].
3f51596365af #OTHER by sr
sr
parents: 7341
diff changeset
 11374
3f51596365af #OTHER by sr
sr
parents: 7341
diff changeset
 11375
    windowGroup isNil ifTrue:[
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11376
	"/ create a new window group put myself into it
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11377
        windowGroup := self windowGroupClass new.
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11378
        windowGroup
7675
1b42e334f168 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7663
diff changeset
 11379
            setProcess:Processor activeProcess;
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11380
				addTopView:self;
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11381
				setPreviousGroup:previousGroup.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11382
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11383
	superView notNil ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11384
	    "/
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11385
	    "/ special: this is a modal subview,
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11386
	    "/ prevent the view from reassigning its windowGroup when realized
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11387
            "/ (subviews normally place themself into the superviews group)
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11388
	    "/
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11389
	    windowGroup isForModalSubview:true.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11390
	].
6115
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11391
    ].
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11392
6121
17d2c885beac class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6119
diff changeset
 11393
    makeTransient := true.
7603
4247f662783d #OTHER by mawalch
mawalch
parents: 7593
diff changeset
 11394
    transientFor := mainView.
6116
332ca0cd606f class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6115
diff changeset
 11395
    isPopup ifFalse:[
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11396
	"/ the following allows for knowledgable programmers to suppress dialog boxes,
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11397
	"/ or to patch common controls right before opening...
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11398
	(Dialog aboutToOpenBoxNotificationSignal raiseRequestWith:self) == #abort ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11399
	    ^ self
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11400
	].
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11401
        windowGroup isNil ifTrue:[
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11402
            "/ the aboutToOpenBoxNotificationSignal handler destroyed me (although it should proceed with #abort)!!
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11403
            "/ Transcript showCR:(self class name,': box opening suppressed by aboutToOpenBoxNotificationSignal handler').
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11404
            ^ self.
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11405
        ].
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11406
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11407
	"/ the following allows for hooks to add a bell sound or other whenever a dialog opens
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11408
        device modalWindowListenersDo:[:listener | listener aboutToOpenWindow:self].
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11409
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11410
	"/ the following raises the corresponding mainview, so the dialog shows above
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11411
	"/ any currently covered view. However, be careful if being debugged, or if this dialog
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11412
	"/ is opened by an already open dialog.
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11413
        (mainView isNil or:[mainView windowGroup isInModalLoop]) ifTrue:[
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11414
            (previousGroup notNil and:[previousGroup isModal]) ifTrue:[
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11415
                transientFor := previousGroup mainView.
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11416
            ].
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11417
        ].
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11418
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11419
        transientFor notNil ifTrue:[
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11420
            (transientFor windowGroup isInModalLoop
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11421
                or:[ transientFor windowGroup isDebugged
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11422
                or:[ activeWindowGroup isDebugged
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11423
	    ]]) ifFalse:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11424
		self tracePoint:#cg message:'activate'.
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11425
                self debuggingCodeFor:#cg is:[ Transcript showCR:transientFor; showCR:transientFor windowGroup. ].
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11426
                transientFor activate; setForegroundWindow.
7603
4247f662783d #OTHER by mawalch
mawalch
parents: 7593
diff changeset
 11427
"/            ] ifTrue:[
4247f662783d #OTHER by mawalch
mawalch
parents: 7593
diff changeset
 11428
"/                makeTransient := false.
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11429
	    ]
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11430
	].
5888
d83030f456a6 changed: #openModal:inGroup:
Stefan Vogel <sv@exept.de>
parents: 5871
diff changeset
 11431
    ].
7603
4247f662783d #OTHER by mawalch
mawalch
parents: 7593
diff changeset
 11432
    "/ makeTransient ifTrue:[
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11433
        transientFor notNil ifTrue:[
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11434
	    "set the transient property.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11435
	     This is currently used for X, to tell the Window Manager
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11436
	     That this view should be always on top of the mainView"
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11437
	    self drawableId isNil ifTrue:[self create].
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11438
            device setTransient:self drawableId for:transientFor id.
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11439
        ].
7603
4247f662783d #OTHER by mawalch
mawalch
parents: 7593
diff changeset
 11440
    "/ ].
1397
932c517ad29c moved tranientView setup up in the hierarchy
Claus Gittinger <cg@exept.de>
parents: 1393
diff changeset
 11441
932c517ad29c moved tranientView setup up in the hierarchy
Claus Gittinger <cg@exept.de>
parents: 1393
diff changeset
 11442
    self raise.
299
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
 11443
7675
1b42e334f168 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 7663
diff changeset
 11444
    inSystemProcess ifTrue:[
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11445
	self realize
135
claus
parents:
diff changeset
 11446
    ] ifFalse:[
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11447
	"
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11448
	 show a stop-cursor in the suspended window groups
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11449
	"
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11450
	(mainGroup notNil and:[isPopup not]) ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11451
	    mainGroup showCursor:(Cursor stop).
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11452
	    previousGroup ~~ mainGroup ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11453
		previousGroup showCursor:(Cursor stop).
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11454
	    ].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11455
	    cursorChanged := true.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11456
	].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11457
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11458
	"
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11459
	 go dispatch events in this new group
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11460
	 (thus current windowgroup is blocked from interaction)
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11461
	"
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11462
	AbortOperationRequest handle:[:ex |
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11463
	    "/ the dialog/popup is aborted - hide it. Care for another abort during the hide.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11464
	    AbortOperationRequest handle:[:ex2 |
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11465
		"/ an aborted hide (possibly due to a cancelled user confirmation or similar)
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11466
		self breakPoint:#cg.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11467
		ex exit.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11468
	    ] do:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11469
		self hide.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11470
		realized ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11471
		    "/ self halt. "/ hide handled and closeRequest not wanted:
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11472
		    ex exit.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11473
		].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11474
	    ].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11475
	] do:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11476
	    [
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11477
		[
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11478
                    windowGroup startupModal:[realized and:aBlock] forGroup:activeWindowGroup
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11479
		] ifCurtailed:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11480
		    self hide.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11481
		]
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11482
	    ] ensure:[
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11483
                activeWindowGroup notNil ifTrue:[
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11484
                    activeWindowGroup graphicsDevice sync.  "that's a round trip - make sure that all drawing has been processed"
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11485
		    "/ ensure that eventListener runs here ...
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11486
                    Delay waitForMilliseconds:50.
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11487
                    activeWindowGroup processExposeEvents.
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11488
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11489
		    (self isPopUpView or:[ ReturnFocusWhenClosingModalBoxes ]) ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11490
			"
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11491
			 return the input focus to the previously active group's top.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11492
			 This helps with window managers which need an explicit click
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11493
			 on the view for the focus.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11494
			 Only do this, if the previous group is still having the focus.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11495
			 (i.e. no other view was opened in the meantime)
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11496
			"
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11497
                        activeWindowGroup graphicsDevice focusView isNil ifTrue:[
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11498
                            tops := activeWindowGroup topViews.
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11499
			    (tops notEmptyOrNil) ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11500
				tops first getKeyboardFocus
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11501
			    ].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11502
			].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11503
		    ].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11504
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11505
		    "
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11506
		     restore cursors in the changed groups
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11507
		    "
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11508
		    cursorChanged notNil ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11509
			mainGroup restoreCursors.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11510
			previousGroup ~~ mainGroup ifTrue:[
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11511
			    previousGroup restoreCursors.
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11512
			].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11513
		    ].
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11514
		].
7618
50ccaeb61be1 #DOCUMENTATION by Maren
matilk
parents: 7617
diff changeset
 11515
                Dialog boxClosedNotificationSignal raiseRequestWith:self.
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11516
	    ]
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 11517
	].
135
claus
parents:
diff changeset
 11518
    ]
299
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
 11519
4654
baa4bc036ec4 drag & drop
Claus Gittinger <cg@exept.de>
parents: 4652
diff changeset
 11520
    "Created: / 10-12-1995 / 14:06:14 / cg"
6121
17d2c885beac class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6119
diff changeset
 11521
    "Modified: / 29-08-2013 / 16:17:10 / cg"
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
 11522
!
135
claus
parents:
diff changeset
 11523
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11524
openModalAt:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11525
    "open up the view modeless - positions the view
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11526
     (i.e. circumvents window managers positioning)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11527
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11528
    self origin:aPoint.
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 11529
    self drawableId isNil ifTrue:[self create].
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 11530
"/    device setTransient:self drawableId for:0.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11531
    ^ self openModal
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11532
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11533
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11534
     View new openModal
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11535
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11536
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11537
     View new openModalAt:100@100
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11538
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11539
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11540
    "Created: 18.9.1995 / 23:21:42 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11541
    "Modified: 18.9.1995 / 23:32:26 / claus"
1837
454d10a53a64 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
 11542
    "Modified: 28.7.1997 / 18:52:29 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11543
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11544
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11545
openModalAtCenter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11546
    "open up the view modeless - positions the view
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11547
     (i.e. circumvents window managers positioning)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11548
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
 11549
    ^ self openModalAt:(device centerOfMonitorHavingPointer - (self extent//2)).
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11550
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11551
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11552
     View new openModal
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11553
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11554
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11555
     View new openModalAtCenter
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11556
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11557
5729
a2d13b74741a changed: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5727
diff changeset
 11558
    "Modified: / 22-03-2011 / 13:33:10 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11559
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11560
7243
7d2c79d650c7 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7232
diff changeset
 11561
openModalAtPointer
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
 11562
    ^ self openModalAt:(device pointerPosition)
7243
7d2c79d650c7 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7232
diff changeset
 11563
7d2c79d650c7 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7232
diff changeset
 11564
    "
7d2c79d650c7 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7232
diff changeset
 11565
     View new openModalAtPointer
7d2c79d650c7 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7232
diff changeset
 11566
    "
7d2c79d650c7 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7232
diff changeset
 11567
!
7d2c79d650c7 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7232
diff changeset
 11568
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11569
openModeless
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11570
    "create and schedule a new windowgroup for me and open the view.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11571
     The view will be handled by its own process, effectively running in
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11572
     parallel (i.e. control is returned to the sender immediately)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11573
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11574
    self openModelessAt:nil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11575
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11576
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11577
     the same:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11578
	 (Button label:'hello') open
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11579
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11580
	 (Button label:'hello') openModeless
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11581
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11582
     different:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11583
	 YesNoBox new open
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11584
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11585
	 YesNoBox new openModeless
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11586
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11587
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11588
     (almost) the same:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11589
	 YesNoBox new open
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11590
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11591
	 YesNoBox new openModal
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11592
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11593
     different:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11594
	 (Button label:'hello') open
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11595
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11596
	 (Button label:'hello') openModal
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11597
    "
503
c2b27766bb0a dont create a new windowGroup if there is one (in #openModeless)
Claus Gittinger <cg@exept.de>
parents: 497
diff changeset
 11598
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11599
    "Modified: 24.7.1997 / 13:17:49 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11600
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11601
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11602
openModelessAt:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11603
    "open up the view modeless - positions the view
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11604
     (i.e. tries to circumvent the window managers positioning)
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11605
     Notice: some windowManagers seem to ignore this and always
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11606
     ask the user to position the view."
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11607
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11608
    self openModelessAt:aPoint iconified:false
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11609
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11610
    "
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11611
     View new openModeless
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11612
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11613
     View new openModelessAt:100@100
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11614
    "
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11615
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11616
    "Created: 18.9.1995 / 23:21:42 / claus"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11617
    "Modified: 24.7.1997 / 13:48:52 / cg"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11618
!
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11619
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11620
openModelessAt:aPoint iconified:iconified
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11621
    "open up the view modeless - positions the view
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11622
     (i.e. tries to circumvent the window managers positioning)
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11623
     Notice: some windowManagers seem to ignore this and always
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11624
     ask the user to position the view."
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11625
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11626
    |newGroup|
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11627
6072
69ba59e3fe6d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6070
diff changeset
 11628
    StandardSystemView cancelAutoRaise.
6315
27f1a761148e [true] whileTrue: -> #loop
Stefan Vogel <sv@exept.de>
parents: 6291
diff changeset
 11629
    self drawableId isNil ifTrue:[self create].
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11630
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11631
    windowGroup isNil ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11632
	newGroup := true.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11633
	windowGroup := self windowGroupClass new.
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11634
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11635
	newGroup := false.
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11636
    ].
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11637
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11638
    windowGroup addTopView:self.
5635
20533b01f718 changed:
Claus Gittinger <cg@exept.de>
parents: 5629
diff changeset
 11639
20533b01f718 changed:
Claus Gittinger <cg@exept.de>
parents: 5629
diff changeset
 11640
    "/ the following allows for hooks to be informed whenever a non-modal view opens
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
 11641
    device nonModalWindowListenersDo:[:listener | listener aboutToOpenWindow:self].
5635
20533b01f718 changed:
Claus Gittinger <cg@exept.de>
parents: 5629
diff changeset
 11642
3745
8456462f2ac0 code beautifaction
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
 11643
    newGroup ifTrue:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11644
	(aPoint isNil and:[iconified not]) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11645
	    windowGroup startupWith:[self realize].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11646
	] ifFalse:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11647
	    windowGroup startupWith:[self realizeKeepingGroup:false at:aPoint iconified:iconified].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11648
	].
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11649
    ] ifFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11650
	self realizeInGroup.
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
 11651
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11652
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11653
    "
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11654
     StandardSystemView new openModeless
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11655
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11656
     StandardSystemView new openModelessAt:100@100
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11657
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
 11658
     StandardSystemView new openModelessAt:100@100 iconified:true
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11659
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11660
5635
20533b01f718 changed:
Claus Gittinger <cg@exept.de>
parents: 5629
diff changeset
 11661
    "Created: / 18-09-1995 / 23:21:42 / claus"
20533b01f718 changed:
Claus Gittinger <cg@exept.de>
parents: 5629
diff changeset
 11662
    "Modified: / 24-10-2010 / 15:22:53 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11663
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11664
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11665
openModelessAtCenter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11666
    "open up the view modeless - positions the view
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11667
     (i.e. circumvents window managers positioning)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11668
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
 11669
    ^ self openModelessAt:(device centerOfMonitorHavingPointer - (self extent//2)).
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11670
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11671
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11672
     View new openModeless
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11673
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11674
     View new openModelessAtCenter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11675
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11676
5729
a2d13b74741a changed: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5727
diff changeset
 11677
    "Created: / 18-09-1995 / 23:21:42 / claus"
a2d13b74741a changed: #openModal:inGroup:
Claus Gittinger <cg@exept.de>
parents: 5727
diff changeset
 11678
    "Modified: / 22-03-2011 / 13:33:13 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11679
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11680
7105
7b9ac07c5ffe #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7094
diff changeset
 11681
openModelessAtPointer
7b9ac07c5ffe #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7094
diff changeset
 11682
    "create and schedule a new windowgroup for me and open the view.
7b9ac07c5ffe #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7094
diff changeset
 11683
     The view will be handled by its own process, effectively running in
7b9ac07c5ffe #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7094
diff changeset
 11684
     parallel (i.e. control is returned to the sender immediately)."
7b9ac07c5ffe #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7094
diff changeset
 11685
7262
cad293885151 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 7243
diff changeset
 11686
    self openModelessAt:(device pointerPosition)
7105
7b9ac07c5ffe #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7094
diff changeset
 11687
7b9ac07c5ffe #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7094
diff changeset
 11688
    "
7b9ac07c5ffe #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7094
diff changeset
 11689
     (Button label:'hello') openModelessAtPointer
7b9ac07c5ffe #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7094
diff changeset
 11690
    "
7b9ac07c5ffe #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7094
diff changeset
 11691
!
7b9ac07c5ffe #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7094
diff changeset
 11692
7254
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 11693
waitUntilEventsProcessed
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 11694
    "Wait until all queued events for this view are processes.
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 11695
     In normal applications, you do not need to call this, however,
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 11696
     in tests you may need to delay assertions until all events
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 11697
     are processed."
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 11698
8619
3cec55b0efa4 Improve `SimpleView >> waitUntilAllEventsProcesses`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8429
diff changeset
 11699
    [ Screen current eventPending ] whileTrue:[ 
3cec55b0efa4 Improve `SimpleView >> waitUntilAllEventsProcesses`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8429
diff changeset
 11700
        Delay waitForMilliseconds: 50.
3cec55b0efa4 Improve `SimpleView >> waitUntilAllEventsProcesses`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8429
diff changeset
 11701
    ].                                  
3cec55b0efa4 Improve `SimpleView >> waitUntilAllEventsProcesses`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8429
diff changeset
 11702
    [ self sensor hasEvents ] whileTrue: [ 
3cec55b0efa4 Improve `SimpleView >> waitUntilAllEventsProcesses`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8429
diff changeset
 11703
        Delay waitForMilliseconds: 50.
3cec55b0efa4 Improve `SimpleView >> waitUntilAllEventsProcesses`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8429
diff changeset
 11704
    ].
7254
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 11705
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 11706
    "Created: / 31-03-2016 / 22:33:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8619
3cec55b0efa4 Improve `SimpleView >> waitUntilAllEventsProcesses`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8429
diff changeset
 11707
    "Modified: / 23-01-2019 / 21:05:32 / jv"
3cec55b0efa4 Improve `SimpleView >> waitUntilAllEventsProcesses`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 8429
diff changeset
 11708
    "Modified: / 23-01-2019 / 21:09:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7254
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 11709
!
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 11710
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11711
waitUntilVisible
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11712
    "wait until the receiver visible.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11713
     In normal applications, you do not need to wait till a view is
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11714
     open - it should do all of its drawing itself when it gets the
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11715
     first expose event.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11716
     However, if you want to 'manually' draw into the view (for example,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11717
     in doIt expressions), or subsequent views depend on some state of
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 11718
     another view (which is only available once visible),
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11719
     use this to suspend the current process until the receiver is shown.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11720
     Caveat:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11721
	we poll here for the view to be shown - we need a semaphore
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11722
	which is raised by the view in order to do it right."
3522
a98163edc25b care for #waitUntilVisible to be called from within the event dispatcher
Claus Gittinger <cg@exept.de>
parents: 3518
diff changeset
 11723
a98163edc25b care for #waitUntilVisible to be called from within the event dispatcher
Claus Gittinger <cg@exept.de>
parents: 3518
diff changeset
 11724
    |wg n|
a98163edc25b care for #waitUntilVisible to be called from within the event dispatcher
Claus Gittinger <cg@exept.de>
parents: 3518
diff changeset
 11725
a98163edc25b care for #waitUntilVisible to be called from within the event dispatcher
Claus Gittinger <cg@exept.de>
parents: 3518
diff changeset
 11726
    n := 0.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11727
    [self shown] whileFalse:[
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11728
	(device notNil and:[device isOpen not]) ifTrue:[^ self].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11729
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11730
	"/ this was added to avoid a deadlock, when called from within
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11731
	"/ the event dispatch process (as when doing foo inspect there).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11732
	n > (10 / 0.05) ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11733
	    'SimpleView [info]: View not visible after 10 seconds - will not wait any longer in waitUntilVisible' infoPrintCR.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11734
	    ^ self
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11735
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11736
	n := n + 1.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11737
	Delay waitForMilliseconds:50.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11738
	(wg := self windowGroup) notNil ifTrue:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11739
	    wg processExposeEvents.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11740
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11741
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11742
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11743
    "does not work (the view is in its opening phase,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11744
     when we attempt to draw a line - this gives an error, since
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11745
     its internals are not yet correctly setup):
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11746
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11747
	|v|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11748
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11749
	v := View new open.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11750
	v displayLineFrom:0@0 to:50@50
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11751
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11752
     does work (since we wait until the view has completely finished
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11753
     its startup phase):
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 11754
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11755
	|v|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11756
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11757
	v := View new open.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11758
	v waitUntilVisible.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11759
	v displayLineFrom:0@0 to:50@50
5595
05e3cc1b4ba7 changed: #waitUntilVisible
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
 11760
    "
05e3cc1b4ba7 changed: #waitUntilVisible
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
 11761
05e3cc1b4ba7 changed: #waitUntilVisible
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
 11762
    "Modified: / 08-08-2010 / 14:46:34 / cg"
135
claus
parents:
diff changeset
 11763
! !
claus
parents:
diff changeset
 11764
5912
028265548a34 added: #isApplicationSubView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5896
diff changeset
 11765
!SimpleView methodsFor:'testing'!
028265548a34 added: #isApplicationSubView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5896
diff changeset
 11766
6622
1fa709b9d5a1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6611
diff changeset
 11767
hasOwnScrollbars
1fa709b9d5a1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6611
diff changeset
 11768
    "a hack for codeView2, which behaves like a TextView, but has its own
1fa709b9d5a1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6611
diff changeset
 11769
     scrollbars embedded - sigh (an extra load one).
1fa709b9d5a1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6611
diff changeset
 11770
     This allows for the UIBuilder to avoid creating an extra set around such
1fa709b9d5a1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6611
diff changeset
 11771
     a view (as is the case with TextSpec with scrollbars when using CodeView2)"
1fa709b9d5a1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6611
diff changeset
 11772
1fa709b9d5a1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6611
diff changeset
 11773
    ^ false
1fa709b9d5a1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6611
diff changeset
 11774
!
1fa709b9d5a1 class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6611
diff changeset
 11775
5912
028265548a34 added: #isApplicationSubView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5896
diff changeset
 11776
isApplicationSubView
028265548a34 added: #isApplicationSubView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5896
diff changeset
 11777
    ^ false
6911
b7e5e48b5c0a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6907
diff changeset
 11778
!
b7e5e48b5c0a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6907
diff changeset
 11779
b7e5e48b5c0a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6907
diff changeset
 11780
isComboView
b7e5e48b5c0a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6907
diff changeset
 11781
    ^ false
b7e5e48b5c0a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6907
diff changeset
 11782
!
b7e5e48b5c0a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6907
diff changeset
 11783
b7e5e48b5c0a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6907
diff changeset
 11784
isPopUpList
b7e5e48b5c0a class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6907
diff changeset
 11785
    ^ false
5912
028265548a34 added: #isApplicationSubView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5896
diff changeset
 11786
! !
5805
fd85e3ffea7d category of: #isCodeView2
Claus Gittinger <cg@exept.de>
parents: 5804
diff changeset
 11787
3276
9ed39f7e7282 category change
Claus Gittinger <cg@exept.de>
parents: 3266
diff changeset
 11788
!SimpleView methodsFor:'user interaction & notifications'!
135
claus
parents:
diff changeset
 11789
claus
parents:
diff changeset
 11790
warn:aString
claus
parents:
diff changeset
 11791
    "like Objects warn, but translates the string via the
claus
parents:
diff changeset
 11792
     resourcePack, thus giving a translated string automatically"
claus
parents:
diff changeset
 11793
4452
0076d4427e51 remember the helpKey in the view - not in the builder
Claus Gittinger <cg@exept.de>
parents: 4447
diff changeset
 11794
    super warn:(resources stringWithCRs:aString)
135
claus
parents:
diff changeset
 11795
!
claus
parents:
diff changeset
 11796
claus
parents:
diff changeset
 11797
warn:aString with:argument
claus
parents:
diff changeset
 11798
    "like Objects warn, but translates the string via the
claus
parents:
diff changeset
 11799
     resourcePack, thus giving a translated string automatically"
claus
parents:
diff changeset
 11800
4406
09339c622956 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4389
diff changeset
 11801
    super warn:(resources stringWithCRs:aString with:argument)
151
claus
parents: 145
diff changeset
 11802
!
claus
parents: 145
diff changeset
 11803
claus
parents: 145
diff changeset
 11804
warn:aString with:arg1 with:arg2
claus
parents: 145
diff changeset
 11805
    "like Objects warn, but translates the string via the
claus
parents: 145
diff changeset
 11806
     resourcePack, thus giving a translated string automatically"
claus
parents: 145
diff changeset
 11807
4406
09339c622956 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4389
diff changeset
 11808
    super warn:(resources stringWithCRs:aString with:arg1 with:arg2)
3182
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
 11809
!
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
 11810
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
 11811
warn:aString with:arg1 with:arg2 with:arg3
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
 11812
    "like Objects warn, but translates the string via the
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
 11813
     resourcePack, thus giving a translated string automatically"
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
 11814
4406
09339c622956 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4389
diff changeset
 11815
    super warn:(resources stringWithCRs:aString with:arg1 with:arg2 with:arg3)
135
claus
parents:
diff changeset
 11816
! !
claus
parents:
diff changeset
 11817
6115
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11818
!SimpleView::AboutToOpenBoxNotificationSignal class methodsFor:'documentation'!
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11819
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11820
documentation
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11821
"
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11822
    this is a hook notification, raised right before a dialog box is about to be opened.
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11823
    This allows for standard dialogs (such as confirmers, choosers or notifiers) to
6291
65b57dca9902 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6289
diff changeset
 11824
    be customized by additional widgets.
6115
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11825
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11826
    i.e. its typical use is like:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11827
	|doNotShowHolder|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11828
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11829
	doNotShowHolder := false asValue.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11830
	Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11831
	    |box|
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11832
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11833
	    box := ex box.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11834
	    box verticalPanel
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11835
		add:(CheckBox label:('Do not show this information in the future.')
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11836
			      model:doNotShowHolder).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11837
	] do:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11838
	    Dialog information:'This is a standard information box.\(but has an additional check toggle in it)' withCRs.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11839
	].
6115
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11840
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11841
    Another application is to suppress dialogs, by returning #abort from the query
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11842
    (of course, in real life, the Dialog call is deeply nested below the handler and done elsewhere):
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11843
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11844
	Dialog aboutToOpenBoxNotificationSignal
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11845
	    answer:#abort
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11846
	    do:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11847
		Dialog information:'This box is not shown.'
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11848
	    ].
6115
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11849
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11850
    or to automatically answer all dialogs by simulating user entering a return:
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11851
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11852
	Dialog aboutToOpenBoxNotificationSignal
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11853
	    handle:[:ex |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11854
		ex box windowGroup sensor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11855
		    pushEvent:
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11856
			(WindowEvent
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11857
				keyPress:#Return
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11858
				rawKey:#Return
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11859
				hasShift:false ctrl:false alt:false meta:false
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11860
				button1:false button2:false button3:false
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11861
				x:1 y:1 view:ex box).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11862
	    ] do:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11863
		Transcript showCR:(Dialog confirm:'Please confirm.')
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11864
	    ].
6115
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11865
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11866
    or an escape:
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11867
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11868
	Dialog aboutToOpenBoxNotificationSignal
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11869
	    handle:[:ex |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11870
		ex box windowGroup sensor
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11871
		    pushEvent:
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11872
			(WindowEvent
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11873
				keyPress:#Escape
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11874
				rawKey:#Escape
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11875
				hasShift:false ctrl:false alt:false meta:false
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11876
				button1:false button2:false button3:false
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11877
				x:1 y:1 view:ex box).
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11878
	    ] do:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11879
		Transcript showCR:(Dialog confirm:'Please confirm.')
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11880
	    ].
6115
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11881
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11882
    Finally, a recorder may want to keep track of which dialogs have been opened:
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11883
    (of course, again, the Dialog calls are deeply nested below the handler and done elsewhere):
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11884
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11885
	Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11886
	    Transcript showCR:ex box topView label
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11887
	] do:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11888
	    Dialog information:'box #1.'.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11889
	    Dialog information:'box #2.'.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11890
	    Dialog confirm:'bla'.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11891
	].
6115
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11892
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11893
"
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11894
! !
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11895
5340
45fd6e8b756d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5296
diff changeset
 11896
!SimpleView::AboutToOpenBoxNotificationSignal methodsFor:'accessing'!
45fd6e8b756d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5296
diff changeset
 11897
6074
7e2bd99101d5 Added SimpleView::SboutToOpenBoxNotificationSignal>>application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6072
diff changeset
 11898
application
6115
7b0730adc987 aboutToOpenBoxNotificationSignal semantic change (for Jan)
Claus Gittinger <cg@exept.de>
parents: 6114
diff changeset
 11899
    ^ self box application
6074
7e2bd99101d5 Added SimpleView::SboutToOpenBoxNotificationSignal>>application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6072
diff changeset
 11900
7e2bd99101d5 Added SimpleView::SboutToOpenBoxNotificationSignal>>application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6072
diff changeset
 11901
    "Created: / 03-06-2013 / 17:33:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7e2bd99101d5 Added SimpleView::SboutToOpenBoxNotificationSignal>>application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6072
diff changeset
 11902
!
7e2bd99101d5 Added SimpleView::SboutToOpenBoxNotificationSignal>>application
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6072
diff changeset
 11903
5770
Claus Gittinger <cg@exept.de>
parents: 5749
diff changeset
 11904
box
Claus Gittinger <cg@exept.de>
parents: 5749
diff changeset
 11905
    ^ parameter
Claus Gittinger <cg@exept.de>
parents: 5749
diff changeset
 11906
Claus Gittinger <cg@exept.de>
parents: 5749
diff changeset
 11907
    "Created: / 30-06-2011 / 19:24:02 / cg"
Claus Gittinger <cg@exept.de>
parents: 5749
diff changeset
 11908
!
Claus Gittinger <cg@exept.de>
parents: 5749
diff changeset
 11909
5340
45fd6e8b756d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5296
diff changeset
 11910
dialogBeingOpened
45fd6e8b756d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5296
diff changeset
 11911
    ^ parameter
45fd6e8b756d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5296
diff changeset
 11912
! !
45fd6e8b756d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5296
diff changeset
 11913
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
 11914
!SimpleView::ViewShape methodsFor:'queries'!
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
 11915
3366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11916
isRoundShape
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11917
    ^ false
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11918
! !
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
 11919
7127
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
 11920
!SimpleView::BoxClosedNotificationSignal class methodsFor:'documentation'!
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
 11921
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
 11922
documentation
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
 11923
"
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
 11924
    this is a hook notification, raised right after a dialog box has been closed.
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
 11925
    This allows for standard dialogs (such as confirmers, choosers or notifiers) to
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
 11926
    be wrapped by other programs.
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
 11927
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
 11928
    i.e. its typical use is like:
7617
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11929
	Dialog boxClosedNotificationSignal handle:[:ex |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11930
	    Transcript showCR:'box closed'
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11931
	] do:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11932
	    Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11933
		Transcript showCR:'box about to open'
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11934
	    ] do:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11935
		Dialog information:'This is a standard information box.'.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11936
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11937
	].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11938
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11939
	Dialog boxClosedNotificationSignal handle:[:ex |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11940
	    Transcript showCR:'box closed'
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11941
	] do:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11942
	    Dialog aboutToOpenBoxNotificationSignal handle:[:ex |
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11943
		Transcript showCR:'box about to open'
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11944
	    ] do:[
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11945
		Dialog confirm:'Yes or No.'.
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11946
	    ].
3bcc92c94b66 comments
Claus Gittinger <cg@exept.de>
parents: 7604
diff changeset
 11947
	].
7127
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
 11948
"
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
 11949
! !
adc098ec85e8 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7109
diff changeset
 11950
7144
f4e60dee88e3 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7132
diff changeset
 11951
!SimpleView::BoxClosedNotificationSignal methodsFor:'accessing'!
f4e60dee88e3 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7132
diff changeset
 11952
f4e60dee88e3 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7132
diff changeset
 11953
box
f4e60dee88e3 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7132
diff changeset
 11954
    ^ parameter
f4e60dee88e3 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7132
diff changeset
 11955
! !
f4e60dee88e3 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 7132
diff changeset
 11956
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
 11957
!SimpleView::RoundViewShape methodsFor:'queries'!
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
 11958
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
 11959
isRoundShape
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
 11960
    ^ true
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
 11961
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
 11962
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
 11963
! !
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
 11964
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
 11965
!SimpleView::ArbitraryViewShape methodsFor:'accessing'!
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
 11966
3366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11967
borderShapeForm
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11968
    "return the value of the instance variable 'borderShapeForm' (automatically generated)"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11969
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11970
    ^ borderShapeForm
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11971
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11972
    "Created: 18.9.1997 / 11:04:29 / cg"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11973
!
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11974
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11975
borderShapeForm:something
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11976
    "set the value of the instance variable 'borderShapeForm' (automatically generated)"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11977
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11978
    borderShapeForm := something.
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11979
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11980
    "Created: 18.9.1997 / 11:04:29 / cg"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11981
!
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11982
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11983
viewShapeForm
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11984
    "return the value of the instance variable 'viewShapeForm' (automatically generated)"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11985
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11986
    ^ viewShapeForm
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11987
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11988
    "Created: 18.9.1997 / 11:04:29 / cg"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11989
!
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11990
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11991
viewShapeForm:something
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11992
    "set the value of the instance variable 'viewShapeForm' (automatically generated)"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11993
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11994
    viewShapeForm := something.
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11995
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11996
    "Created: 18.9.1997 / 11:04:29 / cg"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
 11997
! !
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
 11998
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
 11999
!SimpleView class methodsFor:'documentation'!
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
 12000
5775
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
 12001
version
6880
f2af2640ad4d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6864
diff changeset
 12002
    ^ '$Header$'
5775
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
 12003
!
Claus Gittinger <cg@exept.de>
parents: 5774
diff changeset
 12004
5354
4a62930c1786 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
 12005
version_CVS
6880
f2af2640ad4d class: SimpleView
Claus Gittinger <cg@exept.de>
parents: 6864
diff changeset
 12006
    ^ '$Header$'
6819
f91377f97414 Merged 1e33b4eeb725 and ee648b604f67 (branch default)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 6800 6798
diff changeset
 12007
7254
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 12008
!
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 12009
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 12010
version_HG
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 12011
dd5c3a4a295a Added SimpleView>>waitUntilEventsProcessed
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 7253
diff changeset
 12012
    ^ '$Changeset: <not expanded> $'
135
claus
parents:
diff changeset
 12013
! !
3745
8456462f2ac0 code beautifaction
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
 12014
6050
6d4531c62a46 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 5978
diff changeset
 12015
135
claus
parents:
diff changeset
 12016
SimpleView initialize!