SimpleView.st
author penk
Thu, 03 Apr 2003 16:52:59 +0200
changeset 3837 544e5190f505
parent 3830 d421b20c5d93
child 3838 7a459c5888c8
permissions -rw-r--r--
no longer automagically set aBuilders window, if a canvas is built into a subView using the masterApps builder. IF YOU THINK THAT SHOULD BE CHANGED BACK, ask christian or cg. (we think it should be changed in the caller of this code.)
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
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
     3
	      All Rights Reserved
135
claus
parents:
diff changeset
     4
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
claus
parents:
diff changeset
    10
 hereby transferred.
claus
parents:
diff changeset
    11
"
claus
parents:
diff changeset
    12
3196
43d42e7c388a MUST invoke #postBuildWith: / #postBuildAsSubcanvasWith:,
tm
parents: 3191
diff changeset
    13
"{ Package: 'stx:libview' }"
43d42e7c388a MUST invoke #postBuildWith: / #postBuildAsSubcanvasWith:,
tm
parents: 3191
diff changeset
    14
727
bf23a306b6f2 renamed PseudoView to DisplaySurface
Claus Gittinger <cg@exept.de>
parents: 724
diff changeset
    15
DisplaySurface subclass:#SimpleView
3055
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    16
	instanceVariableNames:'superView subViews components styleSheet resources borderColor
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
    17
		borderWidth viewShape top left flagBits relativeOrigin
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
    18
		relativeExtent relativeCorner originRule extentRule cornerRule
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
    19
		insets layout shown hiddenOnRealize name level margin
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
    20
		innerClipRect shadowColor lightColor bitGravity viewGravity
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
    21
		controller windowGroup preferredExtent explicitExtent dependents
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
    22
		layoutManager visibilityChannel'
3055
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    23
	classVariableNames:'Grey CentPoint ViewSpacing DefaultStyle StyleSheet
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    24
		DefaultViewBackgroundColor DefaultBorderColor DefaultLightColor
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    25
		DefaultShadowColor DefaultBorderWidth DefaultFocusColor
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
    26
		DefaultFocusBorderWidth ReturnFocusWhenClosingModalBoxes
3394
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
    27
		FlagOriginChanged FlagExtentChanged FlagCornerChanged
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
    28
		FlagExtentChangedBeforeCreated FlagCanTab
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
    29
		FlagRequestFocusOnPointerEnter
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
    30
		FlagDoNotRequestFocusOnPointerEnter'
3055
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    31
	poolDictionaries:''
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    32
	category:'Views-Basic'
135
claus
parents:
diff changeset
    33
!
claus
parents:
diff changeset
    34
452
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
    35
SimpleView class instanceVariableNames:'ClassResources DefaultFont'
734
1a778cedbbf5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 729
diff changeset
    36
1a778cedbbf5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 729
diff changeset
    37
"
3164
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
    38
 No other class instance variables are inherited by this class.
734
1a778cedbbf5 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 729
diff changeset
    39
"
140
claus
parents: 138
diff changeset
    40
!
135
claus
parents:
diff changeset
    41
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    42
Object subclass:#ViewShape
3055
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    43
	instanceVariableNames:''
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    44
	classVariableNames:''
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    45
	poolDictionaries:''
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    46
	privateIn:SimpleView
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    47
!
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    48
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
    49
SimpleView::ViewShape subclass:#RoundViewShape
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
    50
	instanceVariableNames:''
3055
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    51
	classVariableNames:''
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    52
	poolDictionaries:''
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    53
	privateIn:SimpleView
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
    54
!
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
    55
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
    56
SimpleView::ViewShape subclass:#ArbitraryViewShape
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
    57
	instanceVariableNames:'viewShapeForm borderShapeForm'
3055
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    58
	classVariableNames:''
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    59
	poolDictionaries:''
3a001a72cb9b try my bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 3010
diff changeset
    60
	privateIn:SimpleView
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    61
!
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
    62
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
    63
!SimpleView class methodsFor:'documentation'!
135
claus
parents:
diff changeset
    64
claus
parents:
diff changeset
    65
copyright
claus
parents:
diff changeset
    66
"
claus
parents:
diff changeset
    67
 COPYRIGHT (c) 1989 by Claus Gittinger
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
    68
	      All Rights Reserved
135
claus
parents:
diff changeset
    69
claus
parents:
diff changeset
    70
 This software is furnished under a license and may be used
claus
parents:
diff changeset
    71
 only in accordance with the terms of that license and with the
claus
parents:
diff changeset
    72
 inclusion of the above copyright notice.   This software may not
claus
parents:
diff changeset
    73
 be provided or otherwise made available to, or used by, any
claus
parents:
diff changeset
    74
 other person.  No title to or ownership of the software is
claus
parents:
diff changeset
    75
 hereby transferred.
claus
parents:
diff changeset
    76
"
claus
parents:
diff changeset
    77
!
claus
parents:
diff changeset
    78
claus
parents:
diff changeset
    79
documentation
claus
parents:
diff changeset
    80
"
claus
parents:
diff changeset
    81
    this class implements functions common to all Views which do not work on / show a model. 
claus
parents:
diff changeset
    82
    Previously, all of this functionality used to be in the old View class, but has been
claus
parents:
diff changeset
    83
    separated into this new SimpleView (which does not know about models) and the new View, which
claus
parents:
diff changeset
    84
    does so.
484
7c8dd17a160e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 483
diff changeset
    85
    I'd prefer to call this class View and the current View class a ModelView,
7c8dd17a160e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 483
diff changeset
    86
    but for backward compatibility its better to leave things the way they are
7c8dd17a160e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 483
diff changeset
    87
    (there are simply too many subclasses of View around ...).
7c8dd17a160e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 483
diff changeset
    88
135
claus
parents:
diff changeset
    89
    Instances of SimpleView are seldom used, most views in the system inherit 
claus
parents:
diff changeset
    90
    from this class. 
claus
parents:
diff changeset
    91
    However, sometimes a view is used to create a dummy view for framing 
claus
parents:
diff changeset
    92
    or layout purposes.
claus
parents:
diff changeset
    93
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
    94
    [Instance variables:]
135
claus
parents:
diff changeset
    95
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
    96
	superView               <View>                  my superview i.e. the view I am in
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
    97
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
    98
	subViews                <Collection>            the collection of subviews
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
    99
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   100
	components              <Collection>            collection of gadgets (will be merged with subViews, soon)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   101
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   102
	borderColor             <Color>                 color of border
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   103
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   104
	borderWidth             <Number>                borderWidth in pixels (device dep.)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   105
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   106
	viewShape               <Form>                  shape of view & border (if device supports it)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   107
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   108
	top                     <Number>                actual top coordinate (pixels) in superview
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   109
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   110
	left                    <Number>                actual left coordinate (pixels) in superview
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   111
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   112
	extendChanged           <Boolean>               true if extend changed during setup
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   113
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   114
	originChanged           <Boolean>               true if origin changed during setup
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   115
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   116
	relativeOrigin          <Number>                relative origin in percent within superview
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   117
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   118
	relativeExtent          <Number>                relative extent in percent within superview
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   119
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   120
	relativeCorner          <Number>                relative corner in percent within superview
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   121
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   122
	originRule              <Block>                 rule to compute origin if superview changes size
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   123
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   124
	extentRule              <Block>                 rule to compute extent if superview changes size
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   125
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   126
	cornerRule              <Block>                 rule to compute corner if superview changes size
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   127
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   128
	insets                  <Array>                 array with top, left, bottom & right insets (or nil)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   129
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   130
	layout                  <LayoutObject>          not yet implemented - will replace the above layout
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   131
							variables.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   132
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   133
	shown                   <Boolean>               true if visible (false if iconified, unmapped or covered)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   134
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   135
	hiddenOnRealize         <Boolean>               dont show automatically when superview is realized
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   136
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   137
	name                    <String>                my name (future use for resources)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   138
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   139
	level                   <Number>                3D level relative to superview
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   140
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   141
	margin                  <Number>                convenient margin
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   142
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   143
	innerClipRect           <Rectangle>             convenient inner clip (minus margin)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   144
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   145
	shadowColor             <Color>                 color used to draw 3D shadowed edges
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   146
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   147
	lightColor              <Color>                 color used to draw 3D lighted edges
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   148
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   149
	bitGravity              <nil | Symbol>          gravity of contents (if device supports it)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   150
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   151
	viewGravity             <nil | Symbol>          gravity of view (if device supports it)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   153
	controller              <nil | Controller>      the controller (if any)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   154
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   155
	windowGroup             <WindowGroup>           the windowGroup
484
7c8dd17a160e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 483
diff changeset
   156
135
claus
parents:
diff changeset
   157
claus
parents:
diff changeset
   158
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   159
    [Class variables:]
135
claus
parents:
diff changeset
   160
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   161
	Grey                    <Color>                 the color grey - its used so often
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   162
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   163
	ViewSpacing             <Number>                preferred spacing between views; 1mm
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   164
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   165
	CentPoint               <Point>                 100 @ 100 - its used so often
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   166
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   167
	StyleSheet              <ResourcePack>          contains all view-style specifics
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   168
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   169
	ReturnFocusWhenClosingModalBoxes                if true, a closing modalBox returns
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   170
				<Boolean>               the keyboard focus to the view which was
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   171
							active when the box was opened.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   172
							If false (the default), it is left to
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   173
							window manager to assign a new focus.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   174
							If running on olwm/olvwm (which requires an
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   175
							explicit click to reassign a focus), it is
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   176
							better to turn this on in a private.rc file.
135
claus
parents:
diff changeset
   177
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   178
    [styleSheet parameters:]
135
claus
parents:
diff changeset
   179
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   180
	popupShadow             <Boolean>               if true, popupViews show a shadow below
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   181
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   182
	popupLevel              <nil | Integer>         3D level
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   183
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   184
	borderWidth             <nil | Integer>         borderWidth (ignored in 3D styles)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   185
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   186
	borderColor             <nil | Color>           borderColor (ignored in 3D styles)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   187
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   188
	viewBackground          <nil | Color>           views background
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   189
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   190
	shadowColor             <nil | Color>           color for shadow edges (ignored in 2D styles)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   191
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   192
	lightColor              <nil | Color>           color for light edges (ignored in 2D styles)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   193
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   194
	font                    <nil | Font>            font to use
135
claus
parents:
diff changeset
   195
claus
parents:
diff changeset
   196
claus
parents:
diff changeset
   197
    TODO:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   198
	get rid of relativeOrigin, relativeCorner, originRule, extentRule,
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   199
	and insets; replace by a single object which defines the size
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   200
	(mhmh - ST-80 seems to call this LayoutFrame ?)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   201
	-> be prepared for a change here in the near future and ONLY use
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   202
	   access methods to get those instance variables' values
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   203
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   204
	get rid of 3D level & margin, move it to extra wrappers
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   205
	(although this will make view setup more complicated, it will remove
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   206
	 complexity from the internals of view. Also, it will allow for more
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   207
	 varieties of borders.)
151
claus
parents: 145
diff changeset
   208
        
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   209
	add components (could also call them gadgets or lightweight views)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   210
	- views are expensive in terms of X resources. This would make all
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   211
	framing/edge and panel helper views become cheap ST objects, instead
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   212
	of views.
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   213
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   214
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   215
    [see also:]
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   216
	StandardSystemView DialogBox
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   217
	WindowGroup WindowEvent
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   218
	Layout
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   219
	( introduction to view programming :html: programming/viewintro.html )
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   220
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   221
    [author:]
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   222
	Claus Gittinger
135
claus
parents:
diff changeset
   223
"
151
claus
parents: 145
diff changeset
   224
!
claus
parents: 145
diff changeset
   225
claus
parents: 145
diff changeset
   226
examples 
claus
parents: 145
diff changeset
   227
"
claus
parents: 145
diff changeset
   228
    (all examples below use different viewBackgrounds, 
claus
parents: 145
diff changeset
   229
     to make the individual subviews visible)
claus
parents: 145
diff changeset
   230
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   231
    a subView in a topView:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   232
									[exBegin]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   233
	|top v|
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   234
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   235
	top := StandardSystemView new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   236
	v := View new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   237
	v origin:0.25 @ 0.25 corner:0.75 @ 0.75.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   238
	top addSubView:v.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   239
	top open
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   240
									[exEnd]
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   241
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   242
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   243
    the same, a bit more compact:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   244
									[exBegin]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   245
	|top v|
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   246
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   247
	top := StandardSystemView new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   248
	v := View origin:0.25 @ 0.25 corner:0.75 @ 0.75 in:top.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   249
	top open
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   250
									[exEnd]
616
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   251
56cf67c82664 documentation
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   252
151
claus
parents: 145
diff changeset
   253
    fixed position/size:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   254
									[exBegin]
151
claus
parents: 145
diff changeset
   255
       |top v1 v2|
claus
parents: 145
diff changeset
   256
claus
parents: 145
diff changeset
   257
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   258
       top extent:300@300.
claus
parents: 145
diff changeset
   259
claus
parents: 145
diff changeset
   260
       v1 := View origin:10@10
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   261
		  corner:50@50
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   262
		      in:top.
151
claus
parents: 145
diff changeset
   263
       v2 := View origin:60@10
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   264
		  corner:150@100
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   265
		      in:top.
151
claus
parents: 145
diff changeset
   266
claus
parents: 145
diff changeset
   267
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   268
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   269
claus
parents: 145
diff changeset
   270
       top open
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   271
									[exEnd]
151
claus
parents: 145
diff changeset
   272
claus
parents: 145
diff changeset
   273
    same, using ST-80 way of bulding up view hierarchies
claus
parents: 145
diff changeset
   274
    (recommended, if you plan to port applications later)
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   275
									[exBegin]
151
claus
parents: 145
diff changeset
   276
       |top v1 v2|
claus
parents: 145
diff changeset
   277
claus
parents: 145
diff changeset
   278
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   279
       top extent:300@300.
claus
parents: 145
diff changeset
   280
claus
parents: 145
diff changeset
   281
       v1 := View new.
claus
parents: 145
diff changeset
   282
       v1 origin:10@10 corner:50@50.
claus
parents: 145
diff changeset
   283
claus
parents: 145
diff changeset
   284
       v2 := View new.
claus
parents: 145
diff changeset
   285
       v2 origin:60@10 corner:150@100.
claus
parents: 145
diff changeset
   286
claus
parents: 145
diff changeset
   287
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   288
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   289
claus
parents: 145
diff changeset
   290
       top add:v1.
claus
parents: 145
diff changeset
   291
       top add:v2.
claus
parents: 145
diff changeset
   292
claus
parents: 145
diff changeset
   293
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   294
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   295
claus
parents: 145
diff changeset
   296
       top open
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   297
									[exEnd]
151
claus
parents: 145
diff changeset
   298
claus
parents: 145
diff changeset
   299
    fixed origin, variable size:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   300
									[exBegin]
151
claus
parents: 145
diff changeset
   301
       |top v1 v2|
claus
parents: 145
diff changeset
   302
claus
parents: 145
diff changeset
   303
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   304
       top extent:300@300.
claus
parents: 145
diff changeset
   305
claus
parents: 145
diff changeset
   306
       v1 := View new.
claus
parents: 145
diff changeset
   307
       v1 origin:10@10 corner:50@0.5.
claus
parents: 145
diff changeset
   308
claus
parents: 145
diff changeset
   309
       v2 := View new.
claus
parents: 145
diff changeset
   310
       v2 origin:60@10 corner:150@0.5.
claus
parents: 145
diff changeset
   311
claus
parents: 145
diff changeset
   312
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   313
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   314
claus
parents: 145
diff changeset
   315
       top add:v1.
claus
parents: 145
diff changeset
   316
       top add:v2.
claus
parents: 145
diff changeset
   317
claus
parents: 145
diff changeset
   318
       top open
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   319
									[exEnd]
151
claus
parents: 145
diff changeset
   320
claus
parents: 145
diff changeset
   321
    fixed origin, variable size, 
claus
parents: 145
diff changeset
   322
    bottomInset for constant distance from bottom:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   323
									[exBegin]
151
claus
parents: 145
diff changeset
   324
       |top v1 v2|
claus
parents: 145
diff changeset
   325
claus
parents: 145
diff changeset
   326
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   327
       top extent:300@300.
claus
parents: 145
diff changeset
   328
claus
parents: 145
diff changeset
   329
       v1 := View new.
claus
parents: 145
diff changeset
   330
       v1 origin:10@10 corner:50@1.0.
claus
parents: 145
diff changeset
   331
       v1 bottomInset:10.
claus
parents: 145
diff changeset
   332
claus
parents: 145
diff changeset
   333
       v2 := View new.
claus
parents: 145
diff changeset
   334
       v2 origin:60@10 corner:150@1.0.
claus
parents: 145
diff changeset
   335
       v2 bottomInset:10.
claus
parents: 145
diff changeset
   336
claus
parents: 145
diff changeset
   337
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   338
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   339
claus
parents: 145
diff changeset
   340
       top add:v1.
claus
parents: 145
diff changeset
   341
       top add:v2.
claus
parents: 145
diff changeset
   342
claus
parents: 145
diff changeset
   343
       top open
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   344
									[exEnd]
151
claus
parents: 145
diff changeset
   345
claus
parents: 145
diff changeset
   346
    variable origin, variable size, 
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   347
									[exBegin]
151
claus
parents: 145
diff changeset
   348
       |top v1 v2|
claus
parents: 145
diff changeset
   349
claus
parents: 145
diff changeset
   350
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   351
       top extent:300@300.
claus
parents: 145
diff changeset
   352
claus
parents: 145
diff changeset
   353
       v1 := View new.
claus
parents: 145
diff changeset
   354
       v1 origin:0.0@0.0 corner:0.5@0.5.
claus
parents: 145
diff changeset
   355
claus
parents: 145
diff changeset
   356
       v2 := View new.
claus
parents: 145
diff changeset
   357
       v2 origin:0.5@0.0 corner:1.0@0.5.
claus
parents: 145
diff changeset
   358
claus
parents: 145
diff changeset
   359
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   360
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   361
claus
parents: 145
diff changeset
   362
       top add:v1.
claus
parents: 145
diff changeset
   363
       top add:v2.
claus
parents: 145
diff changeset
   364
claus
parents: 145
diff changeset
   365
       top open
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   366
									[exEnd]
151
claus
parents: 145
diff changeset
   367
claus
parents: 145
diff changeset
   368
    variable origin, variable size, 
claus
parents: 145
diff changeset
   369
    insets for some constant distance
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   370
									[exBegin]
151
claus
parents: 145
diff changeset
   371
       |top v1 v2|
claus
parents: 145
diff changeset
   372
claus
parents: 145
diff changeset
   373
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   374
       top extent:300@300.
claus
parents: 145
diff changeset
   375
claus
parents: 145
diff changeset
   376
       v1 := View new.
claus
parents: 145
diff changeset
   377
       v1 origin:0.0@0.0 corner:0.5@0.5.
claus
parents: 145
diff changeset
   378
       v1 rightInset:5.
claus
parents: 145
diff changeset
   379
claus
parents: 145
diff changeset
   380
       v2 := View new.
claus
parents: 145
diff changeset
   381
       v2 origin:0.5@0.0 corner:1.0@0.5.
claus
parents: 145
diff changeset
   382
       v2 leftInset:5.
claus
parents: 145
diff changeset
   383
claus
parents: 145
diff changeset
   384
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   385
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   386
claus
parents: 145
diff changeset
   387
       top add:v1.
claus
parents: 145
diff changeset
   388
       top add:v2.
claus
parents: 145
diff changeset
   389
claus
parents: 145
diff changeset
   390
       top open
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   391
									[exEnd]
151
claus
parents: 145
diff changeset
   392
claus
parents: 145
diff changeset
   393
    using layout objects (ST-80 style):
claus
parents: 145
diff changeset
   394
    fully specifying the frame
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   395
									[exBegin]
151
claus
parents: 145
diff changeset
   396
       |top v1 v2|
claus
parents: 145
diff changeset
   397
claus
parents: 145
diff changeset
   398
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   399
       top extent:300@300.
claus
parents: 145
diff changeset
   400
claus
parents: 145
diff changeset
   401
       v1 := View new.
claus
parents: 145
diff changeset
   402
       v2 := View new.
claus
parents: 145
diff changeset
   403
claus
parents: 145
diff changeset
   404
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   405
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   406
claus
parents: 145
diff changeset
   407
       top add:v1 in:(LayoutFrame new
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   408
			leftFraction:0.25;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   409
			rightFraction:0.75;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   410
			topFraction:0.0;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   411
			bottomFraction:0.5).
151
claus
parents: 145
diff changeset
   412
       top add:v2 in:(LayoutFrame new
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   413
			leftFraction:0.5;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   414
			rightFraction:1.0;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   415
			topFraction:0.5;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   416
			bottomFraction:0.75).
151
claus
parents: 145
diff changeset
   417
claus
parents: 145
diff changeset
   418
       top open
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   419
									[exEnd]
151
claus
parents: 145
diff changeset
   420
claus
parents: 145
diff changeset
   421
    another one, with offsets:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   422
									[exBegin]
151
claus
parents: 145
diff changeset
   423
       |top v1 v2|
claus
parents: 145
diff changeset
   424
claus
parents: 145
diff changeset
   425
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   426
       top extent:300@300.
claus
parents: 145
diff changeset
   427
claus
parents: 145
diff changeset
   428
       v1 := View new.
claus
parents: 145
diff changeset
   429
       v2 := View new.
claus
parents: 145
diff changeset
   430
claus
parents: 145
diff changeset
   431
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   432
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   433
claus
parents: 145
diff changeset
   434
       top add:v1 in:(LayoutFrame new
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   435
			leftFraction:0.0 offset:10;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   436
			rightFraction:1.0 offset:-10;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   437
			topFraction:0.0 offset:10;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   438
			bottomFraction:0.5).
151
claus
parents: 145
diff changeset
   439
       top add:v2 in:(LayoutFrame new
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   440
			leftFraction:0.0 offset:30;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   441
			rightFraction:1.0 offset:-30;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   442
			topFraction:0.5 offset:10;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   443
			bottomFraction:0.75).
151
claus
parents: 145
diff changeset
   444
claus
parents: 145
diff changeset
   445
       top open
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   446
									[exEnd]
151
claus
parents: 145
diff changeset
   447
claus
parents: 145
diff changeset
   448
    specifying origin only. Extent is views preferred
claus
parents: 145
diff changeset
   449
    (notice, that plain views have some defaultExtent of 100@100)
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   450
									[exBegin]
151
claus
parents: 145
diff changeset
   451
       |top v1 v2|
claus
parents: 145
diff changeset
   452
claus
parents: 145
diff changeset
   453
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   454
       top extent:300@300.
claus
parents: 145
diff changeset
   455
claus
parents: 145
diff changeset
   456
       v1 := View new.
claus
parents: 145
diff changeset
   457
       v2 := View new.
claus
parents: 145
diff changeset
   458
claus
parents: 145
diff changeset
   459
       v1 viewBackground:(Color red).
claus
parents: 145
diff changeset
   460
       v2 viewBackground:(Color yellow).
claus
parents: 145
diff changeset
   461
claus
parents: 145
diff changeset
   462
       top add:v1 in:(LayoutOrigin new
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   463
			leftFraction:0.25;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   464
			topFraction:0.0).
151
claus
parents: 145
diff changeset
   465
       top add:v2 in:(LayoutOrigin new
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   466
			leftFraction:0.5;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   467
			topFraction:0.5).
151
claus
parents: 145
diff changeset
   468
claus
parents: 145
diff changeset
   469
       top open
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   470
									[exEnd]
151
claus
parents: 145
diff changeset
   471
claus
parents: 145
diff changeset
   472
    same example, using buttons which compute their preferredBounds:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   473
									[exBegin]
151
claus
parents: 145
diff changeset
   474
       |top v1 v2|
claus
parents: 145
diff changeset
   475
claus
parents: 145
diff changeset
   476
       top := StandardSystemView new.
claus
parents: 145
diff changeset
   477
       top extent:300@300.
claus
parents: 145
diff changeset
   478
claus
parents: 145
diff changeset
   479
       v1 := Button label:'foo'.
claus
parents: 145
diff changeset
   480
       v2 := Button label:'a very long buttonLabel'.
claus
parents: 145
diff changeset
   481
claus
parents: 145
diff changeset
   482
       v1 backgroundColor:(Color red).
claus
parents: 145
diff changeset
   483
       v2 backgroundColor:(Color yellow).
claus
parents: 145
diff changeset
   484
claus
parents: 145
diff changeset
   485
       top add:v1 in:(LayoutOrigin new
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   486
			leftFraction:0.25;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   487
			topFraction:0.0).
151
claus
parents: 145
diff changeset
   488
       top add:v2 in:(LayoutOrigin new
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   489
			leftFraction:0.5;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   490
			topFraction:0.5).
151
claus
parents: 145
diff changeset
   491
claus
parents: 145
diff changeset
   492
       top open
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   493
									[exEnd]
151
claus
parents: 145
diff changeset
   494
"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   495
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   496
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   497
layoutComputation 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   498
"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   499
    Due to historic reasons, there are 2 mechanisms to resize a view:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   500
	- (old, to be eliminated mechanism)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   501
	    based upon info found in 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   502
		relativeOrigin / relativeCorner / relativeExtent
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   503
		originRule / cornerRule / extentRule
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   504
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   505
	- (new, will migrate to that one)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   506
	    letting a layoutObject compute things
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   507
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   508
    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
   509
    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
   510
    geometry is desired.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   511
    However, having 6 instance variables in every view creates some overhead,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   512
    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
   513
    relative-sized).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   514
    Therefore (and also to make porting of ST-80 apps easier), ST/X will migrate 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   515
    to use layoutObjects.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   516
    You will not see a difference at the views protocol level, since
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   517
    existing interfaces will (silently) create layoutObjects as appropriate.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   518
    However, you should remove all direct accesses to the above mentioned
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   519
    instance variables, to be prepared for that change.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   520
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   521
    Notice, that a view recomputes its size whenever its superview
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   522
    changes size. This is done via:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   523
	sizeChanged
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   524
	    -> allSubviews: superViewChangedSize
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   525
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   526
    If the geometry computation as performed in superViewChangedSize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   527
    is not powerful enough for your application, you can either:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   528
	- redefine superViewChangedSize
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   529
	- create a special layoutObject which computes a new layout.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   530
"
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   531
!
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   532
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   533
popupMenus 
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   534
"
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   535
    Due to historic reasons, there are multiple mechanisms for popupMenu 
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   536
    definition:
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   537
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   538
	- static menus
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   539
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   540
	- dynamic menus from the view
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   541
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   542
	- dynamic menus from the model / menuHolder
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   543
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   544
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   545
    static menus
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   546
    ------------
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   547
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   548
    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
   549
    has a constant menu which never changes.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   550
    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
   551
    The menu is defined with:
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   552
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   553
	someView middleButtonMenu:<aPopUpMenu>
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   554
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   555
    Compatibility note: 
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   556
	static menus should no longer be used - their operation
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   557
	is incompatible with ST-80 and ST/X's dynamic menus.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   558
	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
   559
    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
   560
    (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
   561
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   562
    example:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   563
	|top v1 v2|
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   564
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   565
	top := StandardSystemView new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   566
	top extent:300@300.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   567
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   568
	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
   569
	v1 viewBackground:Color red.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   570
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   571
	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
   572
	v2 viewBackground:Color yellow.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   573
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   574
	v1 middleButtonMenu:(
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   575
				PopUpMenu 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   576
				   labels:#('foo' 'bar')
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   577
				   selectors:#(foo bar)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   578
				   receiver:v1
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   579
			    ).
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   580
                                        
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   581
	top open.
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   582
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   583
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   584
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   585
    dynamic menus
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   586
    -------------
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   587
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   588
    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
   589
    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
   590
    (i.e. it may be different from the model).
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   591
    If the model shall provide the menu, set the views menuMessage to a selector
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   592
    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
   593
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   594
    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
   595
    set - in this case, that one provides the menu; not the model.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   596
    Dont get confused by the fact that menuHolders are only supported
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   597
    by textViews.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   598
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   599
    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
   600
    Notice, that all menu messages are sent to the view (because no model was set)
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   601
    - so the textView still performs the copy-function correctly 
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   602
    (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
   603
    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
   604
    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
   605
    (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
   606
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   607
	|top v1 v2 holder|
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   608
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   609
	holder := Plug new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   610
	holder respondTo:#menu1
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   611
		    with:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   612
			    v1 menuMessage:#otherMenu1.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   613
			    PopUpMenu 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   614
				labels:#('foo' 'bar')
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   615
				selectors:#(foo bar).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   616
			 ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   617
	holder respondTo:#otherMenu1
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   618
		    with:[  
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   619
			    v1 menuMessage:#menu1.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   620
			    PopUpMenu 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   621
				labels:#('other foo' 'other bar')
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   622
				selectors:#(foo bar).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   623
			 ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   624
	holder respondTo:#menu2
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   625
		    with:[  PopUpMenu 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   626
				labels:#('copy' 'bar2')
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   627
				selectors:#(copySelection bar2)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   628
			 ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   629
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   630
	top := StandardSystemView new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   631
	top extent:300@300.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   632
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   633
	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
   634
	v1 viewBackground:Color red.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   635
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   636
	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
   637
	v2 contents:'pop me up'.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   638
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   639
	v1 model:holder; menuMessage:#menu1.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   640
	v2 menuHolder:holder; menuMessage:#menu2.
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
	top open.
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
    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
   645
    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
   646
    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
   647
    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
   648
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   649
    example:
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   650
    (Notice: the executor understands the #copySelection message - therefore, the
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   651
     views built-in copy is NOT performed 
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   652
     - it could be forwarded to the view, though.
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   653
     This could be useful to intercept/filter things).
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   654
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   655
	|top v menuProvider menuExecutor |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   656
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   657
	menuProvider := Plug new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   658
	menuProvider respondTo:#menu
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   659
		    with:[  PopUpMenu 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   660
				labels:#('copy' 'foo')
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   661
				selectors:#(copySelection foo)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   662
			 ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   663
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   664
	menuExecutor := Plug new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   665
	menuExecutor respondTo:#copySelection 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   666
			   with:[Transcript showCR:'copy function'].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   667
	menuExecutor respondTo:#foo 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   668
			   with:[Transcript showCR:'foo function'].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   669
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   670
	top := StandardSystemView new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   671
	top extent:300@300.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   672
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   673
	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
   674
	v contents:'pop me up'.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   675
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   676
	v menuHolder:menuProvider; menuMessage:#menu.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   677
	v menuPerformer:menuExecutor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   678
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   679
	top open.
522
1b041037c1ee added docu on popUpMenu execution
Claus Gittinger <cg@exept.de>
parents: 520
diff changeset
   680
"
135
claus
parents:
diff changeset
   681
! !
claus
parents:
diff changeset
   682
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
   683
!SimpleView class methodsFor:'initialization'!
135
claus
parents:
diff changeset
   684
claus
parents:
diff changeset
   685
initialize
claus
parents:
diff changeset
   686
    DefaultStyle isNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
   687
	Font initialize.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
   688
	Form initialize.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
   689
	Color initialize.
3378
0792856b9ce5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3377
diff changeset
   690
    ].
0792856b9ce5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3377
diff changeset
   691
    self == SimpleView ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
   692
	Smalltalk addDependent:self   "/ to get language changes
3378
0792856b9ce5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3377
diff changeset
   693
    ].
0792856b9ce5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3377
diff changeset
   694
365
347a478d8cf5 default returnFocus to false
Claus Gittinger <cg@exept.de>
parents: 364
diff changeset
   695
    ReturnFocusWhenClosingModalBoxes := false.
696
3719a063d0f0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 683
diff changeset
   696
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
   697
    FlagOriginChanged                   := 2r0000001.
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
   698
    FlagExtentChanged                   := 2r0000010.
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
   699
    FlagCornerChanged                   := 2r0000100.
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
   700
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
   701
    FlagCanTab                          := 2r0001000.
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
   702
    FlagExtentChangedBeforeCreated      := 2r0010000.
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
   703
    FlagRequestFocusOnPointerEnter      := 2r0100000.
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
   704
    FlagDoNotRequestFocusOnPointerEnter := 2r1000000.
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
   705
696
3719a063d0f0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 683
diff changeset
   706
    "Modified: 18.5.1996 / 16:56:28 / cg"
135
claus
parents:
diff changeset
   707
!
claus
parents:
diff changeset
   708
claus
parents:
diff changeset
   709
postAutoload
2994
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
   710
    (Screen notNil and:[Screen current notNil]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   711
	self updateStyleCache.
2985
62552b74e805 do not read styleSheet if Display is nil
Stefan Vogel <sv@exept.de>
parents: 2979
diff changeset
   712
    ]
135
claus
parents:
diff changeset
   713
! !
claus
parents:
diff changeset
   714
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
   715
!SimpleView class methodsFor:'instance creation'!
135
claus
parents:
diff changeset
   716
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   717
extent:extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   718
    "create a new view with given extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   719
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   720
    ^ self origin:nil extent:extent borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   721
		      font:nil label:nil in:nil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   722
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   723
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   724
extent:extent in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   725
    "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
   726
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   727
    ^ self origin:nil extent:extent borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   728
		      font:nil label:nil in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   729
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   730
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   731
extent:extent label:label
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   732
    "create a new view with given extent and label"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   733
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   734
    ^ self origin:nil extent:extent borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   735
		      font:nil label:label in:nil
135
claus
parents:
diff changeset
   736
!
claus
parents:
diff changeset
   737
claus
parents:
diff changeset
   738
in:aView
claus
parents:
diff changeset
   739
    "return a new view as a subview of aView.
claus
parents:
diff changeset
   740
     If aView is nil, it is left unspecified, in which superview
claus
parents:
diff changeset
   741
     the new view will be placed. The view can later be assigned
claus
parents:
diff changeset
   742
     by adding it to the superview via #addSubView:.
1918
a4042019bc8b no need to set the container twice in SimpleView class>>in:
Claus Gittinger <cg@exept.de>
parents: 1903
diff changeset
   743
     If its later realized and no superview has ever been set, 
a4042019bc8b no need to set the container twice in SimpleView class>>in:
Claus Gittinger <cg@exept.de>
parents: 1903
diff changeset
   744
     it will come up as a topview."
135
claus
parents:
diff changeset
   745
claus
parents:
diff changeset
   746
    |newView|
claus
parents:
diff changeset
   747
claus
parents:
diff changeset
   748
    newView := self basicNew.
claus
parents:
diff changeset
   749
    aView notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   750
	newView device:(aView graphicsDevice).
2302
9525834a6be7 manual bg-pixmap drawing on devices which do not support them (win32)
Claus Gittinger <cg@exept.de>
parents: 2294
diff changeset
   751
"/      newView container:aView.
135
claus
parents:
diff changeset
   752
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   753
	newView device:Screen current
135
claus
parents:
diff changeset
   754
    ].
claus
parents:
diff changeset
   755
    newView initialize.
claus
parents:
diff changeset
   756
    aView notNil ifTrue:[aView addSubView:newView].
claus
parents:
diff changeset
   757
    ^ newView
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
   758
743
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   759
    "Modified: 28.5.1996 / 20:24:58 / cg"
135
claus
parents:
diff changeset
   760
!
claus
parents:
diff changeset
   761
140
claus
parents: 138
diff changeset
   762
label:label
claus
parents: 138
diff changeset
   763
    "create a new view with given label"
135
claus
parents:
diff changeset
   764
claus
parents:
diff changeset
   765
    ^ self origin:nil extent:nil borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   766
		      font:nil label:label in:nil
140
claus
parents: 138
diff changeset
   767
!
claus
parents: 138
diff changeset
   768
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   769
label:label in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   770
    "create a new view as subview of aView with given label"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   771
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   772
    ^ self origin:nil extent:nil borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   773
		      font:nil label:label in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   774
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   775
1393
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   776
model:aModel
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   777
    "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
   778
     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
   779
     subclasses may."
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   780
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   781
    ^ self new model:aModel
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   782
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   783
    "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
   784
    "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
   785
!
0af63b69b416 moved class>>model from View to here.
Claus Gittinger <cg@exept.de>
parents: 1389
diff changeset
   786
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   787
on:aModel
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   788
    "create a new drawable on aModel"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   789
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   790
    "although this one does not know about models,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   791
     it can still send the model-assign message. This was done
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   792
     to catch obsolete calls to on:aDevice.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   793
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   794
    ^ self new model:aModel.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   795
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   796
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   797
onSameDeviceAs:anotherView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   798
    "create a view on the same device as anotherView.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   799
     Used with popUpMenus, which should be created on the device of
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   800
     its masterView."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   801
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   802
    |device|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   803
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   804
    anotherView notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   805
	device := anotherView graphicsDevice.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   806
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   807
	device := Screen current.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   808
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   809
    ^ self onDevice:device
743
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   810
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   811
    "Modified: 28.5.1996 / 20:25:05 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   812
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   813
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   814
origin:origin corner:corner 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   815
    "create a new view with given origin and extent"
135
claus
parents:
diff changeset
   816
140
claus
parents: 138
diff changeset
   817
    ^ self origin:origin corner:corner borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   818
			 font:nil label:nil in:nil
135
claus
parents:
diff changeset
   819
!
claus
parents:
diff changeset
   820
claus
parents:
diff changeset
   821
origin:anOrigin corner:aCorner borderWidth:bw font:aFont label:aLabel in:aView
claus
parents:
diff changeset
   822
    |newView|
claus
parents:
diff changeset
   823
claus
parents:
diff changeset
   824
    aView notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   825
	newView := self basicNew.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   826
	newView device:(aView graphicsDevice).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   827
	newView initialize.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   828
	aView addSubView:newView.
135
claus
parents:
diff changeset
   829
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   830
	newView := self onDevice:Screen current
135
claus
parents:
diff changeset
   831
    ].
claus
parents:
diff changeset
   832
    bw notNil ifTrue:[newView borderWidth:bw].
claus
parents:
diff changeset
   833
    anOrigin notNil ifTrue:[newView origin:anOrigin].
claus
parents:
diff changeset
   834
    aCorner notNil ifTrue:[newView corner:aCorner].
claus
parents:
diff changeset
   835
    aFont notNil ifTrue:[newView font:aFont].
claus
parents:
diff changeset
   836
    aLabel notNil ifTrue:[newView label:aLabel].
claus
parents:
diff changeset
   837
    ^ newView
743
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   838
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   839
    "Modified: 28.5.1996 / 20:25:15 / cg"
135
claus
parents:
diff changeset
   840
!
claus
parents:
diff changeset
   841
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   842
origin:origin corner:corner borderWidth:bw in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   843
    "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
   844
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   845
    ^ self origin:origin corner:corner borderWidth:bw
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   846
			 font:nil label:nil in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   847
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   848
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   849
origin:origin corner:corner in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   850
    "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
   851
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   852
    ^ self origin:origin corner:corner borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   853
			 font:nil label:nil in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   854
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   855
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   856
origin:origin extent:extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   857
    "create a new view with given origin and extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   858
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   859
    ^ self origin:origin extent:extent borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   860
			 font:nil label:nil in:nil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   861
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   862
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   863
origin:origin extent:extent borderWidth:bw
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   864
    "create a new view with given origin, extent and borderWidth"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   865
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   866
    ^ self origin:origin extent:extent borderWidth:bw
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   867
			 font:nil label:nil in:nil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   868
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   869
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   870
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
   871
    |newView|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   872
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   873
    aView notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   874
	newView := self basicNew.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   875
	newView device:(aView graphicsDevice).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   876
	newView initialize.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   877
	aView addSubView:newView.
140
claus
parents: 138
diff changeset
   878
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   879
	newView := self onDevice:Screen current
140
claus
parents: 138
diff changeset
   880
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   881
    bw notNil ifTrue:[newView borderWidth:bw].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   882
    anExtent notNil ifTrue:[newView extent:anExtent].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   883
    anOrigin notNil ifTrue:[newView origin:anOrigin].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   884
    aFont notNil ifTrue:[newView font:aFont].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   885
    aLabel notNil ifTrue:[newView label:aLabel].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   886
    ^ newView
743
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   887
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
   888
    "Modified: 28.5.1996 / 20:25:19 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   889
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   890
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   891
origin:origin extent:extent borderWidth:bw in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   892
    "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
   893
     and borderWidth"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   894
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   895
    ^ self origin:origin extent:extent borderWidth:bw
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   896
			 font:nil label:nil in:aView
269
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
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   899
origin:origin extent:extent font:aFont label:label
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   900
    ^ self origin:origin extent:extent borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   901
			 font:nil label:label in:nil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   902
!
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
origin:origin extent:extent font:aFont label:label in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   905
    ^ self origin:origin extent:extent borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   906
			 font:aFont label:label in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   907
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   908
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   909
origin:origin extent:extent in:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   910
    "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
   911
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   912
    ^ self origin:origin extent:extent borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   913
			 font:nil label:nil in:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   914
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   915
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   916
origin:origin extent:extent label:label
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   917
    "create a new view with given origin, extent and label"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   918
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   919
    ^ self origin:origin extent:extent borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   920
			 font:nil label:label in:nil
135
claus
parents:
diff changeset
   921
!
claus
parents:
diff changeset
   922
claus
parents:
diff changeset
   923
origin:anOrigin extent:anExtent
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   924
		label:aLabel icon:aForm
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   925
		minExtent:minExtent maxExtent:maxExtent
135
claus
parents:
diff changeset
   926
    |newView|
claus
parents:
diff changeset
   927
2994
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
   928
    newView := self onDevice:Screen current.
135
claus
parents:
diff changeset
   929
    anOrigin notNil ifTrue:[newView origin:anOrigin].
claus
parents:
diff changeset
   930
    anExtent notNil ifTrue:[newView extent:anExtent].
claus
parents:
diff changeset
   931
    aLabel notNil ifTrue:[newView label:aLabel].
claus
parents:
diff changeset
   932
    aForm notNil ifTrue:[newView icon:aForm].
claus
parents:
diff changeset
   933
    minExtent notNil ifTrue:[newView minExtent:minExtent].
claus
parents:
diff changeset
   934
    maxExtent notNil ifTrue:[newView maxExtent:maxExtent].
claus
parents:
diff changeset
   935
    ^ newView
claus
parents:
diff changeset
   936
!
claus
parents:
diff changeset
   937
140
claus
parents: 138
diff changeset
   938
origin:origin in:aView
claus
parents: 138
diff changeset
   939
    "create a new view as a subview of aView with given origin"
claus
parents: 138
diff changeset
   940
claus
parents: 138
diff changeset
   941
    ^ self origin:origin extent:nil borderWidth:nil
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   942
			 font:nil label:nil in:aView
135
claus
parents:
diff changeset
   943
! !
claus
parents:
diff changeset
   944
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
   945
!SimpleView class methodsFor:'change & update'!
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   946
867
7073ec7824f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 795
diff changeset
   947
update:something with:aParameter from:changedObject
3378
0792856b9ce5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3377
diff changeset
   948
    changedObject == Smalltalk ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
   949
	(something == #Language or:[something == LanguageTerritory]) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
   950
	    "flush resources on language changes"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
   951
	    self flushAllClassResources
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
   952
	]
135
claus
parents:
diff changeset
   953
    ]
867
7073ec7824f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 795
diff changeset
   954
7073ec7824f3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 795
diff changeset
   955
    "Created: 15.6.1996 / 15:23:04 / cg"
135
claus
parents:
diff changeset
   956
! !
claus
parents:
diff changeset
   957
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
   958
!SimpleView class methodsFor:'defaults'!
135
claus
parents:
diff changeset
   959
140
claus
parents: 138
diff changeset
   960
defaultExtent
586
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   961
    "return the default extent of my instances.
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   962
     The value returned here is usually ignored, and
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   963
     the value from preferredExtent taken instead."
140
claus
parents: 138
diff changeset
   964
claus
parents: 138
diff changeset
   965
    CentPoint isNil ifTrue:[CentPoint := 100 @ 100].
claus
parents: 138
diff changeset
   966
    ^ CentPoint
586
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   967
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   968
    "Modified: 22.4.1996 / 23:38:39 / cg"
140
claus
parents: 138
diff changeset
   969
!
claus
parents: 138
diff changeset
   970
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
   971
defaultFont
990
0585aee05fa2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 971
diff changeset
   972
    |f|
0585aee05fa2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 971
diff changeset
   973
452
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
   974
    DefaultFont notNil ifTrue:[^ DefaultFont].
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
   975
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
   976
    DefaultFont isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   977
	self == SimpleView ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   978
	    f := self superclass defaultFont.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   979
	] ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   980
	    f := super defaultFont
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   981
	].
452
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
   982
    ].
997
39d5d3a74853 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 990
diff changeset
   983
990
0585aee05fa2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 971
diff changeset
   984
    f notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   985
	DefaultFont := f.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   986
	f := f onDevice:(Screen current).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   987
	f notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   988
	    DefaultFont := f.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
   989
	]
990
0585aee05fa2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 971
diff changeset
   990
    ].
452
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
   991
    ^ DefaultFont
467
badc7ab65a2d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   992
badc7ab65a2d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 452
diff changeset
   993
    "Modified: 27.2.1996 / 02:20:54 / cg"
269
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
450
9eb6198de8f6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 433
diff changeset
   996
defaultFont:aFont
452
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
   997
    "set the default font used for drawing"
f38d70ba97a2 made DefaultFont a classINSTvariable
Claus Gittinger <cg@exept.de>
parents: 450
diff changeset
   998
997
39d5d3a74853 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 990
diff changeset
   999
    |f|
39d5d3a74853 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 990
diff changeset
  1000
527
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1001
    DefaultFont := aFont.
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1002
    aFont notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1003
	f := aFont onDevice:(Screen current).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1004
	f notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1005
	    DefaultFont := f.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1006
	]
527
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1007
    ]
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1008
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1009
    "Modified: 18.3.1996 / 12:56:20 / cg"
450
9eb6198de8f6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 433
diff changeset
  1010
!
9eb6198de8f6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 433
diff changeset
  1011
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1012
defaultStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1013
    "return the default view style"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1014
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1015
    ^ DefaultStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1016
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1017
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1018
     View defaultStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1019
    "
135
claus
parents:
diff changeset
  1020
!
claus
parents:
diff changeset
  1021
claus
parents:
diff changeset
  1022
defaultStyle:aStyle
claus
parents:
diff changeset
  1023
    "set the view style for new views"
claus
parents:
diff changeset
  1024
2985
62552b74e805 do not read styleSheet if Display is nil
Stefan Vogel <sv@exept.de>
parents: 2979
diff changeset
  1025
    DefaultStyle := aStyle.
2994
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
  1026
    (Screen notNil and:[Screen current notNil]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1027
	self readStyleSheetAndUpdateAllStyleCaches.
2985
62552b74e805 do not read styleSheet if Display is nil
Stefan Vogel <sv@exept.de>
parents: 2979
diff changeset
  1028
    ].
135
claus
parents:
diff changeset
  1029
claus
parents:
diff changeset
  1030
    "
claus
parents:
diff changeset
  1031
     View defaultStyle:#next. SystemBrowser start
claus
parents:
diff changeset
  1032
     View defaultStyle:#motif. SystemBrowser start
claus
parents:
diff changeset
  1033
     View defaultStyle:#iris. SystemBrowser start
claus
parents:
diff changeset
  1034
     View defaultStyle:#st80. SystemBrowser start
claus
parents:
diff changeset
  1035
     View defaultStyle:#normal. SystemBrowser start
claus
parents:
diff changeset
  1036
    "
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1037
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1038
    "Modified: / 15.9.1998 / 22:05:02 / cg"
135
claus
parents:
diff changeset
  1039
!
claus
parents:
diff changeset
  1040
1860
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1041
defaultViewBackgroundColor
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1042
    "return the default view background"
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1043
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1044
    ^ DefaultViewBackgroundColor
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1045
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1046
    "
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1047
     View defaultViewBackgroundColor 
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1048
    "
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1049
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1050
    "Modified: 13.8.1997 / 19:37:55 / cg"
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1051
!
95ce8aa47451 added access to DefaultViewBackgroundColor
Claus Gittinger <cg@exept.de>
parents: 1851
diff changeset
  1052
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1053
readStyleSheet
3181
35d4e8a2bebd comment
ps
parents: 3180
diff changeset
  1054
    "(re)load the styleSheet."
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1055
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1056
    DefaultStyle isNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1057
	self setDefaultStyle
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1058
    ].
3002
3b0951872ab4 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 2994
diff changeset
  1059
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1060
    StyleSheet := ViewStyle fromFile:(DefaultStyle , '.style').
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1061
    StyleSheet fileReadFailed ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1062
	('SimpleView [warning]: ***** no styleSheet for ' , DefaultStyle , '-style.') errorPrintCR.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1063
	DefaultStyle ~~ #normal ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1064
	    DefaultStyle := #normal.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1065
	    StyleSheet := ViewStyle fromFile:(DefaultStyle , '.style').
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1066
        
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1067
	    StyleSheet fileReadFailed ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1068
		'SimpleView [warning]: not even a styleSheet for normal-style (using defaults).' errorPrintCR.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1069
	    ]
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1070
	]
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1071
    ].
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1072
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1073
    "Created: / 15.9.1998 / 22:03:06 / cg"
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1074
!
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1075
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1076
readStyleSheetAndUpdateAllStyleCaches
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1077
    "reload all style caches in all view classes.
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1078
     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
  1079
3002
3b0951872ab4 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 2994
diff changeset
  1080
    DefaultStyle notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1081
	self readStyleSheet.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1082
	self updateAllStyleCaches
3002
3b0951872ab4 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 2994
diff changeset
  1083
    ]
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1084
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1085
    "Created: / 15.9.1998 / 22:03:59 / cg"
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1086
!
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1087
362
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1088
returnFocusWhenClosingModalBoxes
364
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1089
    "return the current focus-return behavior.
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1090
     See #returnFocusWhenClosingModalBoxes: for a description."
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1091
362
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1092
    ^ ReturnFocusWhenClosingModalBoxes
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1093
!
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1094
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1095
returnFocusWhenClosingModalBoxes:aBoolean
364
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1096
    "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
  1097
     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
  1098
     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
  1099
     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
  1100
     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
  1101
     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
  1102
     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
  1103
     it may be better to turn the focus-return off.
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1104
     You should add a corresponding expression into your private.rc or 
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1105
     display.rc file."
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1106
362
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1107
    ReturnFocusWhenClosingModalBoxes := aBoolean
364
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1108
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1109
    "
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1110
     Dialog returnFocusWhenClosingModalBoxes:false
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1111
     Dialog returnFocusWhenClosingModalBoxes:true
b44b425e3ee1 oops - forgot to initialize the value of ReturnFocusWhenClosing
Claus Gittinger <cg@exept.de>
parents: 362
diff changeset
  1112
    "
362
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1113
!
0fa4bc6ad8d1 allow setting of dialog-focus behavior
ca
parents: 358
diff changeset
  1114
2294
f198e6e23448 defaultStyle
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1115
setDefaultStyle
f198e6e23448 defaultStyle
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1116
    |defStyle|
f198e6e23448 defaultStyle
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1117
3185
98fd08dcf366 checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3183
diff changeset
  1118
    DefaultStyle isNil ifTrue:[
3830
d421b20c5d93 default viewStyle under linux is now also #mswindows95
Claus Gittinger <cg@exept.de>
parents: 3821
diff changeset
  1119
        defStyle := OperatingSystem getEnvironment:'STX_VIEWSTYLE'.
d421b20c5d93 default viewStyle under linux is now also #mswindows95
Claus Gittinger <cg@exept.de>
parents: 3821
diff changeset
  1120
        defStyle notNil ifTrue:[
d421b20c5d93 default viewStyle under linux is now also #mswindows95
Claus Gittinger <cg@exept.de>
parents: 3821
diff changeset
  1121
            DefaultStyle := defStyle asSymbol.
d421b20c5d93 default viewStyle under linux is now also #mswindows95
Claus Gittinger <cg@exept.de>
parents: 3821
diff changeset
  1122
        ] ifFalse:[
d421b20c5d93 default viewStyle under linux is now also #mswindows95
Claus Gittinger <cg@exept.de>
parents: 3821
diff changeset
  1123
            (OperatingSystem isMSWINDOWSlike 
d421b20c5d93 default viewStyle under linux is now also #mswindows95
Claus Gittinger <cg@exept.de>
parents: 3821
diff changeset
  1124
            or:[OperatingSystem getOSType = #linux]) ifTrue:[
d421b20c5d93 default viewStyle under linux is now also #mswindows95
Claus Gittinger <cg@exept.de>
parents: 3821
diff changeset
  1125
                DefaultStyle := #mswindows95
d421b20c5d93 default viewStyle under linux is now also #mswindows95
Claus Gittinger <cg@exept.de>
parents: 3821
diff changeset
  1126
            ] ifFalse:[
d421b20c5d93 default viewStyle under linux is now also #mswindows95
Claus Gittinger <cg@exept.de>
parents: 3821
diff changeset
  1127
                DefaultStyle := #motif
d421b20c5d93 default viewStyle under linux is now also #mswindows95
Claus Gittinger <cg@exept.de>
parents: 3821
diff changeset
  1128
            ]
d421b20c5d93 default viewStyle under linux is now also #mswindows95
Claus Gittinger <cg@exept.de>
parents: 3821
diff changeset
  1129
        ].
2294
f198e6e23448 defaultStyle
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1130
    ].
f198e6e23448 defaultStyle
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1131
!
f198e6e23448 defaultStyle
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1132
1161
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1133
styleSheet
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1134
    "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
  1135
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1136
    ^ StyleSheet
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1137
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1138
    "
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1139
     View styleSheet
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1140
    "
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1141
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1142
    "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
  1143
!
07570a2d9008 added access to the styleSheet (for App-models)
Claus Gittinger <cg@exept.de>
parents: 1141
diff changeset
  1144
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1145
styleSheet:aViewStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1146
    "set the view style from a style-sheet"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1147
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1148
    StyleSheet := aViewStyle.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1149
    DefaultStyle := (StyleSheet at:'name' ifAbsent:'unknown') asSymbol.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1150
    self updateAllStyleCaches.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1151
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1152
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1153
updateAllStyleCaches
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1154
    "reload all style caches in all view classes.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1155
     Needed after a style change or when a style file has been changed"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1156
2994
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
  1157
    (Screen isNil or:[Screen current isNil]) ifTrue:[^ self].
2985
62552b74e805 do not read styleSheet if Display is nil
Stefan Vogel <sv@exept.de>
parents: 2979
diff changeset
  1158
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1159
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1160
     tell all view classes to flush any
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1161
     cached style-data
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1162
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1163
    self changed:#style.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1164
    SimpleView updateStyleCache.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1165
    SimpleView allSubclassesDo:[:aClass |
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1166
	aClass defaultFont:nil.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1167
	(aClass class includesSelector:#updateStyleCache) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1168
	    aClass updateStyleCache
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1169
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1170
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1171
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1172
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1173
     View updateAllStyleCaches
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1174
    "
527
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1175
2351
bb7cb7d8d723 separated style-handling into read-/update,
Claus Gittinger <cg@exept.de>
parents: 2302
diff changeset
  1176
    "Modified: / 15.9.1998 / 22:04:15 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1177
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1178
135
claus
parents:
diff changeset
  1179
updateStyleCache
claus
parents:
diff changeset
  1180
    "this method gets some heavily used style stuff and keeps
claus
parents:
diff changeset
  1181
     it in class-variables for faster access.
claus
parents:
diff changeset
  1182
     Subclasses should redefine this to load any cached style-values
claus
parents:
diff changeset
  1183
     into faster class variables as well. These should NOT do a 
claus
parents:
diff changeset
  1184
     super updateStyleCache, since this method is called for all view-classes
claus
parents:
diff changeset
  1185
     anyway."
claus
parents:
diff changeset
  1186
2492
0ac67f027ba4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2489
diff changeset
  1187
    <resource: #style (#viewSpacing #font #borderWidth #borderColor
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1188
		       #viewBackground #shadowColor #lightColor
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1189
		       #focusColor #focusBorderWidth)>
2292
8efc5272cf0b defaultStyle either from environmane (STX_VIEWSTYLE)
Claus Gittinger <cg@exept.de>
parents: 2274
diff changeset
  1190
2994
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
  1191
    |bgGrey currentScreen|
135
claus
parents:
diff changeset
  1192
claus
parents:
diff changeset
  1193
    "
claus
parents:
diff changeset
  1194
     when coming here the first time, we read the styleSheet
claus
parents:
diff changeset
  1195
     and keep the values in fast class variables
claus
parents:
diff changeset
  1196
    "
claus
parents:
diff changeset
  1197
    StyleSheet isNil ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1198
	self setDefaultStyle.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1199
	self readStyleSheet.
135
claus
parents:
diff changeset
  1200
    ].
claus
parents:
diff changeset
  1201
2994
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
  1202
    currentScreen := Screen current.
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
  1203
135
claus
parents:
diff changeset
  1204
    Grey := StyleSheet viewGrey.
claus
parents:
diff changeset
  1205
    Grey isNil ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1206
	Grey := Color grey
2829
c50504338b61 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
  1207
    ].
2994
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
  1208
    Grey := Grey onDevice:currentScreen.
135
claus
parents:
diff changeset
  1209
151
claus
parents: 145
diff changeset
  1210
    StyleSheet fileReadFailed ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1211
	bgGrey := White
135
claus
parents:
diff changeset
  1212
    ] ifFalse:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1213
	currentScreen hasGrayscales ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1214
	    bgGrey := Grey
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1215
	] ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1216
	    bgGrey := White 
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1217
	]
2829
c50504338b61 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
  1218
    ].
2994
c6be08b45a76 eliminated refs to Display (must use Screen current)
Stefan Vogel <sv@exept.de>
parents: 2985
diff changeset
  1219
    bgGrey := bgGrey onDevice:currentScreen.
135
claus
parents:
diff changeset
  1220
2492
0ac67f027ba4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2489
diff changeset
  1221
    ViewSpacing := StyleSheet at:#viewSpacing.
135
claus
parents:
diff changeset
  1222
    ViewSpacing isNil ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1223
	ViewSpacing := currentScreen defaultStyleValueFor:#viewSpacing.
2492
0ac67f027ba4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2489
diff changeset
  1224
    ].
0ac67f027ba4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2489
diff changeset
  1225
0ac67f027ba4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2489
diff changeset
  1226
    DefaultBorderColor := StyleSheet colorAt:#borderColor.
1678
5c93a4791a8b prepare to fetch style defaults from device (for windows)
Claus Gittinger <cg@exept.de>
parents: 1617
diff changeset
  1227
    DefaultBorderColor isNil ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1228
	DefaultBorderColor := currentScreen defaultStyleValueFor:#borderColor
1678
5c93a4791a8b prepare to fetch style defaults from device (for windows)
Claus Gittinger <cg@exept.de>
parents: 1617
diff changeset
  1229
    ].
151
claus
parents: 145
diff changeset
  1230
claus
parents: 145
diff changeset
  1231
    StyleSheet fileReadFailed ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1232
	DefaultBorderWidth := 1.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1233
	DefaultShadowColor := Black.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1234
	DefaultLightColor :=  White.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1235
	DefaultFocusColor := Black.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1236
	DefaultFocusBorderWidth := 2.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1237
	DefaultViewBackgroundColor := White.
151
claus
parents: 145
diff changeset
  1238
    ] ifFalse:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1239
	DefaultBorderWidth := StyleSheet at:#borderWidth default:0.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1240
	DefaultViewBackgroundColor := StyleSheet colorAt:#viewBackground default:bgGrey.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1241
	DefaultShadowColor := StyleSheet colorAt:#shadowColor.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1242
	DefaultLightColor := StyleSheet colorAt:#lightColor.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1243
	DefaultFocusColor := StyleSheet colorAt:#focusColor default:Color red.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1244
	DefaultFocusBorderWidth := StyleSheet at:'focusBorderWidth' default:2.
151
claus
parents: 145
diff changeset
  1245
    ].
135
claus
parents:
diff changeset
  1246
526
3ba5c3844c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 522
diff changeset
  1247
    self == SimpleView ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1248
	DefaultFont := StyleSheet at:#font.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1249
	DefaultFont isNil ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1250
	    DefaultFont := Font family:'courier' face:'medium' style:'roman' size:12.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1251
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1252
	DefaultFont := DefaultFont onDevice:currentScreen.
527
743c5f8b932e defaultFont style caching was wrong
Claus Gittinger <cg@exept.de>
parents: 526
diff changeset
  1253
    ] ifFalse:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1254
	DefaultFont := nil
135
claus
parents:
diff changeset
  1255
    ].
claus
parents:
diff changeset
  1256
claus
parents:
diff changeset
  1257
    DefaultViewBackgroundColor isNil ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1258
	'SimpleView [warning]: bad viewBackground in style - using white' errorPrintCR.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1259
	DefaultViewBackgroundColor := White
2492
0ac67f027ba4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2489
diff changeset
  1260
    ].
0ac67f027ba4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2489
diff changeset
  1261
0ac67f027ba4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2489
diff changeset
  1262
    "Modified: / 29.4.1997 / 11:16:52 / dq"
0ac67f027ba4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2489
diff changeset
  1263
    "Modified: / 8.3.1999 / 01:36:05 / cg"
135
claus
parents:
diff changeset
  1264
!
claus
parents:
diff changeset
  1265
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1266
viewSpacing
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1267
    "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
  1268
     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
  1269
     get a common look"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1270
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1271
    ^ ViewSpacing
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1272
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1273
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
  1274
!SimpleView class methodsFor:'resources'!
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1275
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1276
classResources
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1277
    "if not already loaded, get the classes resourcePack
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1278
     and return it"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1279
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1280
    ClassResources isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1281
	ClassResources := ResourcePack for:self.
140
claus
parents: 138
diff changeset
  1282
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1283
    ^ ClassResources
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1284
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1285
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1286
classResources:aResourcePack
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1287
    "allow setting of the classResources"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1288
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1289
    ClassResources := aResourcePack
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1290
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1291
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1292
flushAllClassResources
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1293
    "flush all classes resource translations.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1294
     Needed after a resource file has changed."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1295
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1296
    ResourcePack flushCachedResourcePacks.
3378
0792856b9ce5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3377
diff changeset
  1297
    SimpleView withAllSubclassesDo:[:aClass |
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1298
	aClass flushClassResources.
140
claus
parents: 138
diff changeset
  1299
    ]
claus
parents: 138
diff changeset
  1300
claus
parents: 138
diff changeset
  1301
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1302
     View flushAllClassResources
140
claus
parents: 138
diff changeset
  1303
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1304
    "to change the language:
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1305
	Language := #en.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1306
	Smalltalk changed:#Language.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1307
	View flushAllClassResources
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1308
     or:
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1309
	Language := #de.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1310
	Smalltalk changed:#Language.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1311
	View flushAllClassResources
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1312
    "     
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1313
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1314
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1315
flushClassResources
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1316
    "flush classes resource string translations.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1317
     Needed whenever a resource file or language has changed"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1318
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1319
    ClassResources := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1320
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1321
2130
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  1322
resources
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  1323
    ^ self classResources
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  1324
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  1325
    "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
  1326
!
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  1327
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1328
updateClassResources
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1329
    "flush classes resource string translations and reload them.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1330
     Needed whenever a resource file or language has changed"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1331
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1332
    ClassResources := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1333
    self classResources
135
claus
parents:
diff changeset
  1334
! !
claus
parents:
diff changeset
  1335
3781
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1336
!SimpleView class methodsFor:'startup'!
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1337
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1338
open
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1339
    "create, realize the view - this topview and all its subviews will
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1340
     run as a separate process with its own windowGroup"
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1341
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1342
    ^ self new open 
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1343
! !
9404bb21b63f open pushed up from StdSysView
martin
parents: 3775
diff changeset
  1344
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1345
!SimpleView methodsFor:'Compatibility - ST80'!
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1346
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1347
bounds
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1348
    "ST-80 compatibility: return my bounds"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1349
971
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  1350
    ^ (self origin) corner:(self corner)
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1351
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1352
    "Created: 4.6.1996 / 21:23:27 / cg"
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1353
    "Modified: 10.1.1997 / 19:46:21 / cg"
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1354
!
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1355
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1356
bounds:aRectangle
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1357
    "ST-80 compatibility: change my bounds"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1358
971
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  1359
    explicitExtent := true.
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  1360
    self pixelOrigin:aRectangle origin
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1361
	      corner:aRectangle corner
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1362
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1363
    "Created: 4.6.1996 / 21:44:27 / cg"
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1364
    "Modified: 10.1.1997 / 19:46:36 / cg"
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1365
!
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1366
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1367
checkForEvents
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1368
    "ST-80 compatibility:
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1369
     check for any pending events and process them"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1370
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1371
    (shown and:[windowGroup notNil]) ifTrue:[windowGroup processEvents].
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1372
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1373
    "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
  1374
!
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1375
3164
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
  1376
closeAndUnschedule
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
  1377
    "actually sent to a controller in VW...
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
  1378
     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
  1379
3316
b9cb3eac524e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3314
diff changeset
  1380
    self topView destroy
3164
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
  1381
!
f3dce6ea8e3f VW compatibility: closeAndUnschedule
Claus Gittinger <cg@exept.de>
parents: 3155
diff changeset
  1382
3775
fc3a650b3e3c displayOn confusion
Claus Gittinger <cg@exept.de>
parents: 3774
diff changeset
  1383
displayOn:aGCOrStream
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1384
    "ST-80 compatibility: (re-)display myself"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1385
3775
fc3a650b3e3c displayOn confusion
Claus Gittinger <cg@exept.de>
parents: 3774
diff changeset
  1386
    "/ what a kludge - Dolphin and Squeak mean: printOn:;
fc3a650b3e3c displayOn confusion
Claus Gittinger <cg@exept.de>
parents: 3774
diff changeset
  1387
    "/ ST/X (and some old ST80's) mean: draw-yourself on.
fc3a650b3e3c displayOn confusion
Claus Gittinger <cg@exept.de>
parents: 3774
diff changeset
  1388
    (aGCOrStream isStream or:[aGCOrStream == Transcript]) ifTrue:[
fc3a650b3e3c displayOn confusion
Claus Gittinger <cg@exept.de>
parents: 3774
diff changeset
  1389
        ^ super displayOn:aGCOrStream
3774
a85ec40ac028 displayOn: confusion kludge
tm
parents: 3765
diff changeset
  1390
    ].
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1391
    self redraw
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1392
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  1393
    "Created: 4.6.1996 / 21:25:59 / cg"
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  1394
    "Modified: 10.1.1997 / 19:46:58 / cg"
1363
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1395
!
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1396
1432
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1397
displayPendingInvalidation
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1398
    "dummy - for ST-80 compatibility"
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1399
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1400
    "Created: 6.3.1997 / 15:17:14 / cg"
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1401
    "Modified: 6.3.1997 / 15:17:31 / cg"
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1402
!
23fa07be585a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  1403
1363
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1404
isEnabled
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1405
    "return true, if this view is enabled (i.e. accepts user interaction).
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1406
     Most views are enabled - only a few (buttons, SelectionInList etc.) can
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1407
     be disabled.
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1408
     #isEnabled is ST-80's equivalent of #enabled"
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1409
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  1410
    ^ self enabled
1413
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1411
!
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1412
2061
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1413
isOpen
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1414
    "ST80 compatibility"
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1415
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1416
    ^ realized
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1417
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1418
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1419
!
25c1fcc1d7e8 added #isOpen for ST80 compatibility
Claus Gittinger <cg@exept.de>
parents: 2037
diff changeset
  1420
2159
da3337e54241 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
  1421
lookPreferences:prefs
da3337e54241 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
  1422
    "ignored - but required for some apps"
da3337e54241 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
  1423
da3337e54241 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
  1424
    "Created: / 19.6.1998 / 00:05:10 / cg"
da3337e54241 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
  1425
!
da3337e54241 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2158
diff changeset
  1426
1413
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1427
newLayout:aLayoutObject
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1428
    "set the layout object which controls my geometry.
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1429
     ST80-compatibility."
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1430
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1431
    here layout:aLayoutObject.
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1432
e1182f8efc7e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  1433
    "Created: 3.3.1997 / 18:54:53 / cg"
1427
35214ddde67c checkin from browser
ca
parents: 1425
diff changeset
  1434
!
35214ddde67c checkin from browser
ca
parents: 1425
diff changeset
  1435
35214ddde67c checkin from browser
ca
parents: 1425
diff changeset
  1436
refresh
35214ddde67c checkin from browser
ca
parents: 1425
diff changeset
  1437
    self invalidate
151
claus
parents: 145
diff changeset
  1438
! !
claus
parents: 145
diff changeset
  1439
2956
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1440
!SimpleView methodsFor:'Compatibility - Squeak'!
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1441
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1442
insetDisplayBox
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1443
    "Squeak mimicri: return my bounds"
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1444
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1445
    ^ 0@0 corner:(self corner)
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1446
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1447
! !
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  1448
2450
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1449
!SimpleView methodsFor:'accessing'!
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1450
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1451
keyboardProcessor
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1452
    "return my keyboard processor"
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1453
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1454
    ^ nil
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1455
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1456
    "Created: / 13.2.1999 / 10:31:39 / cg"
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1457
! !
06d76ede2dda checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2430
diff changeset
  1458
2549
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1459
!SimpleView methodsFor:'accessing-behavior'!
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1460
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1461
disable
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1462
   "alternative method; redirected to basic mechanism"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1463
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1464
   self enabled:false
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1465
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1466
    "Modified: / 30.3.1999 / 14:47:30 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1467
    "Created: / 30.3.1999 / 15:54:11 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1468
!
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1469
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1470
enable
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1471
   "alternative method; redirected to basic mechanism"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1472
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1473
   self enabled:true
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1474
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1475
    "Modified: / 30.3.1999 / 14:47:22 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1476
    "Created: / 30.3.1999 / 15:54:16 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1477
!
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1478
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1479
enabled
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1480
   "views are enabled by default"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1481
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1482
   ^ true
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1483
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1484
    "Modified: / 30.3.1999 / 16:27:57 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1485
!
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1486
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1487
enabled:bool
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1488
   "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
  1489
    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
  1490
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1491
    "Modified: / 30.3.1999 / 14:46:24 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1492
    "Created: / 30.3.1999 / 15:54:21 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1493
!
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1494
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1495
isEnabled:aState
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1496
    "ST-80 compatibility; set enabled state
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1497
    "
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1498
    self enabled:aState
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1499
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1500
    "Created: / 30.3.1999 / 15:54:29 / stefan"
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1501
! !
9c57f5897a90 Common enable/disable/enabled:/isEnabled: Protocol
Stefan Vogel <sv@exept.de>
parents: 2540
diff changeset
  1502
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1503
!SimpleView methodsFor:'accessing-bg & border'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1504
3356
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1505
allSubViewsBackground:something
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1506
    "set the viewBackground to something, a color, image or form,
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1507
     recursively in all of my subviews"
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1508
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1509
    subViews notNil ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1510
	subViews do:[:v|
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1511
	    v allViewBackground:something
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1512
	]
3356
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1513
    ]
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1514
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1515
    "Modified: / 18.7.1996 / 13:34:26 / cg"
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1516
    "Created: / 31.10.2000 / 13:06:02 / bg"
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1517
!
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1518
955
34b6c1529fdc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
  1519
allViewBackground:something
34b6c1529fdc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
  1520
    "set the viewBackground to something, a color, image or form,
34b6c1529fdc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
  1521
     in myself and recursively in all of my subviews"
34b6c1529fdc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
  1522
2784
cd0a37151aba allViewBackground: now implies a redraw
Claus Gittinger <cg@exept.de>
parents: 2769
diff changeset
  1523
    viewBackground ~~ something ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1524
	self viewBackground:something.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1525
	shown ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1526
	    self invalidate
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  1527
	].
3356
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1528
    ].
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1529
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1530
    self allSubViewsBackground:something
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1531
d3f6fd88e766 extracted allSubViewsBackground: from allViewBackground:
Claus Gittinger <cg@exept.de>
parents: 3345
diff changeset
  1532
    "Modified: / 31.10.2000 / 13:06:17 / bg"
955
34b6c1529fdc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
  1533
!
34b6c1529fdc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 954
diff changeset
  1534
2158
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1535
backgroundColor
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1536
    "return the background color of the contents -
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1537
     here, (since there is no contents), the viewBackground is returned."
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1538
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1539
    ^ self viewBackground
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1540
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1541
    "Modified: / 3.5.1997 / 10:28:04 / cg"
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1542
    "Created: / 18.6.1998 / 15:59:36 / cg"
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1543
!
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1544
1726
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1545
backgroundColor:aColor
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1546
    "set the background color of the contents -
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1547
     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
  1548
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1549
    self viewBackground:aColor
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1550
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1551
    "Created: 3.5.1997 / 10:26:49 / cg"
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1552
    "Modified: 3.5.1997 / 10:28:04 / cg"
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1553
!
51b0f8ed7572 added #backgroundColor: - for protocol completeness
Claus Gittinger <cg@exept.de>
parents: 1716
diff changeset
  1554
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1555
borderColor
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1556
    "return my borderColor"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1557
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1558
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1559
	^ superView borderColor
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1560
    ].
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1561
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1562
    ^ borderColor
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1563
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1564
    "Modified: 5.6.1996 / 14:11:44 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1565
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1566
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1567
borderColor:aColor
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1568
    "set my borderColor"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1569
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1570
    "/ backward compatibility
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1571
    "/ superView will be renamed to container soon.
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1572
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1573
	^ superView borderColor:aColor
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1574
    ].
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1575
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1576
    (aColor ~~ borderColor) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1577
	borderColor := aColor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1578
	drawableId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1579
	    self setBorderColor
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1580
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1581
    ]
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1582
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1583
    "Modified: 5.6.1996 / 14:11:50 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1584
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1585
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1586
borderShape:aForm
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1587
    "set the borderShape to aForm"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1588
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
  1589
    aForm isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1590
	viewShape := nil.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1591
	drawableId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1592
	    device setWindowBorderShape:nil in:drawableId
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1593
	]
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
  1594
    ] ifFalse:[        
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1595
	viewShape isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1596
	    viewShape := ArbitraryViewShape new
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1597
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1598
	viewShape borderShapeForm:aForm.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1599
	drawableId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1600
	    device setWindowBorderShape:(aForm id) in:drawableId
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1601
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1602
    ]
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  1603
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  1604
    "Modified: 18.9.1997 / 11:09:40 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1605
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1606
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1607
borderWidth
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1608
    "return my borderWidth"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1609
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1610
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1611
	^ superView borderWidth
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1612
    ].
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1613
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1614
    ^ borderWidth
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1615
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1616
    "Modified: 5.6.1996 / 14:11:57 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1617
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1618
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1619
borderWidth:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1620
    "set my borderWidth"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1621
2907
901ffdc575a8 ask device if it supports borders
Claus Gittinger <cg@exept.de>
parents: 2886
diff changeset
  1622
    |bd|
901ffdc575a8 ask device if it supports borders
Claus Gittinger <cg@exept.de>
parents: 2886
diff changeset
  1623
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1624
    "/ backward compatibility
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1625
    "/ superView will be renamed to container soon.
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1626
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1627
	^ superView borderWidth:aNumber
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1628
    ].
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1629
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1630
    (aNumber ~~ borderWidth) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1631
	bd := aNumber.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1632
	(device supportsWindowBorder:bd) ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1633
	    bd > 1 ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1634
		(device supportsWindowBorder:(bd := 1)) ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1635
		    ^ self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1636
		].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1637
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1638
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1639
	borderWidth := bd.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1640
	drawableId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1641
	    device setWindowBorderWidth:aNumber in:drawableId
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1642
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1643
    ]
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1644
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1645
    "Modified: 5.6.1996 / 14:12:05 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1646
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1647
2158
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1648
foregroundColor
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1649
    "return the foreground color of the contents -
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1650
     here, (since there is no contents), some default is returned."
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1651
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1652
    ^ Color black
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1653
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1654
    "Modified: / 3.5.1997 / 10:28:04 / cg"
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1655
    "Created: / 18.6.1998 / 16:57:33 / cg"
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1656
!
948fe768cd36 added #foregroundColor & backgroundColor
Claus Gittinger <cg@exept.de>
parents: 2143
diff changeset
  1657
3392
70bf6d99f0c5 dummy #foregroundColor:
Claus Gittinger <cg@exept.de>
parents: 3384
diff changeset
  1658
foregroundColor:aColor
70bf6d99f0c5 dummy #foregroundColor:
Claus Gittinger <cg@exept.de>
parents: 3384
diff changeset
  1659
    "set the foreground color of the contents -
70bf6d99f0c5 dummy #foregroundColor:
Claus Gittinger <cg@exept.de>
parents: 3384
diff changeset
  1660
     ignored here, since there is no contents."
70bf6d99f0c5 dummy #foregroundColor:
Claus Gittinger <cg@exept.de>
parents: 3384
diff changeset
  1661
!
70bf6d99f0c5 dummy #foregroundColor:
Claus Gittinger <cg@exept.de>
parents: 3384
diff changeset
  1662
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1663
level
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1664
    "return my level relative to superView (3D)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1665
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1666
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1667
	^ superView level
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1668
    ].
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1669
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1670
    ^ level
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1671
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1672
    "Modified: 5.6.1996 / 14:12:10 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1673
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1674
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1675
level:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1676
    "set my level relative to superView (3D)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1677
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1678
    |oldMargin how|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1679
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1680
    "/ backward compatibility
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1681
    "/ superView will be renamed to container soon.
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1682
    (superView notNil and:[superView isBorderedWrapper]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1683
	^ superView level:aNumber
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1684
    ].
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1685
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1686
    (aNumber ~~ level and:[aNumber notNil]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1687
	self is3D ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1688
	    level := aNumber.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1689
	    oldMargin := margin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1690
	    margin := level abs.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1691
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1692
	    realized ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1693
		margin ~~ oldMargin ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1694
		    (margin > oldMargin) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1695
			how := #smaller
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1696
		    ] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1697
			how := #larger
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1698
		    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1699
		    self sizeChanged:how.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1700
		    self setInnerClip.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1701
		].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1702
		shown ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1703
		    margin ~~ oldMargin ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1704
			self clear.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1705
			self redrawX:margin y:margin
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1706
			       width:width-(margin*2) 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1707
			      height:height-(margin*2)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1708
		    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1709
		    self redrawEdges.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1710
	       ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1711
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1712
	]
135
claus
parents:
diff changeset
  1713
    ]
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1714
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  1715
    "Modified: 5.6.1996 / 14:12:17 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1716
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1717
3698
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  1718
lightColor
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  1719
    "returb the color to be used for lighted edges (3D only)"
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  1720
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  1721
    ^ lightColor 
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  1722
!
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  1723
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1724
lightColor:aColorOrImage
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1725
    "set the color to be used for lighted edges (3D only)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1726
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1727
    lightColor := aColorOrImage
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1728
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1729
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1730
margin
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  1731
    "return my inner margin - this is usually the level,
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  1732
     but can be more for some views 
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  1733
     (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
  1734
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1735
    ^ margin
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  1736
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  1737
    "Modified: 5.6.1996 / 14:37:54 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1738
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1739
3698
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  1740
shadowColor
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  1741
    "returb the color to be used for shadowed edges (3D only)"
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  1742
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  1743
    ^ shadowColor 
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  1744
!
73fedcfc2d1d accessor added
Claus Gittinger <cg@exept.de>
parents: 3679
diff changeset
  1745
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1746
shadowColor:aColorOrImage
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1747
    "set the color to be used for shadowed edges (3D only)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1748
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1749
    shadowColor := aColorOrImage
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1750
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1751
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1752
viewBackground:something
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1753
    "set the viewBackground to something, a color, image or form.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1754
     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
  1755
     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
  1756
     edges."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1757
2584
55a405cec086 when lighting/darkening colors, take the average in the topLeft
Claus Gittinger <cg@exept.de>
parents: 2583
diff changeset
  1758
    |avgColor|
55a405cec086 when lighting/darkening colors, take the average in the topLeft
Claus Gittinger <cg@exept.de>
parents: 2583
diff changeset
  1759
1808
b3485bfc7acf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1761
diff changeset
  1760
    "/ debug check only:
b3485bfc7acf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1761
diff changeset
  1761
    something isNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1762
	self error:'invalid viewBackground argument'.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1763
	^ self
1808
b3485bfc7acf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1761
diff changeset
  1764
    ].
b3485bfc7acf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1761
diff changeset
  1765
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1766
    something isColor ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1767
	device hasGrayscales ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1768
	    avgColor := something averageColorIn:(0@0 corner:7@7).
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1769
	    shadowColor := avgColor darkened "on:device".
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1770
	    lightColor := avgColor lightened "on:device".
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  1771
	]
135
claus
parents:
diff changeset
  1772
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1773
    super viewBackground:something
749
c83c6d93760d grey vs. gray
Claus Gittinger <cg@exept.de>
parents: 747
diff changeset
  1774
1808
b3485bfc7acf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1761
diff changeset
  1775
    "Modified: 4.7.1997 / 20:09:22 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1776
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1777
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1778
viewShape:aForm
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1779
    "set the viewShape to aForm"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1780
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
  1781
    aForm isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1782
	viewShape := nil.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1783
	drawableId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1784
	    device setWindowShape:nil in:drawableId
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1785
	]
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
  1786
    ] ifFalse:[        
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1787
	viewShape isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1788
	    viewShape := ArbitraryViewShape new
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1789
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1790
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1791
	viewShape viewShapeForm:aForm.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1792
	drawableId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1793
	    device setWindowShape:(aForm id) in:drawableId
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1794
	]
135
claus
parents:
diff changeset
  1795
    ]
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  1796
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  1797
    "Modified: 18.9.1997 / 11:11:04 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1798
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1799
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1800
!SimpleView methodsFor:'accessing-channels'!
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1801
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1802
setupChannel:newChannel for:changeSelector withOld:oldChannel
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1803
    "common code to change a channel.
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1804
     If changeSelector is non-nil, arrange for it to be sent when
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1805
     the channel changes its value; otherwise, arrange for a simple update.
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1806
     This is so common, that ist worth a helper method:
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1807
     release any old channel (if non-nil),
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1808
     arrange for changeSelector (or #update) to be sent for the new channel."
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1809
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1810
    |oldValue|
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1811
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1812
    oldChannel == newChannel ifTrue:[^ self].
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1813
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1814
    oldChannel notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1815
	changeSelector isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1816
	    oldChannel removeDependent:self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1817
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1818
	    oldChannel retractInterestsFor:self.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1819
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1820
	oldValue := oldChannel value.
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1821
    ].
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1822
    newChannel notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1823
	changeSelector isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1824
	    newChannel addDependent:self.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1825
	    newChannel value ~~ oldValue ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1826
		self update:#value with:nil from:newChannel.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1827
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1828
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1829
	    newChannel onChangeSend:changeSelector to:self.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1830
	    newChannel value ~~ oldValue ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1831
		self perform:changeSelector.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1832
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1833
	]
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1834
    ].
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1835
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1836
    ^ newChannel
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1837
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1838
    "Modified: / 31.10.1997 / 14:47:21 / cg"
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1839
! !
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  1840
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1841
!SimpleView methodsFor:'accessing-contents'!
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1842
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1843
heightOfContents
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1844
    "return the height of the contents in logical units 
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1845
     - defaults to views visible area here.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1846
    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
  1847
    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
  1848
    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
  1849
    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
  1850
    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
  1851
    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
  1852
    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
  1853
    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
  1854
    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
  1855
    of this will scale as appropriate."
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1856
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  1857
    ^ (self innerHeight max:(self maxSubViewBottom)) max:self maxComponentBottom
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  1858
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  1859
    "Modified: 26.5.1996 / 12:44:21 / cg"
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1860
!
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1861
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1862
widthOfContents
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1863
    "return the width of the contents in logical units 
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1864
     - defaults to views visible area here.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1865
    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
  1866
    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
  1867
    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
  1868
    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
  1869
    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
  1870
    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
  1871
    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
  1872
    the relative width of the document vs. the views actual width.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1873
    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
  1874
    of this will scale as appropriate."
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1875
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  1876
    ^ (self innerWidth max:(self maxSubViewRight)) max:self maxComponentRight
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  1877
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  1878
    "Modified: 26.5.1996 / 13:02:50 / cg"
422
bb19798ffda1 fixed openAutonomous for new model opening setup
Claus Gittinger <cg@exept.de>
parents: 420
diff changeset
  1879
! !
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  1880
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1881
!SimpleView methodsFor:'accessing-dimensions'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1882
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1883
allInset:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1884
    "set all insets; positive makes the view smaller,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1885
     negative makes it larger."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1886
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1887
    insets isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1888
	insets := Array new:4.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1889
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1890
    insets atAllPut:aNumber.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1891
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1892
    "force recomputation"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1893
"/    drawableId isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  1894
"/        self originChangedFlag:true
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1895
"/    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1896
	self containerChangedSize.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1897
"/    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  1898
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  1899
    "Modified: 19.7.1996 / 17:30:18 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1900
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1901
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1902
bottom
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1903
    "return the y position of the actual bottom edge (in pixels)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1904
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1905
    ^ top + height - 1
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1906
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1907
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1908
bottom:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1909
    "set the corners y position"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1910
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1911
    self corner:(self corner x @ aNumber)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1912
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1913
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1914
bottomInset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1915
    "return the inset of the bottom edge; positive is to the top,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1916
     negative to the bottom"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1917
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1918
    insets isNil ifTrue:[^ 0].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1919
    ^ insets at:4
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1920
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1921
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1922
bottomInset:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1923
    "set the inset of the bottom edge; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1924
     positive is to the top (view becomes smaller),
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1925
     negative to the bottom (becomes larger)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1926
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1927
    insets isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1928
	insets := Array with:0 with:0 with:0 with:0
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1929
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1930
    insets at:4 put:aNumber.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1931
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1932
    "force recomputation"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1933
"/    drawableId isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  1934
"/        self originChangedFlag:true
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1935
"/    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1936
	self containerChangedSize
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1937
"/    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  1938
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  1939
    "Modified: 19.7.1996 / 17:30:22 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1940
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1941
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1942
center
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1943
    "return the point at the center of the receiver (in pixels)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1944
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1945
    ^ (left + (width // 2)) @ (top + (height // 2))
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1946
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1947
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1948
center:newCenter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1949
    "move the receiver so that newCenter, aPoint becomes the center point"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1950
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1951
    self origin:(newCenter - ((width // 2) @ (height // 2)))
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1952
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1953
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1954
computeCorner
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1955
    "compute my corner; if I have a layoutObject,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1956
     relative origins or blocks to evaluate, compute it now ..
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1957
     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
  1958
     Returns the corner point in device coordinates (pixels)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1959
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1960
    |org newCorner newExt x y|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1961
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1962
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1963
     slowly migrating to use layoutObjects ...
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1964
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1965
    layout notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1966
	superView isNil ifTrue:[^ self preferredBounds corner].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1967
	^ (layout rectangleRelativeTo:(superView viewRectangle)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1968
			    preferred:[self preferredBounds]) corner rounded
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1969
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1970
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1971
    (cornerRule notNil) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1972
	newCorner := cornerRule value.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1973
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1974
	 allow return of relative values ...
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1975
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1976
	x := newCorner x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1977
	y := newCorner y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1978
	x isNil ifTrue:[x := self corner x].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1979
	y isNil ifTrue:[y := self corner y].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1980
	((x isInteger not) or:[y isInteger not]) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1981
	    newCorner := self cornerFromRelativeCorner:x@y 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1982
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1983
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1984
	(relativeCorner notNil) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1985
	    newCorner := self cornerFromRelativeCorner:relativeCorner
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1986
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1987
	    org := self computeOrigin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1988
	    (extentRule notNil) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1989
		newExt := extentRule value
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1990
	    ] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1991
		(relativeExtent notNil) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1992
		    newExt := self extentFromRelativeExtent:relativeExtent 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1993
		] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1994
		    newExt := self extent.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1995
		]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1996
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1997
	    newCorner := org + newExt
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  1998
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  1999
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2000
    ^ newCorner
1389
8ee35214f5eb computeCorner fixed.
Claus Gittinger <cg@exept.de>
parents: 1381
diff changeset
  2001
8ee35214f5eb computeCorner fixed.
Claus Gittinger <cg@exept.de>
parents: 1381
diff changeset
  2002
    "Modified: 28.2.1997 / 10:33:39 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2003
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2004
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2005
computeExtent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2006
    "compute my extent; if I have a layoutObject, a relative extent 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2007
     or blocks to evaluate, compute it now ..
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2008
     There is one catch here, if the dimension was defined
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2009
     by origin/corner, compute them here and take that value.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2010
     I.e. origin/corner definition has precedence over extent definition.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2011
     Returns the extent in device coordinates (pixels)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2012
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2013
    |newOrg newExt newCorner x y|
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
     slowly migrating to use layoutObjects ...
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2017
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2018
    layout notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2019
	^ (layout rectangleRelativeTo:(superView viewRectangle)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2020
			    preferred:[self preferredBounds]) extent rounded
135
claus
parents:
diff changeset
  2021
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2022
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2023
    (cornerRule notNil) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2024
	newCorner := cornerRule value.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2025
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2026
	 allow return of relative values ...
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2027
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2028
	x := newCorner x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2029
	y := newCorner y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2030
	x isNil ifTrue:[x := self corner x].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2031
	y isNil ifTrue:[y := self corner y].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2032
	((x isInteger not) or:[y isInteger not]) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2033
	    newCorner := self cornerFromRelativeCorner:x@y
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2034
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2035
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2036
	(relativeCorner notNil) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2037
	    newCorner := self cornerFromRelativeCorner:relativeCorner
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2038
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2039
	    (extentRule notNil) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2040
		newExt := extentRule value.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2041
		"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2042
		 allow return of relative values ...
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2043
		"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2044
		x := newExt x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2045
		y := newExt y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2046
		x isNil ifTrue:[x := width].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2047
		y isNil ifTrue:[y := height].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2048
		((x isInteger not) or:[y isInteger not]) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2049
		    newExt := self extentFromRelativeExtent:x@y
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2050
		]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2051
	    ] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2052
		(relativeExtent notNil) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2053
		    newExt := self extentFromRelativeExtent:relativeExtent
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2054
		] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2055
		    newExt := (width @ height).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2056
		].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2057
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2058
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2059
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2060
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2061
    newCorner notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2062
	newOrg := self computeOrigin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2063
	^ newCorner - newOrg.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2064
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2065
    ^ newExt.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2066
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2067
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2068
computeOrigin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2069
    "compute my origin; if I have a layoutObject, a relative origin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2070
     or blocks to evaluate, compute it now ..
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2071
     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
  2072
     Returns the origin point in device coordinates (pixels)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2073
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2074
    |newOrg x y|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2075
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2076
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2077
     slowly migrating to use layoutObjects ...
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2078
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2079
    layout notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2080
	superView isNil ifTrue:[^ 0@0].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2081
	^ (layout rectangleRelativeTo:(superView viewRectangle)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2082
			    preferred:[self preferredBounds]) origin rounded
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2083
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2084
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2085
    (originRule notNil) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2086
	newOrg := originRule value.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2087
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2088
	 allow return of relative values ...
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2089
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2090
	x := newOrg x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2091
	y := newOrg y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2092
	x isNil ifTrue:[x := self origin x].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2093
	y isNil ifTrue:[y := self origin y].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2094
	((x isInteger not) or:[y isInteger not]) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2095
	    newOrg := self originFromRelativeOrigin:x@y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2096
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2097
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2098
	(relativeOrigin notNil) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2099
	    newOrg := self originFromRelativeOrigin:relativeOrigin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2100
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2101
	    ^ (left @ top).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2102
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2103
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2104
    ^ newOrg
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2105
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2106
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2107
corner
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2108
    "return the lower right corner-point (in pixels)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2109
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2110
"/    ^ (left + width "- 1") @ (top + height "- 1")
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2111
    ^ (left + width - 1) @ (top + height - 1)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2112
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2113
    "Modified: 31.8.1995 / 16:51:40 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2114
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2115
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2116
corner:corner 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2117
    "set the views corner; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2118
     the corner argument may be:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2119
	 a point 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2120
	    where integer fields mean 'pixel-values'
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2121
	    and float values mean 'relative-to-superview'
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2122
	    and nil means 'take current value';
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2123
     or a block returning a point which is interpreted as above.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2124
     Please migrate to use layoutObjects, if possible."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2125
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2126
    |x y pixelCorner c|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2127
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2128
    explicitExtent := true.
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2129
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2130
    corner isBlock ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2131
	cornerRule := corner.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2132
	drawableId notNil ifTrue:[    
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2133
	    pixelCorner := corner value
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2134
	] ifFalse:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2135
	    self extentChangedFlag:true
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2136
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2137
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2138
	x := corner x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2139
	y := corner y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2140
	x isNil ifTrue:[x := self corner x].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2141
	y isNil ifTrue:[y := self corner y].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2142
	c := x @ y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2143
	((x isInteger not) or:[y isInteger not]) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2144
	    relativeCorner := c.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2145
	    pixelCorner := self cornerFromRelativeCorner.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2146
	    pixelCorner isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2147
		self extentChangedFlag:true
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2148
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2149
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2150
	    pixelCorner := c
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2151
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2152
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2153
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2154
    pixelCorner notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2155
	self pixelCorner:pixelCorner
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2156
    ]
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2157
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2158
    "Modified: 15.7.1996 / 09:51:06 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2159
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2160
1327
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2161
cornerRule
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2162
    "return the corner block - non public; this will vanish without notice"
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2163
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2164
    ^ cornerRule
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2165
!
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2166
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2167
extent:extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2168
    "set the views extent; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2169
     extent may be:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2170
	a point 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2171
	    where integer fields mean 'pixel-values'
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2172
	    and float values mean 'relative-to-superview'
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2173
	    and nil means 'leave current value';
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2174
     or a block returning a point which is interpreted as above.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2175
     Be careful when using relative extents: rounding errors may
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2176
     accumulate. Better use origin/corner. 
1048
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2177
     Best: migrate to use layour objects.
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2178
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2179
     Notice: this sets the views explicitExtent flag, which prevents it normally
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2180
	     from resizing itself to its preferredExtent. 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2181
	     See initialExtent: for a variation."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2182
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2183
    |w h pixelExtent e|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2184
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2185
    explicitExtent := true.
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2186
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2187
    extent isBlock ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2188
	extentRule := extent.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2189
	drawableId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2190
	    pixelExtent := extent value
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2191
	] ifFalse:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2192
	    self extentChangedFlag:true
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2193
	]
135
claus
parents:
diff changeset
  2194
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2195
	w := extent x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2196
	h := extent y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2197
	w isNil ifTrue:[w := width].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2198
	h isNil ifTrue:[h := height].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2199
	e := w@h.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2200
	((w isInteger not) or:[h isInteger not]) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2201
	    relativeExtent := e.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2202
	    pixelExtent := self extentFromRelativeExtent.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2203
	    pixelExtent isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2204
		self extentChangedFlag:true
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2205
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2206
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2207
	    relativeExtent := nil.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2208
	    pixelExtent := e
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2209
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2210
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2211
    pixelExtent notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2212
	self pixelExtent:pixelExtent
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2213
    ]
573
578ae7a2f7fa clear any relative origin/extent, if set to an absolute
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
  2214
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2215
    "Modified: 15.7.1996 / 09:51:21 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2216
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2217
1327
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2218
extentRule
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2219
    "return the extent block - non public; this will vanish without notice"
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2220
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2221
    ^ extentRule
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2222
!
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2223
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  2224
frame
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  2225
    "compatibility with displayObjects: returns my bounds"
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  2226
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  2227
    ^ self bounds
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  2228
!
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  2229
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2230
geometryLayout
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2231
    "this method will vanish, as soon as all implementations of
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2232
     #layout: are removed ...
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2233
     (conflict for example in label>>layout:).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2234
     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
  2235
     notice."
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
    ^ here layout
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2238
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2239
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2240
geometryLayout:aLayoutObject
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2241
    "this method will vanish, as soon as all implementations of
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2242
     #layout: are removed ...
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2243
     (conflict for example in label>>layout:).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2244
     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
  2245
     notice."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2246
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2247
    here layout:aLayoutObject
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2248
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2249
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2250
height:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2251
    "set the views height in pixels"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2252
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2253
    self extent:(width @ aNumber)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2254
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2255
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2256
heightIncludingBorder
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2257
    "return my height including border 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2258
     (this is my height as seen from the outside view;
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2259
      while #height returns the height as seen by myself)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2260
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2261
    ^ height + (2*borderWidth)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2262
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2263
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2264
horizontalInset:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2265
    "set the insets of the left/right edge; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2266
     positive makes it smaller, negative makes it larger"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2267
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2268
    insets isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2269
	insets := Array with:0 with:0 with:0 with:0
135
claus
parents:
diff changeset
  2270
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2271
    insets at:1 put:aNumber.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2272
    insets at:3 put:aNumber.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2273
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2274
    "force recomputation"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2275
"/    drawableId isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2276
"/        self originChangedFlag:true
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2277
"/    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2278
	self containerChangedSize.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2279
"/    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2280
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2281
    "Modified: 19.7.1996 / 17:30:25 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2282
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2283
1048
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2284
initialExtent:extent
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2285
    "set the views extent, but dont change its explicitExtent setting.
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2286
     a variant of #extent."
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2287
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2288
    |expl|
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2289
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2290
    expl := explicitExtent.
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2291
    self extent:extent.
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2292
    explicitExtent := expl
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2293
!
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2294
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2295
initialHeight:aNumber
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2296
    "set the views height in pixels, but dont change its explicitExtent setting"
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2297
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2298
    self initialExtent:(width @ aNumber)
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2299
!
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2300
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2301
initialWidth:aNumber
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2302
    "set the views width in pixels, but dont change its explicitExtent setting"
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2303
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2304
    self initialExtent:(aNumber @ height)
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2305
!
f6d383b7f113 kludge interface added: #initialExtent / initialWidth & initialHeight
dq
parents: 1039
diff changeset
  2306
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2307
innerHeight
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2308
    "return the height of the view minus any 3D-shadow-borders"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2309
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2310
    (margin == 0) ifTrue:[^ height].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2311
    ^ height - (2 * margin)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2312
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2313
369
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2314
innerHeight:pixels
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2315
    "set the height of the view plus any 3D-shadow-borders.
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2316
     This does not work with a relative size."
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2317
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2318
    ^ self height:( pixels + (margin + self innerVerticalMargin * 2) ).
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2319
!
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2320
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2321
innerHorizontalMargin
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2322
    "return any additional inner margin (i.e. contents margin).
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2323
     This should be redefined by views which do add margins
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2324
     (for example: textViews do this)"
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2325
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2326
    ^ 0
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2327
!
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2328
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2329
innerVerticalMargin
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2330
    "return any additional inner margin (i.e. contents margin).
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2331
     This should be redefined by views which do add margins
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2332
     (for example: textViews do this)"
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2333
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2334
    ^ 0
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2335
!
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2336
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2337
innerWidth
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2338
    "return the width of the view minus any 3D-shadow-borders"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2339
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2340
    (level == 0) ifTrue:[^ width].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2341
    ^ width - (2 * margin)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2342
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2343
369
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2344
innerWidth:pixels
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2345
    "set the width of the view plus any 3D-shadow-borders.
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2346
     This does not work with a relative size."
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2347
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2348
    ^ self width:( pixels + (margin + self innerHorizontalMargin * 2) ).
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2349
!
4a909fb26d3f innerWidth: / innerHeight:
Claus Gittinger <cg@exept.de>
parents: 365
diff changeset
  2350
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2351
inset:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2352
    "set all insets; positive makes the view smaller,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2353
     negative makes it larger."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2354
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2355
    self allInset:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2356
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2357
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2358
layout
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2359
    "return the layout object which controls my geometry.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2360
     Currently, this is nil in most cases, and my geometry is
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2361
     defined by relativeOrigin/relativeCorner/relativeExtent,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2362
     originRule/extentRule/cornerRule and inset.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2363
     Applications should be changed to use layoutObjects,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2364
     since the above listed instance variables will vanish."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2365
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2366
    ^ layout
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2367
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2368
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2369
layout:aLayoutObject
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2370
    "set the layout object which controls my geometry.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2371
     Currently, this is almost nowhere used but views will be
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2372
     incrementally changed to use this new geometry management."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2373
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2374
    layout := aLayoutObject.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2375
    superView isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2376
	self originChangedFlag:true.
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2377
	self cornerChangedFlag:true.
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2378
	self extentChangedFlag:true.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2379
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2380
	self containerChangedSize.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2381
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2382
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2383
    "Modified: 19.9.1995 / 16:17:25 / claus"
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2384
    "Modified: 19.7.1996 / 17:30:27 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2385
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2386
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2387
left
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2388
    "return the x position of the left border (in pixels)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2389
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2390
    ^ left
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2391
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2392
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2393
left:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2394
    "set the x position"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2395
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2396
    self origin:(aNumber @ top)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2397
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2398
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2399
left:newLeft top:newTop width:newWidth height:newHeight
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2400
    "another way of specifying origin and extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2401
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2402
    self origin:(newLeft @ newTop) extent:(newWidth @ newHeight)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2403
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2404
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2405
leftInset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2406
    "return the inset of the left edge; positive is to the right,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2407
     negative to the left"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2408
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2409
    insets isNil ifTrue:[^ 0].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2410
    ^ insets at:1 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2411
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2412
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2413
leftInset:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2414
    "set the inset of the left edge; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2415
     positive is to the right (view becomes smaller),
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2416
     negative to the left (becomes larger)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2417
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2418
    insets isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2419
	insets := Array with:0 with:0 with:0 with:0
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2420
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2421
    insets at:1 put:aNumber.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2422
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2423
    "force recomputation"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2424
"/    drawableId isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2425
"/        self originChangedFlag:true
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2426
"/    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2427
	self containerChangedSize.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2428
"/    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2429
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2430
    "Modified: 19.7.1996 / 17:30:30 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2431
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2432
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2433
makeFullyVisible
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2434
    "make sure, that the view is fully visible by shifting it
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2435
     into the visible screen area if nescessary.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2436
     This method will be moved to StandardSystemView ..."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2437
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2438
    |devBot devRight newTop newLeft|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2439
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2440
    newTop := top.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2441
    newLeft := left.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2442
1703
b77cc326916d take usableExtent as max.
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
  2443
    ((top + height) > (devBot := device usableHeight)) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2444
	newTop := devBot - height
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2445
    ].
1703
b77cc326916d take usableExtent as max.
Claus Gittinger <cg@exept.de>
parents: 1702
diff changeset
  2446
    ((left + width) > (devRight := device usableWidth)) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2447
	newLeft := devRight - width
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2448
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2449
    (newTop < 0) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2450
	newTop := 0.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2451
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2452
    (newLeft < 0) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2453
	newLeft := 0
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2454
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2455
    ((newTop ~~ top) or:[newLeft ~~ left]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2456
	self origin:newLeft @ newTop
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2457
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2458
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2459
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  2460
makeRoundViewShapeWithBorder:bw
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  2461
    "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
  2462
     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
  2463
3167
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2464
    self makeRoundViewShapeWithBorder:bw opaque:true.
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2465
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2466
!
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2467
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2468
makeRoundViewShapeWithBorder:bw opaque:opaque
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2469
    "setup my window for a round shaped view;
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2470
     this is not supported by all devices"
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2471
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2472
    |extent shapeForm borderForm w h f|
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  2473
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  2474
    device supportsRoundShapedViews ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2475
	"/ TODO: add code for round shaped view (mswin)
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  2476
    ].
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  2477
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  2478
    device supportsArbitraryShapedViews ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2479
	extent := self extent.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2480
	w := extent x.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2481
	h := extent y.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2482
	borderForm := Form extent:extent.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2483
	shapeForm  := Form extent:extent.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2484
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2485
	borderForm fillArcX:0 y:0 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2486
		  width:w
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2487
		 height:h
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2488
		   from:0
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2489
		  angle:360.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2490
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2491
	opaque ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2492
	    f := borderForm.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2493
	    borderForm foreground:(Color colorId:0).
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2494
	] ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2495
	    f := shapeForm.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2496
	    shapeForm foreground:(Color colorId:1).
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2497
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2498
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2499
	f fillArcX:lineWidth y:lineWidth 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2500
		width:w - (bw * 2)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2501
	       height:h - (bw * 2)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2502
		 from:0
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2503
		angle:360.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2504
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2505
	self borderShape:borderForm.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2506
	self viewShape:shapeForm.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2507
	^ self.
3474
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2508
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2509
"/
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2510
"/        extent := self extent.
3167
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2511
"/
3474
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2512
"/        w := extent x.  
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2513
"/        h := extent y.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2514
"/        borderForm := Form width:w height:h.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2515
"/        "/        borderForm fill:(Color colorId:0).
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2516
"/
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2517
"/        shapeForm := Form width:w height:h.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2518
"/        "/        shapeForm fill:(Color colorId:0).
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2519
"/
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2520
"/        borderForm foreground:(Color colorId:1).
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2521
"/        borderForm 
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2522
"/            fillArcX:0 y:0 
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2523
"/            width:w
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2524
"/            height:h
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2525
"/            from:0
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2526
"/            angle:360.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2527
"/
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2528
"/        opaque ifFalse:[
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2529
"/            f := borderForm.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2530
"/            borderForm foreground:(Color colorId:0).
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2531
"/        ] ifTrue:[
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2532
"/            f := shapeForm.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2533
"/            shapeForm foreground:(Color colorId:1).
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2534
"/        ].
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2535
"/        f 
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2536
"/            fillArcX:bw y:bw 
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2537
"/            width:(w - (bw * 2))
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2538
"/            height:(h - (bw * 2))
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2539
"/            from:0
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2540
"/            angle:360.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2541
"/
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2542
"/        self borderShape:borderForm.
2043444bdc24 statements after return
Claus Gittinger <cg@exept.de>
parents: 3473
diff changeset
  2543
"/        self viewShape:shapeForm
3167
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2544
    ]
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2545
!
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2546
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2547
makeTransparentRectangularViewShapeWithBorder:bw
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2548
    "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
  2549
     this is not supported by all devices"
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2550
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2551
    |extent shapeForm borderForm w h f|
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2552
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2553
"/    device supportsPolygonShapedViews ifTrue:[
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2554
"/        "/ TODO: add code for mswin
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2555
"/    ].
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2556
9dc9abd86ba2 fixed round shaped transparent views (Region)
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2557
    device supportsArbitraryShapedViews ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2558
	extent := self extent.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2559
	w := extent x.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2560
	h := extent y.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2561
	borderForm := Form extent:extent.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2562
	shapeForm  := Form extent:extent.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2563
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2564
	borderForm 
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2565
	    fillRectangleX:0 y:0
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2566
	    width:w
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2567
	    height:h.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2568
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2569
	f := borderForm.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2570
	borderForm foreground:(Color colorId:0).
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2571
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2572
	borderForm
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2573
	    fillRectangleX:bw y:bw
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2574
	    width:w - (bw * 2)
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2575
	    height:h - (bw * 2).
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2576
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2577
	self borderShape:borderForm.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2578
	self viewShape:shapeForm.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  2579
	^ self.
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  2580
    ]
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  2581
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  2582
!
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  2583
2127
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  2584
maxExtent
2103
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  2585
    "for compatibility with StdSysView"
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  2586
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  2587
    ^ nil
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  2588
!
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  2589
2127
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  2590
minExtent
2103
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  2591
    "for compatibility with StdSysView"
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  2592
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  2593
    ^ nil
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  2594
!
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  2595
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2596
origin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2597
    "return the origin (in pixels)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2598
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2599
    ^ left@top
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
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2602
origin:origin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2603
    "set the views origin; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2604
     origin may be:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2605
	a point 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2606
	    where integer fields mean 'pixel-values'
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2607
	    and float values mean 'relative-to-superview'
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2608
	    and nil means 'take current value';
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2609
     or a block returning a point which is interpreted as above.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2610
     Please migrate to use layout objects."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2611
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2612
    |newLeft newTop pixelOrigin o|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2613
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2614
    origin isBlock ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2615
	originRule := origin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2616
	drawableId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2617
	    pixelOrigin := origin value
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2618
	] ifFalse:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2619
	    self originChangedFlag:true
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2620
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2621
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2622
	o := origin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2623
	newLeft := origin x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2624
	newTop := origin y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2625
	newLeft isNil ifTrue:[newLeft := left].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2626
	newTop isNil ifTrue:[newTop := top].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2627
	o := newLeft @ newTop.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2628
	((newLeft isInteger not) or:[newTop isInteger not]) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2629
	    relativeOrigin := o.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2630
	    pixelOrigin := self originFromRelativeOrigin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2631
	    pixelOrigin isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2632
		self originChangedFlag:true
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2633
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2634
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2635
	    relativeOrigin := nil.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2636
	    pixelOrigin := o
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2637
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2638
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2639
    pixelOrigin notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2640
	self pixelOrigin:pixelOrigin
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2641
    ].
573
578ae7a2f7fa clear any relative origin/extent, if set to an absolute
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
  2642
578ae7a2f7fa clear any relative origin/extent, if set to an absolute
Claus Gittinger <cg@exept.de>
parents: 566
diff changeset
  2643
    "Modified: 19.4.1996 / 15:12:36 / cg"
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
origin:origin corner:corner 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2647
    "set both origin and extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2648
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2649
    |newLeft newTop newRight newBot|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2650
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2651
    explicitExtent := true.
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2652
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2653
    "do it as one operation if possible"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2654
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2655
    origin isBlock ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2656
	corner isBlock ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2657
	    newLeft := origin x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2658
	    newLeft isInteger ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2659
		newTop := origin y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2660
		newTop isInteger ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2661
		    newRight := corner x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2662
		    newRight isInteger ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2663
			newBot := corner y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2664
			newBot isInteger ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2665
			    self pixelOrigin:origin corner:corner 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2666
			]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2667
		    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2668
		]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2669
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2670
	]
135
claus
parents:
diff changeset
  2671
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2672
    self origin:origin.
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2673
    self corner:corner
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2674
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2675
    "Modified: 15.7.1996 / 09:52:43 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2676
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2677
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2678
origin:origin extent:extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2679
    "set both origin and extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2680
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2681
    |newLeft newTop newWidth newHeight|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2682
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2683
    explicitExtent := true.
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2684
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2685
    "do it as one operation if possible"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2686
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2687
    origin isBlock ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2688
	extent isBlock ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2689
	    newLeft := origin x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2690
	    newLeft isInteger ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2691
		newTop := origin y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2692
		newTop isInteger ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2693
		    newWidth := extent x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2694
		    newWidth isInteger ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2695
			newHeight := extent y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2696
			newHeight isInteger ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2697
			    self pixelOrigin:origin extent:extent
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2698
			]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2699
		    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2700
		]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2701
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2702
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2703
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2704
    self extent:extent.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2705
    self origin:origin
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2706
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  2707
    "Modified: 15.7.1996 / 09:52:39 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2708
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2709
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2710
originRelativeTo:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2711
    "return the origin (in pixels) relative to a superView,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2712
     or relative to the rootView (if the aView argument is nil).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2713
     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
  2714
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2715
    |currentView
2414
1d8968995199 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2410
diff changeset
  2716
     bw   "{ Class: SmallInteger }"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2717
     sumX "{ Class: SmallInteger }"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2718
     sumY "{ Class: SmallInteger }" |
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2719
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2720
    currentView := self.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2721
    sumX := 0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2722
    sumY := 0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2723
    [currentView notNil] whileTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2724
	(currentView == aView) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2725
	    ^ (sumX @ sumY)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2726
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2727
	bw := currentView borderWidth.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2728
	sumX := sumX + (currentView left) + bw.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2729
	sumY := sumY + (currentView top) + bw.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2730
	currentView := currentView superView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2731
    ].
729
d2fdca1c2895 eliminated references to RootView
Claus Gittinger <cg@exept.de>
parents: 727
diff changeset
  2732
    (aView isNil or:[aView == device rootView]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2733
	"return relative to screen ..."
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2734
	^ (sumX @ sumY)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2735
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2736
    ^ nil
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
     |top sub1 sub2|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2740
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2741
     top := StandardSystemView new.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2742
     top extent:200@200.   
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2743
     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
  2744
     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
  2745
     top openAndWait.
697
cba925eed3da showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  2746
     Transcript show:'button in top:'; showCR:(sub2 originRelativeTo:top).
cba925eed3da showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 696
diff changeset
  2747
     Transcript show:'button on screen:'; showCR:(sub2 originRelativeTo:nil).
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2748
    "
2171
df6af7cc7a62 fixed #originRelativeTo: when borderWidth ~~ 0
Claus Gittinger <cg@exept.de>
parents: 2167
diff changeset
  2749
2414
1d8968995199 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2410
diff changeset
  2750
    "Modified: / 5.12.1998 / 14:30:57 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2751
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2752
1327
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2753
originRule
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2754
    "return the origin block - non public; this will vanish without notice"
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2755
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2756
    ^ originRule
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2757
!
51626baefab0 checkin from browser
ca
parents: 1323
diff changeset
  2758
763
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  2759
preferredExtent:anExtentPoint
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  2760
    "override the views own preferredExtent computation,
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  2761
     and let it prefer the size given by the argument."
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  2762
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  2763
    preferredExtent := anExtentPoint.
1038
fb193cba16b6 #preferredExtent: no longer changes the extent
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
  2764
fb193cba16b6 #preferredExtent: no longer changes the extent
Claus Gittinger <cg@exept.de>
parents: 1035
diff changeset
  2765
    "Modified: 22.8.1996 / 13:41:47 / cg"
763
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  2766
!
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  2767
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2768
relativeCorner
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2769
    "return the relative corner or nil"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2770
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2771
    ^ relativeCorner
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2772
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2773
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2774
relativeCorner:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2775
    "set the relative corner"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2776
3627
eefbbc5c3d04 when setting a relativeExtent, clear any relativeCorner
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  2777
    aPoint notNil ifTrue:[relativeExtent := nil].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2778
    relativeCorner := aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2779
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2780
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2781
relativeExtent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2782
    "return the relative extent or nil"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2783
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2784
    ^ relativeExtent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2785
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2786
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2787
relativeExtent:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2788
    "set the relative extent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2789
3627
eefbbc5c3d04 when setting a relativeExtent, clear any relativeCorner
Claus Gittinger <cg@exept.de>
parents: 3626
diff changeset
  2790
    aPoint notNil ifTrue:[relativeCorner := nil].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2791
    relativeExtent := aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2792
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2793
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2794
relativeOrigin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2795
    "return the relative origin or nil"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2796
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2797
    ^ relativeOrigin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2798
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2799
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2800
relativeOrigin:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2801
    "set the relative origin"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2802
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2803
    relativeOrigin := aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2804
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2805
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2806
right
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2807
    "return the x position of the right edge  (in pixels)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2808
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2809
    ^ left + width - 1
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2810
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2811
    "Modified: 31.8.1995 / 19:31:10 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2812
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2813
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2814
right:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2815
    "set the corners x position"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2816
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2817
    self corner:(aNumber @ self corner y)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2818
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2819
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2820
rightInset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2821
    "return the inset of the right edge; positive is to the left,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2822
     negative to the right"
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
    insets isNil ifTrue:[^ 0].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2825
    ^ insets at:3 
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
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2828
rightInset:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2829
    "set the inset of the right edge; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2830
     positive is to the left (view becomes smaller), 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2831
     negative to the right (becomes larger)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2832
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2833
    insets isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2834
	insets := Array with:0 with:0 with:0 with:0
269
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
    insets at:3 put:aNumber.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2837
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2838
    "force recomputation"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2839
"/    drawableId isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2840
"/        self originChangedFlag:true
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2841
"/    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2842
	self containerChangedSize.
135
claus
parents:
diff changeset
  2843
"/    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2844
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2845
    "Modified: 19.7.1996 / 17:30:32 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2846
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2847
3007
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  2848
setOrigin:aPoint
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  2849
    "set the origin only"
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  2850
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  2851
    left := aPoint x.
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  2852
    top := aPoint y.
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  2853
!
1dbdf6ad67ce checkin from browser
Stefan Vogel <sv@exept.de>
parents: 3002
diff changeset
  2854
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2855
sizeFixed:aBoolean
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2856
    "set/clear the fix-size attribute, if supported by concrete subclasses.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2857
     Views which want to resize themselfes as appropriate to their contents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2858
     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
  2859
     true. Currently, only supported by Labels.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2860
     This does NOT prevent the window manager from resizing the view, 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2861
     instead it tell the view to NOT resize ITSELF.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2862
     Added here to provide a common protocol for all views."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2863
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2864
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2865
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2866
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2867
top
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2868
    "return the y position of the top border"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2869
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2870
    ^ top
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2871
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2872
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2873
top:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2874
    "set the y position"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2875
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2876
    self origin:(left @ aNumber)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2877
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2878
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2879
topInset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2880
    "return the inset of the top edge; positive is to the bottom,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2881
     negative to the top"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2882
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2883
    insets isNil ifTrue:[^ 0].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2884
    ^ insets at:2 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2885
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2886
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2887
topInset:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2888
    "set the inset of the top edge; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2889
     positive is to the bottom (view becomes smaller),
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2890
     negative to the top (becomes larger)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2891
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2892
    insets isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2893
	insets := Array with:0 with:0 with:0 with:0
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2894
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2895
    insets at:2 put:aNumber.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2896
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2897
    "force recomputation"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2898
"/    drawableId isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2899
"/        self originChangedFlag:true
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2900
"/    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2901
	self containerChangedSize.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2902
"/    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2903
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2904
    "Modified: 19.7.1996 / 17:30:45 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2905
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2906
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2907
verticalInset:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2908
    "set the insets of the top/bottom edge; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2909
     positive makes it smaller, negative makes it larger"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2910
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2911
    insets isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2912
	insets := Array with:0 with:0 with:0 with:0
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2913
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2914
    insets at:2 put:aNumber.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2915
    insets at:4 put:aNumber.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2916
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2917
    "force recomputation"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2918
"/    drawableId isNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  2919
"/        self originChangedFlag:true
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2920
"/    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  2921
	self containerChangedSize.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2922
"/    ]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2923
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  2924
    "Modified: 19.7.1996 / 17:30:50 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2925
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2926
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2927
viewRectangle
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2928
    "return the inside area.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2929
     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
  2930
     to base relative coordinates on.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2931
     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
  2932
     margins required for 3D levels) is ok.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2933
     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
  2934
     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
  2935
     (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
  2936
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2937
    |m2|
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2938
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2939
    m2 := margin + margin.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2940
    ^ (margin @ margin) extent:((width - m2) @ (height - m2))
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2941
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2942
    "Modified: 8.2.1996 / 20:05:00 / cg"
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2943
!
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  2944
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2945
width:aNumber
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2946
    "set the views width in pixels"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2947
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2948
    self extent:(aNumber @ height)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2949
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2950
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2951
widthIncludingBorder
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2952
    "return my width including border
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2953
     (this is my width as seen from the outside view;
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2954
      while #width returns the width as seen by myself)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2955
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2956
    ^ width + (2*borderWidth)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2957
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2958
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2959
!SimpleView methodsFor:'accessing-hierarchy'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  2960
756
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  2961
components
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  2962
    "return the collection of non-view components"
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  2963
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  2964
    ^ components
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  2965
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  2966
    "Created: 28.5.1996 / 23:59:37 / cg"
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  2967
!
5358dbd9d4be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 754
diff changeset
  2968
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  2969
container
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  2970
    "return my container"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  2971
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  2972
    ^ superView
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  2973
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  2974
    "Created: 5.6.1996 / 01:08:36 / cg"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  2975
    "Modified: 10.1.1997 / 19:47:59 / cg"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  2976
!
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  2977
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  2978
container:aContainer
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  2979
    "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
  2980
3558
5b0c805753aa fixed container: (no error if same container is given)
martin
parents: 3556
diff changeset
  2981
    superView == aContainer ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2982
	"/ no change 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2983
	^ self.
3558
5b0c805753aa fixed container: (no error if same container is given)
martin
parents: 3556
diff changeset
  2984
    ].
5b0c805753aa fixed container: (no error if same container is given)
martin
parents: 3556
diff changeset
  2985
3485
ee2792750943 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3474
diff changeset
  2986
    (drawableId notNil) ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2987
	"/ actually, this is worth an exception
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2988
	"/ ('View [error]: ' , self printString , ' already realized - cannot change container') errorPrintCR.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2989
	self error:'already realized - cannot change container' mayProceed:true.
3485
ee2792750943 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3474
diff changeset
  2990
    ].
1296
dc646cdf78f0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
  2991
    (superView notNil and:[superView ~~ aContainer]) ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2992
	"/ actually, this is worth an exception
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2993
	('View [warning]: ' , self printString , ' already has a container') errorPrintCR.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  2994
	superView removeComponent:self.
1296
dc646cdf78f0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
  2995
    ].
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  2996
    superView := aContainer
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  2997
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  2998
    "Created: 9.5.1996 / 00:40:56 / cg"
1297
6fe5dfeba2c8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1296
diff changeset
  2999
    "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
  3000
!
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3001
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3002
lower
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3003
    "bring to back"
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
    drawableId isNil ifTrue:[self create].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3006
    device lowerWindow:drawableId
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
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3009
     Transcript topView lower
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
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3012
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3013
raise
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3014
    "bring to front"
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
    drawableId isNil ifTrue:[self create].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3017
    device raiseWindow:drawableId
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3018
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3019
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3020
     Transcript topView raise
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
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3023
3625
e8664f0060b5 + setContainer:
Claus Gittinger <cg@exept.de>
parents: 3617
diff changeset
  3024
setContainer:aContainer
e8664f0060b5 + setContainer:
Claus Gittinger <cg@exept.de>
parents: 3617
diff changeset
  3025
    "set my container (i.e. superView) to be aContainer"
e8664f0060b5 + setContainer:
Claus Gittinger <cg@exept.de>
parents: 3617
diff changeset
  3026
e8664f0060b5 + setContainer:
Claus Gittinger <cg@exept.de>
parents: 3617
diff changeset
  3027
    superView := aContainer
e8664f0060b5 + setContainer:
Claus Gittinger <cg@exept.de>
parents: 3617
diff changeset
  3028
!
e8664f0060b5 + setContainer:
Claus Gittinger <cg@exept.de>
parents: 3617
diff changeset
  3029
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3030
subViews
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3031
    "return the collection of subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3032
3626
fa436ffc8ae7 subViews always returns a collection
Claus Gittinger <cg@exept.de>
parents: 3625
diff changeset
  3033
    ^ subViews ? #()
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3034
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3035
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3036
subViews:aListOfViews
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3037
    "set the collection of subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3038
3616
0ddaf2ce9b06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3614
diff changeset
  3039
    self obsoleteMethodWarning.
0ddaf2ce9b06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3614
diff changeset
  3040
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3041
    subViews := aListOfViews.
135
claus
parents:
diff changeset
  3042
    subViews notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3043
	subViews do:[:view |
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3044
	    view container:self
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3045
	]
135
claus
parents:
diff changeset
  3046
    ]
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3047
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3048
    "Modified: 9.5.1996 / 00:42:28 / cg"
135
claus
parents:
diff changeset
  3049
!
claus
parents:
diff changeset
  3050
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3051
superView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3052
    "return my superView"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3053
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3054
    ^ superView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3055
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3056
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3057
superView:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3058
    "set my superView to be aView"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3059
3434
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  3060
    <resource:#obsolete>
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  3061
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3062
    self obsoleteMethodWarning:'use #container:'.
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3063
    self container:aView.
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3064
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3065
    "Modified: 9.5.1996 / 00:46:24 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3066
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3067
662
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3068
topComponent
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3069
    "return the topmost component - thats the one with no superview.
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3070
     For ST-80 compatibility."
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3071
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3072
    ^ self topView
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3073
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3074
    "Modified: 9.5.1996 / 01:40:24 / cg"
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3075
!
8263420fe544 added #topComponent for VisualPart protocol compatibility
Claus Gittinger <cg@exept.de>
parents: 660
diff changeset
  3076
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3077
topView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3078
    "return the topView - thats the one with no superview"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3079
3425
9b2a3191f47b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3423
diff changeset
  3080
    |v next n|
9b2a3191f47b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3423
diff changeset
  3081
9b2a3191f47b checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3423
diff changeset
  3082
    n := 1.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3083
    v := self.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3084
    [v notNil] whileTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3085
	(next := v container) isNil ifTrue:[^ v].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3086
	v := next.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3087
	n := n + 1.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3088
	n > 1000 ifTrue:[self halt:'oops - circular superView chain'].
135
claus
parents:
diff changeset
  3089
    ].
claus
parents:
diff changeset
  3090
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3091
    ^ nil
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3092
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3093
    "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
  3094
!
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3095
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3096
view
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3097
    "return my view - for real views, thats the receiver.
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3098
     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
  3099
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3100
    ^ self
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3101
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3102
    "Created: 4.6.1996 / 21:32:11 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3103
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3104
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3105
!SimpleView methodsFor:'accessing-menus'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3106
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3107
menuHolder
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3108
    "who has the menu ? 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3109
     By default, I have it."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3110
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3111
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3112
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3113
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3114
menuMessage
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3115
    "Return the symbol sent to myself to aquire the menu"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3116
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3117
    ^ #middleButtonMenu
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3118
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3119
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3120
menuPerformer
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3121
    "who should perform the menu actions ? 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3122
     By default, I do it."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3123
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3124
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3125
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3126
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3127
yellowButtonMenu
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3128
    "actually, this should be called 'middleButtonMenu'.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3129
     But for ST-80 compatibility ....
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3130
     This method will vanish, once all views have controllers
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3131
     associated with them; for now, duplicate some code also found in
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3132
     controller."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3133
3821
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3134
    |sym menuHolder|
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3135
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3136
"/    middleButtonMenu notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3137
"/        "/
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3138
"/        "/ has been assigned a static middleButtonMenu
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3139
"/        "/ (or a cached menu)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3140
"/        "/
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3141
"/        ^ middleButtonMenu
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3142
"/    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3143
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3144
    menuHolder := self menuHolder.
3821
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3145
    menuHolder isNil ifTrue:[^ nil].
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3146
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3147
    (menuHolder isKindOf:Menu) ifTrue:[^ menuHolder].
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3148
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3149
    sym := self menuMessage.
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3150
    sym isNil ifTrue:[^ nil].
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3151
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3152
    "
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3153
     mhmh - for backward compatibility, try to ask
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3154
     the model first, then use the views menu.
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3155
    "
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3156
    (menuHolder respondsTo:sym) ifFalse:[
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3157
        (self respondsTo:sym) ifTrue:[
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3158
            menuHolder := self
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3159
        ]
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3160
    ].
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3161
    "
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3162
     ask the menuHolder for the menu
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3163
    "
42ec29c44e21 special case: menuHolder is already a menu.
tm
parents: 3820
diff changeset
  3164
    ^ menuHolder perform:sym.
135
claus
parents:
diff changeset
  3165
! !
claus
parents:
diff changeset
  3166
claus
parents:
diff changeset
  3167
!SimpleView methodsFor:'accessing-misc'!
claus
parents:
diff changeset
  3168
claus
parents:
diff changeset
  3169
bitGravity
claus
parents:
diff changeset
  3170
    "return the bitGravity - thats the direction where the contents will move
claus
parents:
diff changeset
  3171
     when the the view is resized."
claus
parents:
diff changeset
  3172
claus
parents:
diff changeset
  3173
    ^ bitGravity
claus
parents:
diff changeset
  3174
!
claus
parents:
diff changeset
  3175
claus
parents:
diff changeset
  3176
bitGravity:gravity
claus
parents:
diff changeset
  3177
    "set the bitGravity - thats the direction where the contents will move
claus
parents:
diff changeset
  3178
     when the view is resized."
claus
parents:
diff changeset
  3179
claus
parents:
diff changeset
  3180
    bitGravity ~~ gravity ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3181
	bitGravity := gravity.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3182
	drawableId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3183
	    device setBitGravity:gravity in:drawableId
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3184
	]
135
claus
parents:
diff changeset
  3185
    ]
claus
parents:
diff changeset
  3186
!
claus
parents:
diff changeset
  3187
737
f194e4851d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
  3188
clippingRectangle:aRectangle
153
claus
parents: 151
diff changeset
  3189
    "set the clipping rectangle for drawing (in logical coordinates);
754
a50c0b52aa82 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 753
diff changeset
  3190
     a nil argument turns off clipping (i.e. whole view is drawable).
153
claus
parents: 151
diff changeset
  3191
     Redefined to care for any margin."
claus
parents: 151
diff changeset
  3192
claus
parents: 151
diff changeset
  3193
    |x y w h|
claus
parents: 151
diff changeset
  3194
claus
parents: 151
diff changeset
  3195
    aRectangle isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3196
	clipRect isNil ifTrue:[^ self].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3197
	gcId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3198
	    device noClipIn:drawableId gc:gcId
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3199
	]
153
claus
parents: 151
diff changeset
  3200
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3201
	clipRect notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3202
	    (clipRect = aRectangle) ifTrue:[^ self]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3203
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3204
	gcId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3205
	    x := aRectangle left.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3206
	    y := aRectangle top.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3207
	    w := aRectangle width.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3208
	    h := aRectangle height.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3209
	    transformation notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3210
		x := transformation applyToX:x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3211
		y := transformation applyToY:y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3212
		w := transformation applyScaleX:w.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3213
		h := transformation applyScaleY:h.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3214
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3215
	    (x isMemberOf:SmallInteger) ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3216
		w := w + (x - x truncated).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3217
		x := x truncated
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3218
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3219
	    (y isMemberOf:SmallInteger) ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3220
		h := h + (y - y truncated).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3221
		y := y truncated
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3222
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3223
	    (w isMemberOf:SmallInteger) ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3224
		w := w truncated + 1
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3225
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3226
	    (h isMemberOf:SmallInteger) ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3227
		h := h truncated + 1
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3228
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3229
	    x < margin ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3230
		x := margin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3231
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3232
	    y < margin ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3233
		y := margin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3234
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3235
	    x + w - 1 >= (width-margin) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3236
		w := width - margin - x
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3237
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3238
	    y + h - 1 >= (height-margin) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3239
		h := height - margin - y
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3240
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3241
	    device setClipX:x y:y width:w height:h in:drawableId gc:gcId
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3242
	]
153
claus
parents: 151
diff changeset
  3243
    ].
claus
parents: 151
diff changeset
  3244
    clipRect := aRectangle
737
f194e4851d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
  3245
f194e4851d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 734
diff changeset
  3246
    "Created: 28.5.1996 / 19:50:03 / cg"
754
a50c0b52aa82 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 753
diff changeset
  3247
    "Modified: 28.5.1996 / 22:32:15 / cg"
153
claus
parents: 151
diff changeset
  3248
!
claus
parents: 151
diff changeset
  3249
claus
parents: 151
diff changeset
  3250
fullName
claus
parents: 151
diff changeset
  3251
    "return my full name to be used for resource-access"
claus
parents: 151
diff changeset
  3252
claus
parents: 151
diff changeset
  3253
    superView notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3254
	^ superView fullName , '.' , name
153
claus
parents: 151
diff changeset
  3255
    ].
claus
parents: 151
diff changeset
  3256
    ^ name
claus
parents: 151
diff changeset
  3257
!
claus
parents: 151
diff changeset
  3258
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3259
name
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3260
    "return my name component to be used for resource-access"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3261
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3262
    ^ name
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3263
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3264
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3265
name:aString
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3266
    "set my name component to be used for resource-access"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3267
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3268
    name := aString
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3269
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3270
153
claus
parents: 151
diff changeset
  3271
processName
claus
parents: 151
diff changeset
  3272
    "return a string to be shown in the process monitor"
claus
parents: 151
diff changeset
  3273
claus
parents: 151
diff changeset
  3274
    ^ self name
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3275
!
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
styleSheet 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3278
    "return the styleSheet. This is set at early view-creation time,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3279
     from the defaultStyleSheet which is valid at that time.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3280
     It is not affected by later defaultStyle changes"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3281
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3282
    ^ styleSheet
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3283
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3284
    "Created: 10.9.1995 / 11:02:20 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3285
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3286
3384
4af722e8336c allow change of the styleSheet
tm
parents: 3383
diff changeset
  3287
styleSheet:aStyleSheet 
4af722e8336c allow change of the styleSheet
tm
parents: 3383
diff changeset
  3288
    "change the styleSheet. Knowledgable users only, please."
4af722e8336c allow change of the styleSheet
tm
parents: 3383
diff changeset
  3289
4af722e8336c allow change of the styleSheet
tm
parents: 3383
diff changeset
  3290
    styleSheet := aStyleSheet.
4af722e8336c allow change of the styleSheet
tm
parents: 3383
diff changeset
  3291
!
4af722e8336c allow change of the styleSheet
tm
parents: 3383
diff changeset
  3292
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3293
viewGravity
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3294
    "return the viewGravity - thats the direction where the view will move
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3295
     when the superView is resized."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3296
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3297
    ^ viewGravity
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3298
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3299
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3300
viewGravity:gravity
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3301
    "set the viewGravity - thats the direction where the view will move
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3302
     when the superView is resized."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3303
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3304
    viewGravity ~~ gravity ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3305
	viewGravity := gravity.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3306
	drawableId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3307
	    device setWindowGravity:gravity in:drawableId
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3308
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3309
    ]
140
claus
parents: 138
diff changeset
  3310
! !
claus
parents: 138
diff changeset
  3311
claus
parents: 138
diff changeset
  3312
!SimpleView methodsFor:'accessing-mvc'!
claus
parents: 138
diff changeset
  3313
1187
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3314
application
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3315
    "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
  3316
     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
  3317
1751
15381229b2d8 accessing application through superView (not topView)
ca
parents: 1750
diff changeset
  3318
    superView notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3319
	^ superView application
1187
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3320
    ].
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3321
    ^ nil
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3322
1190
2ae6212c581d avoid recursion trouble
Claus Gittinger <cg@exept.de>
parents: 1187
diff changeset
  3323
    "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
  3324
!
c41d3a2591fd added #application - in case a non-topView is opened as topView,
Claus Gittinger <cg@exept.de>
parents: 1182
diff changeset
  3325
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3326
aspect:aspectSymbol
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3327
    "ST-80 style updating: If a views aspectSymbol is nonNil, 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3328
     it will respond to changes of this aspect from the model.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3329
     Alias for aspectMessage: for ST-80 compatibility."
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
    self aspectMessage:aspectSymbol
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3332
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3333
2919
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3334
client:anApplicationModel
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3335
    "release existing components and generate new components from
3251
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3336
     the applications windowSpec.
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3337
     ATTENTION: this is a low level interface; postBuild is NOT invoked"
2919
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3338
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3339
    ^ self client:anApplicationModel spec:#windowSpec
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3340
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3341
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3342
!
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3343
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3344
client:anApplication spec:aWindowSpecOrSelector
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3345
    "release existing components and generate new components from
3251
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3346
     the applications windowSpec.
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3347
     ATTENTION: this is a low level interface; postBuild is NOT invoked"
2919
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3348
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3349
  ^ self client:anApplication spec:aWindowSpecOrSelector builder:nil
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3350
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3351
!
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3352
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3353
client:anApplication spec:aWindowSpecOrSpecSymbol builder:aBuilder
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3354
    "release existing components and generate new components from
3251
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3355
     the given windowSpec, using the given builder.
3837
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3356
     ATTENTION: this is a low level interface; postBuild is NOT invoked.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3357
     TODO: this code is so ugly and badly designed - it must be redesigned
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3358
     or at least well documented."
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3359
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3360
    |builder subSpec notAnAppModel savedApp savedView masterApp|
2919
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3361
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3362
    aWindowSpecOrSpecSymbol isNil ifTrue:[^ self].
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3363
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3364
    (builder := aBuilder) isNil ifTrue:[
3837
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3365
        "/ problem: anApplication could have no builder
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3366
        "/          or anApplication could be a non-appModel (theoretically - only providing a spec)
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3367
        notAnAppModel := false.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3368
        builder := anApplication perform:#builder ifNotUnderstood:[notAnAppModel := true. nil].
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3369
        builder isNil ifTrue:[
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3370
            notAnAppModel ifTrue:[
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3371
                 builder := UIBuilder new.    
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3372
            ] ifFalse:[
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3373
                 anApplication createBuilder.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3374
                 builder := anApplication builder
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3375
            ]
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3376
        ]
2919
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3377
    ].
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3378
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3379
    (subSpec := aWindowSpecOrSpecSymbol) isSymbol ifTrue:[
3837
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3380
        anApplication isNil ifTrue:[^ self].
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3381
        subSpec := anApplication class interfaceSpecFor:aWindowSpecOrSpecSymbol.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3382
        subSpec isNil ifTrue:[
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3383
            ^ self
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3384
        ].
3382
9cbadc6538b2 client:spec:builder again
tm
parents: 3378
diff changeset
  3385
    ].
9cbadc6538b2 client:spec:builder again
tm
parents: 3378
diff changeset
  3386
9cbadc6538b2 client:spec:builder again
tm
parents: 3378
diff changeset
  3387
    "/ if the appl is not the master, but the masters builder is used,
3837
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3388
    "/ we have to temporarily change the builders window
3395
d10fb1559329 check for #masterApplication being understood
Claus Gittinger <cg@exept.de>
parents: 3394
diff changeset
  3389
d10fb1559329 check for #masterApplication being understood
Claus Gittinger <cg@exept.de>
parents: 3394
diff changeset
  3390
    masterApp := anApplication perform:#masterApplication ifNotUnderstood:[notAnAppModel := true. nil].
d10fb1559329 check for #masterApplication being understood
Claus Gittinger <cg@exept.de>
parents: 3394
diff changeset
  3391
    (notAnAppModel not and:[anApplication ~~ builder application]) ifTrue:[
3837
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3392
        masterApp ~~ builder application ifTrue:[self halt:'should not happen'].
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3393
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3394
        savedApp := builder application.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3395
        builder application:anApplication.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3396
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3397
        savedView := builder window.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3398
        builder window:self.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3399
        [
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3400
            anApplication buildSubCanvas:subSpec withBuilder:builder.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3401
        ] ensure:[
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3402
            builder window:savedView.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3403
            builder application:savedApp.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3404
        ].
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3405
3382
9cbadc6538b2 client:spec:builder again
tm
parents: 3378
diff changeset
  3406
    ] ifFalse:[
3837
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3407
        savedView := builder window.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3408
        builder window:self.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3409
        [
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3410
            builder buildFromSpec:subSpec in:self.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3411
        ] ensure:[
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3412
            builder window:savedView.
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  3413
        ].
3382
9cbadc6538b2 client:spec:builder again
tm
parents: 3378
diff changeset
  3414
    ].
3251
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3415
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3416
"/    postBuildWith: will be called twice if code below is enabled
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3417
"/    notAnAppModel isNil ifTrue:[
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3418
"/        notAnAppModel := (anApplication isKindOf:ApplicationModel) not
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3419
"/    ].
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3420
"/    notAnAppModel ifTrue:[
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3421
"/        builder buildFromSpec:subSpec in:self.
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3422
"/    ] ifFalse:[
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3423
"/        savedView := builder window.
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3424
"/        builder window:self.
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3425
"/        [
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3426
"/            anApplication buildSubCanvas:subSpec withBuilder:builder.
3604
e32b5044a59e #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3601
diff changeset
  3427
"/        ] ensure:[
3251
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3428
"/            savedView notNil ifTrue:[
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3429
"/                builder window:savedView.
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3430
"/            ]
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3431
"/        ].
10e2a75ecb51 client:spec:builder: postBuild is not invoked
ca
parents: 3247
diff changeset
  3432
"/    ].
2919
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3433
!
a6219b65a111 Moved #client: and #client:spec from SubCanvas
Stefan Vogel <sv@exept.de>
parents: 2917
diff changeset
  3434
140
claus
parents: 138
diff changeset
  3435
controller
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  3436
    "return the controller. For views which implement the controller
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  3437
     functionality themself, return the receiver itself"
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  3438
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  3439
    ^ controller ? self
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  3440
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  3441
    "Modified: / 31.10.1997 / 19:58:10 / cg"
140
claus
parents: 138
diff changeset
  3442
!
claus
parents: 138
diff changeset
  3443
claus
parents: 138
diff changeset
  3444
controller:aController
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  3445
    "set the controller - thats the one handling user events"
140
claus
parents: 138
diff changeset
  3446
claus
parents: 138
diff changeset
  3447
    controller := aController.
claus
parents: 138
diff changeset
  3448
    controller notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3449
	controller view:self.
135
claus
parents:
diff changeset
  3450
    ]
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  3451
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  3452
    "Modified: / 31.10.1997 / 19:58:33 / cg"
135
claus
parents:
diff changeset
  3453
!
claus
parents:
diff changeset
  3454
140
claus
parents: 138
diff changeset
  3455
model
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3456
    "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
  3457
135
claus
parents:
diff changeset
  3458
    ^ nil
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3459
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  3460
    "Modified: 5.6.1996 / 14:17:29 / cg"
135
claus
parents:
diff changeset
  3461
!
claus
parents:
diff changeset
  3462
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3463
sensor
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3464
    "return the views sensor"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3465
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3466
    windowGroup notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3467
	^ windowGroup sensor.
1182
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3468
    ].
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3469
    ^ nil
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3470
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3471
    "Modified: 10.1.1997 / 19:47:13 / cg"
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3472
!
e28b15d4ef95 comments
Claus Gittinger <cg@exept.de>
parents: 1172
diff changeset
  3473
954
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  3474
setController:aController
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  3475
    "set the controller but do not affect the model/view releationship"
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  3476
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  3477
    controller := aController.
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  3478
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  3479
    "Created: 18.7.1996 / 11:43:40 / cg"
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  3480
!
3c3c99d3b40a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 947
diff changeset
  3481
1874
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3482
setWindowGroup:aGroup
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3483
    "set the window group."
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3484
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3485
    windowGroup := aGroup
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3486
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3487
    "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
  3488
!
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3489
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3490
windowGroup
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3491
    "return the window group. For old style views, return nil"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3492
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3493
    ^ windowGroup
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3494
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3495
1874
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3496
windowGroup:newGroup
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3497
    "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
  3498
     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
  3499
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3500
    windowGroup notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3501
	windowGroup removeView:self.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3502
	windowGroup := nil
1874
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3503
    ].
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3504
    windowGroup := newGroup.
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3505
    newGroup notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3506
	newGroup addView:self.
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  3507
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  3508
    ].
1874
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3509
    subViews notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3510
	subViews do:[:aSubview |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3511
	    aSubview windowGroup:newGroup
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3512
	]
1874
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3513
    ].
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  3514
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  3515
    "Modified: 20.8.1997 / 13:26:37 / cg"
269
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
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3518
!SimpleView methodsFor:'accessing-transformation'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3519
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3520
maxComponentBottom
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3521
    "return the maximum of all components bottom"
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3522
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3523
    components isNil ifTrue:[^ 0].
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3524
    ^ components inject:0 into:[:maxSoFar :sub 
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3525
					| (sub bottom) max:maxSoFar].
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3526
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3527
    "Created: 26.5.1996 / 12:44:05 / cg"
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3528
    "Modified: 26.5.1996 / 12:56:39 / cg"
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3529
!
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3530
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3531
maxComponentRight
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3532
    "return the maximum of all components rights"
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3533
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3534
    components isNil ifTrue:[^ 0].
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3535
    ^ components inject:0 into:[:maxSoFar :sub 
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3536
					| (sub right) max:maxSoFar].
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3537
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3538
    "Modified: 26.5.1996 / 12:56:39 / cg"
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3539
    "Created: 26.5.1996 / 13:02:19 / cg"
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3540
!
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  3541
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3542
maxSubViewBottom 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3543
"/    subViews isNil ifTrue:[^ 0].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3544
"/    ^ 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
  3545
      ^ 0
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3546
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3547
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3548
maxSubViewRight 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3549
"/    subViews isNil ifTrue:[^ 0].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3550
"/    ^ 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
  3551
    ^ 0
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3552
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3553
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3554
scale:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3555
    "set the scale factor of the transformation"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3556
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  3557
    super scale:aPoint.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3558
    self computeInnerClip
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3559
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3560
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3561
setViewOrigin:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3562
    "set the viewOrigin - i.e. virtually scroll without redrawing"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3563
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3564
    |p|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3565
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3566
    p := aPoint negated.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3567
    transformation isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3568
	transformation := WindowingTransformation scale:1 translation:p 
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3569
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3570
	transformation translation:p 
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3571
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3572
    clipRect notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3573
	self setInnerClip.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3574
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3575
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3576
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3577
viewOrigin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3578
    "return the viewOrigin; thats the coordinate of the contents 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3579
     which is shown topLeft in the view 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3580
     (i.e. the origin of the visible part of the contents)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3581
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3582
    transformation isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3583
	^ 0@0
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3584
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3585
    ^ transformation translation negated
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3586
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3587
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  3588
visibleArea
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  3589
    "return the rectangle that contains the visible part
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  3590
     of the view in user coordinates."
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  3591
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  3592
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  3593
    transformation isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3594
	^ 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
  3595
    ].
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  3596
    ^ Rectangle origin:(transformation translation negated)
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3597
		extent:((width @ height) scaledBy:(transformation scale)).
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  3598
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  3599
    "Created: 12.7.1996 / 11:57:04 / stefan"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  3600
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  3601
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3602
xOriginOfContents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3603
    "return the x coordinate of the viewOrigin in pixels; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3604
     used by scrollBars to compute thumb position within the document."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3605
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3606
    ^ self viewOrigin x
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3607
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3608
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3609
yOriginOfContents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3610
    "return the y coordinate of the viewOrigin in pixels; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3611
     used by scrollBars to compute thumb position within the document."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3612
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3613
    ^ self viewOrigin y
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3614
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3615
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3616
!SimpleView methodsFor:'accessing-visibility'!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3617
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3618
beInvisible
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3619
    "make the view invisible; if my container is visible,
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3620
     change visibility immediately; 
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3621
     otherwise, arrange for the receiver to be not realized,
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3622
     when the container is made visible."
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3623
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3624
    self hiddenOnRealize:true.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3625
    realized ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3626
	(superView isNil              "/ I am a topView
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3627
	or:[superView realized        "/ superview already shown
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3628
	or:[superView id notNil]])     "/ superview already created
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3629
	    ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3630
		self unmap
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3631
	    ]
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3632
    ]
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3633
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3634
    "Modified: 3.4.1997 / 21:20:40 / cg"
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3635
!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3636
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3637
beVisible
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3638
    "make the view visible; if my container is already visible,
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3639
     change visibility immediately; otherwise, arrange for the receiver
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3640
     to be made visible when the container is made visible.
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3641
     Notice, that the command may not be sent immediately to the display,
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3642
     and that ST/X considers the view to be still invisible until a 
1754
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  3643
     visibility event arrives from the display. 
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  3644
     Thus, the view may remain logically invisible
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3645
     for a while. (see #beVisibleNow for more on this)"
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3646
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3647
    self hiddenOnRealize:false.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3648
    realized ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3649
	superView isNil ifTrue:[                "/ I am a topView
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3650
	    drawableId isNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3651
		"this once was:
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3652
		   self realize.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3653
		 but we don't want Topviews to realize implicitly.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3654
		 BTW. the code doesn't work anyway"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3655
	    ] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3656
		self remap.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3657
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3658
	] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3659
	    (superView realized          "/ superview already shown
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3660
	    or:[superView id notNil])    "/ superview already created
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3661
	    ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3662
		self realize
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3663
	    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  3664
	].
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3665
    ]
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3666
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3667
    "
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3668
     |top topFrame check list|
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3669
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3670
     top := StandardSystemView new.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3671
     top extent:150@400.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3672
     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
  3673
     topFrame horizontalLayout:#leftSpace.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3674
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3675
     topFrame add:(check := CheckBox label:'hidden').
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3676
     check pressAction:[list beInvisible].
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3677
     check releaseAction:[list beVisible].
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3678
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3679
     list := ScrollableView for:SelectionInListView.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3680
     list origin:0.0@0.4 corner:1.0@1.0.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3681
     list list:#('foo' 'bar' 'baz').
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3682
     top add:list.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3683
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3684
     check turnOn.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3685
     list beInvisible.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3686
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3687
     top open
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3688
    "
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3689
1981
0c3b8ef42df8 Take care of views with nil visibleID in #beVisible
Stefan Vogel <sv@exept.de>
parents: 1960
diff changeset
  3690
    "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
  3691
    "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
  3692
    "Modified: / 14.1.1998 / 17:33:15 / stefan"
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3693
!
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3694
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3695
beVisibleNow
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3696
    "make the view visible immediately.
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3697
     In contrast to #beVisible, this waits until the view is really
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3698
     visible."
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3699
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3700
    self beVisible.
3648
95c073f74e25 comments
Claus Gittinger <cg@exept.de>
parents: 3642
diff changeset
  3701
    device sync.    "thats a round-trip; when returning, the view is definitely visible"
95c073f74e25 comments
Claus Gittinger <cg@exept.de>
parents: 3642
diff changeset
  3702
2721
2575a1e771cc mapped event handling
Claus Gittinger <cg@exept.de>
parents: 2719
diff changeset
  3703
"/    realized := true.
2575a1e771cc mapped event handling
Claus Gittinger <cg@exept.de>
parents: 2719
diff changeset
  3704
"/    shown := true.
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3705
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3706
    "Created: 3.4.1997 / 21:23:28 / cg"
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3707
!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3708
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3709
hidden
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3710
    "return true, if the view does not want to be realized
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3711
     automatically when superview is realized"
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3712
3434
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  3713
    <resource:#obsolete>
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  3714
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3715
    self obsoleteMethodWarning:'use #isHiddenOnRealize'.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3716
    ^ hiddenOnRealize
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3717
1754
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  3718
    "Modified: 17.6.1997 / 11:19:55 / cg"
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3719
!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3720
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3721
hidden:aBoolean
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3722
    "if the argument is true, the receiver view will not
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3723
     be realized automatically when superview is realized"
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3724
3434
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  3725
    <resource:#obsolete>
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  3726
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3727
    self obsoleteMethodWarning:'use #beVisible / #beInvisible'.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3728
    hiddenOnRealize := aBoolean
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3729
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3730
    "Modified: 17.1.1996 / 11:45:06 / cg"
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3731
!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3732
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3733
hiddenOnRealize:aBoolean
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3734
    "if the argument is true, the receiver view will not
1754
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  3735
     be mapped (i.e. shown) automatically when the superview is realized.
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3736
     The hiddenOnRealize flag is useful to create views which are
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3737
     to be made visible conditionally or later.
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3738
     For ST-80 compatibility, please use #beVisible / #beInvisible."
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3739
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3740
    hiddenOnRealize := aBoolean
1524
7932774a0429 added #beVisibleNow
Claus Gittinger <cg@exept.de>
parents: 1494
diff changeset
  3741
1754
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  3742
    "Modified: 17.6.1997 / 11:23:26 / cg"
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  3743
!
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  3744
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  3745
isHiddenOnRealize
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3746
    "return true, if the receiver will NOT be mapped when
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3747
     realized. False otherwise.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3748
     The hiddenOnRealize flag is useful to create views which are
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3749
     to be made visible conditionally or later."
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3750
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3751
    ^ hiddenOnRealize
1754
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  3752
a718886d78d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1751
diff changeset
  3753
    "Created: 17.6.1997 / 11:21:42 / cg"
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3754
!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3755
3516
6b4bc198c7f1 added #isVisible
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3756
isVisible
6b4bc198c7f1 added #isVisible
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3757
    "return true, if the view is visible"
6b4bc198c7f1 added #isVisible
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3758
6b4bc198c7f1 added #isVisible
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3759
    ^ self realized
6b4bc198c7f1 added #isVisible
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3760
!
6b4bc198c7f1 added #isVisible
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3761
1938
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  3762
isVisible:aBoolean
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  3763
    "make the view visible or invisible"
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  3764
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  3765
    aBoolean ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3766
	self beVisible
1938
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  3767
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3768
	self beInvisible
1938
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  3769
    ]
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  3770
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  3771
    "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
  3772
!
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  3773
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3774
setVisibilityChannel:aValueHolder 
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3775
    "set the valueHolder, which holds the visible boolean value"
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3776
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3777
    visibilityChannel := aValueHolder
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3778
!
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3779
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3780
shown
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3781
    "return true if the view is shown; false if not.
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3782
     Shown means: the view is mapped and is not completely covered."
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3783
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3784
    ^ shown
3366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  3785
!
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  3786
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3787
visibilityChannel 
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3788
    "return a valueHolder for visible/invisible"
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3789
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3790
    ^ visibilityChannel
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3791
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3792
    "Modified: / 30.3.1999 / 13:49:56 / stefan"
3366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  3793
!
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  3794
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  3795
visibilityChannel:aValueHolder 
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3796
    "set the valueHolder, which holds the visible boolean value"
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3797
3366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  3798
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  3799
    |prev|
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  3800
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3801
    prev := visibilityChannel.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3802
    visibilityChannel := aValueHolder.
3366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  3803
    self setupChannel:aValueHolder for:#visibilityStateChanged withOld:prev
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  3804
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3805
    "
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3806
      |v h|
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3807
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3808
      v := View new.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3809
      v visibilityChannel:(h := ValueHolder with:true).
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3810
      v open.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3811
      Delay waitForSeconds:2.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3812
      h value:false.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3813
      Delay waitForSeconds:2.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3814
      h value:true.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3815
      Delay waitForSeconds:2.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3816
    "
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3817
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3818
    "Created: / 14.1.1998 / 17:11:15 / stefan"
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  3819
    "Modified: / 14.1.1998 / 17:33:40 / stefan"
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3820
! !
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  3821
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3822
!SimpleView methodsFor:'adding & removing components'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3823
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3824
add:aComponent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3825
    "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
  3826
     subComponents."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3827
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3828
    self addComponent:aComponent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3829
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3830
1335
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3831
add:aComponent at:anOrigin 
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3832
    "for ST-80 compatibility.
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3833
     add a component at some origin"
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3834
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3835
    |l comp|
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3836
1614
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  3837
    comp := aComponent.
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  3838
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  3839
"/    (comp isWrapper not
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  3840
"/    or:[comp isLayoutWrapper not]) ifTrue:[
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  3841
"/        comp := LayoutWrapper on:comp
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  3842
"/    ].
1335
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3843
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3844
    l := anOrigin asLayout.
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3845
    comp layout:l.
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3846
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3847
    self addComponent:comp
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3848
1614
480b34925127 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1581
diff changeset
  3849
    "Modified: 18.4.1997 / 20:00:20 / cg"
1335
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3850
!
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  3851
1617
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  3852
add:aComponentOrCollection in:aRectangleOrLayoutFrame 
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3853
    "for ST-80 compatibility.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3854
     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
  3855
     with relative coordinates, or an instance of LayoutFrame, specifying
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3856
     both relative coordinates and the insets."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3857
1617
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  3858
    |l wrapper|
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  3859
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  3860
    aComponentOrCollection isCollection ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3861
	wrapper := View new.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3862
	aComponentOrCollection do:[:aComponent |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3863
	    wrapper add:aComponent
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3864
	]
1617
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  3865
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3866
	wrapper := aComponentOrCollection
1617
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  3867
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3868
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  3869
    l := aRectangleOrLayoutFrame asLayout.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3870
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3871
"/  will soon be replaced by:
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3872
"/    aComponent layout:l.
1617
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  3873
    wrapper geometryLayout:l.
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  3874
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  3875
    self addComponent:wrapper.
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  3876
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  3877
    ^ wrapper
7a9eba5beeed add:in: changed to handle collections
Claus Gittinger <cg@exept.de>
parents: 1615
diff changeset
  3878
1756
d5b82895461e removed debugHalt
Claus Gittinger <cg@exept.de>
parents: 1754
diff changeset
  3879
    "Modified: 17.6.1997 / 18:03:34 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3880
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3881
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3882
addComponent:aComponent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3883
    "components (i.e. gadgets or lightweight views) are being prepared. 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3884
     Dont use this right now for non-views"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3885
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3886
    aComponent isView ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3887
	self addSubView:aComponent
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3888
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3889
	components isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3890
	    components := OrderedCollection new
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3891
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3892
	components add:aComponent.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3893
	aComponent container:self.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3894
	shown ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3895
	    aComponent displayOn:self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3896
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3897
    ]
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3898
683
ecc5d13f22b2 redraw new components if already visible
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
  3899
    "Modified: 13.5.1996 / 21:19:51 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3900
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3901
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3902
addSubView:newView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3903
    "add a view to the collection of subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3904
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3905
    subViews isNil ifTrue:[
3653
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3906
	subViews := OrderedCollection with:newView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3907
    ] ifFalse:[
3653
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3908
	(subViews includesIdentical:newView) ifTrue:[
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3909
	    self error:'trying to add a view twice' mayProceed:true.
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3910
	    ^ self.
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3911
	].
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3912
	subViews add:newView.
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3913
    ].
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3914
    self setContainerIn:newView.
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3915
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3916
    "Modified: 9.5.1996 / 00:47:16 / cg"
269
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
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3919
addSubView:newView after:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3920
    "add a view to the collection of subviews after another view.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3921
     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
  3922
     element at some defined place."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3923
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3924
    subViews isNil ifTrue:[
3653
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3925
	subViews := OrderedCollection with:newView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3926
    ] ifFalse:[
3653
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3927
	(subViews includesIdentical:newView) ifTrue:[
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3928
	    self error:'trying to add a view twice' mayProceed:true.
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3929
	    ^ self.
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3930
	].
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3931
	aView isNil ifTrue:[
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3932
	    subViews add:newView
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3933
	] ifFalse:[
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3934
	    subViews add:newView after:aView.
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3935
	]
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3936
    ].
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3937
    self setContainerIn:newView.
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3938
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3939
    "Modified: 9.5.1996 / 00:47:20 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3940
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3941
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3942
addSubView:newView before:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3943
    "add a view to the collection of subviews before another view.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3944
     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
  3945
     element at some defined place."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3946
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3947
    subViews isNil ifTrue:[
3653
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3948
	subViews := OrderedCollection with:newView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3949
    ] ifFalse:[
3653
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3950
	(subViews includesIdentical:newView) ifTrue:[
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3951
	    self error:'trying to add a view twice' mayProceed:true.
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3952
	    ^ self.
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3953
	].
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3954
	aView isNil ifTrue:[
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3955
	    subViews addFirst:newView
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3956
	] ifFalse:[
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3957
	    subViews add:newView before:aView.
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3958
	]
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3959
    ].
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3960
    self setContainerIn:newView.
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3961
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  3962
    "Modified: 9.5.1996 / 00:47:23 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3963
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3964
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3965
addSubView:aView in:bounds borderWidth:bw
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3966
    "for ST-80 V2.x compatibility"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3967
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3968
    aView borderWidth:bw.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3969
    self add:aView in:bounds.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3970
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3971
1439
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  3972
addSubViewFirst:newView
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  3973
    "add a view to the front of the collection of subviews"
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  3974
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  3975
    subViews isNil ifTrue:[
3653
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3976
	subViews := OrderedCollection with:newView
1439
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  3977
    ] ifFalse:[
3653
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3978
	(subViews includesIdentical:newView) ifTrue:[
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3979
	    self error:'trying to add a view twice' mayProceed:true.
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3980
	    ^ self.
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3981
	].
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  3982
	subViews addFirst:newView.
1439
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  3983
    ].
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  3984
    self setContainerIn:newView.
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  3985
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  3986
    "Modified: 9.5.1996 / 00:47:16 / cg"
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  3987
    "Created: 6.3.1997 / 18:43:38 / cg"
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  3988
!
55d0f63f8a0b added #addSubViewFirst:
Claus Gittinger <cg@exept.de>
parents: 1437
diff changeset
  3989
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3990
component:aComponent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3991
    "components (i.e. gadgets or lightweight views) are being prepared. 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3992
     Dont use this right now for non-views"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3993
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3994
    aComponent origin:0.0@0.0 corner:1.0@1.0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3995
    aComponent isView ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3996
	self addSubView:aComponent
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  3997
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3998
	components := OrderedCollection with:aComponent.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  3999
	aComponent container:self.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4000
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4001
	shown ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4002
	    aComponent displayOn:self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4003
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4004
    ]
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4005
683
ecc5d13f22b2 redraw new components if already visible
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
  4006
    "Modified: 13.5.1996 / 21:20:29 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4007
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4008
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4009
destroySubViews
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4010
    "remove all subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4011
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4012
    subViews notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4013
	subViews copy do:[:aSubView |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4014
	    aSubView destroy.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4015
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4016
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4017
	"/ paranoia ;-)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4018
	subViews size ~~ 0 ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4019
	    (self class name , ' >>View [warning]: some subView(s) did not destroy: ' , subViews printString) infoPrintCR.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4020
	    subViews := nil
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4021
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4022
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4023
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4024
    "Modified: 5.9.1995 / 22:35:36 / claus"
1296
dc646cdf78f0 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
  4025
    "Modified: 29.1.1997 / 17:07:45 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4026
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4027
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4028
removeComponent:aComponent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4029
    "components (i.e. gadgets or lightweight views) are being prepared. 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4030
     Dont use this right now for non-views"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4031
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4032
    aComponent isView ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4033
	self removeSubView:aComponent
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4034
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4035
	components isNil ifTrue:[^self].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4036
	components remove:aComponent ifAbsent:[].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4037
	aComponent parent:nil 
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4038
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4039
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4040
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4041
removeSubView:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4042
    "remove a view from the collection of subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4043
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4044
    subViews notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4045
	subViews remove:aView ifAbsent:[nil].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4046
	aView setContainer:nil.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4047
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4048
	(subViews size == 0) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4049
	    subViews := nil
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4050
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4051
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4052
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4053
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4054
setContainerIn:aView
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4055
    "common code for addSubView* methods"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4056
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4057
    aView container:self.
743
64c9b71b3cc4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 739
diff changeset
  4058
    (aView graphicsDevice ~~ device) ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4059
	'SimpleView [warning]: subview (' errorPrint. aView class name errorPrint.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4060
	') has different device than me (' errorPrint.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4061
	self class name errorPrint. ').' errorPrintCR.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4062
	aView device:device
3616
0ddaf2ce9b06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3614
diff changeset
  4063
    ].
660
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4064
2ae938f29875 renamed #superView: to #container (migration towards ST-80 compatibility)
Claus Gittinger <cg@exept.de>
parents: 659
diff changeset
  4065
    "Created: 9.5.1996 / 00:46:59 / cg"
1172
a69398754511 newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
  4066
    "Modified: 10.1.1997 / 18:06:49 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4067
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4068
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4069
!SimpleView methodsFor:'change & update'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4070
1437
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4071
changedPreferredBounds:someArgument
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4072
    "tell any dependents, that I have changed my preferred bounds;
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4073
     Interface is provided mostly provided for ST80 compatibility;
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4074
     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
  4075
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4076
    ^ self changed:#preferredExtent
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4077
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4078
    "Modified: 6.3.1997 / 16:12:02 / cg"
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4079
!
9fb2c38adb79 added #changedPreferredBounds for compatibility
Claus Gittinger <cg@exept.de>
parents: 1432
diff changeset
  4080
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4081
update:aspect with:aParameter from:changedObject
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4082
    "an update request"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4083
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4084
    aspect == #sizeOfView ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4085
	"one of the views we depend on changed its size"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4086
	^ self containerChangedSize.
3730
00bc72f859c5 code beautified
Claus Gittinger <cg@exept.de>
parents: 3715
diff changeset
  4087
    ].
00bc72f859c5 code beautified
Claus Gittinger <cg@exept.de>
parents: 3715
diff changeset
  4088
    super update:aspect with:aParameter from:changedObject
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4089
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4090
    "Modified: 19.7.1996 / 17:30:48 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4091
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4092
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4093
!SimpleView methodsFor:'cursor animation'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4094
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4095
showBusyWhile:aBlock
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4096
    "evaluate some time consuming block, while doing this,
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4097
     show a spinning wheel cursor. If those bitmaps are not found,
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4098
     fallback to the standard busy cursor.
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4099
     Experimental."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4100
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4101
    |ok bitmaps cursors mask process oldCursor|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4102
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4103
    oldCursor := cursor.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4104
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4105
    ok := true.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4106
    bitmaps := #('wheel1' 'wheel2' 'wheel3' 'wheel4') 
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4107
	       collect:[:name |
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4108
		   |f|
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4109
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4110
		   f := Smalltalk imageFromFileNamed:(name , '.xbm') forClass:self class.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4111
		   f isNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4112
			('SimpleView [warning]: no bitmap file: ' , name , '.xbm') errorPrintCR.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4113
			ok := false
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4114
		   ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4115
		   f
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4116
	       ].
1141
787b2fb75816 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  4117
3098
5af5eb5e3942 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3087
diff changeset
  4118
    mask := Smalltalk imageFromFileNamed:'wheelm.xbm' forClass:self class.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4119
    mask isNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4120
	('SimpleView [warning]: no bitmap file: wheelm.xbm') errorPrintCR.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4121
	ok := false
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4122
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4123
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4124
    ok ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4125
	self cursor:Cursor wait.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4126
	aBlock ensure:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4127
	    self cursor:oldCursor
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4128
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4129
    ] ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4130
	cursors := bitmaps collect:[:form | (Cursor sourceForm:form
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4131
						      maskForm:mask
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4132
							  hotX:8
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4133
							  hotY:8) onDevice:device].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4134
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4135
	process := [
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4136
		    Delay waitForSeconds:0.25.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4137
		    [true] whileTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4138
			cursors do:[:curs |
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4139
			    self cursor:curs.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4140
			    Delay waitForSeconds:0.05
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4141
			]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4142
		    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4143
		   ] fork.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4144
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4145
	Processor activeProcess priority:7.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4146
	aBlock ensure:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4147
	    Processor activeProcess priority:8.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4148
	    process terminate.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4149
	    self cursor:oldCursor
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4150
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4151
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4152
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4153
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4154
     View new realize showBusyWhile:[10 timesRepeat:[3000 factorial]]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4155
    "
1141
787b2fb75816 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 1115
diff changeset
  4156
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  4157
    "Modified: / 31.10.1997 / 19:59:49 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4158
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4159
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4160
!SimpleView methodsFor:'dependents access'!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4161
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4162
addDependent:anObject
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4163
    "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
  4164
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4165
    |wasBlocked|
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4166
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4167
    wasBlocked := OperatingSystem blockInterrupts.
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4168
    [
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4169
	|deps|
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4170
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4171
	deps := dependents.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4172
	"/
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4173
	"/ store the very first dependent directly in
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4174
	"/ the dependents instVar
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4175
	"/
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4176
	(deps isNil and:[anObject isCollection not]) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4177
	    dependents := anObject
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4178
	] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4179
	    "/
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4180
	    "/ store more dependents in the dependents collection
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4181
	    "/
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4182
	    deps isCollection ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4183
		deps add:anObject
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4184
	    ] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4185
		deps == anObject ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4186
		    deps isNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4187
			dependents := (IdentitySet with:anObject)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4188
		    ] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4189
			dependents := (IdentitySet with:deps with:anObject)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4190
		    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4191
		]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4192
	    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4193
	]
3604
e32b5044a59e #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3601
diff changeset
  4194
    ] ensure:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4195
	wasBlocked ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4196
	    OperatingSystem unblockInterrupts
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4197
	]
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4198
    ]
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4199
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4200
    "Modified: 8.1.1997 / 23:40:30 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4201
    "Created: 11.6.1997 / 13:10:40 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4202
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4203
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4204
dependents
2015
f53883507ed9 comment
Claus Gittinger <cg@exept.de>
parents: 2009
diff changeset
  4205
    "return a Collection of dependents"
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4206
1938
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  4207
    dependents isNil ifTrue:[^ #()].
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4208
    dependents isCollection ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4209
	^ dependents
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4210
    ].
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4211
    ^ IdentitySet with:dependents
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4212
1938
8c7584b4d61f empty dependents are returned as an empty collection.
Claus Gittinger <cg@exept.de>
parents: 1931
diff changeset
  4213
    "Created: / 11.6.1997 / 13:10:44 / cg"
2015
f53883507ed9 comment
Claus Gittinger <cg@exept.de>
parents: 2009
diff changeset
  4214
    "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
  4215
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4216
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4217
dependents:aCollection
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4218
    "set the collection of dependents"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4219
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4220
    |dep|
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4221
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4222
    aCollection size == 1 ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4223
	dep := aCollection first.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4224
	dep isCollection ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4225
	    dependents := aCollection first.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4226
	    ^ self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4227
	]
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4228
    ].
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4229
    dependents := aCollection
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4230
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4231
    "Modified: 19.4.1996 / 12:23:05 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4232
    "Created: 11.6.1997 / 13:10:47 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4233
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4234
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4235
dependentsDo:aBlock
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4236
    "evaluate aBlock for all of my dependents"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4237
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4238
    |deps|
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4239
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4240
    deps := dependents.
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4241
    deps notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4242
	deps isCollection ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4243
	    deps do:aBlock
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4244
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4245
	    aBlock value:deps
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4246
	]
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4247
    ]
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4248
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4249
    "Created: 11.6.1997 / 13:10:51 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4250
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4251
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4252
release
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4253
    "remove all dependencies from the receiver"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4254
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4255
    dependents := nil
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4256
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4257
    "Modified: 19.4.1996 / 10:31:35 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4258
    "Created: 11.6.1997 / 13:11:53 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4259
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4260
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4261
removeDependent:anObject
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4262
    "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
  4263
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4264
    |wasBlocked|
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4265
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4266
    "/ 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
  4267
    "/ is possibly accessed from multiple threads.
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4268
    "/ 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
  4269
    "/ faster execution.
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4270
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4271
    wasBlocked := OperatingSystem blockInterrupts.
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4272
    [
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4273
	|deps sz dep|
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4274
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4275
	deps := dependents.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4276
	deps notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4277
	    deps isCollection ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4278
		deps remove:anObject ifAbsent:[].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4279
		(sz := deps size) == 0 ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4280
		    dependents := nil
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4281
		] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4282
		    sz == 1 ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4283
			(dep := deps first) isCollection ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4284
			    dependents := dep
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4285
			]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4286
		    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4287
		]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4288
	    ] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4289
		deps == anObject ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4290
		    dependents := nil
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4291
		]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4292
	    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4293
	]
3604
e32b5044a59e #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3601
diff changeset
  4294
    ] ensure:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4295
	wasBlocked ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4296
	    OperatingSystem unblockInterrupts
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4297
	]
1747
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4298
    ]
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4299
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4300
    "Modified: 8.1.1997 / 23:41:39 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4301
    "Created: 11.6.1997 / 13:11:58 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4302
! !
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4303
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4304
!SimpleView methodsFor:'dependents access (non weak)'!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4305
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4306
addNonWeakDependent:anObject
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4307
    "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
  4308
     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
  4309
     forwarded to addDependent:"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4310
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4311
    ^ self addDependent:anObject
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4312
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4313
    "Created: 11.6.1997 / 13:15:40 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4314
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4315
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4316
interests
2037
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  4317
    "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
  4318
     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
  4319
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4320
    ^ self dependents
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4321
2037
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  4322
    "Modified: / 14.10.1996 / 22:19:58 / stefan"
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  4323
    "Created: / 11.6.1997 / 13:15:44 / cg"
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  4324
    "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
  4325
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4326
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4327
nonWeakDependents
2037
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  4328
    "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
  4329
     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
  4330
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4331
    ^ self dependents
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4332
2037
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  4333
    "Created: / 11.6.1997 / 13:15:48 / cg"
25c7b949b117 #interests & #weakDependents always return a collection
Claus Gittinger <cg@exept.de>
parents: 2015
diff changeset
  4334
    "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
  4335
!
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4336
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4337
removeNonWeakDependent:anObject
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4338
    "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
  4339
     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
  4340
     forwarded to removeDependent:"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4341
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4342
    ^ self removeDependent:anObject
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4343
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4344
    "Created: 11.6.1997 / 13:15:52 / cg"
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4345
! !
355fdbae0104 keep dependents locally - for faster access.
Claus Gittinger <cg@exept.de>
parents: 1743
diff changeset
  4346
1308
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4347
!SimpleView methodsFor:'drag & drop'!
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4348
1581
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  4349
canDrop:aCollectionOfDropObjects
1308
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4350
    "return true, if anObjectOrCollection can be
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4351
     dropped in the receiver. This method should be
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4352
     redefined in views which can take objects"
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4353
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4354
    |app|
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4355
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4356
    (app := self application) notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4357
	^ app canDrop:aCollectionOfDropObjects in:self
1308
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4358
    ].
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4359
    ^ false
1581
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  4360
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  4361
    "Modified: 11.4.1997 / 12:42:13 / cg"
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  4362
!
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  4363
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  4364
drop:aCollectionOfDropObjects at:aPoint
1308
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4365
    "drop manager wants to drop.
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4366
     If I have an application, forward the request.
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4367
     Otherwise, ignore it. This is only sent, if #canDrop: returned true;
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4368
     if you redefined #canDrop: in a subclass, #drop:at: must also be redefined."
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4369
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4370
    |app|
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4371
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4372
    (app := self application) notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4373
	^ app drop:aCollectionOfDropObjects in:self at:aPoint
1308
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4374
    ].
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4375
    self subclassResponsibility
1581
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  4376
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  4377
    "Modified: 11.4.1997 / 12:44:34 / cg"
3591
3f7190c5750c + dropTarget
Claus Gittinger <cg@exept.de>
parents: 3590
diff changeset
  4378
!
3f7190c5750c + dropTarget
Claus Gittinger <cg@exept.de>
parents: 3590
diff changeset
  4379
3f7190c5750c + dropTarget
Claus Gittinger <cg@exept.de>
parents: 3590
diff changeset
  4380
dropTarget
3f7190c5750c + dropTarget
Claus Gittinger <cg@exept.de>
parents: 3590
diff changeset
  4381
    "returns the dropTarget or nil
3f7190c5750c + dropTarget
Claus Gittinger <cg@exept.de>
parents: 3590
diff changeset
  4382
    "
3f7190c5750c + dropTarget
Claus Gittinger <cg@exept.de>
parents: 3590
diff changeset
  4383
    ^ nil
1308
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4384
! !
3cb41842b48d drag & drop support
ca
parents: 1304
diff changeset
  4385
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4386
!SimpleView methodsFor:'edge drawing'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4387
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4388
drawBottomEdge
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4389
    "draw bottom 3D edge into window frame"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4390
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4391
    self drawBottomEdgeLevel:level
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4392
		      shadow:shadowColor 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4393
		      light:lightColor
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4394
		      halfShadow:nil 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4395
		      halfLight:nil
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4396
		      style:nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4397
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4398
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4399
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
  4400
    |botFg
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4401
     count "{ Class: SmallInteger }" 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4402
     b r|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4403
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4404
    count := level.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4405
    count == 0 ifTrue:[^ self].
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
    (count < 0) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4408
	botFg := lightColor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4409
	count := count negated
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4410
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4411
	((edgeStyle == #soft) and:[level > 1]) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4412
	    botFg := halfShadowColor
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4413
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4414
	    botFg := shadowColor
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4415
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4416
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4417
    super paint:botFg.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4418
    super lineWidth:0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4419
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4420
    r := width - 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4421
    0 to:(count - 1) do:[:i |
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4422
	b := height - 1 - i.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4423
	super displayDeviceLineFromX:i y:b toX:(r - i) y:b
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4424
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4425
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4426
    ((edgeStyle == #soft) and:[level > 1]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4427
	b := height - 1.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4428
	super paint:shadowColor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4429
	super displayDeviceLineFromX:1 y:b toX:r y:b. 
1444
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4430
    ].
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4431
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4432
    self edgeDrawn:#bottom.
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4433
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4434
    "Modified: 7.3.1997 / 17:59:39 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4435
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4436
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4437
drawEdges
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4438
    "draw all of my 3D edges"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4439
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4440
    self drawEdgesForX:0 y:0 width:width height:height level:level
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4441
		shadow:shadowColor 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4442
		light:lightColor
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4443
		halfShadow:nil 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4444
		halfLight:nil 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4445
		style:nil 
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4446
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4447
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4448
drawEdgesForX:x y:y width:w height:h level:l
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4449
    "draw 3D edges into a rectangle"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4450
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4451
    self drawEdgesForX:x y:y width:w height:h level:l 
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4452
		shadow:shadowColor 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4453
		light:lightColor
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4454
		halfShadow:nil 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4455
		halfLight:nil 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4456
		style:nil 
714
2679dd9318ef clear area under components in redraw
Claus Gittinger <cg@exept.de>
parents: 711
diff changeset
  4457
!
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4458
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4459
drawLeftEdge
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4460
    "draw left 3D edge into window frame"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4461
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4462
    self drawLeftEdgeLevel:level
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4463
		    shadow:shadowColor 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4464
		     light:lightColor
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4465
		     halfShadow:nil 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4466
		     halfLight:nil
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4467
		     style:nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4468
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4469
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4470
drawLeftEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4471
    |leftFg leftHalfFg paint b
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4472
     count "{ Class: SmallInteger }" |
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4473
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4474
    count := level.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4475
    count == 0 ifTrue:[^ self].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4476
    
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4477
    (count < 0) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4478
	leftFg := shadowColor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4479
	leftHalfFg := halfShadowColor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4480
	count := count negated.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4481
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4482
	leftFg := lightColor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4483
	leftHalfFg := halfLightColor.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4484
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4485
    leftHalfFg isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4486
	leftHalfFg := leftFg
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4487
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4488
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4489
    ((edgeStyle == #soft) and:[level > 0]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4490
	paint := leftHalfFg
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4491
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4492
	paint := leftFg
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4493
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4494
    super paint:paint.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4495
    super lineWidth:0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4496
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4497
    b := height - 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4498
    0 to:(count - 1) do:[:i |
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4499
	super displayDeviceLineFromX:i y:i toX:i y:(b - i)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4500
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4501
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4502
    ((edgeStyle == #soft) and:[level > 2]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4503
	super paint:(device blackColor).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4504
	super displayDeviceLineFromX:0 y:0 toX:0 y:b. 
1444
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4505
    ].
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4506
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4507
    self edgeDrawn:#left.
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4508
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4509
    "Modified: 7.3.1997 / 17:59:53 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4510
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4511
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4512
drawRightEdge
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4513
    "draw right 3D edge into window frame"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4514
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4515
    self drawRightEdgeLevel:level
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4516
		     shadow:shadowColor 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4517
		      light:lightColor
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4518
		      halfShadow:nil 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4519
		      halfLight:nil
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4520
		      style:nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4521
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4522
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4523
drawRightEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4524
    |rightFg
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4525
     count "{ Class: SmallInteger }" 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4526
     r b|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4527
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4528
    count := level.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4529
    count == 0 ifTrue:[^ self].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4530
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4531
    (count < 0) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4532
	rightFg := lightColor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4533
	count := count negated
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4534
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4535
	((edgeStyle == #soft) and:[level > 1]) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4536
	    rightFg := halfShadowColor
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4537
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4538
	    rightFg := shadowColor
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4539
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4540
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4541
    super paint:rightFg.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4542
    super lineWidth:0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4543
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4544
    b := height - 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4545
    0 to:(count - 1) do:[:i |
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4546
	r := width - 1 - i.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4547
	super displayDeviceLineFromX:r y:i toX:r y:(b - i)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4548
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4549
    ((edgeStyle == #soft) and:[level > 1]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4550
	r := width - 1.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4551
	super paint:shadowColor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4552
	super displayDeviceLineFromX:r y:1 toX:r y:b. 
1444
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4553
    ].
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4554
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4555
    self edgeDrawn:#right.
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4556
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4557
    "Modified: 7.3.1997 / 18:00:02 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4558
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4559
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4560
drawTopEdge
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4561
    "draw top 3D edge into window frame"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4562
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4563
    self drawTopEdgeLevel:level
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4564
		   shadow:shadowColor 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4565
		    light:lightColor
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4566
		    halfShadow:nil 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4567
		    halfLight:nil
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4568
		    style:nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4569
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4570
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4571
drawTopEdgeLevel:level shadow:shadowColor light:lightColor halfShadow:halfShadowColor halfLight:halfLightColor style:edgeStyle 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4572
    |topFg topHalfFg paint r
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4573
     count "{ Class: SmallInteger }" |
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4574
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4575
    count := level.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4576
    count == 0 ifTrue:[^ self].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4577
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4578
    (count < 0) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4579
	topFg := shadowColor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4580
	topHalfFg := halfShadowColor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4581
	count := count negated
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4582
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4583
	topFg := lightColor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4584
	topHalfFg := halfLightColor.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4585
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4586
    topHalfFg isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4587
	topHalfFg := topFg
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4588
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4589
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4590
    ((edgeStyle == #soft) and:[level > 0]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4591
	paint := topHalfFg
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4592
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4593
	paint := topFg
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4594
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4595
    super paint:paint.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4596
    super lineWidth:0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4597
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4598
    r := width - 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4599
    0 to:(count - 1) do:[:i |
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4600
	super displayDeviceLineFromX:i y:i toX:(r - i) y:i
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4601
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4602
    ((edgeStyle == #soft) and:[level > 2]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4603
	super paint:(device blackColor).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4604
	super displayDeviceLineFromX:0 y:0 toX:r y:0. 
1444
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4605
    ].
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4606
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4607
    self edgeDrawn:#top.
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4608
9295a5183a4c notify edge drawing
Claus Gittinger <cg@exept.de>
parents: 1439
diff changeset
  4609
    "Modified: 7.3.1997 / 18:00:11 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4610
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4611
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4612
redrawEdges
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4613
    "redraw my edges (if any)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4614
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4615
    (level ~~ 0) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4616
	shown ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4617
	    self clippingRectangle:nil.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4618
	    self drawEdges.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4619
	    self deviceClippingRectangle:innerClipRect
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4620
	]                  
739
3d809aa492ec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 738
diff changeset
  4621
    ]
3d809aa492ec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 738
diff changeset
  4622
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  4623
    "Modified: / 25.5.1999 / 14:50:25 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4624
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4625
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4626
!SimpleView methodsFor:'enumerating subviews'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4627
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4628
allSubViewsDo:aBlock
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4629
    "evaluate aBlock for all subviews (recursively)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4630
1335
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4631
    subViews notNil ifTrue:[
3653
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  4632
	subViews do:[:aSubview |
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  4633
	    aSubview withAllSubViewsDo:aBlock
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  4634
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4635
    ]
1335
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4636
0f8aabe19349 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1329
diff changeset
  4637
    "Modified: 12.2.1997 / 12:23:38 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4638
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4639
1363
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  4640
changeSequenceOrderFor:aSubView to:anIndex
1984
e34624152bf3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1981
diff changeset
  4641
    "change a subview's position in the subviews collection.
e34624152bf3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1981
diff changeset
  4642
     Usually, this only affects the order of components in a panelView.
1363
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  4643
    "
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  4644
    |aView|
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  4645
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  4646
    (subViews notNil and:[subViews size >= anIndex]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4647
	aView := subViews remove:aSubView ifAbsent:nil.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4648
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4649
	aView notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4650
	    subViews add:aView beforeIndex:anIndex.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4651
	  ^ true
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4652
	]
1363
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  4653
    ].
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  4654
    ^ false
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  4655
!
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  4656
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4657
withAllSubViewsDo:aBlock
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4658
    "evaluate aBlock for the receiver and all subviews (recursively)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4659
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4660
    aBlock value:self.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4661
    self allSubViewsDo:aBlock
135
claus
parents:
diff changeset
  4662
! !
claus
parents:
diff changeset
  4663
claus
parents:
diff changeset
  4664
!SimpleView methodsFor:'event handling'!
claus
parents:
diff changeset
  4665
1581
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  4666
alienDrop:aCollectionOfDropObjects
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  4667
    "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
  4668
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  4669
    |v|
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  4670
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  4671
    v := self.
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  4672
    [v notNil] whileTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4673
	(v canDrop:aCollectionOfDropObjects) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4674
	    v drop:aCollectionOfDropObjects at:nil.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4675
	    ^ self.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4676
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4677
	v := v superView
1555
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  4678
    ]
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  4679
1581
45908e82a49d drop argument is always a collection
Claus Gittinger <cg@exept.de>
parents: 1559
diff changeset
  4680
    "Modified: 11.4.1997 / 12:41:16 / cg"
1555
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  4681
!
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  4682
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4683
buttonPress:button x:x y:y
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4684
    "button was pressed - check my components for a hit."
269
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
    components notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4687
	self componentsContainingX:x y:y do:[:comp :cx :cy |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4688
	    comp buttonPress:button x:cx y:cy.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4689
	    ^ self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4690
	]
140
claus
parents: 138
diff changeset
  4691
    ].
claus
parents: 138
diff changeset
  4692
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4693
    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
  4694
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4695
    "Modified: 8.5.1996 / 23:43:41 / cg"
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4696
!
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4697
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4698
buttonRelease:button x:x y:y
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4699
    "button was released - check my components for a hit."
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4700
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4701
    components notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4702
	self componentsContainingX:x y:y do:[:comp :cx :cy |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4703
	    comp buttonRelease:button x:cx y:cy.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4704
	    ^ self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4705
	]
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4706
    ].
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4707
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4708
    super buttonRelease:button x:x y:y
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4709
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4710
    "Modified: 8.5.1996 / 23:41:58 / cg"
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  4711
    "Created: 8.5.1996 / 23:43:25 / cg"
193
Claus Gittinger <cg@exept.de>
parents: 192
diff changeset
  4712
!
Claus Gittinger <cg@exept.de>
parents: 192
diff changeset
  4713
1544
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  4714
clientMessage:msgType format:msgFormat eventData:msgData
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  4715
    "a client message - very X-specific and only useful
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  4716
     for special applications.
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  4717
     Ignored here"
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  4718
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  4719
    "Created: 4.4.1997 / 18:56:52 / cg"
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  4720
!
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  4721
2216
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  4722
closeRequest 
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  4723
    "programmatic close request"
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  4724
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  4725
    self destroy
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  4726
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  4727
    "Modified: / 3.8.1998 / 19:50:50 / cg"
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  4728
!
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  4729
140
claus
parents: 138
diff changeset
  4730
configureX:x y:y width:newWidth height:newHeight
claus
parents: 138
diff changeset
  4731
    "my size has changed by window manager action"
claus
parents: 138
diff changeset
  4732
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4733
    |how anyEdge mustRedrawBottomEdge mustRedrawRightEdge p originChanged|
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4734
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4735
    originChanged := (left ~= x) or:[top ~= y].
180
claus
parents: 176
diff changeset
  4736
2966
b84e83209de4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2960
diff changeset
  4737
    left := x.
b84e83209de4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2960
diff changeset
  4738
    top := y.
b84e83209de4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2960
diff changeset
  4739
180
claus
parents: 176
diff changeset
  4740
    (superView isNil 
claus
parents: 176
diff changeset
  4741
    and:[drawableId notNil]) ifTrue:[
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4742
        "/ have to be careful - some window managers (motif) wrap another
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4743
        "/ view around and the reported origin is relative to that.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4744
        "/ not relative to the screen.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4745
        p := device translatePoint:0@0 fromView:self toView:nil.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4746
        p := p + self borderWidth.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4747
        left := p x.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4748
        top := p y.
2414
1d8968995199 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2410
diff changeset
  4749
    ].
1d8968995199 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2410
diff changeset
  4750
140
claus
parents: 138
diff changeset
  4751
    ((width ~~ newWidth) or:[height ~~ newHeight]) ifTrue:[
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4752
        realized ifFalse:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4753
            width := newWidth.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4754
            height := newHeight.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4755
            self extentChangedFlag:true.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4756
            ^ self
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4757
        ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4758
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4759
        ((newWidth <= width) and:[newHeight <= height]) ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4760
            how := #smaller
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4761
        ] ifFalse:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4762
            ((newWidth >= width) and:[newHeight >= height]) ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4763
                how := #larger
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4764
            ]
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4765
        ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4766
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4767
        level ~~ 0 ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4768
            mustRedrawBottomEdge := newHeight < height.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4769
            mustRedrawRightEdge := newWidth < width.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4770
            anyEdge := mustRedrawBottomEdge or:[mustRedrawRightEdge]
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4771
        ] ifFalse:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4772
            anyEdge := false
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4773
        ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4774
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4775
        width := newWidth.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4776
        height := newHeight.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4777
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4778
        "recompute inner-clip if needed"
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4779
        self setInnerClip.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4780
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4781
        "
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4782
         must first process pending exposes;
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4783
         otherwise, those may be drawn at a wrong position
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4784
        "
971
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  4785
"/ claus: no; expose events are in the same queue as configure events;
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  4786
"/        which is exactly for that reason ...
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  4787
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  4788
"/        windowGroup notNil ifTrue:[
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  4789
"/            windowGroup processExposeEvents
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  4790
"/        ].
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4791
        self sizeChanged:how.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4792
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4793
        (anyEdge and:[shown]) ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4794
            mustRedrawBottomEdge ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4795
                self invalidateDeviceRectangle:((0 @ (height-1-margin)) extent:width@margin) repairNow:false.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4796
            ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4797
            mustRedrawRightEdge ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4798
                self invalidateDeviceRectangle:((width-1-margin)@0 extent:margin@height) repairNow:false.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4799
            ].
2821
8eda25202d32 async border redraw when size changes
Claus Gittinger <cg@exept.de>
parents: 2816
diff changeset
  4800
"/ OLD code:
8eda25202d32 async border redraw when size changes
Claus Gittinger <cg@exept.de>
parents: 2816
diff changeset
  4801
"/            self clippingRectangle:nil.
8eda25202d32 async border redraw when size changes
Claus Gittinger <cg@exept.de>
parents: 2816
diff changeset
  4802
"/            mustRedrawBottomEdge ifTrue:[
8eda25202d32 async border redraw when size changes
Claus Gittinger <cg@exept.de>
parents: 2816
diff changeset
  4803
"/                self drawBottomEdge
8eda25202d32 async border redraw when size changes
Claus Gittinger <cg@exept.de>
parents: 2816
diff changeset
  4804
"/            ].
8eda25202d32 async border redraw when size changes
Claus Gittinger <cg@exept.de>
parents: 2816
diff changeset
  4805
"/            mustRedrawRightEdge ifTrue:[
8eda25202d32 async border redraw when size changes
Claus Gittinger <cg@exept.de>
parents: 2816
diff changeset
  4806
"/                self drawRightEdge
8eda25202d32 async border redraw when size changes
Claus Gittinger <cg@exept.de>
parents: 2816
diff changeset
  4807
"/            ].
8eda25202d32 async border redraw when size changes
Claus Gittinger <cg@exept.de>
parents: 2816
diff changeset
  4808
"/            self deviceClippingRectangle:innerClipRect
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4809
        ]
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4810
    ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4811
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4812
    originChanged ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4813
        self changed:#origin.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  4814
    ].
739
3d809aa492ec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 738
diff changeset
  4815
3518
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  4816
    "Modified: / 10.10.2001 / 14:14:19 / cg"
138
claus
parents: 137
diff changeset
  4817
!
claus
parents: 137
diff changeset
  4818
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4819
containerChangedSize
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4820
    "my container has changed size; if I have relative
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4821
     origin/extent or blocks to evaluate, do it now .."
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4822
1063
ba1bf8091bc1 unused variable cleanup
Claus Gittinger <cg@exept.de>
parents: 1052
diff changeset
  4823
    |oldWidth oldHeight oldTop oldLeft newExt newOrg r|
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4824
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4825
    oldWidth := width.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4826
    oldHeight := height.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4827
    oldTop := top.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4828
    oldLeft := left.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4829
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4830
    "
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4831
     slowly migrating to use layoutObjects ...
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4832
    "
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4833
    layout isNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4834
	newOrg := self computeOrigin.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4835
	newExt := self computeExtent.
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4836
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4837
	r := (layout rectangleRelativeTo:(superView viewRectangle)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4838
			       preferred:[self preferredBounds]).
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4839
	newOrg := r origin rounded.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  4840
	newExt := r extent rounded.
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4841
"/ newOrg printNL.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4842
"/ newExt printNL.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4843
    ].
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4844
3394
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4845
"/    newOrg notNil ifTrue:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4846
"/        ((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
  4847
"/            newOrg := nil
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4848
"/        ]
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4849
"/    ].
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4850
"/    newExt notNil ifTrue:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4851
"/        ((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
  4852
"/            newExt := nil
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4853
"/        ]
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4854
"/    ].
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4855
"/
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4856
"/    newExt isNil ifTrue:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4857
"/        newOrg notNil ifTrue:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4858
"/            self pixelOrigin:newOrg
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4859
"/        ]
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4860
"/    ] ifFalse:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4861
"/        newOrg isNil ifTrue:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4862
"/            self pixelExtent:newExt
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4863
"/        ] ifFalse:[
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4864
"/            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
  4865
"/        ]
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4866
"/    ]
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  4867
    self pixelOrigin:newOrg extent:newExt
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4868
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4869
    "Modified: 19.7.1996 / 17:32:50 / cg"
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4870
!
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4871
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4872
containerMapped
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4873
    "my container was mapped (became visible).
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4874
     If I was previously realized, this implies that I myself
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4875
     am now mapped as well."
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4876
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4877
    "/ if I was not previously shown, tell it to all of
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4878
    "/ my subviews (they remember this in the shown instVar)
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4879
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4880
    realized ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4881
	shown ifFalse:[
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4882
"/ old:
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4883
"/            shown := true.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4884
"/            subViews notNil ifTrue:[
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4885
"/                subViews do:[:v |
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4886
"/                    v containerMapped
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4887
"/                ]
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4888
"/            ]
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4889
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4890
"/ which is equivalent to:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4891
	    self mapped.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4892
	]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4893
    ].
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4894
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4895
    "Modified: 30.5.1996 / 11:41:02 / cg"
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4896
    "Created: 19.7.1996 / 17:41:10 / cg"
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4897
!
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4898
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4899
containerUnmapped
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4900
    "my container was unmapped 
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4901
     - this implies that the recevier is now also unmapped."
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4902
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4903
    "/ if I was previously shown, tell it to all of
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4904
    "/ my subviews (they remember this in the shown instVar)
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4905
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4906
    realized ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4907
	shown ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4908
	    self unmapped
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4909
	]
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4910
    ]
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4911
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4912
    "Modified: 30.5.1996 / 11:41:25 / cg"
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4913
    "Created: 19.7.1996 / 17:43:50 / cg"
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4914
!
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  4915
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4916
destroyed
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4917
    "view has been destroyed by someone else (usually window system)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4918
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4919
    shown := false.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4920
    super destroyed
3183
e55c249cd6e5 kludge: remove objectAttributes when destroyed.
Claus Gittinger <cg@exept.de>
parents: 3182
diff changeset
  4921
e55c249cd6e5 kludge: remove objectAttributes when destroyed.
Claus Gittinger <cg@exept.de>
parents: 3182
diff changeset
  4922
    "Modified: / 18.2.2000 / 11:20:34 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4923
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  4924
1555
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  4925
dropMessage:dropType data:dropValue
1544
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  4926
    "a drop from some other view.
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  4927
     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
  4928
1559
b23f130589d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
  4929
    |dropObjects|
b23f130589d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
  4930
1555
6280ab9b914d alien drop - converts to ST/X drop
Claus Gittinger <cg@exept.de>
parents: 1544
diff changeset
  4931
    dropType == #file ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4932
	dropObjects := Array with:(DropObject newFile:dropValue)
1559
b23f130589d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
  4933
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4934
	dropType == #directory ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4935
	    dropObjects := Array with:(DropObject newFile:dropValue)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4936
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4937
	    dropType == #files ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4938
	       dropObjects := (dropValue collect:[:fn | DropObject newFile:fn])
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4939
	    ] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4940
		dropType == #text ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4941
		   dropObjects := Array with:(DropObject newText:dropValue)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4942
		] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4943
		   dropObjects := Array with:(DropObject new:dropValue)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4944
		]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4945
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  4946
	]
1559
b23f130589d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
  4947
    ].
b23f130589d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
  4948
b23f130589d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
  4949
    self alienDrop:dropObjects
b23f130589d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
  4950
b23f130589d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1555
diff changeset
  4951
    "Modified: 6.4.1997 / 14:44:43 / cg"
1544
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  4952
!
4b78320b98fe dummy client- and dropMessage handling
Claus Gittinger <cg@exept.de>
parents: 1524
diff changeset
  4953
135
claus
parents:
diff changeset
  4954
exposeX:x y:y width:w height:h
claus
parents:
diff changeset
  4955
    "a low level redraw event from device
claus
parents:
diff changeset
  4956
      - let subclass handle the redraw and take care of edges here"
claus
parents:
diff changeset
  4957
3340
f810ebc6d836 preserve current paint when drawing edges
martin
parents: 3327
diff changeset
  4958
    |leftEdge topEdge rightEdge botEdge anyEdge nx ny nw nh dx dy dw dh old oldPaint|
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  4959
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  4960
    nw := dw := w.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  4961
    nh := dh := h.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  4962
    nx := dx := x.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  4963
    ny := dy := y.
135
claus
parents:
diff changeset
  4964
claus
parents:
diff changeset
  4965
    anyEdge := false.
claus
parents:
diff changeset
  4966
claus
parents:
diff changeset
  4967
    "
claus
parents:
diff changeset
  4968
     check if there is a need to draw an edge (i.e. if margin is hit)
claus
parents:
diff changeset
  4969
    "
claus
parents:
diff changeset
  4970
    (margin ~~ 0) ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4971
	leftEdge := false.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4972
	topEdge := false.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4973
	rightEdge := false.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4974
	botEdge := false.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4975
	transformation notNil ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4976
	    "
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4977
	     need device coordinates for this test
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4978
	    "
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4979
	    nx := transformation applyToX:nx.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4980
	    ny := transformation applyToY:ny.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4981
	    nw := transformation applyScaleX:nw.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4982
	    nh := transformation applyScaleY:nh.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4983
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4984
	"
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4985
	 adjust expose rectangle, to exclude the margin.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4986
	 Care for rounding errors ...
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4987
	"
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4988
	(nx isMemberOf:SmallInteger) ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4989
	    old := nx.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4990
	    nx := nx truncated.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4991
	    nw := nw + (nx - old).
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4992
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4993
	(ny isMemberOf:SmallInteger) ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4994
	    old := ny.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4995
	    ny := ny truncated.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4996
	    nh := nh + (ny - old).
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4997
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4998
	(nw isMemberOf:SmallInteger) ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  4999
	    nw := nw truncated + 1
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5000
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5001
	(nh isMemberOf:SmallInteger) ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5002
	    nh := nh truncated + 1
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5003
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5004
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5005
	dx := nx.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5006
	dy := ny.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5007
	dw := nw.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5008
	dh := nh.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5009
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5010
	(nx < margin) ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5011
	    old := nx.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5012
	    nx := margin.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5013
	    nw := nw - (nx - old).
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5014
	    leftEdge := anyEdge := true.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5015
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5016
	((nx + nw - 1) >= (width - margin)) ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5017
	    nw := (width - margin - nx).
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5018
	    rightEdge := anyEdge := true.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5019
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5020
	(ny < margin) ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5021
	    old := ny.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5022
	    ny := margin.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5023
	    nh := nh - (ny - old).
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5024
	    topEdge := anyEdge := true.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5025
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5026
	((ny + nh - 1) >= (height - margin)) ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5027
	    nh := (height - margin - ny).
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5028
	    botEdge := anyEdge := true.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5029
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5030
	transformation notNil ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5031
	    "
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5032
	     need logical coordinates for redraw
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5033
	    "
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5034
	    nx := transformation applyInverseToX:nx.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5035
	    ny := transformation applyInverseToY:ny.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5036
	    nw := transformation applyInverseScaleX:nw.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5037
	    nh := transformation applyInverseScaleY:nh.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5038
	].
135
claus
parents:
diff changeset
  5039
    ].
claus
parents:
diff changeset
  5040
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  5041
    (nw > 0 and:[nh > 0]) ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5042
	"
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5043
	 redraw inside area
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5044
	"
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5045
	self clippingRectangle:(Rectangle left:nx top:ny width:nw height:nh).
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5046
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5047
	device supportsAnyViewBackgroundPixmaps ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5048
	    "/ workaround: non-existing bg-pixmap support (win95)
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5049
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5050
	    viewBackground isImageOrForm ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5051
		(device supportsViewBackgroundPixmap:viewBackground) ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5052
		    self fillRectangleWithViewBackgroundX:nx y:ny width:nw height:nh
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5053
		]
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5054
	    ].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5055
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5056
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5057
	self redrawX:nx y:ny width:nw height:nh.
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  5058
    ].
135
claus
parents:
diff changeset
  5059
claus
parents:
diff changeset
  5060
    "
claus
parents:
diff changeset
  5061
     redraw edge(s)
claus
parents:
diff changeset
  5062
    "
claus
parents:
diff changeset
  5063
    anyEdge ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5064
	self deviceClippingRectangle:nil.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5065
	oldPaint := paint.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5066
	(topEdge and:[leftEdge and:[botEdge and:[rightEdge]]]) ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5067
	    self drawEdges
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5068
	] ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5069
	    topEdge ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5070
		self drawTopEdge
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5071
	    ].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5072
	    leftEdge ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5073
		self drawLeftEdge
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5074
	    ].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5075
	    botEdge ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5076
		self drawBottomEdge
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5077
	    ].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5078
	    rightEdge ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5079
		self drawRightEdge
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5080
	    ]
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5081
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5082
	self paint:oldPaint.
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  5083
    ].
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  5084
    self deviceClippingRectangle:innerClipRect.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  5085
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  5086
    "Modified: / 25.5.1999 / 14:57:38 / cg"
135
claus
parents:
diff changeset
  5087
!
claus
parents:
diff changeset
  5088
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5089
focusIn
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5090
    "got keyboard focus (via the window manager).
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5091
     Nothing done here"
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5092
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5093
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5094
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5095
focusOut
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5096
    "lost keyboard focus (via the window manager).
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5097
     Nothing done here"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5098
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5099
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5100
hasKeyboardFocus:aBoolean
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5101
    "notification from the windowGroup that I got the keyboardFocus."
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5102
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5103
    delegate notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5104
	delegate perform:#hasKeyboardFocus: with:aBoolean ifNotUnderstood:nil
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5105
    ].
140
claus
parents: 138
diff changeset
  5106
    ^ self
claus
parents: 138
diff changeset
  5107
!
claus
parents: 138
diff changeset
  5108
claus
parents: 138
diff changeset
  5109
keyPress:key x:x y:y
claus
parents: 138
diff changeset
  5110
    "a key has been pressed. If there are components,
claus
parents: 138
diff changeset
  5111
     pass it to the corresponding one. 
claus
parents: 138
diff changeset
  5112
     Otherwise, forward it to the superview, if there is any."
claus
parents: 138
diff changeset
  5113
510
c0c7a04317a9 resources
Claus Gittinger <cg@exept.de>
parents: 503
diff changeset
  5114
    <resource: #keyboard ( #Menu ) >
c0c7a04317a9 resources
Claus Gittinger <cg@exept.de>
parents: 503
diff changeset
  5115
3247
d6e631975bd1 forward Menu-key (CMD-Z) to focusView if there is one.
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  5116
    |focusView|
d6e631975bd1 forward Menu-key (CMD-Z) to focusView if there is one.
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  5117
140
claus
parents: 138
diff changeset
  5118
    components notNil ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5119
	components notNil ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5120
	    self componentsContainingX:x y:y do:[:comp :cx :cy |
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5121
		comp keyPress:key x:cx y:cy.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5122
		^ self
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5123
	    ]
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5124
	].
490
1d2ed059a063 delegated keyboardMessages get nil as x/y
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  5125
    ].
1d2ed059a063 delegated keyboardMessages get nil as x/y
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  5126
494
cc7765901744 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 490
diff changeset
  5127
    key == #Menu ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5128
	((focusView := self windowGroup focusView) notNil
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5129
	and:[focusView ~~ self])
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5130
	ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5131
	   "/ forward to the focusView
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5132
	   focusView keyPress:key x:-1 y:-1.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5133
	    ^ self
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5134
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5135
	^ self activateMenu.
135
claus
parents:
diff changeset
  5136
    ].
claus
parents:
diff changeset
  5137
490
1d2ed059a063 delegated keyboardMessages get nil as x/y
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  5138
    x isNil ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5139
	"/ already redelegated, but nowhere handled
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5140
	superView notNil ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5141
	    superView keyPress:key x:nil y:nil.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5142
	].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5143
	^ self
490
1d2ed059a063 delegated keyboardMessages get nil as x/y
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  5144
    ].
1d2ed059a063 delegated keyboardMessages get nil as x/y
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  5145
1d2ed059a063 delegated keyboardMessages get nil as x/y
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  5146
    superView notNil ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5147
	superView
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5148
	    dispatchEvent:#keyPress:x:y:
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5149
	    arguments:(Array with:key with:0 with:0)
2127
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  5150
        
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  5151
"/        WindowEvent
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  5152
"/            sendEvent:#keyPress:x:y:
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  5153
"/            arguments:(Array with:key with:0 with:0)
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  5154
"/            view:superView
411
2d5deb02d8f8 if not already forwarded, let keyEvents be handled by superView
Claus Gittinger <cg@exept.de>
parents: 393
diff changeset
  5155
    ] ifFalse:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5156
	super keyPress:key x:x y:y
135
claus
parents:
diff changeset
  5157
    ]
411
2d5deb02d8f8 if not already forwarded, let keyEvents be handled by superView
Claus Gittinger <cg@exept.de>
parents: 393
diff changeset
  5158
2127
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  5159
    "Modified: / 20.5.1998 / 22:55:08 / cg"
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5160
!
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5161
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5162
keyRelease:key x:x y:y
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5163
    "a key has been released. If there are components,
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5164
     pass it to the corresponding one. 
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5165
     Otherwise, do whatever my superclass would do."
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5166
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5167
    components notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5168
	components notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5169
	    self componentsContainingX:x y:y do:[:comp :cx :cy |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5170
		comp keyRelease:key x:cx y:cy.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5171
		^ self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5172
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5173
	].
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5174
    ].
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5175
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5176
    super keyRelease:key x:x y:y
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5177
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5178
    "Modified: 8.5.1996 / 23:44:36 / cg"
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  5179
    "Created: 8.5.1996 / 23:45:28 / cg"
135
claus
parents:
diff changeset
  5180
!
claus
parents:
diff changeset
  5181
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5182
mapped
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5183
    "the view has been mapped (by some outside
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5184
     action - i.e. window manager de-iconified me)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5185
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5186
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5187
     the old code was:
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5188
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5189
	realized := true.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5190
	shown := true.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5191
	...
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5192
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5193
     this created a race condition, if the view was
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5194
     realized and shortly after unrealized - before the mapped event
1379
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  5195
     arrived. This lead to realized being set to true even thought the
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  5196
     view was not. 
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  5197
     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
  5198
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5199
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5200
    realized ifTrue:[
769
9470770c306e map/unmap messages
Claus Gittinger <cg@exept.de>
parents: 765
diff changeset
  5201
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5202
	"/ currently, the 'shown ifFalse:' optimization is
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5203
	"/ not ok, since 'shown' is also modified by visibilityChanges.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5204
	"/ Also, when remapped, X11 only sends a mapped event for the topView.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5205
	"/ Therefore, synthetically generate those #superViewMapped messages
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5206
	"/ in any case.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5207
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5208
	shown := true.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5209
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5210
	 backed views will not get expose events - have
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5211
	 to force a redraw here to get things drawn into
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5212
	 backing store.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5213
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5214
	backed ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5215
	    self redrawX:0 y:0 width:width height:height
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5216
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5217
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5218
	"/ tell my subViews ...
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5219
	subViews notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5220
	    subViews do:[:v | v  mapped
2721
2575a1e771cc mapped event handling
Claus Gittinger <cg@exept.de>
parents: 2719
diff changeset
  5221
"/                v shown ifFalse:[
2575a1e771cc mapped event handling
Claus Gittinger <cg@exept.de>
parents: 2719
diff changeset
  5222
"/                    v  mapped
2575a1e771cc mapped event handling
Claus Gittinger <cg@exept.de>
parents: 2719
diff changeset
  5223
"/                ]
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5224
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5225
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5226
	self changed:#visibility.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5227
    ]
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  5228
1379
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  5229
    "Modified: 25.2.1997 / 22:41:34 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5230
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5231
2733
5af2417bc450 pass x/y with mouseWheel event
Claus Gittinger <cg@exept.de>
parents: 2727
diff changeset
  5232
mouseWheelMotion:buttonState x:x y:y amount:amount deltaTime:dTime
2701
ac077dbc60be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2699
diff changeset
  5233
    "the mouseWheel was turned - handle as a scroll operation.
ac077dbc60be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2699
diff changeset
  5234
     Specialized application windows may redefine this for any other
2709
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5235
     operation.
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5236
     Here, we scroll some amount which depends upon the views contents height
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5237
     (but never too much);
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5238
     if shift is pressed, always scroll a single scroll-step;
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5239
     if ctrl is pressed, always scroll one page."
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5240
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5241
    |hCont pageScroll amountToScroll sensor factor|
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5242
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5243
    amountToScroll := self verticalScrollStep.
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5244
    pageScroll := false.
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5245
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5246
    (sensor := self sensor) notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5247
	sensor ctrlDown ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5248
	    pageScroll := true
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5249
	]
2709
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5250
    ].
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5251
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5252
    pageScroll ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5253
	(sensor isNil or:[sensor shiftDown]) ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5254
	    hCont := self heightOfContents.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5255
	    hCont > (self innerHeight * 3) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5256
		factor := (hCont // self innerHeight) min:4.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5257
		amountToScroll := amountToScroll * factor.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5258
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5259
	]
2709
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5260
    ].
2701
ac077dbc60be checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2699
diff changeset
  5261
2699
01594e76fc92 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2655
diff changeset
  5262
    amount > 0 ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5263
	pageScroll ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5264
	    self pageUp
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5265
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5266
	    self scrollUp:amountToScroll
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5267
	]
2699
01594e76fc92 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2655
diff changeset
  5268
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5269
	pageScroll ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5270
	    self pageDown
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5271
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5272
	    self scrollDown:amountToScroll
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5273
	]
2709
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5274
    ].
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5275
188745025c87 adjust mouseWheel speed;
Claus Gittinger <cg@exept.de>
parents: 2703
diff changeset
  5276
    "Modified: / 21.5.1999 / 19:58:42 / cg"
2699
01594e76fc92 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2655
diff changeset
  5277
!
01594e76fc92 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2655
diff changeset
  5278
1381
31b981e0dcad delegate focusIn/out
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
  5279
pointerEnter:state x:x y:y
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5280
    "mouse pointer entered - request the keyboard focus (sometimes)"
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5281
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5282
    |doRequestFocus|
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5283
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5284
    self requestFocusOnPointerEnter ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5285
	doRequestFocus := true
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5286
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5287
	self doNotRequestFocusOnPointerEnter ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5288
	    doRequestFocus := false
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5289
	] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5290
	    doRequestFocus := self wantsFocusWithPointerEnter
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5291
	]
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5292
    ].
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5293
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5294
    doRequestFocus ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5295
	self requestFocus.
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5296
    ].
1381
31b981e0dcad delegate focusIn/out
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
  5297
!
31b981e0dcad delegate focusIn/out
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
  5298
31b981e0dcad delegate focusIn/out
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
  5299
pointerLeave:state
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5300
    "got mouse pointer.
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5301
     Nothing done here"
1381
31b981e0dcad delegate focusIn/out
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
  5302
31b981e0dcad delegate focusIn/out
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
  5303
    "Modified: 25.2.1997 / 23:43:17 / cg"
31b981e0dcad delegate focusIn/out
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
  5304
!
31b981e0dcad delegate focusIn/out
Claus Gittinger <cg@exept.de>
parents: 1379
diff changeset
  5305
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5306
reparented
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5307
    "the view has changed its parent by some outside
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5308
     action - i.e. window manager has added a frame.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5309
     nothing done here"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5310
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5311
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5312
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5313
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5314
saveAndTerminate
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5315
    "window manager wants me to save and go away; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5316
     - notice, that not all window managers are nice enough to 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5317
       send this event, but simply destroy the view instead.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5318
     Can be redefined in subclasses to do whatever is required
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5319
     to prepare for restart."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5320
2216
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5321
    self closeRequest
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5322
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5323
    "Modified: / 3.8.1998 / 19:51:26 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5324
!
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
sizeChanged:how
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5327
    "tell subviews if I change size.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5328
     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
  5329
     in which subviews are notified (possibly reducing redraw activity)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5330
1290
1cc24cff6fe9 eliminated some references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 1261
diff changeset
  5331
    |subViews|
1cc24cff6fe9 eliminated some references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 1261
diff changeset
  5332
1cc24cff6fe9 eliminated some references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 1261
diff changeset
  5333
    (subViews := self subViews) notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5334
	(how isNil "false" 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5335
	or:[how == #smaller]) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5336
	    subViews do:[:view |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5337
		view notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5338
		    view containerChangedSize
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5339
		]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5340
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5341
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5342
	    "doing it reverse speeds up resizing - usually subviews
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5343
	     are created from top-left to bottom-right; therefore
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5344
	     bottom-right views will be moved/resized first, then top-left ones;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5345
	     this avoids multiple redraws of subviews"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5346
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5347
	    subViews reverseDo:[:view |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5348
		view notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5349
		    view containerChangedSize
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5350
		]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5351
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5352
	]
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  5353
    ].
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  5354
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  5355
    components notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5356
	(how isNil "false" 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5357
	or:[how == #smaller]) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5358
	    components do:[:view |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5359
		view containerChangedSize
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5360
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5361
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5362
	    "doing it reverse speeds up resizing - usually subviews
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5363
	     are created from top-left to bottom-right; therefore
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5364
	     bottom-right views will be moved/resized first, then top-left ones;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5365
	     this avoids multiple redraws of subviews"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5366
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5367
	    components reverseDo:[:view |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5368
		view containerChangedSize
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5369
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5370
	]
135
claus
parents:
diff changeset
  5371
    ].
1290
1cc24cff6fe9 eliminated some references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 1261
diff changeset
  5372
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5373
    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
  5374
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5375
    superView notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5376
	superView subViewChangedSize
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5377
    ]
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  5378
2084
e997f6ea54c2 also pass down #larger to sizeCanged: method.
Claus Gittinger <cg@exept.de>
parents: 2061
diff changeset
  5379
    "Modified: / 2.4.1998 / 13:59:59 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5380
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5381
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5382
subViewChangedSize
320
b7b8dc88fe9f interest is written with one 'r' (shame on me)
Claus Gittinger <cg@exept.de>
parents: 312
diff changeset
  5383
    "some subview has changed its size; we are not interested
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5384
     in that here, but some geometry managers redefine this, to reorganize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5385
     components if that happens."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5386
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5387
    ^ self
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
    "Created: 22.9.1995 / 14:44:59 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5390
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5391
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5392
terminate
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5393
    "window manager wants me to go away;
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5394
     - notice, that not all window managers are nice enough to 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5395
       send this event, but simply destroy the view instead.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5396
     Can be redefined in subclasses to do whatever cleanup is 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5397
     required."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5398
2216
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5399
    self closeRequest
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5400
a9d902b2cc4b #terminate -> #closeRequest -> #destroy
Claus Gittinger <cg@exept.de>
parents: 2189
diff changeset
  5401
    "Modified: / 3.8.1998 / 19:51:23 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5402
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5403
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5404
unmapped
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5405
    "the view has been unmapped 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5406
     (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
  5407
     or due to unmapping of my parentView)."
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  5408
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  5409
    "/ 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
  5410
    "/ my subviews (they remember this in the shown instVar)
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  5411
769
9470770c306e map/unmap messages
Claus Gittinger <cg@exept.de>
parents: 765
diff changeset
  5412
    "/ currently, the 'shown ifTrue:' optimization is
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  5413
    "/ not ok, since 'shown' is also modified by visibilityChanges.
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  5414
    "/ 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
  5415
    "/ Therefore, synthetically generate those #superViewUnmapped messages
9470770c306e map/unmap messages
Claus Gittinger <cg@exept.de>
parents: 765
diff changeset
  5416
    "/ in any case.
9470770c306e map/unmap messages
Claus Gittinger <cg@exept.de>
parents: 765
diff changeset
  5417
1379
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  5418
    shown := false.
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  5419
    subViews notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5420
	subViews do:[:v |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5421
	    v containerUnmapped
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5422
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5423
	self changed:#visibility.
1379
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  5424
    ]
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  5425
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  5426
    "Modified: 25.2.1997 / 22:40:52 / cg"
135
claus
parents:
diff changeset
  5427
!
claus
parents:
diff changeset
  5428
claus
parents:
diff changeset
  5429
visibilityChange:how
claus
parents:
diff changeset
  5430
    "the visibility of the view has changed (by some outside
claus
parents:
diff changeset
  5431
     action - i.e. window manager rearranged things).
claus
parents:
diff changeset
  5432
     Using this knowledge avoids useless redraw in obsucred views."
claus
parents:
diff changeset
  5433
claus
parents:
diff changeset
  5434
    how == #fullyObscured ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5435
	shown := false
135
claus
parents:
diff changeset
  5436
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5437
	shown := true.
135
claus
parents:
diff changeset
  5438
    ]
3139
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  5439
!
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  5440
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  5441
visibilityStateChanged
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  5442
    "this is called when our visibilityChannel changes"
fd771ae3826a visibilityChannel support
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  5443
3410
f345f5f8e704 Undo prev change.
Stefan Vogel <sv@exept.de>
parents: 3409
diff changeset
  5444
    self isVisible:visibilityChannel value
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5445
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5446
1302
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5447
!SimpleView methodsFor:'event simulation'!
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5448
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5449
pushEvent:aSelector
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5450
    "push some messageSend into my event queue -
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5451
     I will perform the corresponding method when its time
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5452
     to handle events (useful to update low-prio views from
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5453
     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
  5454
2143
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5455
    ^ self pushEvent:aSelector withArguments:#()
1302
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5456
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5457
    "
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5458
     |v|
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5459
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5460
     v := View new openAndWait.
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5461
     v fill:Color red.
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5462
     v pushEvent:#redraw
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5463
    "
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5464
2143
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5465
    "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
  5466
!
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5467
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5468
pushEvent:aSelector with:arg
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5469
    "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
  5470
     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
  5471
     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
  5472
     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
  5473
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5474
    ^ self pushEvent:aSelector withArguments:(Array with:arg)
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5475
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5476
    "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
  5477
!
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5478
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5479
pushEvent:aSelector with:arg1 with:arg2
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5480
    "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
  5481
     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
  5482
     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
  5483
     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
  5484
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5485
    ^ 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
  5486
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5487
    "Created: / 10.6.1998 / 17:27:41 / cg"
1302
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5488
!
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5489
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5490
pushEvent:aSelector withArguments:args
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5491
    "push some messageSend into my event queue -
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5492
     I will perform the corresponding method when its time
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5493
     to handle events (useful to update low-prio views from
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5494
     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
  5495
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5496
    |sensor|
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5497
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5498
    (sensor := self sensor) notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5499
	sensor pushUserEvent:aSelector for:self withArguments:args
1302
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5500
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5501
	self perform:aSelector withArguments:args
1302
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5502
    ]
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5503
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5504
    "
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5505
     |v|
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5506
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5507
     v := (Button label:'hello') openAndWait.
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5508
     Delay waitForSeconds:1.
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5509
     v pushEvent:#buttonPress:x:y: withArguments:#(1 10 10).
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5510
     Delay waitForSeconds:1.
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5511
     v pushEvent:#buttonRelease:x:y: withArguments:#(1 10 10).
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5512
    "
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5513
2143
d5b9c2e64ce9 added #pushEvent:with: and #pushEvent:with:with:
Claus Gittinger <cg@exept.de>
parents: 2138
diff changeset
  5514
    "Modified: / 10.6.1998 / 17:28:16 / cg"
1302
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5515
! !
0d24401dff29 event queue access added
Claus Gittinger <cg@exept.de>
parents: 1297
diff changeset
  5516
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5517
!SimpleView methodsFor:'focus handling'!
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5518
3150
547754678cb9 add new method(s) canTab(:)
ca
parents: 3139
diff changeset
  5519
canTab
547754678cb9 add new method(s) canTab(:)
ca
parents: 3139
diff changeset
  5520
    "returns true if widget is tabable
547754678cb9 add new method(s) canTab(:)
ca
parents: 3139
diff changeset
  5521
    "
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  5522
    "/ ^ canTab == true
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  5523
    ^ flagBits bitTest:FlagCanTab
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  5524
!
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  5525
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  5526
canTab:aBoolean
3150
547754678cb9 add new method(s) canTab(:)
ca
parents: 3139
diff changeset
  5527
    "set widget tabable or not
547754678cb9 add new method(s) canTab(:)
ca
parents: 3139
diff changeset
  5528
    "
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  5529
    "/ canTab := aBoolean
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  5530
    aBoolean ifTrue:[
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  5531
	flagBits := flagBits bitOr:FlagCanTab
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  5532
    ] ifFalse:[
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  5533
	flagBits := flagBits bitClear:FlagCanTab
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  5534
    ].
3150
547754678cb9 add new method(s) canTab(:)
ca
parents: 3139
diff changeset
  5535
!
547754678cb9 add new method(s) canTab(:)
ca
parents: 3139
diff changeset
  5536
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5537
doNotRequestFocusOnPointerEnter
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5538
    "returns true if widget SHOULD NOT 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
  5539
     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
  5540
    "
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5541
    ^ flagBits bitTest:FlagDoNotRequestFocusOnPointerEnter
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5542
!
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5543
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5544
doNotRequestFocusOnPointerEnter:aBoolean
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5545
    "if true, setup that the widget SHOULD NOT 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
  5546
     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
  5547
    "
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5548
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5549
    aBoolean ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5550
	flagBits := flagBits bitOr:FlagDoNotRequestFocusOnPointerEnter
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5551
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5552
	flagBits := flagBits bitClear:FlagDoNotRequestFocusOnPointerEnter
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5553
    ].
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5554
!
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5555
3155
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5556
focusNext
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5557
    "get next focus view to self
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5558
     Skip invisible & disabled widgets.
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5559
    "
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5560
    |viewInSubView|
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5561
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5562
    (shown and:[subViews notNil]) ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5563
	subViews do:[:aSubView|
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5564
	    aSubView shown ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5565
		(aSubView canTab and:[aSubView enabled]) ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5566
		    ^ aSubView
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5567
		].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5568
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5569
		(viewInSubView := aSubView focusNext) notNil ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5570
		    ^ viewInSubView
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5571
		]
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5572
	    ]
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5573
	]
3155
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5574
    ].
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5575
    ^ nil
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5576
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5577
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5578
        
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5579
!
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5580
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5581
focusPrevious
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5582
    "get previous focus view to self
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5583
     Skip invisible & disabled widgets.
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5584
    "
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5585
    |viewInSubView|
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5586
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5587
    (shown and:[subViews notNil]) ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5588
	subViews reverseDo:[:aSubView|
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5589
	    aSubView shown ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5590
		viewInSubView := aSubView focusPrevious.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5591
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5592
		viewInSubView notNil ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5593
		    ^ viewInSubView
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5594
		].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5595
		(aSubView canTab and:[aSubView enabled]) ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5596
		    ^ aSubView
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5597
		].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5598
	    ]
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5599
	]
3155
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5600
    ].
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5601
    ^ nil
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5602
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5603
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5604
        
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5605
!
660e71b1628b focusNext and focusPrevious implemented
ca
parents: 3152
diff changeset
  5606
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5607
requestDoNotFocusOnPointerEnter
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5608
    "returns true if widget SHOULD NOT 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
  5609
     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
  5610
    "
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5611
    ^ flagBits bitTest:FlagDoNotRequestFocusOnPointerEnter
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5612
!
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5613
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5614
requestDoNotFocusOnPointerEnter:aBoolean
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5615
    "if true, setup that the widget SHOULD NOT 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
  5616
     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
  5617
    "
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5618
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5619
    aBoolean ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5620
	flagBits := flagBits bitOr:FlagDoNotRequestFocusOnPointerEnter
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5621
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5622
	flagBits := flagBits bitClear:FlagDoNotRequestFocusOnPointerEnter
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5623
    ].
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5624
!
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5625
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5626
requestFocus
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5627
    "request focus from my windowGroup;
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5628
     typically, this is invoked when the mouse pointer enters a
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5629
     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
  5630
     (it will be ignored, if an explicit focus-change is currently
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5631
      active - i.e. if the user tabbed into a widget)"
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5632
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5633
    windowGroup notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5634
	^ windowGroup focusRequestFrom:self
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5635
    ].
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5636
    ^ true
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5637
!
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5638
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5639
requestFocusOnPointerEnter
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5640
    "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
  5641
     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
  5642
    "
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5643
    ^ flagBits bitTest:FlagRequestFocusOnPointerEnter
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5644
!
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5645
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5646
requestFocusOnPointerEnter:aBoolean
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5647
    "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
  5648
     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
  5649
    "
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5650
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5651
    aBoolean ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5652
	flagBits := flagBits bitOr:FlagRequestFocusOnPointerEnter
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5653
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5654
	flagBits := flagBits bitClear:FlagRequestFocusOnPointerEnter
3590
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5655
    ].
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5656
!
8e942a9ff4aa two more flags: request / doNotRequest focus on pointer enter
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  5657
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5658
showFocus:explicit
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5659
    "highlight myself somehow to tell user that I have the focus.
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5660
     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
  5661
     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
  5662
     Only change my border, if this is an explicit focusChange."
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5663
2907
901ffdc575a8 ask device if it supports borders
Claus Gittinger <cg@exept.de>
parents: 2886
diff changeset
  5664
    |delta clrId bd|
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5665
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5666
    explicit ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5667
	(drawableId notNil and:[superView notNil]) ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5668
	    (styleSheet at:#'focus.showBorder' default:true) ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5669
		(device supportsWindowBorder:(bd := DefaultFocusBorderWidth)) ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5670
		    (device supportsWindowBorder:(bd := 1)) ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5671
			bd := 0.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5672
		    ]
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5673
		].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5674
		delta := bd - borderWidth.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5675
		delta ~~ 0 ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5676
		    (left == 0 or:[top == 0]) ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5677
			device resizeWindow:drawableId width:width-delta-delta height:height-delta-delta.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5678
		    ] ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5679
			device moveWindow:drawableId x:left-delta y:top-delta.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5680
		    ].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5681
		    device setWindowBorderWidth:bd in:drawableId.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5682
		].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5683
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5684
		clrId := (DefaultFocusColor onDevice:device) colorId.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5685
		clrId isNil ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5686
		    clrId := device blackpixel
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5687
		].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5688
		device setWindowBorderColor:clrId in:drawableId.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5689
	    ]
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5690
	]
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5691
    ] ifFalse:[
2560
a19faec26261 showFocus/showNoFocus
Claus Gittinger <cg@exept.de>
parents: 2559
diff changeset
  5692
"/        superView notNil ifTrue:[
a19faec26261 showFocus/showNoFocus
Claus Gittinger <cg@exept.de>
parents: 2559
diff changeset
  5693
"/            superView showFocus:explicit
a19faec26261 showFocus/showNoFocus
Claus Gittinger <cg@exept.de>
parents: 2559
diff changeset
  5694
"/        ]
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5695
    ]
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5696
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5697
    "Modified: / 17.9.1998 / 15:08:34 / cg"
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5698
!
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5699
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5700
showNoFocus:explicit
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5701
    "undo the effect of showFocus.
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5702
     Explicit tells if the focus came via focusStepping (i.e. tabbing)
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5703
     or via the window manager (i.e. pointer entering).
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5704
     Only change my border, if this is an explicit focusChange."
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5705
2907
901ffdc575a8 ask device if it supports borders
Claus Gittinger <cg@exept.de>
parents: 2886
diff changeset
  5706
    |delta bd|
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5707
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5708
    explicit ifTrue:[
3367
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5709
	(drawableId notNil and:[superView notNil]) ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5710
	    (styleSheet at:#'focus.showBorder' default:true) ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5711
		(device supportsWindowBorder:(bd := borderWidth)) ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5712
		    (device supportsWindowBorder:(bd := 1)) ifFalse:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5713
			bd := 0.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5714
		    ]
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5715
		].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5716
		delta := DefaultFocusBorderWidth - bd.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5717
		delta ~~ 0 ifTrue:[
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5718
		    device setWindowBorderWidth:bd in:drawableId.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5719
		    device moveWindow:drawableId x:left y:top.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5720
		    device resizeWindow:drawableId width:width height:height.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5721
		].
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5722
		self setBorderColor.
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5723
	    ]
a564faee320f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3366
diff changeset
  5724
	]
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5725
    ]
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5726
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5727
    "Modified: / 17.9.1998 / 15:08:02 / cg"
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5728
!
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5729
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5730
wantsFocusWithButtonPress
2741
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  5731
    "views which do not like to take the keyboard focus
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  5732
     with buttonPress can do so by redefining this
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  5733
     to return false"
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  5734
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5735
    (self class == SimpleView) ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5736
	"/ a pure filler/geometric layout view
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5737
	^ false
3581
72e09769d372 do not take focus when disabled
Claus Gittinger <cg@exept.de>
parents: 3559
diff changeset
  5738
    ].
72e09769d372 do not take focus when disabled
Claus Gittinger <cg@exept.de>
parents: 3559
diff changeset
  5739
    ^ self enabled
2741
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  5740
!
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  5741
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  5742
wantsFocusWithPointerEnter
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5743
    "views which like to take the keyboard focus
2741
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  5744
     when the pointer enters can do so by redefining this
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5745
     to return true"
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5746
2741
7e85a327ce98 added extra query: #wantsFocusWithButtonPress
Claus Gittinger <cg@exept.de>
parents: 2733
diff changeset
  5747
    ^ false
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5748
! !
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  5749
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5750
!SimpleView methodsFor:'grabbing'!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5751
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5752
forceUngrabKeyboard
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5753
    "force a keyboard ungrab - even if was not the grabber"
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5754
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5755
    device ungrabKeyboard.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5756
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5757
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5758
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5759
forceUngrabPointer
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5760
    "force a pointer ungrab - even if was not the grabber"
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5761
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5762
    device ungrabPointer
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5763
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5764
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5765
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5766
grabKeyboard
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5767
    "grab the keayboard - that is: report all keyboard events to myself, 
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5768
     even if the mouse moved out of myself.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5769
     Returns true, if the grab was sucessfull (could fail, if some other
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5770
     application has a grab - but thats very unlikely)."
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5771
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5772
    ^ device grabKeyboardInView:self.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5773
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5774
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5775
grabPointer
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5776
    "grab the pointer - that is: report all motion events relative to
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5777
     myself, even if moved out of myself.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5778
     Returns true, if the grab was sucessfull (could fail, if some other
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5779
     application has a grab - but thats very unlikely)."
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5780
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5781
    ^ self grabPointerWithCursor:nil
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5782
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5783
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5784
grabPointerWithCursor:aCursorOrNil
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5785
    "grab the pointer - that is: report all motion events relative to
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5786
     myself, even if moved out of myself.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5787
     Show aCursor during the grab, if the cursor argument is not nil.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5788
     Returns true, if the grab was sucessfull (could fail, if some other
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5789
     application has a grab - but thats very unlikely)."
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5790
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5791
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5792
"/    (sensor := self sensor) notNil ifTrue:[
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5793
"/        "/ make certain all X events have been received
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5794
"/        device sync.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5795
"/        "/ now all events have been received.
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5796
"/        "/ now, flush all pointer events
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5797
"/        sensor flushMotionEventsFor:nil
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5798
"/    ].
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5799
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5800
    aCursorOrNil notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5801
	cursor := (aCursorOrNil onDevice:device).
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5802
	^ device grabPointerInView:self withCursor:cursor
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5803
    ].
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5804
    ^ device grabPointerInView:self
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5805
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5806
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5807
ungrabKeyboard
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5808
    "ungrab the keyboard - but only if I was the grabber"
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5809
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5810
    |sensor|
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5811
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5812
    device activeKeyboardGrab == self ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5813
	(sensor := self sensor) notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5814
	    "/ make certain all X events have been received
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5815
	    device sync.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5816
	    "/ now all events have been received.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5817
	    "/ now, flush all pointer events
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5818
	    sensor flushKeyboardFor:self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5819
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5820
	device ungrabKeyboard.
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5821
    ].
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5822
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5823
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5824
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5825
ungrabPointer
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5826
    "ungrab the pointer - but only if I was the grabber"
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5827
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5828
    |sensor|
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5829
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5830
    device activePointerGrab == self ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5831
	(sensor := self sensor) notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5832
	    "/ make certain all X events have been received
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5833
	    device sync.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5834
	    "/ now all events have been received.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5835
	    "/ now, flush all pointer events
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5836
	    sensor flushMotionEventsFor:self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5837
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  5838
	device ungrabPointer.
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5839
    ]
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5840
! !
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  5841
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5842
!SimpleView methodsFor:'informing others of changes'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5843
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5844
contentsChanged
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5845
    "this one is sent, whenever contents changes size -
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5846
     tell dependents about the change (i.e. scrollers)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5847
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5848
    self changed:#sizeOfContents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5849
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5850
3383
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5851
noticeOfWindowClose
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5852
    |app|
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5853
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5854
    (app := self application) notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5855
	app noticeOfWindowClose:self
3383
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5856
    ].
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5857
!
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5858
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5859
noticeOfWindowOpen
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5860
    |app|
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5861
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5862
    (app := self application) notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5863
	app noticeOfWindowOpen:self
3383
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5864
    ].
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5865
!
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5866
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5867
originChanged:delta
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5868
    "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
  5869
     tell dependents (i.e. scrollers) about this"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5870
3510
f8d3abbf10d5 *** empty log message ***
frank
parents: 3485
diff changeset
  5871
    (delta = (0@0)) ifTrue:[^ self].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5872
    self changed:#originOfContents with:delta.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5873
"/   subViews notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5874
"/        subViews do:[:aSubView |
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5875
"/            aSubView pixelOrigin:((aSubView left @ aSubView top) - delta)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5876
"/        ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5877
"/    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5878
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5879
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5880
originWillChange
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5881
    "this one is sent, just before viewOrigin changes -
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5882
     gives subclasses a chance to catch scrolls easily
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5883
     (for example to hide cursor before scroll)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5884
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5885
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5886
! !
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5887
3165
Claus Gittinger <cg@exept.de>
parents: 3164
diff changeset
  5888
!SimpleView methodsFor:'initialization & release'!
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5889
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5890
defaultControllerClass
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5891
    ^ nil "/ Controller
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5892
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5893
483
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  5894
defaultExtent
586
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  5895
    "return the default extent of my instances."
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  5896
483
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  5897
    ^ self class defaultExtent
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  5898
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  5899
    "Created: 1.3.1996 / 19:20:46 / cg"
586
b91f10f632d5 commentary
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  5900
    "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
  5901
!
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  5902
3662
faf50c1021e0 defaultFont
Michael Beyl <mb@exept.de>
parents: 3653
diff changeset
  5903
defaultFont
faf50c1021e0 defaultFont
Michael Beyl <mb@exept.de>
parents: 3653
diff changeset
  5904
    ^ self class defaultFont
faf50c1021e0 defaultFont
Michael Beyl <mb@exept.de>
parents: 3653
diff changeset
  5905
!
faf50c1021e0 defaultFont
Michael Beyl <mb@exept.de>
parents: 3653
diff changeset
  5906
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5907
destroy
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5908
    "unmap & destroy - make me invisible, destroy subviews then
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5909
     make me unknown to the device"
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5910
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5911
    realized ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5912
	self unmap.            
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5913
    ].
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5914
    shown := false.
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5915
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5916
"/    controller notNil ifTrue:[
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5917
"/      controller release.
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5918
"/      controller := nil.
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5919
"/    ].
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5920
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5921
    subViews notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5922
	self destroySubViews.
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5923
    ].
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5924
    superView notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5925
	superView removeSubView:self.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5926
	superView := nil
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5927
    ].
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5928
    super destroy.
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5929
3709
7f3f08a3607d flush in #unmap
Claus Gittinger <cg@exept.de>
parents: 3708
diff changeset
  5930
    self release.
7f3f08a3607d flush in #unmap
Claus Gittinger <cg@exept.de>
parents: 3708
diff changeset
  5931
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5932
"/    superView isNil ifTrue:[
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5933
"/        device flush
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5934
"/    ].
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5935
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5936
    controller notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5937
	controller release.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5938
	controller := nil.
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5939
    ].
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5940
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5941
    windowGroup notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5942
	windowGroup removeView:self.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5943
	windowGroup := nil
3383
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5944
    ].
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5945
111b54361247 postOpenedWith, windowEvent and noticeOfWindow-Whatever
tm
parents: 3382
diff changeset
  5946
    self noticeOfWindowClose.
2573
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5947
!
437ff42d1ba3 category change
Claus Gittinger <cg@exept.de>
parents: 2560
diff changeset
  5948
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5949
initEvents
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5950
    "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
  5951
     view events"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5952
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5953
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5954
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5955
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5956
initStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5957
    "this method sets up all style dependent things"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5958
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5959
    self initStyleSheet.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5960
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5961
    borderWidth := DefaultBorderWidth.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5962
    borderWidth isNil ifTrue:[borderWidth := 1].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5963
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5964
    viewBackground := DefaultViewBackgroundColor.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5965
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5966
    DefaultLightColor notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5967
	lightColor := DefaultLightColor.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5968
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5969
	device hasGrayscales ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5970
	    DefaultLightColor := lightColor := viewBackground lightened.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5971
	] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5972
	    "
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5973
	     this seems strange: on B&W screens, we create the light color 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5974
	     darker than normal viewBackground (White) -
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5975
	     to make the boundary of the view visible
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5976
	    "
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5977
	    lightColor := Color gray:50
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5978
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5979
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5980
    DefaultShadowColor notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5981
	shadowColor := DefaultShadowColor.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5982
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  5983
	shadowColor := Black
3669
7f3fb4967f53 dont call defaultFont twice
Michael Beyl <mb@exept.de>
parents: 3662
diff changeset
  5984
    ].
7f3fb4967f53 dont call defaultFont twice
Michael Beyl <mb@exept.de>
parents: 3662
diff changeset
  5985
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5986
    borderColor := DefaultBorderColor.
3669
7f3fb4967f53 dont call defaultFont twice
Michael Beyl <mb@exept.de>
parents: 3662
diff changeset
  5987
    "/ font := self defaultFont.  -- already done in #initialize
2829
c50504338b61 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
  5988
    font := font onDevice:device.
747
5980e7ccac8e gray vs. grey
Claus Gittinger <cg@exept.de>
parents: 743
diff changeset
  5989
749
c83c6d93760d grey vs. gray
Claus Gittinger <cg@exept.de>
parents: 747
diff changeset
  5990
    "Modified: 28.5.1996 / 21:13:58 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5991
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5992
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5993
initStyleSheet
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5994
    "this method gets the styleSheet"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5995
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5996
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5997
     when coming here the first time, we read the styleSheet
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5998
     and keep the values in fast class variables
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  5999
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6000
    StyleSheet isNil ifTrue:[
3765
e008a9a2b3b8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3762
diff changeset
  6001
        DefaultStyle isNil ifTrue:[
e008a9a2b3b8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3762
diff changeset
  6002
            "/ the very-very first time (no styleSheet yet)
e008a9a2b3b8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3762
diff changeset
  6003
            View setDefaultStyle. 
e008a9a2b3b8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3762
diff changeset
  6004
            View defaultStyle:DefaultStyle.
e008a9a2b3b8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3762
diff changeset
  6005
        ].
e008a9a2b3b8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3762
diff changeset
  6006
        SimpleView updateAllStyleCaches
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6007
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6008
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6009
    styleSheet := StyleSheet.
1005
03041f7fb340 init styleSheet (in case no startup file did it)
Claus Gittinger <cg@exept.de>
parents: 997
diff changeset
  6010
03041f7fb340 init styleSheet (in case no startup file did it)
Claus Gittinger <cg@exept.de>
parents: 997
diff changeset
  6011
    "Modified: 25.7.1996 / 22:00:06 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6012
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6013
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6014
initialize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6015
    "initialize all state of the view - usually redefined in subclasses,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6016
     but always doing a 'super initialize'. Each class should setup its
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6017
     locals - and not forget the others.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6018
     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
  6019
     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
  6020
     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
  6021
     (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
  6022
      leave the state and contents as-is)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6023
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6024
    |ext myClass controllerClass|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6025
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  6026
    flagBits := 0.
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  6027
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6028
    super initialize.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6029
3662
faf50c1021e0 defaultFont
Michael Beyl <mb@exept.de>
parents: 3653
diff changeset
  6030
    font := self defaultFont.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6031
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6032
    shown := hiddenOnRealize := realized := false.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6033
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6034
    "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
  6035
     initialize methods"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6036
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6037
    myClass := self class.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6038
    name := myClass name "asString" asLowercaseFirst.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6039
    resources := myClass classResources.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6040
2382
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  6041
    level := borderWidth := margin := 0.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6042
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6043
    self initStyle.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6044
483
32537786bca6 change defaultExtent protocol (ask inst first, then class)
Claus Gittinger <cg@exept.de>
parents: 472
diff changeset
  6045
    ext := self defaultExtent.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6046
    left := top := 0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6047
    width := ext x.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6048
    height := ext y.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6049
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  6050
    self originChangedFlag:false.
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  6051
    self extentChangedFlag:false.
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  6052
    self cornerChangedFlag:false.
2084
e997f6ea54c2 also pass down #larger to sizeCanged: method.
Claus Gittinger <cg@exept.de>
parents: 2061
diff changeset
  6053
    bitGravity := #NorthWest. "/ nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6054
    viewGravity := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6055
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6056
    controllerClass := self defaultControllerClass.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6057
    controllerClass notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6058
	controller := controllerClass new.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6059
	controller view:self.
2382
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  6060
    ].
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  6061
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  6062
    "Modified: / 1.10.1998 / 14:31:05 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6063
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6064
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6065
initializeMiddleButtonMenu
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6066
    "a place to initialize menu - this one is sent once when the view is
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6067
     first created; usually redefined in subclasses; default here is no menu.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6068
     Notice, that static middleButtonmenus are a historic thing in ST/X;
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6069
     you may prefer to create the menu dynamically (i.e. the ST-80 way)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6070
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6071
    ^ self
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6072
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6073
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6074
prepareForReinit
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6075
    super prepareForReinit.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6076
    windowGroup notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6077
	windowGroup reinitialize
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6078
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6079
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6080
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6081
reinitStyle
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6082
    "this method is called for a style change"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6083
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6084
    |t|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6085
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6086
    self initStyle.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6087
    drawableId notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6088
	"force a change"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6089
	t := borderWidth. borderWidth := nil. self borderWidth:t.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6090
	t := viewBackground. viewBackground := nil. self viewBackground:t.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6091
	self clear. self invalidate.
2357
29a966362aad clear and invalidate in reinitStyle.
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  6092
    ].
29a966362aad clear and invalidate in reinitStyle.
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  6093
29a966362aad clear and invalidate in reinitStyle.
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  6094
    "Modified: / 18.9.1998 / 21:15:33 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6095
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6096
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6097
reinitialize
795
a57f5f65d0a7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
  6098
    "this is called right after snapIn"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6099
2649
6551ac88b855 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2638
diff changeset
  6100
    |myController sv|
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6101
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6102
    "if I have already been reinited - return"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6103
    drawableId notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6104
	^ self
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6105
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6106
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6107
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6108
     superView must be there, first
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6109
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6110
    superView notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6111
	(sv := superView view) id isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6112
	    sv reinitialize
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6113
	]
2452
0c63e21efd57 (re)initCursor in reinitialize (i.e. after snapIn)
Claus Gittinger <cg@exept.de>
parents: 2451
diff changeset
  6114
    ].
0c63e21efd57 (re)initCursor in reinitialize (i.e. after snapIn)
Claus Gittinger <cg@exept.de>
parents: 2451
diff changeset
  6115
0c63e21efd57 (re)initCursor in reinitialize (i.e. after snapIn)
Claus Gittinger <cg@exept.de>
parents: 2451
diff changeset
  6116
    "reinit cursor"
0c63e21efd57 (re)initCursor in reinitialize (i.e. after snapIn)
Claus Gittinger <cg@exept.de>
parents: 2451
diff changeset
  6117
    self initCursor.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6118
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6119
    myController := controller.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6120
    controller := nil.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6121
    self recreate.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6122
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6123
    "if I was mapped, do it again"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6124
    realized ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6125
	"only remap if I have a superview - otherwise, I might be
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6126
	 a hidden iconView or menu ..."
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6127
	superView notNil ifTrue:[
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6128
"/            shown ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6129
	    device
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6130
		mapView:self id:drawableId iconified:false
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6131
		atX:left y:top width:width height:height
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6132
		minExtent:(self minExtent) maxExtent:(self maxExtent)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6133
"/            ].
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6134
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6135
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6136
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6137
    "restore controller"
2452
0c63e21efd57 (re)initCursor in reinitialize (i.e. after snapIn)
Claus Gittinger <cg@exept.de>
parents: 2451
diff changeset
  6138
    controller := myController.
795
a57f5f65d0a7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
  6139
2649
6551ac88b855 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2638
diff changeset
  6140
    "Modified: / 6.5.1999 / 13:11:07 / cg"
135
claus
parents:
diff changeset
  6141
! !
claus
parents:
diff changeset
  6142
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6143
!SimpleView methodsFor:'keyboard control'!
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6144
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6145
defineShortcutAndTranslateLabelStringFrom:aString
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6146
    |i|
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6147
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6148
    aString isString ifFalse:[ ^ aString].
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6149
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6150
    (aString includes:$&) ifFalse:[ ^ aString].
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6151
    i := self shortcutAndTranslatedStringFrom:aString.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6152
    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
  6153
    ^ i at:2.
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6154
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6155
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6156
mnemonicKey
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6157
    "get the mnemonic key or nil if undefined
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6158
    "
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6159
    ^ self objectAttributeAt:#mnemonicKey
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6160
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6161
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6162
mnemonicKey:aSymbolOrNil
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6163
    "set or clear the mnemonic key
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6164
    "
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6165
    aSymbolOrNil isSymbol ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6166
	self objectAttributeAt:#mnemonicKey put:aSymbolOrNil
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6167
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6168
	self removeObjectAttribute:#mnemonicKey
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6169
    ].
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6170
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6171
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6172
mnemonicViewNext:aKeyEvent
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6173
    "a  mnemonicKey event as forwarded from the keyboardProcessor - if there
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6174
     is the mnemonic-key defined for a subView return the view otherwise nil.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6175
    "
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6176
    |key rawKey mnemonic view|
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6177
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6178
    key    := aKeyEvent key.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6179
    rawKey := aKeyEvent rawKey.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6180
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6181
    (shown and:[subViews notNil]) ifTrue:[
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6182
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6183
	subViews do:[:aSubView|
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6184
	    aSubView shown ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6185
		(     aSubView enabled
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6186
		 and:[(mnemonic := aSubView mnemonicKey) notNil
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6187
		 and:[(mnemonic == rawKey or:[mnemonic == key])]]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6188
		) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6189
		    ^ aSubView
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6190
		].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6191
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6192
		(view := aSubView mnemonicViewNext:aKeyEvent) notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6193
		    ^ view
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6194
		].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6195
	    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6196
	]
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6197
    ].
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6198
    ^ nil
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6199
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6200
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6201
performShortcutAction
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6202
    "perform my shortcutKey action.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6203
    "
3374
3313d1faa927 compilable
Claus Gittinger <cg@exept.de>
parents: 3371
diff changeset
  6204
    "/ intentionally left blank here
3313d1faa927 compilable
Claus Gittinger <cg@exept.de>
parents: 3371
diff changeset
  6205
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6206
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6207
processShortcut:aKeyEvent
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6208
    "a  shortcutKey event as forwarded from the keyboardProcessor - if there is the
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6209
     shortcut-key defined process the shortcut and return true otherwise false.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6210
    "
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6211
    |key|
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6212
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6213
    shown ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6214
	self enabled ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6215
	    (key := self shortcutKey) notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6216
		(key == aKeyEvent key or:[key == aKeyEvent rawKey]) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6217
		    self requestFocus.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6218
		    (controller ? self) performShortcutAction.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6219
		    ^ true
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6220
		]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6221
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6222
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6223
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6224
	subViews notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6225
	    subViews do:[:aSubView|
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6226
		(aSubView processShortcut:aKeyEvent) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6227
		    ^ true
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6228
		]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6229
	    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6230
	]
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6231
    ].
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6232
    ^ false
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6233
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6234
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6235
shortcutAndTranslatedStringFrom:aString
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6236
    "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
  6237
     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
  6238
     following character"
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6239
3642
400ffe15bba9 remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3640
diff changeset
  6240
    |xLatedString c n s pos shortcutCharacter shortcut|
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6241
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6242
    xLatedString := '' writeStream.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6243
    s := aString readStream.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6244
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6245
    [s atEnd] whileFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6246
	c := s next.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6247
	c == $& ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6248
	   n := s peek.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6249
	   (n notNil and:[n isLetter]) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6250
	       c := s next.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6251
	       pos := xLatedString size + 1.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6252
	   ] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6253
		n == $& ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6254
		    s next.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6255
		]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6256
	   ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6257
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6258
	c notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6259
	   xLatedString nextPut:c
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6260
	]
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6261
    ].
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6262
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6263
    xLatedString := xLatedString contents.
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6264
    pos notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6265
	shortcutCharacter := xLatedString at:pos ifAbsent:nil.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6266
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6267
	xLatedString isText ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6268
	    xLatedString := Text string:xLatedString
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6269
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6270
	xLatedString emphasisAt:pos add:#underline.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6271
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6272
	shortcut := ('Cmd' , shortcutCharacter asLowercase) asSymbol.
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6273
    ].
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6274
    ^ Array with:shortcut with:xLatedString
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6275
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6276
    "
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6277
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'hello'        ) last
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6278
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'he&llo'       ) last
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6279
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'he&&llo'      ) last
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6280
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'he& llo'      ) last
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6281
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'he&123llo'    ) last
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6282
     Transcript showCR:(self basicNew shortcutAndTranslatedStringFrom:'hello &'      ) last
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6283
     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
  6284
    "
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6285
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6286
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6287
shortcutKey
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6288
    "get the shortcut key
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6289
    "
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6290
    ^ self objectAttributeAt:#shortcutKey
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6291
!
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6292
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6293
shortcutKey:aSymbolOrNil
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6294
    "set or clear the shortcut key
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6295
    "
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6296
    aSymbolOrNil isSymbol ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6297
	self objectAttributeAt:#shortcutKey put:aSymbolOrNil
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6298
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6299
	self removeObjectAttribute:#shortcutKey
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6300
    ].
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  6301
! !
3371
40eea3d401e5 mnemonic-key and shortcut-key support;
ca
parents: 3368
diff changeset
  6302
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6303
!SimpleView methodsFor:'menu handling'!
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6304
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6305
activateMenu
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6306
    "activate my menu.
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6307
     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
  6308
     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
  6309
     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
  6310
     Otherwise, the follwing steps are performed:
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6311
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6312
	- ask the receiver for the menu (via #yellowButtonMenu)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6313
	- ask the receiver for the menuPerformer.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6314
	- startUp the menu - it is supposed to return an actionSelector
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6315
	- if the menuPerformer responds to the selector,
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6316
	  send it to the performer;
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6317
	  otherwise send it to the view (the receiver)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6318
	  This is funny, it allows additional menuItems to be added
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6319
	  AND still get the views copy/cut/paste functionality.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6320
	  Without this, you had to redefine and forward all of those
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6321
	  messages in the performer."
2489
f7ce16896fa1 process exposes when menu closes.
Claus Gittinger <cg@exept.de>
parents: 2465
diff changeset
  6322
f7ce16896fa1 process exposes when menu closes.
Claus Gittinger <cg@exept.de>
parents: 2465
diff changeset
  6323
    |menu menuPerformer actionSelector prevReceiver wg|
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6324
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6325
    middleButtonMenu isNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6326
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6327
	 try ST-80 style menus first:
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6328
	 if there is a model, and a menuMessage is defined,
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6329
	 ask model for the menu and launch that if non-nil.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6330
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6331
	menu := self yellowButtonMenu.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6332
	menu notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6333
	    "
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6334
	     got one, launch the menu. It is supposed
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6335
	     to return an actionSelector.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6336
	    "
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6337
	    menuPerformer := self menuPerformer value.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6338
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6339
	    "/ could be a spec ...
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6340
	    menu isArray ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6341
		menu := menu decodeAsLiteralArray.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6342
		menu receiver:menuPerformer.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6343
		menu findGuiResourcesIn:self application.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6344
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6345
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6346
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6347
	    "
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6348
	     a temporary kludge: 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6349
		 pass myself as receiver, the menuPerformer as performer;
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6350
		 the menu will send its messages to either the
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6351
		 menuPerformer or me (its receiver).
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6352
		 This allows for the ST-80 behavior, where some messages
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6353
		 go to the model, others to the view
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6354
		 (copy/cut/paste).
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6355
	    "
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6356
	    (prevReceiver := menu receiver) isNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6357
		"/ kludge for oldStyle menus (MenuView/PopUpMenu)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6358
		"/ not req'd for real Menus
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6359
		"/ (menu isKindOf:Menu) ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6360
		(menu respondsTo:#menuPerformer:) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6361
		    menu receiver:self.    "/ really ?
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6362
		    menu menuPerformer:menuPerformer.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6363
		] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6364
		"/ ] ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6365
		    "/ new style menu
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6366
		    menu receiver:menuPerformer.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6367
		]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6368
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6369
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6370
	    "/
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6371
	    "/ startup the menu - this returns a selector
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6372
	    "/
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6373
	    actionSelector := self startUpMenu:menu.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6374
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6375
	    "/ before doing anything else, redraw expose area from
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6376
	    "/ the menu (in case the action changes my state)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6377
	    (wg := self windowGroup) notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6378
		wg processExposeEvents.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6379
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6380
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6381
	    (actionSelector notNil and:[actionSelector isSymbol]) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6382
		self dispatchMenuSelection:actionSelector to: menuPerformer.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6383
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6384
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6385
	    menu receiver:prevReceiver.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6386
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6387
	    ^ self
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6388
	].
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6389
    ].
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6390
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6391
    "/
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6392
    "/ old style static menu
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6393
    "/
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6394
    super activateMenu
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6395
2127
c6d63c47bf07 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2103
diff changeset
  6396
    "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
  6397
    "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
  6398
!
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6399
3241
e5c9791522af menuPerformer dispatching
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  6400
dispatchMenuSelection:menuSelection to:aMenuPerformerOrNil
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6401
    "dispatch a menu message.
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6402
     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
  6403
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  6404
    |actionSelector actionArg1 actionArg2 app menuPerformer|
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6405
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6406
    actionSelector := menuSelection.
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6407
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6408
    "
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6409
     mhmh - kludge for selectors with argument
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6410
    "
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6411
    (menuSelection isMemberOf:Array) ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6412
	actionArg1 := menuSelection at:2.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6413
	actionSelector := menuSelection at:1.
3241
e5c9791522af menuPerformer dispatching
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  6414
    ].
e5c9791522af menuPerformer dispatching
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  6415
e5c9791522af menuPerformer dispatching
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  6416
    menuPerformer := aMenuPerformerOrNil ? self menuPerformer.
1839
7da27042198c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1837
diff changeset
  6417
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6418
    "
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6419
     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
  6420
     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
  6421
     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
  6422
    "
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6423
    actionSelector isSymbol ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6424
	(menuPerformer respondsTo:actionSelector) ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6425
	    ((app := self application) respondsTo:actionSelector) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6426
		menuPerformer := app.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6427
		actionArg1 := self model.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6428
		actionArg2 := self controller.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6429
	    ] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6430
		(self respondsTo:actionSelector) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6431
		    menuPerformer := self
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6432
		]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6433
	    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6434
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6435
	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
  6436
    ].
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6437
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  6438
    "Created: / 20.6.1997 / 11:47:42 / cg"
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  6439
    "Modified: / 1.11.1997 / 13:45:23 / cg"
3533
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  6440
!
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  6441
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  6442
menuFromSpec:aMenuOrMenuSpec
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  6443
    "create a menu for the receiver from a spec"
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  6444
3559
bbdf48b9fb5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3558
diff changeset
  6445
    |spec|
bbdf48b9fb5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3558
diff changeset
  6446
bbdf48b9fb5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3558
diff changeset
  6447
    aMenuOrMenuSpec isNil ifTrue:[^ nil].
3533
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  6448
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  6449
    aMenuOrMenuSpec isArray ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6450
	spec := aMenuOrMenuSpec decodeAsLiteralArray.
3533
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  6451
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6452
	spec := aMenuOrMenuSpec.
3533
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  6453
    ].
3556
eaea177415b0 findGuiResources... now sets the receiver, if not yet set
Claus Gittinger <cg@exept.de>
parents: 3540
diff changeset
  6454
    "/ spec receiver:self.     -- now done in findGuiResources ...
3533
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  6455
    spec findGuiResourcesIn:self.
fb0eddc93c1e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3522
diff changeset
  6456
    ^ spec.
3752
c78ca44247d5 can now specify if menu action is to be performed by
ca
parents: 3745
diff changeset
  6457
!
c78ca44247d5 can now specify if menu action is to be performed by
ca
parents: 3745
diff changeset
  6458
c78ca44247d5 can now specify if menu action is to be performed by
ca
parents: 3745
diff changeset
  6459
startUpMenu:aMenu
3753
e593d6729f4e can now specify if menu action is to be performed by
ca
parents: 3752
diff changeset
  6460
    ^ aMenu startUpFor:self
1759
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6461
! !
f4cd63a4d736 extracted menu dispatch code into sep. method.
Claus Gittinger <cg@exept.de>
parents: 1756
diff changeset
  6462
140
claus
parents: 138
diff changeset
  6463
!SimpleView methodsFor:'private'!
claus
parents: 138
diff changeset
  6464
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6465
componentsContainingX:x y:y do:aBlock
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6466
    components notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6467
	components reverseDo:[:aComponent |
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6468
	    |thisFrame|
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6469
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6470
	    thisFrame := aComponent bounds.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6471
	    (thisFrame containsPointX:x y:y) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6472
		"/ prepare for masked/non-rectangular components ...
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6473
		(aComponent perform:#containsPointX:y: with:x with:y ifNotUnderstood:true)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6474
		ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6475
		    aBlock value:aComponent 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6476
			   value:x - thisFrame left
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6477
			   value:y - thisFrame top.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6478
		]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6479
	    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6480
	]
659
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6481
    ].
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6482
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6483
    "Created: 8.5.1996 / 23:40:59 / cg"
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6484
!
72c93421a2a3 fixed component-events
Claus Gittinger <cg@exept.de>
parents: 654
diff changeset
  6485
140
claus
parents: 138
diff changeset
  6486
computeInnerClip
claus
parents: 138
diff changeset
  6487
    "compute, but do not set the inside clip-area"
claus
parents: 138
diff changeset
  6488
claus
parents: 138
diff changeset
  6489
    |m2 nX nY nW nH|
claus
parents: 138
diff changeset
  6490
claus
parents: 138
diff changeset
  6491
    (margin ~~ 0) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6492
	m2 := margin + margin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6493
	nX := nY := margin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6494
	nW := width - m2.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6495
	nH := height - m2.
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6496
"/        transformation notNil ifTrue:[
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6497
"/            nX := transformation applyInverseToX:nX.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6498
"/            nY := transformation applyInverseToY:nY.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6499
"/            nW := transformation applyInverseScaleX:nW.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6500
"/            nH := transformation applyInverseScaleY:nH.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6501
"/        ].
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6502
	innerClipRect := Rectangle 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6503
				 left:nX 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6504
				 top:nY 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6505
				 width:nW 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6506
				 height:nH
140
claus
parents: 138
diff changeset
  6507
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6508
	"no clipping"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6509
	innerClipRect := nil
140
claus
parents: 138
diff changeset
  6510
    ]
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6511
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6512
    "Modified: / 22.5.1999 / 16:50:58 / cg"
140
claus
parents: 138
diff changeset
  6513
!
claus
parents: 138
diff changeset
  6514
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6515
cornerFromRelativeCorner
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6516
    "compute & return pixel corner from relativeCorner"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6517
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6518
    ^ self cornerFromRelativeCorner:relativeCorner
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6519
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6520
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6521
cornerFromRelativeCorner:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6522
    "compute & return pixel corner from a relativeCorner, aPoint"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6523
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6524
    |p r b bw|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6525
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6526
    p := self pointFromRelative:aPoint.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6527
2382
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  6528
    bw := borderWidth ? 0.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6529
    insets isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6530
	bw == 0 ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6531
	    ^ p
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6532
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6533
	^ (p x - bw) @ (p y - bw)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6534
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6535
    r := (insets at:3) + bw.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6536
    b := (insets at:4) + bw.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6537
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6538
"/    r := b := bw.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6539
"/    rightInset notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6540
"/        r := rightInset + bw
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6541
"/    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6542
"/    bottomInset notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6543
"/        b := bottomInset + bw
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6544
"/    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6545
    ((r ~~ 0) or:[b ~~ 0]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6546
	^ (p x - r) @ (p y - b)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6547
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6548
    ^ p
2382
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  6549
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  6550
    "Modified: / 1.10.1998 / 13:21:33 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6551
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6552
3518
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  6553
detectViewAt:aPoint
3540
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  6554
    "find the subView which contains aPoint - invisible components are ignored.
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  6555
     This is almost the same as #componentContainingX:y: (if that existed) "
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  6556
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  6557
    ^ self detectViewAt:aPoint ignoreInvisible:false
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  6558
!
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  6559
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  6560
detectViewAt:aPoint ignoreInvisible:ignoreInvisible
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  6561
    "find the subView which contains aPoint - invisible components are ignored if
5a043181bded parametrized #detectViewAt:
Claus Gittinger <cg@exept.de>
parents: 3533
diff changeset
  6562
     the ignoreInvisible argument is false.
3518
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  6563
     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
  6564
3642
400ffe15bba9 remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3640
diff changeset
  6565
    |subViews|
3518
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  6566
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  6567
    (subViews := self subViews) notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6568
	subViews do:[:v| |p|
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6569
	    (ignoreInvisible or:[v shown]) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6570
		(    (aPoint x between:(v left) and:(v right))
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6571
		 and:[aPoint y between:(v top)  and:(v bottom)]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6572
		) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6573
		    "/ found a subview - the point is there
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6574
		    p := device translatePoint:aPoint fromView:self toView:v.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6575
		    ^ v detectViewAt:p ignoreInvisible:ignoreInvisible.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6576
		]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6577
	    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  6578
	]
3518
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  6579
    ].
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  6580
    "/ no subview - the point is here
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  6581
    ^ self
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  6582
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  6583
    "Modified: / 10.10.2001 / 13:45:26 / cg"
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  6584
!
983e7730a905 use new translatePoint:fromView:toView:
Claus Gittinger <cg@exept.de>
parents: 3516
diff changeset
  6585
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6586
extentFromRelativeExtent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6587
    "compute & return pixel extent from relativeExtent"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6588
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6589
    ^ self extentFromRelativeExtent:relativeExtent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6590
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6591
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6592
extentFromRelativeExtent:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6593
    "compute & return pixel extent from relativeExtent, aPoint"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6594
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6595
    |rel newX newY inRect bw2 i|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6596
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6597
    superView isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6598
	inRect := 0@0 extent:device extent
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6599
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6600
	inRect := superView viewRectangle.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6601
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6602
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6603
    bw2 := borderWidth * 2.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6604
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6605
    rel := aPoint x.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6606
    rel isInteger ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6607
	newX := (rel * (inRect width + bw2)) asInteger + inRect left.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6608
	(borderWidth ~~ 0) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6609
	    newX := newX - borderWidth
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6610
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6611
    ] ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6612
	newX := rel
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6613
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6614
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6615
    rel := aPoint y.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6616
    rel isInteger ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6617
	newY := (rel * (inRect height + bw2)) asInteger + inRect top.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6618
	(borderWidth ~~ 0) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6619
	    newY := newY - borderWidth
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6620
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6621
    ] ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6622
	newY := rel
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6623
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6624
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6625
    insets notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6626
	i := insets at:1.   "top"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6627
	(i  ~~ 0) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6628
	    newX := newX - i
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6629
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6630
	i := insets at:3.   "left"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6631
	(i  ~~ 0) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6632
	    newX := newX - i
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6633
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6634
	i := insets at:2.   "right"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6635
	(i ~~ 0) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6636
	    newY := newY - i
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6637
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6638
	i := insets at:4.   "bottom"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6639
	(i ~~ 0) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6640
	    newY := newY - i
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6641
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6642
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6643
    ^ newX @ newY
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6644
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6645
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6646
originFromRelativeOrigin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6647
    "compute & return pixel origin from relativeOrigin"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6648
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6649
    ^ self originFromRelativeOrigin:relativeOrigin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6650
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6651
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6652
originFromRelativeOrigin:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6653
    "compute & return pixel origin from relativeOrigin, aPoint"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6654
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6655
    |p l t|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6656
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6657
    p := self pointFromRelative:aPoint.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6658
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6659
    insets isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6660
	^ p
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6661
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6662
    l := insets at:1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6663
    t := insets at:2.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6664
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6665
"/  l := t := 0.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6666
"/    leftInset notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6667
"/        l := leftInset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6668
"/    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6669
"/    topInset notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6670
"/        t := topInset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6671
"/    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6672
    ((l ~~ 0) or:[t ~~ 0]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6673
	^ (p x + l) @ (p y + t)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6674
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6675
    ^ p
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6676
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6677
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6678
pixelCorner:corner
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6679
    "set the views corner in pixels"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6680
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6681
    |w h|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6682
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6683
    w := corner x - left + 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6684
    h := corner y - top + 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6685
    self pixelOrigin:(left @ top) extent:(w @ h)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6686
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6687
    "Modified: 31.8.1995 / 18:20:22 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6688
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6689
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6690
pixelExtent:extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6691
    "set the views extent in pixels"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6692
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6693
    self pixelOrigin:(left @ top) extent:extent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6694
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6695
1363
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  6696
pixelOrigin
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  6697
    "return the views origin in pixels. For subviews. the origin is relative
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  6698
     to the superviews top-left. For topViews, its the screen origin."
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  6699
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  6700
    ^ self computeOrigin
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  6701
!
3a02d26cbc35 added #enabled (isEnabled) queries.
ca
parents: 1356
diff changeset
  6702
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6703
pixelOrigin:origin
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6704
    "set the views origin in pixels. For subviews. the origin is relative
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6705
     to the superviews top-left. For topViews, its the screen origin."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6706
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6707
    |newLeft newTop|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6708
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6709
    newLeft := origin x.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6710
    newTop := origin y.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6711
    ((newTop ~~ top) or:[newLeft ~~ left]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6712
	top := newTop.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6713
	left := newLeft.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6714
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6715
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6716
	 if the receiver is visible, or is a topView, perform the
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6717
	 operation right away - otherwise, simply remember that the
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6718
	 origin has changed - will tell the display once we get realized
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6719
	"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6720
"/        (shown 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6721
"/        or:[superView isNil and:[drawableId notNil]]) ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6722
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6723
	"/ no, have to do it if drawableId is there
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6724
	"/ (otherwise, we could not move unmapped views around ...
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6725
	"/
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6726
	drawableId notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6727
	    device moveWindow:drawableId x:left y:top
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6728
	] ifFalse:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  6729
	    self originChangedFlag:true
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6730
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6731
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6732
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6733
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6734
pixelOrigin:origin corner:corner
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6735
    "set the views origin and corner in pixels"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6736
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6737
    |w h|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6738
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6739
    w := corner x - origin x + 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6740
    h := corner y - origin y + 1.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6741
    self pixelOrigin:origin extent:(w @ h)
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
    "Modified: 31.8.1995 / 18:24:16 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6744
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6745
140
claus
parents: 138
diff changeset
  6746
pixelOrigin:origin extent:extent
claus
parents: 138
diff changeset
  6747
    "set the views origin and extent in pixels"
claus
parents: 138
diff changeset
  6748
claus
parents: 138
diff changeset
  6749
    |newLeft newTop newWidth newHeight how 
claus
parents: 138
diff changeset
  6750
     mustRedrawBottomEdge mustRedrawRightEdge mustRepaintBottom
3340
f810ebc6d836 preserve current paint when drawing edges
martin
parents: 3327
diff changeset
  6751
     mustRepaintRight sameOrigin oldWidth oldHeight oldPaint|
140
claus
parents: 138
diff changeset
  6752
claus
parents: 138
diff changeset
  6753
    newLeft := origin x.
claus
parents: 138
diff changeset
  6754
    newTop := origin y.
claus
parents: 138
diff changeset
  6755
    sameOrigin := ((newTop == top) and:[newLeft == left]).
claus
parents: 138
diff changeset
  6756
claus
parents: 138
diff changeset
  6757
    newWidth := extent x.
claus
parents: 138
diff changeset
  6758
    newHeight := extent y.
claus
parents: 138
diff changeset
  6759
claus
parents: 138
diff changeset
  6760
    "
claus
parents: 138
diff changeset
  6761
     X complains badly if you try to create/resize a view with
claus
parents: 138
diff changeset
  6762
     a dimension <= 0 ... (although I think that 0 maks sense ...)
claus
parents: 138
diff changeset
  6763
    "
claus
parents: 138
diff changeset
  6764
    newWidth < 1 ifTrue:[
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6765
        newWidth := 1.
140
claus
parents: 138
diff changeset
  6766
    ].
claus
parents: 138
diff changeset
  6767
    newHeight < 1 ifTrue:[
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6768
        newHeight := 1
140
claus
parents: 138
diff changeset
  6769
    ].
claus
parents: 138
diff changeset
  6770
claus
parents: 138
diff changeset
  6771
    ((newWidth == width) and:[newHeight == height]) ifTrue:[
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6772
        sameOrigin ifTrue:[^ self].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6773
        self changed:#origin.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6774
        ^ self pixelOrigin:origin
140
claus
parents: 138
diff changeset
  6775
    ].
claus
parents: 138
diff changeset
  6776
    top := newTop.
claus
parents: 138
diff changeset
  6777
    left := newLeft.
claus
parents: 138
diff changeset
  6778
claus
parents: 138
diff changeset
  6779
"/    shown ifTrue:[                  "4-nov-94 actually correct,"
claus
parents: 138
diff changeset
  6780
    drawableId notNil ifTrue:[        "but theres a bug in menus when resized while hidden"
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6781
        mustRedrawBottomEdge := (level ~~ 0) and:[newHeight < height].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6782
        mustRedrawRightEdge := (level ~~ 0) and:[newWidth < width].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6783
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6784
        ((newHeight <= height) and:[newWidth <= width]) ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6785
            how := #smaller
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6786
        ] ifFalse:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6787
            ((newHeight >= height) and:[newWidth >= width]) ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6788
                how := #larger
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6789
            ]
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6790
        ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6791
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6792
        mustRepaintRight := false.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6793
        mustRepaintBottom := false.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6794
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6795
        oldWidth := width.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6796
        oldHeight := height.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6797
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6798
        shown ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6799
            (level ~~ 0) ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6800
                "clear the old edges"
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6801
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6802
                newWidth > width ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6803
                    self clippingRectangle:nil.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6804
                    oldPaint := paint.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6805
                    self paint:viewBackground.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6806
                    self fillDeviceRectangleX:(width - margin)
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6807
                                            y:0
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6808
                                        width:margin
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6809
                                       height:height.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6810
                    self paint:oldPaint.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6811
                    mustRepaintRight := true.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6812
                ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6813
                newHeight > height ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6814
                    self clippingRectangle:nil.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6815
                    oldPaint := paint.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6816
                    self paint:viewBackground.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6817
                    self fillDeviceRectangleX:0
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6818
                                            y:(height - margin)
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6819
                                        width:width
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6820
                                       height:margin.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6821
                    self paint:oldPaint.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6822
                    mustRepaintBottom := true.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6823
                ]
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6824
            ]
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6825
        ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6826
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6827
        width := newWidth.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6828
        height := newHeight.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6829
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6830
        self setInnerClip.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6831
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6832
        "if view becomes smaller, send sizeChanged first"
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6833
        true  "(how == #smaller)" ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6834
            self sizeChanged:how
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6835
        ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6836
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6837
        "have to tell X, when extent of view is changed"
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6838
        sameOrigin ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6839
            device resizeWindow:drawableId width:width height:height.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6840
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6841
        ] ifFalse:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6842
            "claus: some xservers seem to do better when resizing
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6843
             first ...."
140
claus
parents: 138
diff changeset
  6844
" 
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6845
            (how == #smaller) ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6846
                device resizeWindow:drawableId width:width height:height.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6847
                device moveWindow:drawableId x:left y:top
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6848
            ] ifFalse:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6849
                device moveResizeWindow:drawableId x:left y:top width:width height:height
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6850
            ].
140
claus
parents: 138
diff changeset
  6851
" 
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6852
            device moveResizeWindow:drawableId x:left y:top
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6853
                                           width:width height:height.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6854
        ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6855
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6856
        "if view becomes bigger, send sizeChanged after"
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6857
        false "(how ~~ #smaller)" ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6858
            self sizeChanged:how
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6859
        ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6860
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6861
        shown ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6862
            (mustRedrawBottomEdge or:[mustRedrawRightEdge]) ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6863
                self deviceClippingRectangle:nil.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6864
                oldPaint := paint.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6865
                mustRedrawBottomEdge ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6866
                    self drawBottomEdge
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6867
                ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6868
                mustRedrawRightEdge ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6869
                    self drawRightEdge
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6870
                ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6871
                self paint:oldPaint.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6872
                self deviceClippingRectangle:innerClipRect
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6873
            ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6874
        ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6875
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6876
        mustRepaintRight ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6877
            self invalidateDeviceRectangle:(((oldWidth - margin) @ 0)
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6878
                                           extent:margin@height)
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6879
                                 repairNow:false.
2400
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  6880
"/            self redrawDeviceX:(oldWidth - margin)
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  6881
"/                             y:0
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  6882
"/                         width:margin
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  6883
"/                        height:height.
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6884
        ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6885
        mustRepaintBottom ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6886
            self invalidateDeviceRectangle:((0 @ (oldHeight - margin))
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6887
                                           extent:width@margin)
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6888
                                 repairNow:false.
2400
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  6889
"/            self redrawDeviceX:0
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  6890
"/                             y:(oldHeight - margin)
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  6891
"/                         width:width
13dc68f612fb when resizing, invalidate instead of redrawing right away
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
  6892
"/                        height:margin.
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6893
        ].
140
claus
parents: 138
diff changeset
  6894
    ] ifFalse:[
3784
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6895
        "otherwise memorize the need for a sizeChanged message"
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6896
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6897
        width := newWidth.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6898
        height := newHeight.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6899
        sameOrigin ifFalse:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6900
            self originChangedFlag:true.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6901
        ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6902
        self extentChangedFlag:true.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6903
        subViews size > 0 ifTrue:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6904
            self extentChangedBeforeCreatedFlag:true.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6905
        ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6906
    ].
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6907
    sameOrigin ifFalse:[
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6908
        self changed:#origin.
378456357157 added #frame for displayObject compatibility
Michael Beyl <mb@exept.de>
parents: 3781
diff changeset
  6909
    ].
739
3d809aa492ec checkin from browser
Claus Gittinger <cg@exept.de>
parents: 738
diff changeset
  6910
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6911
    "Modified: / 25.5.1999 / 14:49:56 / cg"
140
claus
parents: 138
diff changeset
  6912
!
claus
parents: 138
diff changeset
  6913
claus
parents: 138
diff changeset
  6914
pointFromRelative:p
claus
parents: 138
diff changeset
  6915
    "compute absolute coordinate from p"
claus
parents: 138
diff changeset
  6916
claus
parents: 138
diff changeset
  6917
    |newX newY rel inRect bw superWidth superHeight superLeft superTop |
claus
parents: 138
diff changeset
  6918
2382
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  6919
    bw := borderWidth ? 0.
140
claus
parents: 138
diff changeset
  6920
claus
parents: 138
diff changeset
  6921
    superView isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6922
	superWidth := device width + bw.      
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6923
	superHeight := device height + bw.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6924
	superLeft := superTop := 0.
140
claus
parents: 138
diff changeset
  6925
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6926
	inRect := superView viewRectangle.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6927
	superWidth := inRect width.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6928
	superHeight := inRect height.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6929
	superLeft := inRect left.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6930
	superTop := inRect top.
140
claus
parents: 138
diff changeset
  6931
    ].
claus
parents: 138
diff changeset
  6932
claus
parents: 138
diff changeset
  6933
    rel := p x.
claus
parents: 138
diff changeset
  6934
    rel isInteger ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6935
	newX := rel
140
claus
parents: 138
diff changeset
  6936
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6937
	newX := (rel * superWidth) asInteger + superLeft.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6938
	(bw ~~ 0) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6939
	    rel ~= 1.0 ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6940
		newX := newX - bw
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6941
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6942
	]
140
claus
parents: 138
diff changeset
  6943
    ].
claus
parents: 138
diff changeset
  6944
claus
parents: 138
diff changeset
  6945
    rel := p y.
claus
parents: 138
diff changeset
  6946
    rel isInteger ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6947
	newY := rel
140
claus
parents: 138
diff changeset
  6948
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6949
	newY := (rel * superHeight) asInteger + superTop.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6950
	(bw ~~ 0) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6951
	    rel ~= 1.0 ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6952
		newY := newY - bw
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6953
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6954
	]
140
claus
parents: 138
diff changeset
  6955
    ].
claus
parents: 138
diff changeset
  6956
    ^ newX @ newY
2382
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  6957
2fe724f3efcd init borderWidth.
Claus Gittinger <cg@exept.de>
parents: 2381
diff changeset
  6958
    "Modified: / 1.10.1998 / 13:21:14 / cg"
140
claus
parents: 138
diff changeset
  6959
!
claus
parents: 138
diff changeset
  6960
claus
parents: 138
diff changeset
  6961
setBorderColor
claus
parents: 138
diff changeset
  6962
    "set my borderColor"
claus
parents: 138
diff changeset
  6963
claus
parents: 138
diff changeset
  6964
    |id dither|
claus
parents: 138
diff changeset
  6965
claus
parents: 138
diff changeset
  6966
    drawableId notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6967
	borderColor := borderColor onDevice:device.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6968
	id := borderColor colorId.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6969
	id notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6970
	    device setWindowBorderColor:id in:drawableId
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6971
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6972
	    dither := borderColor ditherForm.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6973
	    dither notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6974
		device setWindowBorderPixmap:(dither id) in:drawableId
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6975
	    ] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6976
		'SimpleView [warning]: bad borderColor' errorPrintCR
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6977
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6978
	]
135
claus
parents:
diff changeset
  6979
    ]
1172
a69398754511 newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
  6980
a69398754511 newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 1161
diff changeset
  6981
    "Modified: 10.1.1997 / 18:06:34 / cg"
135
claus
parents:
diff changeset
  6982
!
claus
parents:
diff changeset
  6983
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6984
setInnerClip
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6985
    "compute, and set the inside clip-area"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6986
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  6987
    self computeInnerClip.
2726
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6988
    self deviceClippingRectangle:innerClipRect.
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6989
c0a05c874843 always use a deviceClipRect as innerClip;
Claus Gittinger <cg@exept.de>
parents: 2721
diff changeset
  6990
    "Modified: / 25.5.1999 / 14:45:53 / cg"
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  6991
!
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  6992
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  6993
setViewShape
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  6994
    |form|
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  6995
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  6996
    (form := viewShape borderShapeForm) notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  6997
	device setWindowBorderShape:(form id) in:drawableId
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  6998
    ].
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  6999
    (form := viewShape viewShapeForm) notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7000
	device setWindowShape:(form id) in:drawableId
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  7001
    ].
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  7002
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  7003
    "Created: 18.9.1997 / 11:09:00 / cg"
140
claus
parents: 138
diff changeset
  7004
! !
claus
parents: 138
diff changeset
  7005
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7006
!SimpleView methodsFor:'queries'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7007
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7008
canHandle:aKey
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7009
    "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
  7010
     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
  7011
     leftOver and will be removed. Use the delegation mechanism for this."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7012
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7013
    ^ false
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7014
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7015
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7016
canHandle:aKey from:aView
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7017
    "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
  7018
     in aView.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7019
     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
  7020
     leftOver and will be removed. Use the delegation mechanism for this."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7021
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7022
    ^ self canHandle:aKey
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7023
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7024
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7025
cornerChangedFlag
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7026
    "/ ^ cornerChangedFlag == true
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7027
    ^ flagBits bitTest:FlagCornerChanged
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7028
!
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7029
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7030
cornerChangedFlag:aBoolean 
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7031
    "/ cornerChangedFlag := aBoolean
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7032
    aBoolean ifTrue:[
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7033
	flagBits := flagBits bitOr:FlagCornerChanged
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7034
    ] ifFalse:[
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7035
	flagBits := flagBits bitClear:FlagCornerChanged
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7036
    ].
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7037
!
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7038
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7039
delegatesTo:someone
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7040
    "return true, if I delegate events to someone"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7041
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7042
    delegate isNil ifTrue:[^ false].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7043
    ^ delegate delegatesTo:someone
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7044
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7045
3439
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  7046
escapeIsCancel
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  7047
    "return the escapeIsCancel setting - defaults to true for popupViews here."
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  7048
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  7049
    ^ self isPopUpView
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  7050
!
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  7051
3394
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  7052
extentChangedBeforeCreatedFlag
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  7053
    ^ flagBits bitTest:FlagExtentChangedBeforeCreated
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  7054
!
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  7055
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  7056
extentChangedBeforeCreatedFlag:aBoolean
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  7057
    aBoolean ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7058
	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
  7059
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7060
	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
  7061
    ].
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  7062
!
56080b4ebce1 remember the fact, that the extent changed before the view
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  7063
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7064
extentChangedFlag
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7065
    "/ ^ extentChangedFlag == true
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7066
    ^ flagBits bitTest:FlagExtentChanged
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7067
!
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7068
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7069
extentChangedFlag:aBoolean
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7070
    "/ extentChangedFlag := aBoolean
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7071
    aBoolean ifTrue:[
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7072
	flagBits := flagBits bitOr:FlagExtentChanged
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7073
    ] ifFalse:[
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7074
	flagBits := flagBits bitClear:FlagExtentChanged
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7075
    ].
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7076
!
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7077
1748
24df4421d72f added dummy focusSequence
Claus Gittinger <cg@exept.de>
parents: 1747
diff changeset
  7078
focusSequence
24df4421d72f added dummy focusSequence
Claus Gittinger <cg@exept.de>
parents: 1747
diff changeset
  7079
    "return nil - for compatibility with StdSysView & SubCanvas.
24df4421d72f added dummy focusSequence
Claus Gittinger <cg@exept.de>
parents: 1747
diff changeset
  7080
     In the future, subviews which want to slice their components into the
24df4421d72f added dummy focusSequence
Claus Gittinger <cg@exept.de>
parents: 1747
diff changeset
  7081
     focusSequence may redefine this to return a list of their components."
24df4421d72f added dummy focusSequence
Claus Gittinger <cg@exept.de>
parents: 1747
diff changeset
  7082
24df4421d72f added dummy focusSequence
Claus Gittinger <cg@exept.de>
parents: 1747
diff changeset
  7083
    ^ nil
24df4421d72f added dummy focusSequence
Claus Gittinger <cg@exept.de>
parents: 1747
diff changeset
  7084
!
24df4421d72f added dummy focusSequence
Claus Gittinger <cg@exept.de>
parents: 1747
diff changeset
  7085
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7086
hasFocus
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7087
    "return true, if the receiver has the keyboard focus
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7088
     (either via the focusView mechanism in the windowGroup,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7089
      or via delegation)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7090
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7091
    |focusView delegate|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7092
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7093
    windowGroup isNil ifTrue:[^ false].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7094
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7095
    (focusView := windowGroup focusView) == self ifTrue:[^ true].
2506
221b75206a75 focus handling changed.
Claus Gittinger <cg@exept.de>
parents: 2496
diff changeset
  7096
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7097
    focusView notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7098
	"mhmh - is there a delegation to me ?"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7099
	(delegate := focusView delegate) notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7100
	    delegate == self ifTrue:[^ true].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7101
	    ^ delegate delegatesTo:self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7102
	]
135
claus
parents:
diff changeset
  7103
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7104
    ^ false
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7105
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7106
370
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  7107
is3D
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  7108
    "return true, if my style is some kind of 3D style
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  7109
     This is OBSOLETE and will be removed."
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  7110
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  7111
    ^ styleSheet is3D
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  7112
!
c43763552e80 category changes
Claus Gittinger <cg@exept.de>
parents: 369
diff changeset
  7113
794
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  7114
isBorderedWrapper
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  7115
     ^ false
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  7116
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  7117
    "Created: 5.6.1996 / 14:11:15 / cg"
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  7118
!
d21c9a163f20 care for border wrappers
Claus Gittinger <cg@exept.de>
parents: 792
diff changeset
  7119
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  7120
isComponentOf:aViewOrComponent
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  7121
    "return true, if I am a (direct or indirect) component of aViewOrComponent"
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  7122
3362
6774771fc2b8 fix #isComponentOf:
ca
parents: 3358
diff changeset
  7123
    |sview|
6774771fc2b8 fix #isComponentOf:
ca
parents: 3358
diff changeset
  7124
6774771fc2b8 fix #isComponentOf:
ca
parents: 3358
diff changeset
  7125
    sview := self.
6774771fc2b8 fix #isComponentOf:
ca
parents: 3358
diff changeset
  7126
3616
0ddaf2ce9b06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3614
diff changeset
  7127
    [ (sview := sview container) notNil ] whileTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7128
	sview == aViewOrComponent ifTrue:[^ true].
3362
6774771fc2b8 fix #isComponentOf:
ca
parents: 3358
diff changeset
  7129
    ].
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  7130
    ^ false
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  7131
!
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  7132
3711
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  7133
isCursorKeyConsumer
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  7134
    "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
  7135
     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
  7136
     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
  7137
     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
  7138
     mode is off.
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  7139
     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
  7140
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  7141
    ^ false
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  7142
!
f74e461c8b31 added #isCursorKeyConsumer (second chance initial focus in dialog)
Claus Gittinger <cg@exept.de>
parents: 3709
diff changeset
  7143
2496
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  7144
isDefault
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  7145
    "return true, if I am a default widget;
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  7146
     Used with autoAccept. Currently only default buttons are supposed to return
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  7147
     true here"
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  7148
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  7149
     ^ false
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  7150
!
f3093d8a83f8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2495
diff changeset
  7151
2430
fbce2378d686 added isExternalTopView query.
Claus Gittinger <cg@exept.de>
parents: 2425
diff changeset
  7152
isExternalTopView
2454
f708fb443ffe method comment
Claus Gittinger <cg@exept.de>
parents: 2452
diff changeset
  7153
    "return true, if this is an external topView - always false here"
f708fb443ffe method comment
Claus Gittinger <cg@exept.de>
parents: 2452
diff changeset
  7154
2430
fbce2378d686 added isExternalTopView query.
Claus Gittinger <cg@exept.de>
parents: 2425
diff changeset
  7155
    ^ false
fbce2378d686 added isExternalTopView query.
Claus Gittinger <cg@exept.de>
parents: 2425
diff changeset
  7156
fbce2378d686 added isExternalTopView query.
Claus Gittinger <cg@exept.de>
parents: 2425
diff changeset
  7157
fbce2378d686 added isExternalTopView query.
Claus Gittinger <cg@exept.de>
parents: 2425
diff changeset
  7158
!
fbce2378d686 added isExternalTopView query.
Claus Gittinger <cg@exept.de>
parents: 2425
diff changeset
  7159
497
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  7160
isInputField
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  7161
    "return true, if the receiver is some kind of input view,
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  7162
     i.e. it should (can) be part of an enterGroup.
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  7163
     Return false here, this is redefined in EnterField."
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  7164
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  7165
    ^ false
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  7166
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  7167
    "Created: 4.3.1996 / 11:34:07 / cg"
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  7168
!
5c2f58720c62 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
  7169
2410
050a7633ba9f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2406
diff changeset
  7170
isJavaView
050a7633ba9f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2406
diff changeset
  7171
    ^ false
050a7633ba9f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2406
diff changeset
  7172
050a7633ba9f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2406
diff changeset
  7173
    "Created: / 4.12.1998 / 14:10:06 / cg"
050a7633ba9f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2406
diff changeset
  7174
!
050a7633ba9f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2406
diff changeset
  7175
2588
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  7176
isKeyboardConsumer
2727
2047aa7dd3ac comment
Claus Gittinger <cg@exept.de>
parents: 2726
diff changeset
  7177
    "return true, if the receiver is a keyboard consumer;
2588
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  7178
     i.e. it can handle (non-shortkey) keyboard input,
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  7179
     keyboardConsumer are potential candidates for getting the keyboard
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  7180
     focus initially within dialogBoxes, or when the focus-follows-pointer
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  7181
     mode is off.
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  7182
     Return false here, this is redefined in EditTextView and EditField."
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  7183
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  7184
    ^ false
2727
2047aa7dd3ac comment
Claus Gittinger <cg@exept.de>
parents: 2726
diff changeset
  7185
2047aa7dd3ac comment
Claus Gittinger <cg@exept.de>
parents: 2726
diff changeset
  7186
    "Modified: / 22.5.1999 / 16:19:27 / cg"
2588
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  7187
!
4a5b0e48d645 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2584
diff changeset
  7188
964
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  7189
isLayoutWrapper
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  7190
     ^ false
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  7191
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  7192
    "Created: 19.7.1996 / 17:51:04 / cg"
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  7193
!
5236c3ceb002 more view mimicri;
Claus Gittinger <cg@exept.de>
parents: 955
diff changeset
  7194
3653
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  7195
isSameOrComponentOf:aView
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  7196
    "return true, if I am aView or a (direct or indirect) component of aView"
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  7197
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  7198
    ^ self == aView or:[self isComponentOf:aView].
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  7199
!
dd77a60ef178 +isSameOrComponentOf:
penk
parents: 3648
diff changeset
  7200
2161
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  7201
isScrollWrapper
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  7202
     ^ false
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  7203
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  7204
    "Created: / 5.6.1996 / 14:11:15 / cg"
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  7205
    "Modified: / 20.6.1998 / 14:15:29 / cg"
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  7206
!
46940821c697 added #isScrollWrapper query.
Claus Gittinger <cg@exept.de>
parents: 2159
diff changeset
  7207
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7208
isSubViewOf:aView
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  7209
    "return true, if I am a (direct or indirect) subview of aView"
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  7210
3434
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  7211
    <resource:#obsolete>
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  7212
791
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  7213
    self obsoleteMethodWarning:'use #isComponentOf:'.
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  7214
    ^ self isComponentOf:aView.
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  7215
e6adfb28e3bc isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 782
diff changeset
  7216
    "Modified: 5.6.1996 / 14:25:35 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7217
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7218
3754
e9e44cddffd0 isTextView query moved
Claus Gittinger <cg@exept.de>
parents: 3753
diff changeset
  7219
isTextView
e9e44cddffd0 isTextView query moved
Claus Gittinger <cg@exept.de>
parents: 3753
diff changeset
  7220
    "I am not showing text (showing lines)"
e9e44cddffd0 isTextView query moved
Claus Gittinger <cg@exept.de>
parents: 3753
diff changeset
  7221
e9e44cddffd0 isTextView query moved
Claus Gittinger <cg@exept.de>
parents: 3753
diff changeset
  7222
    ^ false
e9e44cddffd0 isTextView query moved
Claus Gittinger <cg@exept.de>
parents: 3753
diff changeset
  7223
!
e9e44cddffd0 isTextView query moved
Claus Gittinger <cg@exept.de>
parents: 3753
diff changeset
  7224
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  7225
isWrapper
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  7226
     ^ false
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  7227
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  7228
    "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
  7229
!
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  7230
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7231
originChangedFlag
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7232
    "/ ^ originChangedFlag == true
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7233
    ^ flagBits bitTest:FlagOriginChanged
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7234
!
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7235
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7236
originChangedFlag:aBoolean
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7237
    "/ originChangedFlag := aBoolean
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7238
    aBoolean ifTrue:[
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7239
	flagBits := flagBits bitOr:FlagOriginChanged
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7240
    ] ifFalse:[
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7241
	flagBits := flagBits bitClear:FlagOriginChanged
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7242
    ].
3368
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7243
!
57da0cceaf16 concentrated all accesses to originChanged, extentChanged and
Claus Gittinger <cg@exept.de>
parents: 3367
diff changeset
  7244
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  7245
originOrExtentChanged
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  7246
    "/ ^ originChanged or:[extentChanged].
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  7247
    ^ flagBits bitTest:( FlagOriginChanged + FlagExtentChanged )
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  7248
!
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  7249
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  7250
originOrExtentOrCornerChanged
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  7251
    "/ ^ 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
  7252
    ^ 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
  7253
!
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  7254
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7255
preferredBounds
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7256
    "ST-80 compatibility."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7257
971
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  7258
    ^ 0@0 extent:(self preferredExtent)
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  7259
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  7260
    "Modified: 19.7.1996 / 20:41:36 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7261
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7262
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7263
preferredExtent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7264
    "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
  7265
     If the preferredExtent has been set, that one is returned.
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7266
     Otherwise, if there are any components, a rectangle enclosing them
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7267
     is returned. Otherwise, the actual extent is returned."
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7268
1063
ba1bf8091bc1 unused variable cleanup
Claus Gittinger <cg@exept.de>
parents: 1052
diff changeset
  7269
    |maxX maxY|
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7270
971
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  7271
    "/ If I have an explicit preferredExtent ..
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  7272
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7273
    preferredExtent notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7274
	^ preferredExtent
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7275
    ].
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7276
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7277
    "/ mhmh - if I have subViews, collect their
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7278
    "/ preferred bounds ...
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7279
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7280
    subViews notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7281
	maxX := maxY := 0.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7282
	subViews do:[:aSubView |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7283
	    |org corn|
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7284
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7285
	    org := aSubView computeOrigin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7286
	    corn := org + aSubView preferredExtent.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7287
	    maxX := maxX max:corn x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7288
	    maxY := maxY max:corn y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7289
	]
140
claus
parents: 138
diff changeset
  7290
    ].
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7291
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7292
    "/ mhmh - if I have components, collect their
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7293
    "/  preferred bounds ...
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7294
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7295
    components notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7296
	maxX isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7297
	    maxX := maxY := 0.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7298
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7299
	components do:[:aComponent |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7300
	    |bounds org corn|
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7301
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7302
	    bounds := aComponent preferredBounds.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7303
	    corn := bounds corner.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7304
	    maxX := maxX max:corn x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7305
	    maxY := maxY max:corn y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7306
	]
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7307
    ].
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7308
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7309
    "/ nothing found - return the actual size
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7310
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7311
    maxX isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7312
	^ self extent.
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7313
    ].
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7314
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7315
    ^ maxX @ maxY.
761
34d17118452a care for preSet preferredExtent
Claus Gittinger <cg@exept.de>
parents: 760
diff changeset
  7316
971
3137be953256 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 967
diff changeset
  7317
    "Modified: 19.7.1996 / 20:43:32 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7318
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7319
2956
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  7320
reallyRealized
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  7321
    "return true, if the receiver is realized and all containers
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  7322
     are realized."
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  7323
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  7324
    realized ifFalse:[^ false].
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  7325
    superView isNil ifTrue:[^ true].
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  7326
    ^ superView reallyRealized
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  7327
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  7328
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  7329
!
7df6d15ae1a5 renamed #fullyRealized
Claus Gittinger <cg@exept.de>
parents: 2935
diff changeset
  7330
2130
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  7331
resources
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  7332
    ^ resources
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  7333
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  7334
    "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
  7335
!
5dbffd126b4a added #resources class method for all views.
Claus Gittinger <cg@exept.de>
parents: 2128
diff changeset
  7336
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7337
sizeFixed
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7338
    "return true, if this vew wants its size to remain unchanged.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7339
     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
  7340
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7341
    ^ false
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7342
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7343
    "Created: 17.9.1995 / 20:29:20 / claus"
1699
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7344
! !
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7345
3266
4db6dd90cc17 category change
Claus Gittinger <cg@exept.de>
parents: 3251
diff changeset
  7346
!SimpleView methodsFor:'queries-events'!
2802
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7347
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7348
buttonMotionEventPending
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7349
    "return true, if a button motion event is pending.
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7350
     Normally, you dont want to use this, since no polling is needed
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7351
     (not even for mouse-tracking).
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7352
     Actually, its a historical leftover"
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7353
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7354
    windowGroup notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7355
	^ windowGroup sensor hasButtonMotionEventFor:self
2802
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7356
    ].
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7357
    ^ super buttonMotionEventPending
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7358
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7359
    "Modified: 1.11.1996 / 17:04:38 / cg"
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7360
! !
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  7361
3266
4db6dd90cc17 category change
Claus Gittinger <cg@exept.de>
parents: 3251
diff changeset
  7362
!SimpleView methodsFor:'queries-internal'!
1699
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7363
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7364
nativeWindowType
1702
ba153bb6400b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  7365
    "return a symbol describing my native window type - here, nil is returned
ba153bb6400b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  7366
     (may be used internally by the device as a native window creation hint)"
ba153bb6400b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  7367
1699
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7368
    ^ nil
1354
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  7369
!
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  7370
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  7371
specClass
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7372
    "fallback - heuristics to get a specClass for some viewClass.
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7373
     Based upon my className, look for a corresponding Spec-class.
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7374
     If there is none, return ArbiraryComponentSpec as a fallBack"
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7375
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7376
    |myClass myName cls|
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7377
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7378
    ((myClass := self class) == View
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7379
    or:[myClass == SimpleView]) ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7380
	^ ViewSpec "/ CompositeSpecCollection
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7381
    ].
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7382
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7383
    "/ try: appending 'Spec' to my classes name
1409
3818a8a85c16 use CompositeSpecCollection as specClass for
Claus Gittinger <cg@exept.de>
parents: 1402
diff changeset
  7384
1354
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  7385
    myName := self class name.
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  7386
    cls := Smalltalk classNamed:(myName , 'Spec').
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7387
    cls notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7388
	cls autoload.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7389
	(cls notNil and:[cls isSubclassOf:UISpecification]) ifTrue:[^ cls].
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7390
    ].
1354
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  7391
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  7392
    (myName endsWith:'View') ifTrue:[
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7393
"/        "/ try name without 'View'
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7394
"/        cls := Smalltalk classNamed:(myName copyWithoutLast:4).
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7395
"/        (cls notNil and:[cls isLoaded not]) ifTrue:[
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7396
"/            cls autoload
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7397
"/        ].
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7398
"/        (cls notNil and:[cls isSubclassOf:UISpecification]) ifTrue:[^ cls].
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7399
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7400
	"/ try with 'View' replaced by 'Spec'
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7401
	cls := Smalltalk classNamed:((myName copyWithoutLast:4) , 'View').
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7402
	cls notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7403
	    cls autoload.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7404
	    (cls notNil and:[cls isSubclassOf:UISpecification]) ifTrue:[^ cls].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7405
	]
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7406
    ].
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7407
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7408
    "/ fallBack for all others
1356
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7409
    ^ ArbitraryComponentSpec
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7410
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7411
"/    self error:'no spec class (subclassResponsibility)'
1354
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  7412
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  7413
    "
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  7414
     FramedBox new specClass 
b5baf62b8c7a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1335
diff changeset
  7415
    "
1409
3818a8a85c16 use CompositeSpecCollection as specClass for
Claus Gittinger <cg@exept.de>
parents: 1402
diff changeset
  7416
1943
bab4bcd19c6c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1938
diff changeset
  7417
    "Modified: / 31.10.1997 / 19:44:55 / cg"
1699
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7418
!
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7419
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7420
windowStyle
3715
70eea03a8d8d comment
Claus Gittinger <cg@exept.de>
parents: 3711
diff changeset
  7421
    "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
  7422
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7423
    self isPopUpView ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7424
	^ #popUp
1699
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7425
    ].
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7426
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7427
    ^ #normal
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7428
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7429
    "Created: 2.5.1997 / 14:29:48 / cg"
ae9986a1a97f preps for native window support
Claus Gittinger <cg@exept.de>
parents: 1696
diff changeset
  7430
    "Modified: 2.5.1997 / 14:30:14 / cg"
140
claus
parents: 138
diff changeset
  7431
! !
claus
parents: 138
diff changeset
  7432
claus
parents: 138
diff changeset
  7433
!SimpleView methodsFor:'realization'!
claus
parents: 138
diff changeset
  7434
3459
d50728855052 optionBox: cancel-value corrected
Claus Gittinger <cg@exept.de>
parents: 3439
diff changeset
  7435
closeCancel
d50728855052 optionBox: cancel-value corrected
Claus Gittinger <cg@exept.de>
parents: 3439
diff changeset
  7436
    "for protocol compatibility with modal dialogs"
d50728855052 optionBox: cancel-value corrected
Claus Gittinger <cg@exept.de>
parents: 3439
diff changeset
  7437
d50728855052 optionBox: cancel-value corrected
Claus Gittinger <cg@exept.de>
parents: 3439
diff changeset
  7438
    self hideRequest
d50728855052 optionBox: cancel-value corrected
Claus Gittinger <cg@exept.de>
parents: 3439
diff changeset
  7439
!
d50728855052 optionBox: cancel-value corrected
Claus Gittinger <cg@exept.de>
parents: 3439
diff changeset
  7440
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7441
create
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7442
    "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
  7443
     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
  7444
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7445
    drawableId isNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7446
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7447
	 make certain that superview is created also
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7448
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7449
	superView notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7450
	     superView view create.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7451
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7452
"/            "and put my controller into the superviews controller list"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7453
"/            controller notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7454
"/                superView controller notNil ifTrue:[
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7455
"/                    controller manager:(superView controller manager)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7456
"/                ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7457
"/            ]
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7458
	] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7459
	    "/
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7460
	    "/ if the display is not already dispatching events,
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7461
	    "/ this starts the event process.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7462
	    "/
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7463
	    device startDispatch
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7464
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7465
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7466
	cursor notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7467
	    cursor := cursor onDevice:device.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7468
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7469
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7470
	self extentChangedBeforeCreatedFlag ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7471
	    "/ this is true, if the extent was changed before
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7472
	    "/ this view was created (and therefore, no sizeChangeEvent
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7473
	    "/ was sent to me, which would notify children.)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7474
	    "/ have to do this here.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7475
	    self sizeChanged:nil.   "/ must tell children (if any)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7476
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7477
	explicitExtent ~~ true ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7478
	    self resize
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7479
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7480
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7481
	self physicalCreate.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7482
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7483
	viewBackground notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7484
	   self setViewBackground
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7485
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7486
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7487
	self initializeMiddleButtonMenu.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7488
	self initEvents.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7489
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7490
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7491
	 this is the first create,
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7492
	 force sizechange messages to be sent to the view
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7493
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7494
	self extentChangedFlag:true.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7495
	self originChangedFlag:true
151
claus
parents: 145
diff changeset
  7496
    ]
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  7497
1494
4faf11deec70 cursor #on: is obsoleted by #onDevice:.
Claus Gittinger <cg@exept.de>
parents: 1490
diff changeset
  7498
    "Modified: 28.3.1997 / 13:50:17 / cg"
151
claus
parents: 145
diff changeset
  7499
!
claus
parents: 145
diff changeset
  7500
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7501
createWithAllSubViews
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7502
    "create, then create all subviews"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7503
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7504
    drawableId isNil ifTrue:[self create].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7505
    subViews notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7506
	subViews do:[:subView | subView createWithAllSubViews]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7507
    ]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7508
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7509
1193
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7510
fetchDeviceResources
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7511
    "fetch all device specific resources. This is invoked,
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7512
     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
  7513
     time, to allocate device specific colors, fonts, bitmaps etc.
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7514
     The view may keep those in instance variables, to avoid reallocating
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7515
     those with every redraw.
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7516
     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
  7517
     but possibly slower, since resources are reallocated over and over.
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7518
     If you redefine this method, make certain that 'super fetchDeviceResources'
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7519
     is always sent."
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7520
2829
c50504338b61 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
  7521
    shadowColor notNil ifTrue:[shadowColor := shadowColor onDevice:device].
c50504338b61 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2822
diff changeset
  7522
    lightColor notNil ifTrue:[lightColor := lightColor onDevice:device].
1193
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7523
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7524
    "Created: 13.1.1997 / 21:51:59 / cg"
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7525
!
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7526
140
claus
parents: 138
diff changeset
  7527
fixSize
claus
parents: 138
diff changeset
  7528
    "This is called right before the view is made visible.
claus
parents: 138
diff changeset
  7529
     Adjust the size of the view according to either relative/abs or
claus
parents: 138
diff changeset
  7530
     block extent; also set origin. Also, subclasses may redefine this
claus
parents: 138
diff changeset
  7531
     method to adjust the size based on some extent (for example, PopUpMenus
claus
parents: 138
diff changeset
  7532
     do so to take care of changed number of menu entries)."
claus
parents: 138
diff changeset
  7533
151
claus
parents: 145
diff changeset
  7534
    |org ext r|
claus
parents: 145
diff changeset
  7535
claus
parents: 145
diff changeset
  7536
    "
claus
parents: 145
diff changeset
  7537
     slowly migrating to use layoutObjects ...
claus
parents: 145
diff changeset
  7538
    "
claus
parents: 145
diff changeset
  7539
    layout notNil ifTrue:[
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7540
	(self originOrExtentOrCornerChanged) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7541
	    r := (layout rectangleRelativeTo:(superView viewRectangle)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7542
				   preferred:[self preferredBounds]).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7543
	    org := r origin rounded.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7544
	    ext := r extent rounded.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7545
	    self pixelOrigin:org extent:ext.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7546
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7547
	^ self.
151
claus
parents: 145
diff changeset
  7548
    ].
claus
parents: 145
diff changeset
  7549
140
claus
parents: 138
diff changeset
  7550
    "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
  7551
"/    self extentChangedFlag ifTrue:[
890
f202a05da548 avoid sending sizeChanged: twice
Claus Gittinger <cg@exept.de>
parents: 867
diff changeset
  7552
"/        self sizeChanged:nil.
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7553
"/        self extentChangedFlag:false
890
f202a05da548 avoid sending sizeChanged: twice
Claus Gittinger <cg@exept.de>
parents: 867
diff changeset
  7554
"/    ].
140
claus
parents: 138
diff changeset
  7555
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7556
    self originChangedFlag ifTrue:[
140
claus
parents: 138
diff changeset
  7557
"/        org := self computeOrigin.
claus
parents: 138
diff changeset
  7558
"/        self pixelOrigin:org.    
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7559
	originRule notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7560
	    self pixelOrigin:self computeOrigin
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7561
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7562
	    relativeOrigin notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7563
		self originFromRelativeOrigin:relativeOrigin
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7564
	    ] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7565
		shown ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7566
		    device moveWindow:drawableId x:left y:top.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7567
		] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7568
		    self pixelOrigin:left@top
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7569
		].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7570
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7571
	].
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7572
	self originChangedFlag:false
140
claus
parents: 138
diff changeset
  7573
    ]
890
f202a05da548 avoid sending sizeChanged: twice
Claus Gittinger <cg@exept.de>
parents: 867
diff changeset
  7574
f202a05da548 avoid sending sizeChanged: twice
Claus Gittinger <cg@exept.de>
parents: 867
diff changeset
  7575
    "Modified: 18.6.1996 / 21:44:03 / cg"
140
claus
parents: 138
diff changeset
  7576
!
claus
parents: 138
diff changeset
  7577
393
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  7578
hide
1356
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7579
    "only useful with modal views: hide the view and return control
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7580
     back to the suspended main view. Ignored for non-modal views."
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7581
2579
774e6fb33dde checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
  7582
    |masterGroup|
1356
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7583
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7584
    realized ifFalse:[^ self].
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7585
    windowGroup isNil ifTrue:[^ self].
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7586
    windowGroup isModal ifFalse:[^ self].
2579
774e6fb33dde checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
  7587
    masterGroup := windowGroup previousGroup.
1356
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7588
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7589
    windowGroup notNil ifTrue:[windowGroup focusView:nil].
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7590
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7591
    self unmap.
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7592
    device flush. 
90756b9ce548 *** empty log message ***
ca
parents: 1354
diff changeset
  7593
2579
774e6fb33dde checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
  7594
    masterGroup notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7595
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7596
	 this is a kludge for IRIS and others which do not provide backingstore:
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7597
	 when we hide a modalbox (such as a searchbox) which covered
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7598
	 a scrollbar, the scrollbars bitblt-method will copy from the
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7599
	 not-yet redrawn area - effectively clearing the scroller.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7600
	 We need a short delay here, since at this time, the expose event has
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7601
	 not yet arrived.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7602
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7603
	Delay waitForSeconds:0.05.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7604
	masterGroup processExposeEvents   
2576
96944b0cf18c comment;
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  7605
    ].
96944b0cf18c comment;
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  7606
96944b0cf18c comment;
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  7607
"/    WindowGroup leaveSignal raise.
96944b0cf18c comment;
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  7608
"/    "/ not reached
96944b0cf18c comment;
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  7609
"/    ^ self
393
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  7610
!
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  7611
3087
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7612
hideForAction
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7613
    "for popUpMenu compatibility;
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7614
     this is invoked to hide a when it is going to perform its action
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7615
     (in contrast to the generic hide)."
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7616
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7617
    ^ self hide
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7618
!
9d9e097b39ef grabbing cleaned up;
ca
parents: 3055
diff changeset
  7619
393
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  7620
hideRequest
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  7621
    "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
  7622
     ignored here."
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  7623
3439
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  7624
    self isPopUpView ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7625
	self hide
3439
f4f02e2c0af7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  7626
    ].
393
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  7627
    ^ self
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  7628
!
3504a0adbb2d use hideRequest to close via Escape key (allows redefinition);
Claus Gittinger <cg@exept.de>
parents: 385
diff changeset
  7629
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7630
map
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7631
    "make the view visible on the screen.
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7632
     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
  7633
     views position on the screen.
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  7634
     Notice:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7635
	Actually, this method is only valid for topViews;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7636
	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
  7637
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7638
    self mapAt:nil iconified:false
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7639
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7640
    "Modified: 24.7.1997 / 13:44:25 / cg"
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7641
!
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7642
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7643
mapAt:aPoint
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7644
    "make the view visible on the screen.
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7645
     For topViews, if aPoint is nonNil, the views origin is located there
2103
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  7646
     (unless you have a dictator as windowManager ;-)
dbe7a348084f do not forget minExtent/maxExtent in remap
Claus Gittinger <cg@exept.de>
parents: 2095
diff changeset
  7647
     Notice:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7648
	Actually, this method is only valid for topViews;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7649
	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
  7650
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7651
    self mapAt:aPoint iconified:false
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7652
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7653
    "Modified: 24.7.1997 / 13:45:02 / cg"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7654
!
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7655
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7656
mapAt:aPoint iconified:iconified
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7657
    "make the view visible on the screen.
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7658
     For topViews, if aPoint is nonNil, the views origin is located there
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7659
     (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
  7660
     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
  7661
     Notice:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7662
	Actually, this method is only valid for topViews;
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7663
	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
  7664
1809
fec93025e9e7 mapping trouble fixed (see mswindows scrollBar remap)
Claus Gittinger <cg@exept.de>
parents: 1808
diff changeset
  7665
    |subs|
fec93025e9e7 mapping trouble fixed (see mswindows scrollBar remap)
Claus Gittinger <cg@exept.de>
parents: 1808
diff changeset
  7666
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7667
    realized ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7668
	drawableId isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7669
	    "
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7670
	     first time ?
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7671
	     yes, realize (implies a map)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7672
	    "
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7673
	    self realizeKeepingGroup:false at:aPoint iconified:iconified
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7674
	] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7675
	    "
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7676
	     no, map only
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7677
	    "
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7678
	    realized := true.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7679
	    aPoint isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7680
		iconified ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7681
		    device 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7682
			mapView:self id:drawableId iconified:iconified
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7683
			atX:0 y:0 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7684
			width:width height:height
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7685
			minExtent:(self minExtent) maxExtent:(self maxExtent).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7686
		] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7687
		    device mapWindow:drawableId.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7688
		]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7689
	    ] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7690
		left := aPoint x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7691
		top := aPoint y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7692
		device 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7693
		    mapView:self id:drawableId iconified:iconified
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7694
		    atX:left y:top 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7695
		    width:width height:height
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7696
		    minExtent:(self minExtent) maxExtent:(self maxExtent).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7697
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7698
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7699
	    "/            
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7700
	    "/ implies that all realized subviews
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7701
	    "/ are now also mapped
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7702
	    "/            
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7703
	    "/ not needed for topViews - the mapped event does exactly the same
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7704
	    "/ however, X does not generate mapped events for non-topViews
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7705
	    "/ when a view gets deiconified.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7706
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7707
	    superView notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7708
		(subs := self subViews) notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7709
		    subs do:[:v |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7710
			v shown ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7711
			    v  mapped
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7712
			]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7713
		    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7714
		]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7715
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7716
	].
140
claus
parents: 138
diff changeset
  7717
    ]
654
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  7718
1039
ef2ded1798df Send #realize to subviews even if hiddenOnRealize is set for myself.
Stefan Vogel <sv@exept.de>
parents: 1038
diff changeset
  7719
    "Modified: 23.8.1996 / 14:53:55 / stefan"
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7720
    "Created: 24.7.1997 / 13:43:23 / cg"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7721
    "Modified: 24.7.1997 / 13:46:21 / cg"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7722
!
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7723
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7724
mapIconified
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7725
    "make the view visible on the screen.
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7726
     For topViews, the view is created in iconified state"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7727
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7728
    self mapAt:nil iconified:true
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7729
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7730
    "Modified: 24.7.1997 / 13:44:25 / cg"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7731
    "Created: 24.7.1997 / 13:47:03 / cg"
140
claus
parents: 138
diff changeset
  7732
!
claus
parents: 138
diff changeset
  7733
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7734
physicalCreate
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7735
    "common code for create & recreate: 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7736
     physically create (but do not map) the view on the device."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7737
3642
400ffe15bba9 remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3640
diff changeset
  7738
    |sv isInputOnly|
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  7739
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  7740
    sv := superView isNil ifTrue:[superView] ifFalse:[superView view].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7741
3008
81987f198808 let WindowSensor perform the preViewCreation/postViewCreation
Claus Gittinger <cg@exept.de>
parents: 3007
diff changeset
  7742
    "/ give global eventListeners a chance to intercept windowCreation
81987f198808 let WindowSensor perform the preViewCreation/postViewCreation
Claus Gittinger <cg@exept.de>
parents: 3007
diff changeset
  7743
    "/ 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
  7744
    WindowSensor preViewCreateNotification:self.
81987f198808 let WindowSensor perform the preViewCreation/postViewCreation
Claus Gittinger <cg@exept.de>
parents: 3007
diff changeset
  7745
2088
8e40159a7913 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
  7746
    isInputOnly := self isInputOnly.
8e40159a7913 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
  7747
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7748
    drawableId := device 
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7749
		      createWindowFor:self 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7750
			  type:nil
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7751
			  origin:(left @ top)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7752
			  extent:(width @ height)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7753
			  minExtent:nil
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7754
			  maxExtent:nil
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7755
			  borderWidth:borderWidth
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7756
			  subViewOf:sv
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7757
			  style:(self windowStyle)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7758
			  inputOnly:isInputOnly
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7759
			  label:nil
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7760
			  owner:nil
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7761
			  icon:nil iconMask:nil
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7762
			  iconView:nil.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7763
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7764
    Lobby registerChange:self.
1716
d6bf8f0deb18 added werners eventListener hook for view creation
Claus Gittinger <cg@exept.de>
parents: 1713
diff changeset
  7765
3010
ea1a075505b4 Let #waitUntilVisible processExposeEvents
Stefan Vogel <sv@exept.de>
parents: 3008
diff changeset
  7766
    "/ if there is a global eventListener,
ea1a075505b4 Let #waitUntilVisible processExposeEvents
Stefan Vogel <sv@exept.de>
parents: 3008
diff changeset
  7767
    "/ give it a chance to track views
ea1a075505b4 Let #waitUntilVisible processExposeEvents
Stefan Vogel <sv@exept.de>
parents: 3008
diff changeset
  7768
3008
81987f198808 let WindowSensor perform the preViewCreation/postViewCreation
Claus Gittinger <cg@exept.de>
parents: 3007
diff changeset
  7769
    "/ give global listeners a chance to track views
81987f198808 let WindowSensor perform the preViewCreation/postViewCreation
Claus Gittinger <cg@exept.de>
parents: 3007
diff changeset
  7770
    WindowSensor postViewCreateNotification:self.
1716
d6bf8f0deb18 added werners eventListener hook for view creation
Claus Gittinger <cg@exept.de>
parents: 1713
diff changeset
  7771
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7772
    self extentChangedFlag:false.
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7773
    self originChangedFlag:false.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7774
1201
6e990cfdd66d dont use Black/White when drawing;
Claus Gittinger <cg@exept.de>
parents: 1193
diff changeset
  7775
    (borderColor notNil and:[borderColor ~= Black]) ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7776
	isInputOnly ifFalse:[
2088
8e40159a7913 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
  7777
"/          borderColor := borderColor on:device.
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7778
	    self setBorderColor
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7779
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7780
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7781
    (viewGravity notNil "and:[viewGravity ~~ #NorthWest]") ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7782
	device setWindowGravity:viewGravity in:drawableId
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7783
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7784
    (bitGravity notNil "and:[bitGravity ~~ #NorthWest]") ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7785
	isInputOnly ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7786
	    device setBitGravity:bitGravity in:drawableId
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7787
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7788
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7789
    viewShape notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7790
	self setViewShape
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7791
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7792
    (backed notNil and:[backed ~~ false]) ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7793
	device setBackingStore:backed in:drawableId
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7794
    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7795
    self saveUnder ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7796
	device setSaveUnder:true in:drawableId
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  7797
    ].
1960
aa9ef6e21f15 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1943
diff changeset
  7798
    cursor notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7799
	self setCursor
2088
8e40159a7913 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
  7800
    ].
8e40159a7913 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
  7801
8e40159a7913 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2084
diff changeset
  7802
    "Modified: / 9.4.1998 / 20:18:12 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7803
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7804
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7805
postRealize
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7806
    "invoked after a view was realized.
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7807
     Can be redefined in subclasses to perform delayed actions."
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7808
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7809
    "/ nothing done here
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7810
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7811
    "Created: 24.7.1997 / 14:35:36 / cg"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7812
!
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7813
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7814
realize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7815
    "realize - make visible;
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7816
     realizing is done very late (after layout is fixed) to avoid
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7817
     visible rearranging of windows on the screen"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7818
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7819
    self realizeKeepingGroup:false at:nil iconified:false
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7820
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7821
    "Modified: 24.7.1997 / 13:14:28 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7822
!
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
realizeAllSubViews
1193
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7825
    "realize all my subviews - but not myself."
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7826
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7827
    subViews notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7828
	subViews do:[:subView |
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7829
	    subView realize
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7830
	]
792
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  7831
    ].
177cfa66f2b8 prepare for components & non-view as superView
Claus Gittinger <cg@exept.de>
parents: 791
diff changeset
  7832
    components notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7833
	components do:[:component |
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7834
	    component realize
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7835
	]
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7836
    ].
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
    "Modified: 5.9.1995 / 23:30:47 / claus"
1193
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  7839
    "Modified: 13.1.1997 / 21:25:49 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7840
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7841
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7842
realizeAt:aPoint
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7843
    "realize - make visible;
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7844
     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
  7845
     visible rearranging of windows on the screen"
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7846
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7847
    self realizeKeepingGroup:false at:aPoint iconified:false
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7848
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7849
    "Modified: 24.7.1997 / 13:14:28 / cg"
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7850
    "Created: 24.7.1997 / 13:21:04 / cg"
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7851
!
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7852
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7853
realizeInGroup
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7854
    "special realize - leave windowgroup as is; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7855
     This allows a view to be realized in any windowgroup; 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  7856
     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
  7857
     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
  7858
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  7859
    windowGroup isForModalSubview:true.
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  7860
"/    self realize.
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  7861
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  7862
    self realizeKeepingGroup:true at:nil iconified:false
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  7863
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  7864
    "Modified: 20.8.1997 / 14:56:20 / cg"
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  7865
!
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  7866
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7867
realizeKeepingGroup:keepGroupAsIs at:position iconified:iconified
151
claus
parents: 145
diff changeset
  7868
    "common helper for realize and realizeInGroup.
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  7869
     Create the view; if the keepGroupAsIs argument is not true, 
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  7870
     assign my windowGroup."
140
claus
parents: 138
diff changeset
  7871
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  7872
    |superGroup groupChange keep|
140
claus
parents: 138
diff changeset
  7873
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7874
    "/ fetch device colors, to avoid reallocation at redraw time
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7875
    self fetchDeviceResources.
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7876
2189
86284985c4c0 care for non-creatable views.
Claus Gittinger <cg@exept.de>
parents: 2174
diff changeset
  7877
    drawableId isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7878
	self create.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7879
	drawableId isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7880
	    ('SimpleView [warning]: could not create view: ' , self class name) errorPrintCR.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7881
	    ^ self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7882
	]
2189
86284985c4c0 care for non-creatable views.
Claus Gittinger <cg@exept.de>
parents: 2174
diff changeset
  7883
    ].
140
claus
parents: 138
diff changeset
  7884
372
78e5b6e96649 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 371
diff changeset
  7885
    groupChange := false.
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  7886
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  7887
    (windowGroup notNil 
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  7888
     and:[superView isNil
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  7889
     and:[windowGroup isForModalSubview]]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7890
	keep := true.
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  7891
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7892
	keep := keepGroupAsIs
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  7893
    ].
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  7894
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  7895
    keep ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7896
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7897
	 put myself into superviews windowgroup if there is a superview
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7898
	 This is the default behavior, which may be suppressed by
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7899
	 passing true as keepGroupAsIs-argument.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7900
	 (it may be useful to assign a separate windowGroup to
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7901
	  a childView to have it execute independent of the parent
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7902
	  -> an example is found in the fileBrowsers kill-button)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7903
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7904
	superView notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7905
	    superGroup := superView windowGroup.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7906
	    (windowGroup notNil and:[superGroup ~~ windowGroup]) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7907
		"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7908
		 mhmh - seems that the windowgroup has changed ....
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7909
		"
145
claus
parents: 144
diff changeset
  7910
"/                'oops - wgroup change on realize' printNL.
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7911
		groupChange := true.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7912
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7913
		"/
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7914
		"/ recursively change the windowGroup of
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7915
		"/ myself and all of my children
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7916
		"/
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7917
		self windowGroup:superGroup.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7918
	    ] ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7919
		windowGroup isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7920
		    "/
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7921
		    "/ only change the group of myself -
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7922
		    "/ subviews will fetch it when realized.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7923
		    "/
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7924
		    windowGroup := superGroup.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7925
		    superGroup notNil ifTrue:[superGroup addView:self].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7926
		]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7927
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7928
	].
140
claus
parents: 138
diff changeset
  7929
    ].
claus
parents: 138
diff changeset
  7930
3375
08b67e29a66e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3374
diff changeset
  7931
    (self originOrExtentChanged) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7932
	self fixSize.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7933
	self sizeChanged:nil.   "/ new 29-aug-1995
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7934
    ].
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7935
    position notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7936
	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
  7937
    ].
ef2ded1798df Send #realize to subviews even if hiddenOnRealize is set for myself.
Stefan Vogel <sv@exept.de>
parents: 1038
diff changeset
  7938
ef2ded1798df Send #realize to subviews even if hiddenOnRealize is set for myself.
Stefan Vogel <sv@exept.de>
parents: 1038
diff changeset
  7939
    (subViews notNil or:[components notNil]) ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7940
	(realized not or:[groupChange]) ifTrue:[
2558
9639b8a1c166 do not realize children if inVisible.
tm
parents: 2549
diff changeset
  7941
hiddenOnRealize ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7942
	    self realizeAllSubViews.
2558
9639b8a1c166 do not realize children if inVisible.
tm
parents: 2549
diff changeset
  7943
].
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7944
	].
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7945
    ].
1874
a46a8c065050 recursively change the windowGroup of all children,
Claus Gittinger <cg@exept.de>
parents: 1860
diff changeset
  7946
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7947
    iconified ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7948
	realized ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7949
	    self mapIconified
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7950
	]
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  7951
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7952
	hiddenOnRealize ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7953
	    self setInnerClip.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7954
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7955
	    realized ifFalse:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7956
		"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7957
		 now, make the view visible
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7958
		"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7959
		self mapAt:position
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7960
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7961
	]
140
claus
parents: 138
diff changeset
  7962
    ].
claus
parents: 138
diff changeset
  7963
claus
parents: 138
diff changeset
  7964
    controller notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  7965
	controller startUp
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7966
    ].
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7967
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  7968
    self postRealize
654
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  7969
2189
86284985c4c0 care for non-creatable views.
Claus Gittinger <cg@exept.de>
parents: 2174
diff changeset
  7970
    "Modified: / 23.8.1996 / 15:07:16 / stefan"
86284985c4c0 care for non-creatable views.
Claus Gittinger <cg@exept.de>
parents: 2174
diff changeset
  7971
    "Created: / 24.7.1997 / 13:10:17 / cg"
86284985c4c0 care for non-creatable views.
Claus Gittinger <cg@exept.de>
parents: 2174
diff changeset
  7972
    "Modified: / 27.7.1998 / 20:01:02 / cg"
140
claus
parents: 138
diff changeset
  7973
!
claus
parents: 138
diff changeset
  7974
claus
parents: 138
diff changeset
  7975
recreate
3301
1bcebb26ecbb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3276
diff changeset
  7976
    "recreate (i.e. tell X about me) after a snapin or a migration"
140
claus
parents: 138
diff changeset
  7977
claus
parents: 138
diff changeset
  7978
    drawableId isNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7979
	super recreate.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7980
	self physicalCreate.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7981
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7982
	viewBackground notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7983
	    self setViewBackground 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7984
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7985
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7986
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7987
	 XXX has to be changed: eventmasks are device specific -
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7988
	 XXX will not allow restart on another Workstation-type.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7989
	 XXX event masks must become symbolic
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7990
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7991
	eventMask isNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7992
	    eventMask := device defaultEventMask
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7993
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  7994
	device setEventMask:eventMask in:drawableId
140
claus
parents: 138
diff changeset
  7995
    ]
claus
parents: 138
diff changeset
  7996
!
claus
parents: 138
diff changeset
  7997
654
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  7998
remap
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  7999
    "make the view visible on the screen at its previous position.
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  8000
     In contrast to map, this asks the windowManager to show the view
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  8001
     immediately (instead of asking for a frame). However, some windowManagers
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  8002
     are known to ignore this ..."
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  8003
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  8004
    realized ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8005
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8006
	 now, make the view visible
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8007
	"
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8008
	realized := true.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8009
	device
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8010
	    mapView:self id:drawableId iconified:false
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8011
	    atX:left y:top width:width height:height
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8012
	    minExtent:(self minExtent) maxExtent:(self maxExtent)
654
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  8013
    ]
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  8014
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  8015
    "Created: 8.5.1996 / 09:33:06 / cg"
1379
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  8016
    "Modified: 25.2.1997 / 22:44:33 / cg"
654
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  8017
!
921c156962fa added #remap
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  8018
1109
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
  8019
rerealize
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
  8020
    "rerealize at old position in (a possibly different) windowGroup."
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
  8021
1193
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  8022
    self fetchDeviceResources.
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  8023
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  8024
    self rerealizeInGroup:windowGroup.
1109
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
  8025
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
  8026
    "Created: 7.11.1996 / 16:27:09 / cg"
1193
341a4265f5d6 added #fetchDeviceResources,
Claus Gittinger <cg@exept.de>
parents: 1190
diff changeset
  8027
    "Modified: 13.1.1997 / 21:53:18 / cg"
1109
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
  8028
!
3b9d9cc6e639 readded rerealize
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
  8029
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8030
rerealizeInGroup:aWindowGroup
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8031
    "rerealize at old position in (a possibly different) windowGroup."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8032
1837
454d10a53a64 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  8033
    drawableId isNil ifTrue:[self create].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8034
    drawableId notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8035
	aWindowGroup ~~ windowGroup ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8036
	    windowGroup notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8037
		windowGroup removeView:self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8038
	    ].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8039
	    windowGroup := aWindowGroup.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8040
	    aWindowGroup addTopView:self.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8041
	].
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8042
	self remap.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8043
    ]
646
0d2886a9ae38 Rename unrealize-->unmap, rerealize-->map.
Stefan Vogel <sv@exept.de>
parents: 640
diff changeset
  8044
0d2886a9ae38 Rename unrealize-->unmap, rerealize-->map.
Stefan Vogel <sv@exept.de>
parents: 640
diff changeset
  8045
    "Modified: 3.5.1996 / 23:59:30 / stefan"
1837
454d10a53a64 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  8046
    "Modified: 28.7.1997 / 18:53:01 / cg"
140
claus
parents: 138
diff changeset
  8047
!
claus
parents: 138
diff changeset
  8048
claus
parents: 138
diff changeset
  8049
rerealizeWithAllSubViews
claus
parents: 138
diff changeset
  8050
    "rerealize myself with all subviews"
claus
parents: 138
diff changeset
  8051
claus
parents: 138
diff changeset
  8052
    drawableId notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8053
	realized := true.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8054
	self realizeAllSubViews.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8055
	device
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8056
	    mapView:self id:drawableId iconified:false
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8057
	    atX:left y:top width:width height:height
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8058
	    minExtent:(self minExtent) maxExtent:(self maxExtent)
140
claus
parents: 138
diff changeset
  8059
    ]
1290
1cc24cff6fe9 eliminated some references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 1261
diff changeset
  8060
1cc24cff6fe9 eliminated some references to subViews instance variable (will vanish)
Claus Gittinger <cg@exept.de>
parents: 1261
diff changeset
  8061
    "Modified: 28.1.1997 / 17:59:28 / cg"
180
claus
parents: 176
diff changeset
  8062
!
claus
parents: 176
diff changeset
  8063
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8064
resize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8065
    "resize myself to make everything fit into me.
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  8066
     Here, nothing special is done (except for setting my extent to the 
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  8067
     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
  8068
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  8069
    explicitExtent ~~ true ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8070
	layout isNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8071
	    self extent:(self preferredExtent).
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8072
	    explicitExtent := false.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8073
	].
947
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  8074
    ]
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  8075
e8ff54bc0309 remember an explicit change of the extent;
Claus Gittinger <cg@exept.de>
parents: 946
diff changeset
  8076
    "Modified: 15.7.1996 / 11:20:27 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8077
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8078
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8079
unmap
2576
96944b0cf18c comment;
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  8080
    "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
  8081
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8082
    realized ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8083
	realized := false.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8084
	drawableId notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8085
	    device unmapWindow:drawableId.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8086
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8087
	    "/ make it go away immediately
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8088
	    "/ (this hides the subview killing)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8089
	    device flush.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8090
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8091
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8092
	"/ Normally, this is not correct with X, where the
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8093
	"/ unmap is an asynchronous operation.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8094
	"/ (shown is cleared also in unmapped event)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8095
	"/ Do it anyway, to avoid synchronisation problems.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8096
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8097
	shown := false.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8098
	self changed:#visibility.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8099
    ].
190
claus
parents: 189
diff changeset
  8100
claus
parents: 189
diff changeset
  8101
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8102
     |top sub|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8103
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8104
     top := StandardSystemView new.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8105
     top extent:200@200.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8106
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8107
     sub := View
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8108
		origin:0.2@0.2
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8109
		corner:0.8@0.8
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8110
		in:top.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8111
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8112
     sub viewBackground:Color red.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8113
     sub hiddenOnRealize:true.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8114
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8115
     top open.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8116
     (Delay forSeconds:5) wait.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8117
     sub map.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8118
     (Delay forSeconds:3) wait.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8119
     sub unmap.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8120
     sub viewBackground:(Color green).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8121
     (Delay forSeconds:3) wait.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8122
     sub map.
151
claus
parents: 145
diff changeset
  8123
    "
1379
bd55ede48c37 comments
Claus Gittinger <cg@exept.de>
parents: 1363
diff changeset
  8124
2465
193a96bd94d7 clear shown when unmapped notification arrives
Claus Gittinger <cg@exept.de>
parents: 2454
diff changeset
  8125
    "Modified: / 22.2.1999 / 20:10:58 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8126
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8127
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8128
unrealize
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8129
    "alias for unmap, for historic reasons"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8130
3434
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  8131
    <resource:#obsolete>
f76f82ce8f28 Use <resource:#obsolete>
Stefan Vogel <sv@exept.de>
parents: 3425
diff changeset
  8132
646
0d2886a9ae38 Rename unrealize-->unmap, rerealize-->map.
Stefan Vogel <sv@exept.de>
parents: 640
diff changeset
  8133
    self obsoleteMethodWarning:'use unmap'.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8134
    self unmap.
646
0d2886a9ae38 Rename unrealize-->unmap, rerealize-->map.
Stefan Vogel <sv@exept.de>
parents: 640
diff changeset
  8135
0d2886a9ae38 Rename unrealize-->unmap, rerealize-->map.
Stefan Vogel <sv@exept.de>
parents: 640
diff changeset
  8136
    "Modified: 4.5.1996 / 00:07:48 / stefan"
151
claus
parents: 145
diff changeset
  8137
! !
claus
parents: 145
diff changeset
  8138
claus
parents: 145
diff changeset
  8139
!SimpleView methodsFor:'redrawing'!
claus
parents: 145
diff changeset
  8140
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8141
flash
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8142
    "flash the view - fill it black, then white, finally
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8143
     redraw completely.
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8144
     Can be used to wakeup the user :-)
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8145
     when problem or warning conditions arise.
2174
dea03b88b1d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2173
diff changeset
  8146
     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
  8147
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8148
    self fill:Black.
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8149
    Delay waitForSeconds:0.1.
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8150
    self fill:White.
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8151
    Delay waitForSeconds:0.1.
2173
0686e9f35817 flash fix
Claus Gittinger <cg@exept.de>
parents: 2171
diff changeset
  8152
    self fill:viewBackground.
0686e9f35817 flash fix
Claus Gittinger <cg@exept.de>
parents: 2171
diff changeset
  8153
"/    self clear.
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8154
    self invalidate
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8155
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8156
    "
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8157
     |v|
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8158
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8159
     v := View new openAndWait.
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8160
     Delay waitForSeconds:2.
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8161
     v flash.
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8162
     Delay waitForSeconds:2.
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8163
     v destroy
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8164
    "
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8165
2174
dea03b88b1d1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2173
diff changeset
  8166
    "Modified: / 16.7.1998 / 18:46:48 / cg"
765
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8167
!
f6c9c653e03f removed useless superViewMapped/superViewUnmapped messages
Claus Gittinger <cg@exept.de>
parents: 763
diff changeset
  8168
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8169
invalidate
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8170
    "add a damage to redraw the recevier to its input event queue.
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8171
     This is preferable to calling redraw directly, in that the drawing is done by
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8172
     the views 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
  8173
     multiple damage rectangles into single redraws.
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8174
     However, be aware, that the redrawing may be delayed for some time,
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8175
     intil the receivers windowGroupProcess gets rescheduled."
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8176
2489
f7ce16896fa1 process exposes when menu closes.
Claus Gittinger <cg@exept.de>
parents: 2465
diff changeset
  8177
"/    not needed - event queue does it anyway
f7ce16896fa1 process exposes when menu closes.
Claus Gittinger <cg@exept.de>
parents: 2465
diff changeset
  8178
"/    (sensor := self sensor) notNil ifTrue:[
f7ce16896fa1 process exposes when menu closes.
Claus Gittinger <cg@exept.de>
parents: 2465
diff changeset
  8179
"/        sensor flushExposeEventsFor:self.
f7ce16896fa1 process exposes when menu closes.
Claus Gittinger <cg@exept.de>
parents: 2465
diff changeset
  8180
"/    ].
2451
c6d3bc32f50a comments
Claus Gittinger <cg@exept.de>
parents: 2450
diff changeset
  8181
    self 
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8182
	invalidateDeviceRectangle:(Rectangle 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8183
					left:0
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8184
					top:0 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8185
					width:width 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8186
					height:height) 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8187
	repairNow:false
2394
cfb6434f1a9c oops - invalidate must add deviceRectangles to the damage-list.
Claus Gittinger <cg@exept.de>
parents: 2382
diff changeset
  8188
cfb6434f1a9c oops - invalidate must add deviceRectangles to the damage-list.
Claus Gittinger <cg@exept.de>
parents: 2382
diff changeset
  8189
    "Modified: / 9.11.1998 / 21:04:16 / cg"
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8190
!
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8191
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8192
invalidate:aRectangle
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8193
    "add a damage to redraw part of the recevier, to its input event queue.
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8194
     This is preferable to calling redraw directly, 
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8195
     in that the drawing is done by the views process itself, 
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8196
     and there is a possibilty to merge multiple damage rectangles into 
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8197
     single redraws. 
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8198
     However, be aware, that the redrawing may be delayed for some time,
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8199
     intil the receivers windowGroupProcess gets rescheduled."
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8200
2394
cfb6434f1a9c oops - invalidate must add deviceRectangles to the damage-list.
Claus Gittinger <cg@exept.de>
parents: 2382
diff changeset
  8201
    self invalidate:aRectangle repairNow:false
cfb6434f1a9c oops - invalidate must add deviceRectangles to the damage-list.
Claus Gittinger <cg@exept.de>
parents: 2382
diff changeset
  8202
cfb6434f1a9c oops - invalidate must add deviceRectangles to the damage-list.
Claus Gittinger <cg@exept.de>
parents: 2382
diff changeset
  8203
    "Modified: / 9.11.1998 / 21:03:14 / cg"
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8204
!
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8205
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8206
invalidate:aRectangle repairNow:doRepair
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8207
    "add a damage to redraw part of the receiver, to its input event queue.
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8208
     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
  8209
     damaged areas right now.
c6d3bc32f50a comments
Claus Gittinger <cg@exept.de>
parents: 2450
diff changeset
  8210
     The given rectangle is in logical coordinate space."
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8211
2394
cfb6434f1a9c oops - invalidate must add deviceRectangles to the damage-list.
Claus Gittinger <cg@exept.de>
parents: 2382
diff changeset
  8212
    |sensor r|
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8213
1851
6a6225647696 fixes for expose-event-lost after re-map
Claus Gittinger <cg@exept.de>
parents: 1839
diff changeset
  8214
    (sensor := self sensor) notNil ifTrue:[
3820
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8215
        r := aRectangle.
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8216
        transformation notNil ifTrue:[
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8217
            r := transformation applyTo:r.
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8218
        ].
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8219
        sensor addDamage:r copy view:self.
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8220
        (shown and:[doRepair]) ifTrue:[
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8221
            self repairDamage
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8222
        ]
1851
6a6225647696 fixes for expose-event-lost after re-map
Claus Gittinger <cg@exept.de>
parents: 1839
diff changeset
  8223
    ] ifFalse:[
3820
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8224
        shown ifTrue:[
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8225
            self redrawX:aRectangle left y:aRectangle top
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8226
                   width:aRectangle width height:aRectangle height
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8227
        ].
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8228
    ]
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8229
2395
Claus Gittinger <cg@exept.de>
parents: 2394
diff changeset
  8230
    "Modified: / 10.11.1998 / 01:55:03 / cg"
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8231
!
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8232
2396
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8233
invalidateDeviceRectangle:aRectangle repairNow:doRepair
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8234
    "add a damage to redraw part of the receiver, to its input event queue.
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8235
     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
  8236
     damaged areas right now.
c6d3bc32f50a comments
Claus Gittinger <cg@exept.de>
parents: 2450
diff changeset
  8237
     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
  8238
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8239
    |sensor|
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8240
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8241
    (sensor := self sensor) notNil ifTrue:[
3820
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8242
        sensor addDamage:aRectangle copy view:self.
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8243
        (shown and:[doRepair]) ifTrue:[
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8244
            self repairDamage
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8245
        ]
2396
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8246
    ] ifFalse:[
3820
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8247
        shown ifTrue:[
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8248
            self redrawDeviceX:aRectangle left y:aRectangle top
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8249
                         width:aRectangle width height:aRectangle height
a7b62054555b add a copy of the passed rectangle to the addDamage.
tm
parents: 3784
diff changeset
  8250
        ].
2396
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8251
    ]
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8252
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8253
    "Modified: / 10.11.1998 / 01:55:03 / cg"
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8254
    "Created: / 10.11.1998 / 19:02:01 / cg"
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8255
!
da3125ce46f1 oops - must invalidate deviceRectangle in scroll.
Claus Gittinger <cg@exept.de>
parents: 2395
diff changeset
  8256
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8257
invalidateRepairNow:doRepair
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8258
    "add a damage to redraw all of the receiver, to its input event queue.
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8259
     and (if repairNow is true), force the receiver to repair all of its 
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8260
     damaged areas right now."
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8261
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8262
    self 
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8263
	invalidateDeviceRectangle:(Rectangle left:0 top:0 width:width height:height)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8264
	repairNow:doRepair
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8265
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8266
    "Created: 19.4.1997 / 11:58:04 / cg"
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8267
    "Modified: 19.4.1997 / 12:00:00 / cg"
718
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8268
!
4ff126c012b5 added #invalidate / #invalidate:
Claus Gittinger <cg@exept.de>
parents: 714
diff changeset
  8269
3704
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8270
invalidateX:x y:y width:w height:h
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8271
    "add a damage to redraw all of the receiver, to its input event queue."
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8272
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8273
    self invalidate:(Rectangle left:x top:y width:w height:h) 
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8274
!
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8275
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8276
invalidateX:x y:y width:w height:h repairNow:doRepair
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8277
    "add a damage to redraw all of the receiver, to its input event queue.
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8278
     and (if repairNow is true), force the receiver to repair all of its 
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8279
     damaged areas right now."
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8280
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8281
    self invalidate:(Rectangle left:x top:y width:w height:h) repairNow:doRepair
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8282
!
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8283
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8284
redraw
782
51c03bc803ce checkin from browser
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  8285
    "redraw myself completely - this is sent by redrawX:y:width:height:
51c03bc803ce checkin from browser
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  8286
     as a fallback.
51c03bc803ce checkin from browser
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  8287
     Cannot do much here - is redefined in subclasses which dont care for
51c03bc803ce checkin from browser
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  8288
     updating regions but instead update everything."
51c03bc803ce checkin from browser
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  8289
51c03bc803ce checkin from browser
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  8290
    "Modified: 29.5.1996 / 18:02:52 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8291
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8292
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8293
redraw:aRectangle
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8294
    "redraw a part of the view immediately."
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8295
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8296
    self 
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8297
	redrawX:(aRectangle left)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8298
	      y:(aRectangle top)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8299
	  width:(aRectangle width)
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8300
	 height:(aRectangle height)
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8301
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8302
    "Modified: 19.4.1997 / 11:54:23 / cg"
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8303
!
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8304
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8305
redrawDeviceX:x y:y width:w height:h
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8306
    "have to redraw part of the view.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8307
     The coordinates are in device space - if there is a transformation,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8308
     must inverse-transform back to logical coordinates. (since the view thinks
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8309
     in its coordinate space)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8310
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8311
    |lx ly lw lh|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8312
2822
b95545cef407 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2821
diff changeset
  8313
    transformation isNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8314
	lx := x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8315
	ly := y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8316
	lw := w.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8317
	lh := h.
2822
b95545cef407 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2821
diff changeset
  8318
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8319
	lx := transformation applyInverseToX:x.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8320
	ly := transformation applyInverseToY:y.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8321
	lw := transformation applyInverseScaleX:w.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8322
	lh := transformation applyInverseScaleY:h.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8323
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8324
    self redrawX:lx y:ly width:lw height:lh
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8325
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8326
151
claus
parents: 145
diff changeset
  8327
redrawX:x y:y width:w height:h
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8328
    "redraw part of myself immediately, given logical coordinates 
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8329
     (if transformation is nonNil)
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8330
     The default here is to redraw everything 
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8331
     - subclasses usually redefine this, adding more intelligence"
151
claus
parents: 145
diff changeset
  8332
738
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
  8333
    |area oldClip|
151
claus
parents: 145
diff changeset
  8334
claus
parents: 145
diff changeset
  8335
    shown ifFalse:[^ self].
claus
parents: 145
diff changeset
  8336
claus
parents: 145
diff changeset
  8337
    area := Rectangle left:x top:y width:w height:h.      
738
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
  8338
    oldClip := clipRect.
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
  8339
    self clippingRectangle:area.
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
  8340
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
  8341
    components notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8342
	self clearRectangleX:x y:y width:w height:h.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8343
	components do:[:aComponent |
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8344
	    |thisFrame is|
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8345
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8346
	    thisFrame := aComponent bounds.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8347
	    (thisFrame intersects:area) ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8348
		aComponent displayOn:self
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8349
	    ]
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8350
	]
738
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
  8351
    ] ifFalse:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8352
	"/ redraw everything - a fallBack for lazy views.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8353
	self redraw
738
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
  8354
    ].
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
  8355
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
  8356
    self clippingRectangle:oldClip.
cea442005997 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 737
diff changeset
  8357
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8358
    "Modified: 19.4.1997 / 11:55:08 / cg"
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8359
!
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8360
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8361
repairDamage
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8362
    "force the receiver to repair all of its 
2095
7aaac9675f97 checkin from browser
ca
parents: 2094
diff changeset
  8363
     damaged areas right now."
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8364
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8365
    |wg|
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8366
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8367
    shown ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8368
	(wg := self windowGroup) notNil ifTrue:[
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8369
	    "/ wg processRealExposeEventsFor:self. "/ this ignores map/unmap
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8370
	    wg processExposeEventsFor:self.        "/ this handles map/unmap
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8371
	]
1615
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8372
    ]
24950d99a5c2 added #repairDamage & invalidate-with-repair
Claus Gittinger <cg@exept.de>
parents: 1614
diff changeset
  8373
2138
1800e9b5afe3 also handle map/unmap events in repairDamage.
Claus Gittinger <cg@exept.de>
parents: 2130
diff changeset
  8374
    "Created: / 19.4.1997 / 12:01:13 / cg"
2406
8f6f579901ac checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2405
diff changeset
  8375
    "Modified: / 3.12.1998 / 14:02:06 / cg"
151
claus
parents: 145
diff changeset
  8376
!
claus
parents: 145
diff changeset
  8377
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8378
showActive
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8379
    "redraw myself as active (i.e. busy).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8380
     Nothing done here, but redefined in some classes."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8381
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8382
    ^ self
135
claus
parents:
diff changeset
  8383
!
claus
parents:
diff changeset
  8384
claus
parents:
diff changeset
  8385
showPassive
claus
parents:
diff changeset
  8386
    "redraw myself as inactive (i.e. nonbusy).
151
claus
parents: 145
diff changeset
  8387
     Nothing done here, but redefined in some classes."
135
claus
parents:
diff changeset
  8388
claus
parents:
diff changeset
  8389
    ^ self
claus
parents:
diff changeset
  8390
! !
claus
parents:
diff changeset
  8391
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8392
!SimpleView methodsFor:'scrolling'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8393
2559
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8394
halfPageDown
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8395
    "scroll down half a page
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8396
    "
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8397
    self scrollDown:(self innerHeight // 2)
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8398
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8399
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8400
!
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8401
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8402
halfPageUp
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8403
    "scroll up half a page
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8404
    "
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8405
    self scrollUp:(self innerHeight // 2)
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8406
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8407
!
6f5c5691475e halfPage scroll methods moved to SimpleView
Claus Gittinger <cg@exept.de>
parents: 2558
diff changeset
  8408
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8409
horizontalScrollStep
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8410
    "return the amount to scroll when stepping left/right.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8411
     Subclasses may want to redefine this."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8412
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8413
    ^ (device horizontalPixelPerMillimeter * 20) asInteger
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8414
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8415
1052
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8416
pageDown
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8417
    self scrollDown:(self innerHeight)
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8418
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8419
    "Created: 13.9.1996 / 14:06:54 / cg"
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8420
!
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8421
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8422
pageUp
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8423
    self scrollUp:(self innerHeight)
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8424
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8425
    "Created: 13.9.1996 / 14:07:01 / cg"
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8426
!
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8427
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8428
scrollDown
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8429
    "scroll down by some amount; this is called when the scrollbars
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8430
     scroll-step down button is pressed."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8431
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8432
    self scrollDown:(self verticalScrollStep)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8433
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8434
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8435
scrollDown:nPixels
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8436
    "change origin to scroll down some pixels"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8437
1035
261c3ab854f0 Use #viewOrigin instead of translation transformation to get
Stefan Vogel <sv@exept.de>
parents: 1028
diff changeset
  8438
    |viewOrigin|
261c3ab854f0 Use #viewOrigin instead of translation transformation to get
Stefan Vogel <sv@exept.de>
parents: 1028
diff changeset
  8439
2703
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8440
    nPixels ~~ 0 ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8441
	viewOrigin := self viewOrigin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8442
	self scrollTo:(viewOrigin x @ (viewOrigin y + nPixels))
2703
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8443
    ]
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8444
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8445
    "Modified: / 20.8.1996 / 17:34:36 / stefan"
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8446
    "Modified: / 21.5.1999 / 15:57:56 / cg"
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8447
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8448
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8449
scrollHorizontalTo:aPixelOffset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8450
    "change origin to make aPixelOffset be the left col"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8451
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8452
    |orgY|
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8453
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8454
    orgY := self viewOrigin y.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8455
    ^ self scrollTo:(aPixelOffset @ orgY).
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8456
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8457
    "Modified: 8.7.1996 / 15:34:54 / stefan"
140
claus
parents: 138
diff changeset
  8458
!
claus
parents: 138
diff changeset
  8459
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8460
scrollHorizontalToPercent:percent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8461
    "scroll to a position given in percent of total"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8462
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8463
    |wCont|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8464
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8465
    wCont := self widthOfContents.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8466
    transformation notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8467
	wCont := transformation applyScaleX:wCont.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8468
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8469
    self scrollHorizontalTo:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8470
	    ((((wCont * percent) / 100.0) + 0.5) asInteger)
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8471
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8472
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8473
scrollLeft
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8474
    "scroll left by some amount; this is called when the scrollbars
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8475
     scroll-step left button is pressed."
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
    self scrollLeft:(self horizontalScrollStep)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8478
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8479
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8480
scrollLeft:nPixels
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8481
    "change origin to scroll left some pixels"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8482
1035
261c3ab854f0 Use #viewOrigin instead of translation transformation to get
Stefan Vogel <sv@exept.de>
parents: 1028
diff changeset
  8483
    |viewOrigin|
261c3ab854f0 Use #viewOrigin instead of translation transformation to get
Stefan Vogel <sv@exept.de>
parents: 1028
diff changeset
  8484
2703
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8485
    nPixels ~~ 0 ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8486
	viewOrigin := self viewOrigin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8487
	self scrollTo:((viewOrigin x - nPixels) @ viewOrigin y).
2703
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8488
    ]
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8489
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8490
    "Modified: / 20.8.1996 / 17:35:09 / stefan"
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8491
    "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
  8492
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8493
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8494
scrollRight
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8495
    "scroll right by some amount; this is called when the scrollbars
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8496
     scroll-step right button is pressed."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8497
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8498
    self scrollRight:(self horizontalScrollStep)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8499
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8500
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8501
scrollRight:nPixels
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8502
    "change origin to scroll right some pixels"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8503
1035
261c3ab854f0 Use #viewOrigin instead of translation transformation to get
Stefan Vogel <sv@exept.de>
parents: 1028
diff changeset
  8504
    |viewOrigin|
261c3ab854f0 Use #viewOrigin instead of translation transformation to get
Stefan Vogel <sv@exept.de>
parents: 1028
diff changeset
  8505
2703
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8506
    nPixels ~~ 0 ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8507
	viewOrigin := self viewOrigin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8508
	self scrollTo:((viewOrigin x + nPixels) @ viewOrigin y)
2703
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8509
    ]
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8510
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8511
    "Modified: / 20.8.1996 / 17:35:37 / stefan"
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8512
    "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
  8513
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8514
1052
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8515
scrollToBottom
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8516
    self scrollTo:0 @ (self heightOfContents - self innerHeight)
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8517
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8518
    "Created: 13.9.1996 / 14:08:03 / cg"
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8519
    "Modified: 13.9.1996 / 14:09:32 / cg"
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8520
!
c7e31a453192 added default implementations for pageUp / pageDown
Claus Gittinger <cg@exept.de>
parents: 1048
diff changeset
  8521
2371
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8522
scrollToLeft
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8523
    "move viewOrigin to the left"
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8524
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8525
    self scrollHorizontalTo:0
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8526
!
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8527
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8528
scrollToPercent:originAsPercent
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8529
    "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
  8530
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8531
    |wCont hCont percent|
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8532
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8533
    percent := originAsPercent asPoint.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8534
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8535
    wCont := self widthOfContents.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8536
    hCont := self heightOfContents.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8537
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8538
    transformation notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8539
	wCont := transformation applyScaleX:wCont.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8540
	hCont := transformation applyScaleY:hCont.
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8541
    ].
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8542
    self scrollTo:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8543
	    ((((wCont * percent x) / 100.0) + 0.5) asInteger) @
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8544
	    ((((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
  8545
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8546
    "Created: 5.8.1996 / 12:15:53 / stefan"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8547
    "Modified: 5.8.1996 / 12:42:57 / stefan"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8548
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8549
2371
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8550
scrollToRight
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8551
    "move viewOrigin to the right"
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8552
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8553
    |wCont|
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8554
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8555
    wCont := self widthOfContents.
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8556
    transformation notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8557
	wCont := transformation applyScaleX:wCont.
2371
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8558
    ].
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8559
    self scrollHorizontalTo:((wCont - self innerWidth) max:0)
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8560
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8561
!
fafba97d401c added #scrollToLeft and #scrollToRight
Claus Gittinger <cg@exept.de>
parents: 2357
diff changeset
  8562
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8563
scrollToTop
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8564
    "move viewOrigin to top"
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
    self scrollVerticalTo:0
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8567
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8568
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8569
scrollToTopLeft
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8570
    "move viewOrigin to top/left"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8571
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8572
    self scrollTo:(0 @ 0).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8573
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8574
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8575
scrollUp
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8576
    "scroll up by some amount; this is called when the scrollbars
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8577
     scroll-step up button is pressed."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8578
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8579
    self scrollUp:(self verticalScrollStep)
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8580
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8581
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8582
scrollUp:nPixels
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8583
    "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
  8584
1035
261c3ab854f0 Use #viewOrigin instead of translation transformation to get
Stefan Vogel <sv@exept.de>
parents: 1028
diff changeset
  8585
    |viewOrigin|
261c3ab854f0 Use #viewOrigin instead of translation transformation to get
Stefan Vogel <sv@exept.de>
parents: 1028
diff changeset
  8586
2703
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8587
    nPixels ~~ 0 ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8588
	viewOrigin := self viewOrigin.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8589
	self scrollTo:(viewOrigin x @ (viewOrigin y - nPixels)).
2703
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8590
    ]
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8591
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8592
    "Modified: / 20.8.1996 / 17:36:16 / stefan"
cfdad703743d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2702
diff changeset
  8593
    "Modified: / 21.5.1999 / 15:58:21 / cg"
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8594
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8595
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8596
scrollVerticalTo:aPixelOffset
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8597
    "change origin to make aPixelOffset be the top line"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8598
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8599
    |orgX|
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8600
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8601
    orgX := self viewOrigin x.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8602
    ^ self scrollTo:(orgX @ aPixelOffset).
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8603
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8604
    "Modified: 8.7.1996 / 15:35:40 / stefan"
135
claus
parents:
diff changeset
  8605
!
claus
parents:
diff changeset
  8606
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8607
scrollVerticalToPercent:percent
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8608
    "scroll to a position given in percent of total"
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
    |hCont|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8611
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8612
    hCont := self heightOfContents.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8613
    transformation notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8614
	hCont := transformation applyScaleY:hCont.
140
claus
parents: 138
diff changeset
  8615
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8616
    self scrollVerticalTo:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8617
	    ((((hCont * percent) / 100.0) + 0.5) asInteger)
269
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
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8620
verticalScrollStep
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8621
    "return the amount to scroll when stepping up/down.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8622
     Subclasses may want to redefine this."
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
    ^ (device verticalPixelPerMillimeter * 20) asInteger
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8625
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8626
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8627
widthForScrollBetween:yStart and:yEnd 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8628
    "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
  8629
     - 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
  8630
     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
  8631
     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
  8632
     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
  8633
     not notice any difference."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8634
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8635
    ^ (width - margin - margin)
135
claus
parents:
diff changeset
  8636
! !
claus
parents:
diff changeset
  8637
claus
parents:
diff changeset
  8638
!SimpleView methodsFor:'scrolling-basic'!
claus
parents:
diff changeset
  8639
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8640
scrollTo:newOrigin 
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8641
    "change origin to have newOrigin be visible at the top-left.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8642
     The argument defines the integer device coordinates of the new top-left 
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8643
     point."
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8644
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8645
     ^ self scrollTo:newOrigin redraw:true
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8646
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8647
    "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
  8648
    "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
  8649
!
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8650
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8651
scrollTo:newOrigin redraw:doRedraw
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8652
    "change origin to have newOrigin be visible at the top-left.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8653
     The argument defines the integer device coordinates of the new top-left 
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8654
     point."
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8655
3704
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8656
    ^ self
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8657
	scrollTo:newOrigin 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8658
	redraw:doRedraw 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8659
	allowScrollBehondContents:false
3704
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8660
!
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8661
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8662
scrollTo:newOrigin redraw:doRedraw allowScrollBehondContents:allowScrollBehondContents
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8663
    "change origin to have newOrigin be visible at the top-left.
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8664
     The argument defines the integer device coordinates of the new top-left 
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8665
     point."
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8666
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8667
    |dX   "{ Class:SmallInteger }"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8668
     dY   "{ Class:SmallInteger }"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8669
     orgX "{ Class:SmallInteger }"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8670
     orgY "{ Class:SmallInteger }"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8671
     x y iw ih
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8672
     hCont wCont fromX toX fromY toY copyWidth copyHeight
2649
6551ac88b855 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2638
diff changeset
  8673
     redrawX redrawY wg|
135
claus
parents:
diff changeset
  8674
claus
parents:
diff changeset
  8675
    hCont := self heightOfContents.
claus
parents:
diff changeset
  8676
    wCont := self widthOfContents.
claus
parents:
diff changeset
  8677
    transformation isNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8678
	orgY := orgX := 0
135
claus
parents:
diff changeset
  8679
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8680
	wCont := (transformation applyScaleX:wCont) rounded.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8681
	hCont := (transformation applyScaleY:hCont) rounded.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8682
	orgY := transformation translation y negated.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8683
	orgX := transformation translation x negated
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8684
    ].
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8685
135
claus
parents:
diff changeset
  8686
    iw := self innerWidth.
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8687
    ih := self innerHeight.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8688
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8689
    "don't scroll outside of displayed area"
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8690
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8691
    x := newOrigin x.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8692
    y := newOrigin y.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8693
3704
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8694
    allowScrollBehondContents ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8695
	x + iw > wCont ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8696
	    x := wCont - iw.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8697
	].
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8698
    ].
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8699
    x < 0 ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8700
	x := 0
3704
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8701
    ].
3652985d3d9c more invalidate methods;
penk
parents: 3698
diff changeset
  8702
    allowScrollBehondContents ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8703
	y + ih > hCont ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8704
	    y := hCont - ih.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8705
	].
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8706
    ].
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8707
    y < 0 ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8708
	y := 0.
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8709
    ].
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8710
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8711
    dX := x - orgX.
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8712
    dY := y - orgY.
135
claus
parents:
diff changeset
  8713
1066
bd9f100a928f ignore null-scrolls
Claus Gittinger <cg@exept.de>
parents: 1063
diff changeset
  8714
    (dX == 0 and:[dY == 0]) ifTrue:[
bd9f100a928f ignore null-scrolls
Claus Gittinger <cg@exept.de>
parents: 1063
diff changeset
  8715
       ^ self
bd9f100a928f ignore null-scrolls
Claus Gittinger <cg@exept.de>
parents: 1063
diff changeset
  8716
    ].
bd9f100a928f ignore null-scrolls
Claus Gittinger <cg@exept.de>
parents: 1063
diff changeset
  8717
2649
6551ac88b855 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2638
diff changeset
  8718
    (wg := self windowGroup) notNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8719
	wg processRealExposeEventsFor:self.
2649
6551ac88b855 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2638
diff changeset
  8720
    ].
2405
95e4a8e563d8 precess expose events before scroll
Claus Gittinger <cg@exept.de>
parents: 2400
diff changeset
  8721
135
claus
parents:
diff changeset
  8722
    self originWillChange.
1017
43bc3829dcc5 Make #scrollTo: the basic scroll action.
Stefan Vogel <sv@exept.de>
parents: 1005
diff changeset
  8723
    (shown and:[doRedraw]) ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8724
	copyWidth := iw - dX abs.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8725
	copyHeight := ih - dY abs.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8726
	((copyWidth > 0) and:[copyHeight > 0]) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8727
	    "/ some of the currently displayed pixels
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8728
	    "/ remain visible. Copy them
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8729
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8730
	    dX < 0 ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8731
	      fromX := margin.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8732
	      toX := margin - dX.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8733
	      redrawX := margin
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8734
	    ] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8735
	      fromX := margin + dX.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8736
	      toX := margin.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8737
	      redrawX := margin + copyWidth.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8738
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8739
	    dY < 0 ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8740
	      fromY := margin.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8741
	      toY   := margin - dY.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8742
	      redrawY := margin.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8743
	    ] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8744
	      fromY := margin + dY.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8745
	      toY   := margin.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8746
	      redrawY := margin + copyHeight.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8747
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8748
	    self catchExpose.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8749
	    self setViewOrigin:(x @ y).
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8750
	    self 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8751
		copyFrom:self 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8752
		x:fromX y:fromY
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8753
		toX:toX   y:toY        
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8754
		width:copyWidth 
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8755
		height:copyHeight
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8756
		async:true.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8757
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8758
	    self setInnerClip.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8759
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8760
	    "first redraw the rectangle above/below the
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8761
	     copied area (with full width)."
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8763
	    copyHeight < ih ifTrue:[     
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8764
	    self invalidateDeviceRectangle:((margin@redrawY) extent:(iw@(ih - copyHeight))) repairNow:false.      
2381
9a365ce57a19 async redraw when scrolling (i.e. invalidate instead of redraw)
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  8765
"/                self 
9a365ce57a19 async redraw when scrolling (i.e. invalidate instead of redraw)
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  8766
"/                    redrawDeviceX:margin y:redrawY 
9a365ce57a19 async redraw when scrolling (i.e. invalidate instead of redraw)
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  8767
"/                    width:iw height:(ih - copyHeight).
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8768
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8769
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8770
	    "second redraw the rectangle left/right of the
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8771
	     copied area"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8772
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8773
	    copyWidth < iw ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8774
	    self invalidateDeviceRectangle:((redrawX@toY) extent:((iw-copyWidth)@copyHeight)) repairNow:false.      
2381
9a365ce57a19 async redraw when scrolling (i.e. invalidate instead of redraw)
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  8775
"/                self redrawDeviceX:redrawX y:toY 
9a365ce57a19 async redraw when scrolling (i.e. invalidate instead of redraw)
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  8776
"/
9a365ce57a19 async redraw when scrolling (i.e. invalidate instead of redraw)
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  8777
"/                             width:iw - copyWidth 
9a365ce57a19 async redraw when scrolling (i.e. invalidate instead of redraw)
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  8778
"/                            height:copyHeight.
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8779
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8780
	    self waitForExpose.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8781
	] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8782
	    "redraw everything"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8783
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8784
	    self setViewOrigin:(x @ y).
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8785
	    self invalidateDeviceRectangle:((margin@margin) extent:(iw@ih)) repairNow:false.      
2381
9a365ce57a19 async redraw when scrolling (i.e. invalidate instead of redraw)
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  8786
"/            self redrawDeviceX:margin y:margin
9a365ce57a19 async redraw when scrolling (i.e. invalidate instead of redraw)
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  8787
"/                         width:iw
9a365ce57a19 async redraw when scrolling (i.e. invalidate instead of redraw)
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  8788
"/                        height:ih.
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8789
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8790
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8791
	self setViewOrigin:(x @ y).
2802
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  8792
    ].
c715aa164707 comment & category change
Claus Gittinger <cg@exept.de>
parents: 2784
diff changeset
  8793
709
6a8d793633ee fixed arg to #originChanged:
Claus Gittinger <cg@exept.de>
parents: 705
diff changeset
  8794
    self originChanged:(dX negated @ dY negated).
6a8d793633ee fixed arg to #originChanged:
Claus Gittinger <cg@exept.de>
parents: 705
diff changeset
  8795
2381
9a365ce57a19 async redraw when scrolling (i.e. invalidate instead of redraw)
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  8796
    "Modified: / 5.8.1996 / 11:57:09 / stefan"
2405
95e4a8e563d8 precess expose events before scroll
Claus Gittinger <cg@exept.de>
parents: 2400
diff changeset
  8797
    "Modified: / 1.12.1998 / 22:35:18 / cg"
135
claus
parents:
diff changeset
  8798
! !
claus
parents:
diff changeset
  8799
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8800
!SimpleView methodsFor:'startup'!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8801
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8802
open
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8803
    "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
  8804
     (i.e. the new view comes up as independent process).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8805
     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
  8806
     implemented in TopView), it is implemented here - therefore, every view
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8807
     can be opened as a topView.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8808
     This is redefined in ModalBox, which comes up modal (i.e. 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8809
     control is under the current process, so that interaction with the
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8810
     current group is blocked while the modalBox is active)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8811
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8812
    ^ self openModeless
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8813
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8814
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8815
     View new open
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8816
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8817
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8818
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8819
     (Button label:'hello') open
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8820
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8821
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8822
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8823
     |top|
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8824
     top := StandardSystemView new.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8825
     top extent:200@200.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8826
     Button label:'hello' in:top.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8827
     top open
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8828
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8829
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8830
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8831
     YesNoBox new open
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8832
    "
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8833
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8834
    "Modified: 24.7.1997 / 13:26:42 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8835
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8836
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8837
openAndWait
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8838
    "open up the view - wait until it is visible.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8839
     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
  8840
     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
  8841
     first expose event.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8842
     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
  8843
     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
  8844
     Use this open in those situations."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8845
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8846
    self open.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8847
    self waitUntilVisible.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8848
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8849
    "does not work:
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8850
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8851
	|v|
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8852
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8853
	v := View new open.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8854
	v displayLineFrom:0@0 to:50@50
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8855
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8856
     does work:
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8857
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8858
	|v|
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8859
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8860
	v := View new openAndWait.
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8861
	v displayLineFrom:0@0 to:50@50
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8862
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8863
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8864
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8865
openAt:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8866
    "open up the view modeless - positions the view"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8867
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8868
    ^self openModelessAt:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8869
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8870
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8871
     (Button label:'hello') open
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8872
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8873
     (Button label:'hello') openAt:(100@100)
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8874
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8875
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8876
    "Modified: 24.7.1997 / 13:26:23 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8877
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8878
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8879
openAtCenter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8880
    "open up the view modeless - positions the view"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8881
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8882
    ^self openModelessAtCenter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8883
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8884
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8885
     (Button label:'hello') open
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8886
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8887
     (Button label:'hello') openAtCenter
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8888
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8889
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8890
    "Modified: 24.7.1997 / 13:01:12 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8891
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8892
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8893
openAutonomous
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8894
    "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
  8895
     The view will be handled by its own process, effectively running in
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8896
     parallel. 
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  8897
     Notice:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8898
	This entry is for NON-topviews, which want to be served
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8899
	autonomous from their real topview. 
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8900
	(see the fileBrowsers kill-button
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8901
	 when executing unix commands as an example)"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8902
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  8903
    |wg mainGroup|
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8904
763
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  8905
    wg := WindowGroup new.
dad0ad10c4d3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 761
diff changeset
  8906
    self windowGroup:wg.
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  8907
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  8908
    mainGroup := WindowGroup activeGroup.
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  8909
    mainGroup notNil ifTrue:[
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8910
	mainGroup := mainGroup mainGroup.
1877
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  8911
    ].
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  8912
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  8913
    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
  8914
    wg startupWith:[wg mainGroup:mainGroup. self realizeInGroup].
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  8915
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  8916
    "/ wg startupModal:[true] forGroup:mainGroup
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  8917
    "/ self realizeInGroup.
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  8918
6c7c5d6ad7f5 fixed windowGroup setting;
Claus Gittinger <cg@exept.de>
parents: 1874
diff changeset
  8919
    "Modified: 20.8.1997 / 17:57:38 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8920
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8921
420
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8922
openInGroup:aGroup
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8923
    "special open within another windowGroup.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8924
     This allows a view to be realized in any windowgroup; 
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8925
     for applications where multiple views act as a group
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8926
     (i.e. close and iconify together)."
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8927
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8928
    self windowGroup:aGroup.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8929
    aGroup addTopView:self.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8930
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8931
"/    self realizeKeepingGroup:true
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8932
    aGroup isForModalSubview:true.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8933
    self realize.
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8934
!
9ad55eba79ac allow opening subViews as modal;
Claus Gittinger <cg@exept.de>
parents: 415
diff changeset
  8935
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8936
openModal
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8937
    "create a new windowgroup, but start processing in the current process
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8938
     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
  8939
     Stay in the modalLoop while the view is visible.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8940
     (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
  8941
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8942
    self openModal:[true]
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8943
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8944
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8945
     the same:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8946
	 YesNoBox new open
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8947
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8948
	 YesNoBox new openModal
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8949
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8950
     different:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8951
	 (Button label:'hello') open
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8952
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  8953
	 (Button label:'hello') openModal
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8954
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8955
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8956
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8957
openModal:aBlock
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8958
    "create a new windowgroup, but start processing in the current process -
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8959
     actually suspending event processing for the currently active group.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8960
     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
  8961
     visible.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8962
     (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
  8963
     This makes any interaction with the current window impossible - 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8964
     however, other views (in other windowgroups) still work."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  8965
3642
400ffe15bba9 remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3640
diff changeset
  8966
    |masterGroup|
2167
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
  8967
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
  8968
"/    mainGroup := WindowGroup activeGroup.
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
  8969
"/    mainGroup notNil ifTrue:[mainGroup := mainGroup mainGroup].
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
  8970
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
  8971
    masterGroup := WindowGroup activeGroup.
3345
1d7c4a14bd06 cursor restore: not only in mainGroup, but also
ca
parents: 3340
diff changeset
  8972
    [masterGroup notNil and:[masterGroup isPopUp or:[masterGroup isModal]]] whileTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8973
	masterGroup := masterGroup previousGroup.
2167
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
  8974
    ].
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
  8975
    ^ self openModal:aBlock inGroup:masterGroup "/ mainGroup.
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
  8976
41e74cf73d7a fixed modal popup from a modal view
Claus Gittinger <cg@exept.de>
parents: 2161
diff changeset
  8977
    "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
  8978
    "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
  8979
!
299
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
  8980
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
  8981
openModal:aBlock inGroup:mainGroup
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
  8982
    "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
  8983
     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
  8984
     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
  8985
     visible.
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
  8986
     (i.e. control is returned to the sender when the receiver is closed)
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
  8987
     This makes any interaction with the current window impossible - 
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
  8988
     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
  8989
3345
1d7c4a14bd06 cursor restore: not only in mainGroup, but also
ca
parents: 3340
diff changeset
  8990
    |tops mainView mainViewID previousGroup |
1397
932c517ad29c moved tranientView setup up in the hierarchy
Claus Gittinger <cg@exept.de>
parents: 1393
diff changeset
  8991
1736
f010a521d10d grab and ungrab
ca
parents: 1726
diff changeset
  8992
    self isPopUpView ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8993
	ModalBox usingTransientViews ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8994
	    "make view only transient, if there is a visible topView.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8995
	     If none of them is visible, we do want an icon for ourself"
3202
d455f6300f96 openModal:inGroup: makes view transient only if there are visible top views.
Stefan Vogel <sv@exept.de>
parents: 3196
diff changeset
  8996
        
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8997
	    mainGroup notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8998
		(tops := mainGroup topViews) notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  8999
		    tops notEmpty ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9000
			mainView := tops detect:[:v| v shown] ifNone:nil.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9001
			mainView notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9002
			    mainViewID := mainView id.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9003
			]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9004
		    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9005
		].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9006
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9007
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9008
	    mainViewID isNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9009
		self origin:(device center - (self extent//2))
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9010
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9011
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9012
	    drawableId isNil ifTrue:[self create].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9013
	    mainView notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9014
		device setTransient:drawableId for:mainViewID.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9015
	    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9016
	].
1397
932c517ad29c moved tranientView setup up in the hierarchy
Claus Gittinger <cg@exept.de>
parents: 1393
diff changeset
  9017
    ].
932c517ad29c moved tranientView setup up in the hierarchy
Claus Gittinger <cg@exept.de>
parents: 1393
diff changeset
  9018
932c517ad29c moved tranientView setup up in the hierarchy
Claus Gittinger <cg@exept.de>
parents: 1393
diff changeset
  9019
    self raise.
299
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
  9020
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9021
    Processor activeProcessIsSystemProcess ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9022
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9023
	 put myself into the modal group, let it handle events for
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9024
	 me as well. This is only a half way solution, since the view
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9025
	 is not modal at all ... however, the only situation
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9026
	 where this happens is with modal boxes popped while in a
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9027
	 modal browser. You will forgive me for that inconvenience.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9028
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9029
	windowGroup := mainGroup.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9030
	mainGroup notNil ifTrue:[mainGroup addTopView:self].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9031
	self realize
135
claus
parents:
diff changeset
  9032
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9033
	previousGroup := WindowGroup activeGroup.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9034
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9035
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9036
	 show a stop-cursor in the main group
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9037
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9038
	mainGroup notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9039
	    self isPopUpView ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9040
		mainGroup showCursor:(Cursor stop).
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9041
		(previousGroup notNil and:[previousGroup ~~ mainGroup]) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9042
		    previousGroup showCursor:(Cursor stop).
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9043
		].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9044
	    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9045
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9046
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9047
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9048
	 create a new window group and put myself into it
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9049
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9050
	windowGroup := WindowGroup new.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9051
	windowGroup addTopView:self.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9052
	windowGroup setPreviousGroup:previousGroup.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9053
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9054
	superView notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9055
	    "/
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9056
	    "/ special: this is a modal subview,
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9057
	    "/ prevent the view from reassigning its windowGroup when realized
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9058
	    "/ (subviews normally place themself into the superviews group)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9059
	    "/        
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9060
	    windowGroup isForModalSubview:true.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9061
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9062
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9063
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9064
	 go dispatch events in this new group
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9065
	 (thus current windowgroup is blocked from interaction)
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9066
	"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9067
	AbortSignal handle:[:ex |
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9068
	    self hide.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9069
	    ex return.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9070
	] do:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9071
	    [
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9072
		[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9073
		    windowGroup startupModal:[realized and:aBlock] forGroup:mainGroup
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9074
		] ifCurtailed:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9075
		    self hide.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9076
		]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9077
	    ] ensure:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9078
		mainGroup notNil ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9079
		    mainGroup graphicsDevice sync.  "thats a round trip - make sure that all drawing has been processed"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9080
		    "/ ensure that eventListener runs here ...
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9081
		    Delay waitForSeconds:0.05.    
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9082
		    mainGroup processExposeEvents.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9083
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9084
		    ReturnFocusWhenClosingModalBoxes ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9085
			"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9086
			 return input focus to previously active groups top.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9087
			 This helps with windowmanagers which need an explicit click
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9088
			 on the view for the focus.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9089
			"
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9090
			tops := mainGroup topViews.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9091
			(tops notNil and:[tops notEmpty]) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9092
			    tops first getKeyboardFocus
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9093
			].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9094
		    ].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9095
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9096
		    "
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9097
		     restore cursors in the main group & flush its buffered key & mouse events
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9098
		    "
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9099
		    mainGroup restoreCursors.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9100
		    (previousGroup notNil and:[previousGroup ~~ mainGroup]) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9101
			previousGroup restoreCursors.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9102
		    ].
1329
4cc65306f73f care to not delay focusIn/focusOut processing of
ca
parents: 1327
diff changeset
  9103
"/                    mainGroup sensor flushUserEvents.
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9104
		]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9105
	    ]
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9106
	].
135
claus
parents:
diff changeset
  9107
    ]
299
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
  9108
e2c8fd828a64 passing group to avoid multiple activeGroup searches
Claus Gittinger <cg@exept.de>
parents: 271
diff changeset
  9109
    "Created: 10.12.1995 / 14:06:14 / cg"
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9110
    "Modified: 20.8.1997 / 15:14:44 / cg"
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9111
!
135
claus
parents:
diff changeset
  9112
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9113
openModalAt:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9114
    "open up the view modeless - positions the view
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9115
     (i.e. circumvents window managers positioning)"
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
    self origin:aPoint.
1837
454d10a53a64 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  9118
    drawableId isNil ifTrue:[self create].
560
968d062c79cb oops - openAt did set transient; definitely wrong ...
Claus Gittinger <cg@exept.de>
parents: 527
diff changeset
  9119
"/    device setTransient:drawableId for:0.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9120
    ^ self openModal
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9121
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9122
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9123
     View new openModal
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9124
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9125
    "
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9126
     View new openModalAt:100@100
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9127
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9128
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9129
    "Created: 18.9.1995 / 23:21:42 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9130
    "Modified: 18.9.1995 / 23:32:26 / claus"
1837
454d10a53a64 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  9131
    "Modified: 28.7.1997 / 18:52:29 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9132
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9133
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9134
openModalAtCenter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9135
    "open up the view modeless - positions the view
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9136
     (i.e. circumvents window managers positioning)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9137
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9138
    ^ self openModalAt:(device center - (self extent//2)).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9139
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9140
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9141
     View new openModal
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9142
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9143
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9144
     View new openModalAtCenter
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9145
    "
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9146
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9147
    "Modified: 24.7.1997 / 13:27:37 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9148
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9149
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9150
openModeless
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9151
    "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
  9152
     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
  9153
     parallel (i.e. control is returned to the sender immediately)."
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9154
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9155
    self openModelessAt:nil
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9156
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9157
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9158
     the same:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9159
	 (Button label:'hello') open
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9160
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9161
	 (Button label:'hello') openModeless
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9162
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9163
     different:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9164
	 YesNoBox new open
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9165
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9166
	 YesNoBox new openModeless
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9167
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9168
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9169
     (almost) the same:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9170
	 YesNoBox new open
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9171
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9172
	 YesNoBox new openModal
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9173
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9174
     different:
3152
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9175
	 (Button label:'hello') open
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9176
b64eeb833f5b added flag bits;
Claus Gittinger <cg@exept.de>
parents: 3150
diff changeset
  9177
	 (Button label:'hello') openModal
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9178
    "
503
c2b27766bb0a dont create a new windowGroup if there is one (in #openModeless)
Claus Gittinger <cg@exept.de>
parents: 497
diff changeset
  9179
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9180
    "Modified: 24.7.1997 / 13:17:49 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9181
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9182
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9183
openModelessAt:aPoint
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9184
    "open up the view modeless - positions the view
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9185
     (i.e. tries to circumvent the window managers positioning)
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9186
     Notice: some windowManagers seem to ignore this and always
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9187
     ask the user to position the view."
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9188
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9189
    self openModelessAt:aPoint iconified:false
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9190
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9191
    "
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9192
     View new openModeless
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9193
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9194
     View new openModelessAt:100@100
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9195
    "
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9196
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9197
    "Created: 18.9.1995 / 23:21:42 / claus"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9198
    "Modified: 24.7.1997 / 13:48:52 / cg"
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9199
!
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9200
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9201
openModelessAt:aPoint iconified:iconified
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9202
    "open up the view modeless - positions the view
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9203
     (i.e. tries to circumvent the window managers positioning)
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9204
     Notice: some windowManagers seem to ignore this and always
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9205
     ask the user to position the view."
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9206
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9207
    |newGroup|
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9208
1837
454d10a53a64 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  9209
    drawableId isNil ifTrue:[self create].
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9210
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9211
    windowGroup isNil ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9212
	newGroup := true.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9213
	windowGroup := WindowGroup new.
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9214
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9215
	newGroup := false.
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9216
    ].
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9217
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9218
    windowGroup addTopView:self.
3745
8456462f2ac0 code beautifaction
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
  9219
    newGroup ifTrue:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9220
	(aPoint isNil and:[iconified not]) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9221
	    windowGroup startupWith:[self realize].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9222
	] ifFalse:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9223
	    windowGroup startupWith:[self realizeKeepingGroup:false at:aPoint iconified:iconified].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9224
	].
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9225
    ] ifFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9226
	self realizeInGroup.
1823
56c9a8366a31 changes to support #openIconified.
Claus Gittinger <cg@exept.de>
parents: 1809
diff changeset
  9227
    ].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9228
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9229
    "
1827
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9230
     StandardSystemView new openModeless
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9231
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9232
     StandardSystemView new openModelessAt:100@100
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9233
bd127ee5469d more fixes
Claus Gittinger <cg@exept.de>
parents: 1823
diff changeset
  9234
     StandardSystemView new openModelessAt:100@100 iconified:true
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9235
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9236
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9237
    "Created: 18.9.1995 / 23:21:42 / claus"
1837
454d10a53a64 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1827
diff changeset
  9238
    "Modified: 28.7.1997 / 18:52:26 / cg"
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9239
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9240
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9241
openModelessAtCenter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9242
    "open up the view modeless - positions the view
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9243
     (i.e. circumvents window managers positioning)"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9244
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9245
    ^ self openModelessAt:(device center - (self extent//2)).
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9246
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9247
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9248
     View new openModeless
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9249
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9250
     View new openModelessAtCenter
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9251
    "
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9252
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9253
    "Created: 18.9.1995 / 23:21:42 / claus"
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9254
!
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9255
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9256
waitUntilVisible
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9257
    "wait until the receiver visible.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9258
     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
  9259
     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
  9260
     first expose event.
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9261
     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
  9262
     in doIt expressions), or subsequent views depend on some state of
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9263
     another view (which is only available once visible), 
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9264
     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
  9265
     Caveat:
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9266
	we poll here for the view to be shown - we need a semaphore
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9267
	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
  9268
a98163edc25b care for #waitUntilVisible to be called from within the event dispatcher
Claus Gittinger <cg@exept.de>
parents: 3518
diff changeset
  9269
    |wg n|
a98163edc25b care for #waitUntilVisible to be called from within the event dispatcher
Claus Gittinger <cg@exept.de>
parents: 3518
diff changeset
  9270
a98163edc25b care for #waitUntilVisible to be called from within the event dispatcher
Claus Gittinger <cg@exept.de>
parents: 3518
diff changeset
  9271
    n := 0.
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9272
    [self shown] whileFalse:[
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9273
	(device notNil and:[device isOpen not]) ifTrue:[^ self].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9274
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9275
	"/ this was added to avoid a deadlock, when called from within
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9276
	"/ the event dispatch process (as when doing foo inspect there).
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9277
	n > (10 / 0.05) ifTrue:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9278
	    'View not visible after 10 seconds - will not wait any longer' errorPrintCR.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9279
	    ^ self
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9280
	].
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9281
	n := n + 1.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9282
	Delay waitForSeconds:0.05.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9283
	(wg := self windowGroup) ifNotNil:[
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9284
	    wg processExposeEvents.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9285
	].
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9286
    ].
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9287
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9288
    "does not work (the view is in its opening phase,
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9289
     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
  9290
     its internals are not yet correctly setup):
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9291
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9292
	|v|
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9293
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9294
	v := View new open.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9295
	v displayLineFrom:0@0 to:50@50
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9296
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9297
     does work (since we wait until the view has completely finished
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9298
     its startup phase):
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9299
3762
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9300
	|v|
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9301
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9302
	v := View new open.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9303
	v waitUntilVisible.
968432b99c48 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3754
diff changeset
  9304
	v displayLineFrom:0@0 to:50@50
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9305
    "
135
claus
parents:
diff changeset
  9306
! !
claus
parents:
diff changeset
  9307
3276
9ed39f7e7282 category change
Claus Gittinger <cg@exept.de>
parents: 3266
diff changeset
  9308
!SimpleView methodsFor:'user interaction & notifications'!
135
claus
parents:
diff changeset
  9309
claus
parents:
diff changeset
  9310
warn:aString
claus
parents:
diff changeset
  9311
    "like Objects warn, but translates the string via the
claus
parents:
diff changeset
  9312
     resourcePack, thus giving a translated string automatically"
claus
parents:
diff changeset
  9313
151
claus
parents: 145
diff changeset
  9314
    super warn:(resources string:aString) withCRs
135
claus
parents:
diff changeset
  9315
!
claus
parents:
diff changeset
  9316
claus
parents:
diff changeset
  9317
warn:aString with:argument
claus
parents:
diff changeset
  9318
    "like Objects warn, but translates the string via the
claus
parents:
diff changeset
  9319
     resourcePack, thus giving a translated string automatically"
claus
parents:
diff changeset
  9320
151
claus
parents: 145
diff changeset
  9321
    super warn:(resources string:aString with:argument) withCRs
claus
parents: 145
diff changeset
  9322
!
claus
parents: 145
diff changeset
  9323
claus
parents: 145
diff changeset
  9324
warn:aString with:arg1 with:arg2
claus
parents: 145
diff changeset
  9325
    "like Objects warn, but translates the string via the
claus
parents: 145
diff changeset
  9326
     resourcePack, thus giving a translated string automatically"
claus
parents: 145
diff changeset
  9327
claus
parents: 145
diff changeset
  9328
    super warn:(resources string:aString with:arg1 with:arg2) withCRs
3182
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
  9329
!
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
  9330
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
  9331
warn:aString with:arg1 with:arg2 with:arg3
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
  9332
    "like Objects warn, but translates the string via the
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
  9333
     resourcePack, thus giving a translated string automatically"
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
  9334
6bbbe1943191 added #warn:with:with:with:
Claus Gittinger <cg@exept.de>
parents: 3181
diff changeset
  9335
    super warn:(resources string:aString with:arg1 with:arg2 with:arg3) withCRs
135
claus
parents:
diff changeset
  9336
! !
claus
parents:
diff changeset
  9337
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  9338
!SimpleView::ViewShape methodsFor:'queries'!
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  9339
3366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9340
isRoundShape
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9341
    ^ false
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9342
! !
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  9343
3377
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9344
!SimpleView::RoundViewShape methodsFor:'queries'!
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9345
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9346
isRoundShape
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9347
    ^ true
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9348
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9349
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9350
! !
9a9199a8bc3f must invoke findGUIResources, when an spec array is converted to
Claus Gittinger <cg@exept.de>
parents: 3375
diff changeset
  9351
2750
36b1a4d30882 moved round-view shape computation code to simpleView
Claus Gittinger <cg@exept.de>
parents: 2741
diff changeset
  9352
!SimpleView::ArbitraryViewShape methodsFor:'accessing'!
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  9353
3366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9354
borderShapeForm
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9355
    "return the value of the instance variable 'borderShapeForm' (automatically generated)"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9356
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9357
    ^ borderShapeForm
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9358
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9359
    "Created: 18.9.1997 / 11:04:29 / cg"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9360
!
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9361
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9362
borderShapeForm:something
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9363
    "set the value of the instance variable 'borderShapeForm' (automatically generated)"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9364
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9365
    borderShapeForm := something.
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9366
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9367
    "Created: 18.9.1997 / 11:04:29 / cg"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9368
!
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9369
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9370
viewShapeForm
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9371
    "return the value of the instance variable 'viewShapeForm' (automatically generated)"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9372
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9373
    ^ viewShapeForm
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9374
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9375
    "Created: 18.9.1997 / 11:04:29 / cg"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9376
!
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9377
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9378
viewShapeForm:something
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9379
    "set the value of the instance variable 'viewShapeForm' (automatically generated)"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9380
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9381
    viewShapeForm := something.
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9382
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9383
    "Created: 18.9.1997 / 11:04:29 / cg"
3750f8131471 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3364
diff changeset
  9384
! !
1903
285c7dc06ddb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1894
diff changeset
  9385
1101
ffeb697dd9e0 hasButtonMotionEventsFor -> hasButtonMotionEventFor
Claus Gittinger <cg@exept.de>
parents: 1066
diff changeset
  9386
!SimpleView class methodsFor:'documentation'!
269
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9387
ea536bb319a6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 264
diff changeset
  9388
version
3837
544e5190f505 no longer automagically set aBuilders window,
penk
parents: 3830
diff changeset
  9389
    ^ '$Header: /cvs/stx/stx/libview/SimpleView.st,v 1.469 2003-04-03 14:52:59 penk Exp $'
135
claus
parents:
diff changeset
  9390
! !
3745
8456462f2ac0 code beautifaction
Claus Gittinger <cg@exept.de>
parents: 3730
diff changeset
  9391
135
claus
parents:
diff changeset
  9392
SimpleView initialize!