[squeak-dev] The Trunk: Tools-cmm.245.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Jun 15 20:51:10 UTC 2010


Chris Muller uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-cmm.245.mcz

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

Name: Tools-cmm.245
Author: cmm
Time: 15 June 2010, 3:50:40.945 pm
UUID: 5023b81d-4fb8-4776-966b-ca5c956cc74a
Ancestors: Tools-cmm.244

Fixed World Menu | open... | file....

=============== Diff against Tools-cmm.244 ===============

Item was changed:
  ----- Method: PopUpMenu>>startUpSegmented:withCaption:at:allowKeyboard: (in category 'basic control sequence') -----
  startUpSegmented: segmentHeight withCaption: captionOrNil at: location allowKeyboard: aBoolean
  	"This menu is too big to fit comfortably on the screen.
  	Break it up into smaller chunks, and manage the relative indices.
  	Inspired by a special-case solution by Reinier van Loon.  The boolean parameter indicates whether the menu should be given keyboard focus (if in morphic)"
  
  "
  (PopUpMenu labels: (String streamContents: [:s | 1 to: 100 do: [:i | s print: i; cr]. s skip: -1])
  		lines: (5 to: 100 by: 5)) startUpWithCaption: 'Give it a whirl...'.
  "
  	| nLines nLinesPer allLabels from to subset subLines index |
  	frame ifNil: [self computeForm].
  	allLabels := labelString lines.
  	nLines := allLabels size.
  	lineArray ifNil: [lineArray := Array new].
  	nLinesPer := segmentHeight // marker height - 3.
  	from := 1.
  	[ true ] whileTrue:
  		[to := (from + nLinesPer) min: nLines.
+ 		subset := (allLabels copyFrom: from to: to) asOrderedCollection.
- 		subset := allLabels copyFrom: from to: to.
  		subset add: (to = nLines ifTrue: ['start over...' translated] ifFalse: ['more...' translated])
  			before: subset first.
  		subLines := lineArray select: [:n | n >= from] thenCollect: [:n | n - (from-1) + 1].
  		subLines := (Array with: 1) , subLines.
  		index := (PopUpMenu labels: subset asStringWithCr lines: subLines)
  					startUpWithCaption: captionOrNil at: location allowKeyboard: aBoolean.
  		index = 1
  			ifTrue: [from := to + 1.
  					from > nLines ifTrue: [ from := 1 ]]
  			ifFalse: [index = 0 ifTrue: [^ 0].
  					^ from + index - 2]]!




More information about the Squeak-dev mailing list