Frank Shearar uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-fbs.534.mcz ==================== Summary ==================== Name: System-fbs.534 Author: fbs Time: 21 May 2013, 4:22:14.108 pm UUID: b993e4a6-6557-4586-9aad-cf0143d58a41 Ancestors: System-fbs.533 Move unto MorphicExtras the things that are MorphicExtras. Flaps-referencing methods, in this case. =============== Diff against System-fbs.533 =============== Item was removed: - ----- Method: RealEstateAgent class>>reduceByFlaps: (in category 'utilities') ----- - reduceByFlaps: aScreenRect - "Return a rectangle that won't interfere with default shared flaps" - - Flaps sharedFlapsAllowed ifFalse: [^ aScreenRect copy]. - (Flaps globalFlapTabsIfAny allSatisfy: - [:ft | ft flapID = 'Painting' translated or: [ft edgeToAdhereTo == #bottom]]) - ifTrue: [^ aScreenRect withHeight: aScreenRect height - 18] - ifFalse: [^ aScreenRect insetBy: 18]! Item was removed: - ----- Method: RealEstateAgent class>>strictlyStaggeredInitialFrameFor:initialExtent: (in category 'framing') ----- - strictlyStaggeredInitialFrameFor: aStandardSystemView initialExtent: initialExtent - - self error: 'please use #strictlyStaggeredInitialFrameFor:initialExtent:world:'! Item was removed: - ----- Method: RealEstateAgent class>>strictlyStaggeredInitialFrameFor:initialExtent:world: (in category 'framing') ----- - strictlyStaggeredInitialFrameFor: aStandardSystemView initialExtent: initialExtent world: aWorld - "This method implements a staggered window placement policy that I (di) like. - Basically it provides for up to 4 windows, staggered from each of the 4 corners. - The windows are staggered so that there will always be a corner visible." - - | allowedArea grid initialFrame otherFrames cornerSel corner delta putativeCorner free maxLevel | - - allowedArea :=(self maximumUsableAreaInWorld: aWorld) - insetBy: (self scrollBarSetback @ self screenTopSetback extent: 0@0). - (Smalltalk isMorphic and: [Flaps sharedFlapsAllowed]) ifTrue: - [allowedArea := self reduceByFlaps: allowedArea]. - "Number to be staggered at each corner (less on small screens)" - maxLevel := allowedArea area > 300000 ifTrue: [3] ifFalse: [2]. - "Amount by which to stagger (less on small screens)" - grid := allowedArea area > 500000 ifTrue: [40] ifFalse: [20]. - initialFrame := 0@0 extent: ((initialExtent - "min: (allowedArea extent - (grid*(maxLevel+1*2) + (grid//2)))) - min: 600@400")). - otherFrames := Smalltalk isMorphic - ifTrue: [(SystemWindow windowsIn: aWorld satisfying: [:w | w isCollapsed not]) - collect: [:w | w bounds]] - ifFalse: [ScheduledControllers scheduledWindowControllers - select: [:aController | aController view ~~ nil] - thenCollect: [:aController | aController view isCollapsed - ifTrue: [aController view expandedFrame] - ifFalse: [aController view displayBox]]]. - 0 to: maxLevel do: - [:level | - 1 to: 4 do: - [:ci | cornerSel := #(topLeft topRight bottomRight bottomLeft) at: ci. - corner := allowedArea perform: cornerSel. - "The extra grid//2 in delta helps to keep title tabs distinct" - delta := (maxLevel-level*grid+(grid//2)) @ (level*grid). - 1 to: ci-1 do: [:i | delta := delta rotateBy: #right centerAt: 0@0]. "slow way" - putativeCorner := corner + delta. - free := true. - otherFrames do: - [:w | - free := free & ((w perform: cornerSel) ~= putativeCorner)]. - free ifTrue: - [^ (initialFrame align: (initialFrame perform: cornerSel) - with: putativeCorner) - translatedAndSquishedToBeWithin: allowedArea]]]. - "If all else fails..." - ^ (self scrollBarSetback @ self screenTopSetback extent: initialFrame extent) - translatedAndSquishedToBeWithin: allowedArea! |
Free forum by Nabble | Edit this page |