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! |
Free forum by Nabble | Edit this page |