To Detent Or Not To Detent…

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

To Detent Or Not To Detent…

Sean P. DeNigris
Administrator
Can anyone explain the purpose of sending #detentBy:atMultiplesOf:snap: in the method below? The problem is that, if you resize programatically below a factor of 0.1, you enter a black hole from which many scale attempts become effectively ignored. If the send is removed, everything works for my use case, but I don't understand its purpose and so don't know if it's a bug or feature!
    TransformationMorph>>#extent: newExtent
        self adjustAfter:
                [ | scaleFactor |scaleFactor := (self scale * newExtent r / self fullBounds extent r) max: 0.1.
                self scale: (scaleFactor detentBy: 0.1 atMultiplesOf: 1.0 snap: false)]

Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: To Detent Or Not To Detent…

Nicolai Hess


2015-09-02 17:42 GMT+02:00 Sean P. DeNigris <[hidden email]>:
Can anyone explain the purpose of sending #detentBy:atMultiplesOf:snap: in
the method below? The problem is that, if you resize programatically below a
factor of 0.1, you enter a black hole from which many scale attempts become
effectively ignored. If the send is removed, everything works for my use
case, but I don't understand its purpose and so don't know if it's a bug or
feature!
    TransformationMorph>>#extent: newExtent
        self adjustAfter:
                [ | scaleFactor |scaleFactor := (self scale * newExtent r / self
fullBounds extent r) max: 0.1.
                self scale: (scaleFactor detentBy: 0.1 atMultiplesOf: 1.0 snap: false)]



Maybe it is not needed for the #extent method.

It is used for rotation and scaling with the halos. For example, if you
remove that call in #scaleToMatch:, it may be difficult (or impossible, due to rounding errors)
to scale a Morph back to scale factor 1.0.
But I think it is enough to use this in #scaleToMatch: , no need to have it in #extent: too.



 



-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/To-Detent-Or-Not-To-Detent-tp4847682.html
Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.