[Cuis-dev] Tweaks to GUI elements size windows

Mariano Montone marianomontone at gmail.com
Wed Feb 23 20:49:56 PST 2022


Hello,

Ok. Let me try one more time.

Demo: 
https://drive.google.com/file/d/1Py22nSJs7ja16-RzjtNWyj39K4l5uMWM/view?usp=sharing

No problem at all if you don't want this included in Cuis, I can put in 
some "goodies" package in one of my repos ...

I attach code at the end (that's not the important part, should be 
improved..)

Cheers,

Mariano

-----------------------------

options _ #(tinyFonts verySmallFonts smallFonts standardFonts largeFonts 
veryLargeFonts hugeFonts veryHugeFonts).
currentSize _ #standardFonts.

wm _ (MenuMorph new defaultTarget: Preferences)
		addTitle: 'Make GUI elements';
		addStayUpIcons;
		add: 'Huge' action: #hugeFonts;
		add: 'Very Large' action: #veryLargeFonts;
		add: 'Large' action: #largeFonts;
		add: 'Regular Size' action: #standardFonts;
		add: 'Small' action: #smallFonts;
		add: 'Very Small'action: #verySmallFonts;
		add: 'Tiny'action: #tinyFonts;
		yourself.

incSize _ [currentSize _ options at: (((options indexOf: currentSize) + 
1) min: options size).
				Preferences perform: currentSize].
			
decSize _ [currentSize _ options at: (((options indexOf: currentSize) - 
1) max: 1).
				Preferences perform: currentSize].

m _ LayoutMorph newRow
		color: wm color;
		borderWidth: 0;
		axisEdgeWeight: #center;
		separation: (20 at 0);
		morphHeight: 20;
		yourself.
		
m addMorph:
	((PluggableButtonMorph model: decSize action: #value)
		icon: Theme current collapseIcon;
		instVarNamed: #magnifiedIcon put: Theme current collapseIcon;
		yourself)
	layoutSpec: LayoutSpec keepMorphExtent.
	
m addMorph:
	((PluggableButtonMorph model: incSize action: #value)
		icon: Theme current expandIcon;
		instVarNamed: #magnifiedIcon put: Theme current expandIcon;
		yourself)
	layoutSpec: LayoutSpec keepMorphExtent.

wm addMorphBack: m.

wm popUpInWorld.

El 22/2/22 a las 17:32, Juan Vuletich escribió:
> Nice idea. Still, I'd prefer to use this gesture for scaling the Word 
> (or any other morph) with Vector Graphics.
> 
> Cheers,
> 
> On 2/22/2022 11:44 AM, Mariano Montone via Cuis-dev wrote:
>> This version uses mouse scroll to set GUI sizes:
>>
>> options _ #(tinyFonts verySmallFonts smallFonts standardFonts 
>> largeFonts hugeFonts).
>> currentSize _ #standardFonts.
>>
>> UISupervisor whenUIinSafeState: [ |morph|
>>     morph _ (MVCMenuMorph from: (PopUpMenu labels: 'Done') title: 'Use 
>> mouse scroll to set GUI size').
>>     morph setProperty: #'handlesMouseScroll:' toValue: true.
>>     morph setProperty:  #mouseScroll:localPosition: toValue: [:ev :lpos |
>>      currentSize _ options at: (ev direction == #up ifTrue:
>>         [((options indexOf: currentSize) + 1) min: options size]
>>         ifFalse: [((options indexOf: currentSize) - 1) max: 1]).
>>     Transcript show: currentSize.
>>     Preferences perform: currentSize].
>>     morph
>>         invokeAt: self runningWorld activeHand morphPosition
>>         allowKeyboard: true]
>>
>> I think I like it, as an alternative option for setting sizes at least.
>>
>> Thoughts?
>>
>> Cheers,
>>
>> Mariano
>>
>> El 22/2/22 a las 10:57, Mariano Montone escribió:
>>> El 22/2/22 a las 09:37, Juan Vuletich via Cuis-dev escribió:
>>>> Hi Folks,
>>>>
>>>> I just pushed a change to tweak a bit the behavior of the "Size of 
>>>> GUI elements" menu. I felt that the difference between sizes was too 
>>>> large, so I made "tiny" larger, "huge" smaller, and adjusted the 
>>>> rest. I hope you find it pleasant and not annoying. In any case, now 
>>>> you can call #defaultFontSize: with any number, especially if using 
>>>> TrueType.
>>>
>>> It is fine for me.
>>>
>>> I think it could be cool to provide some widget for selecting the 
>>> size instead of a menu.
>>>
>>> Like a refined version of this:
>>>
>>> options _ #(tinyFonts verySmallFonts smallFonts standardFonts 
>>> largeFonts hugeFonts).
>>> sb := ScrollBar new.
>>> sb morphExtent: 100@(sb buttonExtent).
>>> sb scrollDelta: 1/(options size) pageDelta: 1/(options size).
>>> sb model: [:val | |sizeSelector|
>>>      Transcript show: val.
>>>      Transcript show: (val * options size - 1) rounded.
>>>
>>>      sizeSelector _ options at: (val * (options size - 1)) rounded + 1 .
>>>      Transcript show: sizeSelector.
>>>      Preferences perform: sizeSelector] setValueSelector: #value:.
>>> sb    openInWorld
>>>
>>> I'll see if I can come up with something better, or better idea...
>>>
>>> Cheers,
>>>
>>> Mariano
>>
> 
> 



More information about the Cuis-dev mailing list