The Trunk: Morphic-mt.1622.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Morphic-mt.1622.mcz

commits-2
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1622.mcz

==================== Summary ====================

Name: Morphic-mt.1622
Author: mt
Time: 14 February 2020, 3:54:44.749667 pm
UUID: 20cac908-757f-be47-a081-1043be58a4ad
Ancestors: Morphic-mt.1621

Fixes more icon scaling bugs, which I discovered by testing Etoys (and the demo mode).

(Note that all those #scaleIconToDisplay sends can easily be located through the senders tool and later be corrected once we find better way of scaling things up for high-dpi displays. It is also a nice way of documenting those hard-coded values. ^__^)

=============== Diff against Morphic-mt.1621 ===============

Item was changed:
  ----- Method: DialogWindow>>createTitle: (in category 'initialization') -----
  createTitle: aString
  "Mimick behavior of MenuMorph title creation."
 
  | box closeButton menuButton |
  box := Morph new
  name: #title;
  changeTableLayout;
  listDirection: #leftToRight;
  yourself.
 
  titleMorph := aString asText asMorph lock.
 
  closeButton := SystemWindowButton new
  color: Color transparent;
  target: self;
  extent: 12@12;
  actionSelector: #cancelDialog;
  balloonText: 'Cancel this dialog' translated;
  borderWidth: 0;
- labelGraphic: SystemWindow closeBoxImage;
- extent: SystemWindow closeBoxImage extent;
  visible: self class includeCloseButton;
  yourself.
+ SystemWindow closeBoxImage scaleIconToDisplay in: [:icon |
+ closeButton labelGraphic: icon; extent: icon extent].
 
  menuButton := SystemWindowButton new
  color: Color transparent;
  target: self;
  actionSelector: #offerDialogMenu;
  balloonText: 'Dialog menu' translated;
  borderWidth: 0;
- labelGraphic: SystemWindow menuBoxImage;
- extent: SystemWindow menuBoxImage extent;
  visible: self class includeControlMenu;
  yourself.
+ SystemWindow menuBoxImage scaleIconToDisplay in: [:icon |
+ menuButton labelGraphic: icon; extent: icon extent].
 
  box addAllMorphs: {closeButton. titleMorph. menuButton}.
 
  self addMorphBack: box.
  self setTitleParameters.!

Item was changed:
  ----- Method: MenuIcons class>>decorateMenu: (in category 'menu decoration') -----
  decorateMenu: aMenu
  "decorate aMenu with icons"
 
  | maxWidth |
 
  Preferences menuWithIcons ifFalse: [^ self].
  Preferences tinyDisplay ifTrue:[^ self].
 
  maxWidth := 0.
 
  aMenu items do: [:item |
  item icon isNil ifTrue: [
  | icon |
  icon := self iconForMenuItem: item.
  icon isNil ifFalse: [
  item icon: icon.
  maxWidth := maxWidth max: item icon width.
  ]
  ]
  ifFalse: [
  maxWidth := maxWidth max: item icon width
  ].
 
  item hasSubMenu ifTrue: [
  self decorateMenu: item subMenu.
  ].
  ].
 
  maxWidth isZero ifFalse: [
+ self flag: #hacky. "mt: That manual icon scaling is not optimal..."
+ aMenu addBlankIconsIfNecessary: (self blankIconOfWidth: (
+ "Avoid duplicate scaling because the actual menu icons are already scaled at this point."
+ RealEstateAgent scaleFactor > 1.0
+ ifTrue: [RealEstateAgent defaultIconExtent x]
+ ifFalse: [maxWidth]))].
- aMenu addBlankIconsIfNecessary: (self blankIconOfWidth: maxWidth).
- ].
  !

Item was changed:
  ----- Method: MenuItemMorph>>icon: (in category 'accessing') -----
+ icon: aFormOrNil
+
+ icon := aFormOrNil
+ ifNotNil: [:form | form scaleIconToDisplay].
- icon: aForm
- "change the the receiver's icon"
- icon := aForm.
  self height: self minHeight.
+ self width: self minWidth.!
- self width: self minWidth!

Item was changed:
  ----- Method: MenuMorph>>addStayUpIcons (in category 'construction') -----
  addStayUpIcons
  | title closeBox pinBox |
  title := submorphs
  detect: [:ea | ea hasProperty: #titleString]
  ifNone: [
  "Called too soon. Will add stay-up icons when title is added."
  self setProperty: #needsTitlebarWidgets toValue: true.
  ^ self].
  closeBox := SystemWindowButton new target: self;
  actionSelector: #delete;
- labelGraphic: self class closeBoxImage;
  color: Color transparent;
+ setBalloonText: 'close this menu' translated;
- extent: self class closeBoxImage extent;
  borderWidth: 0.
+ self class closeBoxImage scaleIconToDisplay in: [:icon |
+ closeBox labelGraphic: icon; extent: icon extent].
  pinBox := SystemWindowButton new target: self;
  actionSelector: #stayUp:;
  arguments: {true};
- labelGraphic: self class pushPinImage;
  color: Color transparent;
+ setBalloonText: 'keep this menu up' translated;
- extent: self class pushPinImage extent;
  borderWidth: 0.
+ self class pushPinImage scaleIconToDisplay in: [:icon |
+ pinBox labelGraphic: icon; extent: icon extent].
- Preferences noviceMode ifTrue: [
- closeBox setBalloonText: 'close this menu'.
- pinBox setBalloonText: 'keep this menu up'].
 
  title
  addMorphFront: closeBox;
  addMorphBack: pinBox.
 
  self setProperty: #hasTitlebarWidgets toValue: true.
  self removeProperty: #needsTitlebarWidgets.
  self removeStayUpItems!

Item was changed:
  ----- Method: TheWorldMainDockingBar>>colorIcon: (in category 'private') -----
  colorIcon: aColor
 
  "Guess if 'uniform window colors' are used and avoid all icons to be just gray"
  (aColor = (UserInterfaceTheme current get: #uniformWindowColor for: Model) or: [Preferences tinyDisplay]) ifTrue: [ ^nil ].
+ ^(aColor iconOrThumbnailOfSize: (14 * RealEstateAgent scaleFactor) truncated)
- ^(aColor iconOrThumbnailOfSize: 14)
  borderWidth: 3 color: ((UserInterfaceTheme current get: #color for: #MenuMorph) ifNil: [(Color r: 0.9 g: 0.9 b: 0.9)]) muchDarker;
  borderWidth: 2 color: Color transparent!