And I removed the strip behavior.
In 2.0 it is not there.

Stef

On Jul 25, 2012, at 4:47 PM, Tudor Girba wrote:

> Just for fun read the below piece of code :)
> 
> 
> SystemProgressMorph>>label: shortDescription min: startMinValue max:
> startMaxValue
>       "Answer the block that updates the progress bar."
>       
>       "some fun stuff added (by kph)
>       
>       - bar value: #label. - tell me my current label.
>       - bar value: 'newLabel'. - enable changing the label from within the 
> workBlock
>       - bar value: #increment. - enable progress by one without keeping a 
> counter
>       - bar value: #decrement. - go backwards (if you really have to,
> useful for an abort, or rollback)!
> 
>       - bar value: newBigNum. - change the max on the fly - when you find
> there is more to do.
>       - bar value: (bar value: #setMax) + 20 - change the max on the fly -
> when you find there is more/less to do.
>       - bar value: (bar value: #setMin) - 20 - change the min on the fly -
> not sure why you would want to.
>       "
>       | slot range barSize lastRefresh maxValue minValue bar|
>       maxValue := startMaxValue.
>       minValue := startMinValue.
>       ((range := maxValue - minValue) <= 0 or: [(slot := self nextSlotFor:
> shortDescription) = 0])
>               ifTrue: [^[:barVal| 0 ]].
>       self recenter.
>       self openInWorld.
>       barSize := -1. "Enforces a inital draw of the morph"
>       lastRefresh := Time millisecondClockValue.
>       bar := bars at: slot.
>       ^[:barValArg | | barVal return newBarSize |
>               barVal := barValArg.
>               return := nil.
>               bar := bars at: slot.
>               "new fun stuff here"
>               barVal == #current  ifTrue: [ return := barSize ].
>               barVal == #label ifTrue:[ return := (labels at: slot) contents 
> ].
>               barVal == #setMax ifTrue: [ return := maxValue. maxValue := 
> minValue ].
>               barVal == #setMin ifTrue: [ return := minValue. minValue := 
> maxValue ].
>               barVal == #increment ifTrue: [return := barVal := barSize + 1].
>               barVal == #decrement ifTrue: [ return := barVal := barSize - 1].
>               (barVal isString and: [barVal isSymbol not]) ifTrue: [
>                       (labels at: slot) contents: barVal.
>                       barVal := #refresh].
>               barVal == #refresh ifTrue: [self currentWorld displayWorld. 
> return := true].    
>               (barVal == SmallInteger maxVal or: [ barVal == #finished ]) 
> ifTrue:
> [return := slot].
>               return ifNil: [
>                       barVal > maxValue ifTrue: [return := maxValue := 
> barVal].
>                       barVal < minValue ifTrue: [return := minValue := 
> barVal].
>                       (barVal between: minValue and: maxValue)
>                               ifTrue: [newBarSize := (barVal - minValue / 
> range * BarWidth) truncated.
>                                               newBarSize = barSize
>                                                       ifFalse: [barSize := 
> newBarSize.
>                                                                       (Time 
> millisecondsSince: lastRefresh) > 25
>                                                                               
> ifTrue: [barVal := #refresh ]]].        
>               barVal == #refresh ifTrue: [
>                                       ((bar valueOfProperty: #useStripes) 
> ifNil: [false])
>                                               ifTrue: [bar fillStyle origin: 
> bar position - ((Time
> millisecondClockValue // 50 \\ 30) @ 0)].
>                                       bar barSize: barSize.
>                                       self currentWorld displayWorld.
>                                       lastRefresh := Time 
> millisecondClockValue]].
>               return]
> 
> Cheers,
> Doru
> 
> -- 
> www.tudorgirba.com
> 
> "Every thing has its own flow"
> 


Reply via email to