[squeak-dev] The Trunk: Tools-mt.982.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Jul 13 09:49:24 UTC 2020
Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.982.mcz
==================== Summary ====================
Name: Tools-mt.982
Author: mt
Time: 13 July 2020, 11:49:22.018623 am
UUID: 870fe86a-ad9d-c34d-9103-645414fb1259
Ancestors: Tools-mt.981
Complements ST80-mt.256
=============== Diff against Tools-mt.981 ===============
Item was changed:
----- Method: Browser>>buildAndOpenFullBrowser (in category 'toolbuilder') -----
buildAndOpenFullBrowser
"assemble the spec for a full system browser, build it and open it"
+ | builder window |
- | builder windowSpec |
builder := ToolBuilder default.
"the build-but-don't-open phase is factored out to support the prototypicalToolWindow facility"
+ window := self buildDefaultBrowserWith: builder.
+ builder open: window.!
- windowSpec := self buildDefaultBrowserWith: builder.
- builder open: windowSpec.
-
- ^self
- !
Item was changed:
----- Method: CustomMenu>>build (in category 'private') -----
build
"Turn myself into an invokable ActionMenu."
| stream |
stream := WriteStream on: (String new).
labels do: [:label | stream nextPutAll: label; cr].
(labels isEmpty) ifFalse: [stream skip: -1]. "remove final cr"
super labels: stream contents
+ font: Preferences standardMenuFont
- font: MenuStyle defaultFont
lines: dividers!
Item was changed:
----- Method: HierarchyBrowser>>buildAndOpenBrowserLabel: (in category 'toolbuilder') -----
buildAndOpenBrowserLabel: aLabelString
"assemble the spec for a class list/hierarchy browser, build it and open it"
+ | builder window |
- | builder windowSpec |
builder := ToolBuilder default.
+ window := self buildDefaultBrowserWith: builder.
+ aLabelString ifNotNil: [:str | window label: str].
- windowSpec := self buildDefaultBrowserWith: builder.
- aLabelString ifNotNil:[:str| windowSpec label: str].
+ builder open: window.!
- builder open: windowSpec.
-
- ^self
- !
Item was changed:
Object subclass: #PopUpMenu
instanceVariableNames: 'labelString font lineArray frame form marker selection'
+ classVariableNames: 'CacheMenuForms'
- classVariableNames: 'CacheMenuForms MenuStyle'
poolDictionaries: ''
category: 'Tools-Menus'!
!PopUpMenu commentStamp: '<historical>' prior: 0!
I represent a list of items. My instances are presented on the display screen in a rectangular area. The user points to an item, pressing a mouse button; the item is highlighted. When the button is released, the highlighted item indicates the selection.!
Item was removed:
- ----- Method: PopUpMenu class>>alignment (in category 'class initialization') -----
- alignment
-
- ^ MenuStyle alignment!
Item was removed:
- ----- Method: PopUpMenu class>>alignment: (in category 'class initialization') -----
- alignment: anAlignment
-
- ^ MenuStyle alignment: anAlignment!
Item was removed:
- ----- Method: PopUpMenu class>>initialize (in category 'class initialization') -----
- initialize "PopUpMenu initialize"
- (MenuStyle := TextStyle default copy)
- gridForFont: TextStyle default defaultFontIndex withLead: 0;
- centered.
- PopUpMenu allSubInstancesDo: [:m | m rescan]!
Item was changed:
----- Method: PopUpMenu class>>labels:lines: (in category 'instance creation') -----
labels: aString lines: anArray
"Answer an instance of me whose items are in aString, with lines drawn
after each item indexed by anArray."
^ self new
labels: aString
+ font: Preferences standardMenuFont
- font: MenuStyle defaultFont
lines: anArray!
Item was removed:
- ----- Method: PopUpMenu class>>leftFlush (in category 'class initialization') -----
- leftFlush
-
- MenuStyle leftFlush!
Item was removed:
- ----- Method: PopUpMenu class>>setMenuFontTo: (in category 'class initialization') -----
- setMenuFontTo: aFont
- "Set the menu font as indicated"
-
- MenuStyle := TextStyle fontArray: { aFont }.
- MenuStyle
- gridForFont: 1 withLead: 0;
- centered.
- self allSubInstancesDo: [:m | m rescan]!
Item was added:
+ ----- Method: PopUpMenu class>>standardMenuStyle (in category 'class initialization') -----
+ standardMenuStyle
+
+ ^ (TextStyle fontArray: { Preferences standardMenuFont })
+ gridForFont: 1 withLead: 0;
+ centered;
+ yourself!
Item was changed:
----- Method: PopUpMenu>>computeForm (in category 'private') -----
computeForm
"Compute and answer a Form to be displayed for this menu."
+ | borderInset paraForm menuForm menuStyle inside |
- | borderInset paraForm menuForm inside |
borderInset := 4 at 4.
+ menuStyle := self class standardMenuStyle.
+ paraForm := ((DisplayText text: labelString asText textStyle: menuStyle)
- paraForm := ((DisplayText text: labelString asText textStyle: MenuStyle)
foregroundColor: (self userInterfaceTheme textColor ifNil: [Color black])
backgroundColor: (self userInterfaceTheme color ifNil: [Color white])) form.
menuForm := Form extent: paraForm extent + (borderInset * 2) depth: paraForm depth.
menuForm fill: (0 @ 0 extent: menuForm extent)
rule: Form over
fillColor: (self userInterfaceTheme color ifNil: [Color white]).
menuForm
border: menuForm boundingBox
width: 2
fillColor: (self userInterfaceTheme borderColor ifNil: [Color black]).
paraForm displayOn: menuForm at: borderInset.
lineArray == nil ifFalse:
[lineArray do:
[ :line |
menuForm
fill: (4 @ ((line * font height) + borderInset y)
extent: (menuForm width - 8 @ 1))
rule: Form over
fillColor: (self userInterfaceTheme lineColor ifNil: [Color black])]].
frame := Quadrangle new.
frame region: menuForm boundingBox.
frame borderWidth: 4.
inside := frame inside.
+ marker := inside topLeft extent: (inside width @ menuStyle lineGrid).
- marker := inside topLeft extent: (inside width @ MenuStyle lineGrid).
selection := 1.
^ form := menuForm
!
Item was changed:
----- Method: PopUpMenu>>displayAt:withCaption:during: (in category 'displaying') -----
displayAt: aPoint withCaption: captionOrNil during: aBlock
"Display the receiver just to the right of aPoint while aBlock is evaluated. If the receiver is forced off screen, display it just to the right."
| delta savedArea captionForm captionSave outerFrame captionText tFrame frameSaveLoc captionBox |
marker ifNil: [self computeForm].
frame := frame align: marker leftCenter with: aPoint + (2 at 0).
outerFrame := frame.
captionOrNil notNil ifTrue:
[captionText := (DisplayText
text: captionOrNil asText
+ textStyle: self class standardMenuStyle copy centered)
- textStyle: MenuStyle copy centered)
foregroundColor: (self userInterfaceTheme textColor ifNil: [Color black])
backgroundColor: (self userInterfaceTheme color ifNil: [Color white]).
tFrame := captionText boundingBox insetBy: -2.
outerFrame := frame merge: (tFrame align: tFrame bottomCenter
with: frame topCenter + (0 at 2))].
delta := outerFrame amountToTranslateWithin: Display boundingBox.
frame right > Display boundingBox right
ifTrue: [delta := 0 - frame width @ delta y].
frame := frame translateBy: delta.
captionOrNil notNil ifTrue:
[captionForm := captionText form.
captionBox := captionForm boundingBox expandBy: 4.
captionBox := captionBox align: captionBox bottomCenter
with: frame topCenter + (0 at 2).
captionSave := Form fromDisplay: captionBox.
Display border: captionBox width: 4 fillColor: (self userInterfaceTheme color ifNil: [Color white]).
Display border: captionBox width: 2 fillColor: (self userInterfaceTheme textColor ifNil: [Color black]).
captionForm displayAt: captionBox topLeft + 4].
marker := marker align: marker leftCenter with: aPoint + delta + (2 at 0).
savedArea := Form fromDisplay: frame.
self menuForm displayOn: Display at: (frameSaveLoc := frame topLeft).
selection ~= 0 ifTrue: [Display reverse: marker].
Cursor normal showWhile: aBlock.
savedArea displayOn: Display at: frameSaveLoc.
captionOrNil notNil ifTrue:
[captionSave displayOn: Display at: captionBox topLeft]!
Item was changed:
----- Method: PopUpMenu>>frameHeight (in category 'accessing') -----
frameHeight
"Designed to avoid the entire frame computation (includes MVC form),
since the menu may well end up being displayed in Morphic anyway."
| nItems |
frame ifNotNil: [^ frame height].
nItems := 1 + (labelString occurrencesOf: Character cr).
+ ^ (nItems * self class standardMenuStyle lineGrid) + 4 "border width"!
- ^ (nItems * MenuStyle lineGrid) + 4 "border width"!
Item was changed:
----- Method: PopUpMenu>>rescan (in category 'private') -----
rescan
"Cause my form to be recomputed after a font change."
labelString == nil ifTrue: [labelString := 'NoText!!'].
+ self labels: labelString font: Preferences standardMenuFont lines: lineArray.
- self labels: labelString font: (MenuStyle fontAt: 1) lines: lineArray.
frame := marker := form := nil.
"PopUpMenu allSubInstancesDo: [:m | m rescan]"!
More information about the Squeak-dev
mailing list
|