[Cuis-dev] Modal morph

Juan Vuletich JuanVuletich at zoho.com
Thu Mar 10 06:01:32 PST 2022


Hi Hilaire,

Any news wrt this? I need to reproduce your exact scenario to understand 
better.

Thanks!

On 3/3/2022 9:05 AM, Juan Vuletich via Cuis-dev wrote:
> Hi Hilaire,
>
> I can not give a quick and easy solution. This is complex stuff!
>
> What I need is detailed instructions to build your exact setup. I 
> guess it involves updated Cuis, and DrGeo. If those instructions are 
> in the readme of DrGeo repo, that's even better.
>
> Then, I'll need to play a bit with this and review the code. My gut 
> feeling is that DropDownListMorph should not have any modal-specific 
> code. That should be in the base framework. Having a concrete example 
> to experiment with will help me find out the best way to do it.
>
> Thanks!
>
> On 3/3/2022 6:34 AM, Hilaire Fernandes via Cuis-dev wrote:
>>
>> Hi,
>>
>> A few weeks ago I posted about how to make a DropDownListMorph modal. 
>> I fixed the issue by borrowing the code from popup menu (it is modal 
>> behavior).
>>
>> So to pop up my drop down list of morph, I have this method:
>>
>> PluggableDropDownListOfMorph>>popUpAt: position forHand: hand in: aWorld
>>      aWorld addMorphFront: self position: position.
>>      self fitInWorld.
>>      prevKbdFocus _ hand keyboardFocus.
>>      prevMouseFocus _ hand mouseFocus.
>>      hand newMouseFocus: self;
>>          newKeyboardFocus: self
>>
>>
>> The modal behavior is perfectly achieved. However, the scroll morph 
>> in the list morph does not receive event anymore (but it is part of 
>> the . Observe on the screenshot below, the scrollbar is not highlight 
>> how it should be:
>>
>>
>> When I click on the scroll bar, the event is directed to the list of 
>> morphs (colored boxes), of course it produces an error as it does not 
>> match with any morph of the list (colored boxes). So I edit a bit the 
>> method below to handle the mouse up button event. Now It makes the 
>> scrollbar slider and buttons inoperable by the user, only it can be 
>> controlled with the mouse scrolling wheel button.
>>
>> The related mouse button up event is handled as:
>>
>> mouseButton1Up: aMouseButtonEvent localPosition: localEventPosition
>> 	"Handle a mouse up event."
>> 	(self includesPixel: aMouseButtonEvent eventPosition)
>> 		ifFalse: [
>> 			self deleteIfPopUp: aMouseButtonEvent.
>> 			self activeHand
>> 				newKeyboardFocus: prevKbdFocus;
>> 				newMouseFocus: prevMouseFocus.
>> 			^ self ].
>> 	"No click outside, handle normally"
>> 	(scrollBar 	includesPixel: aMouseButtonEvent eventPosition)
>> 		ifTrue: [scrollBar mouseButton1Up: aMouseButtonEvent localPosition: localEventPosition]
>> 		ifFalse: [super mouseButton1Up: aMouseButtonEvent localPosition: localEventPosition].
>> 	aMouseButtonEvent hand newMouseFocus: self
>>
>>
>> A workable solution is to override mouseButtonXUp: methods to set 
>> back the focus and to dispatch manualy the mouse event to the 
>> scrollbar. It is a bit overkill. I don't know how to handle the 
>> situation more properly.
>>
>> Ideas?
>>
>> Hilaire
>>
>> -- 
>> GNU Dr. Geo
>> http://drgeo.eu
>> http://blog.drgeo.eu
>
>
> -- 
> Juan Vuletich
> www.cuis-smalltalk.org
> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
> https://github.com/jvuletich
> https://www.linkedin.com/in/juan-vuletich-75611b3
> https://independent.academia.edu/JuanVuletich
> https://www.researchgate.net/profile/Juan-Vuletich
> https://patents.justia.com/inventor/juan-manuel-vuletich
> @JuanVuletich


-- 
Juan Vuletich
www.cuis-smalltalk.org
https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
https://github.com/jvuletich
https://www.linkedin.com/in/juan-vuletich-75611b3
https://independent.academia.edu/JuanVuletich
https://www.researchgate.net/profile/Juan-Vuletich
https://patents.justia.com/inventor/juan-manuel-vuletich
@JuanVuletich

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20220310/34fd0c7a/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 12223 bytes
Desc: not available
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20220310/34fd0c7a/attachment-0001.png>


More information about the Cuis-dev mailing list