[Pharo-dev] SVG described countries in Roassal

Alexandre Bergel alexandre.bergel at me.com
Sun Nov 17 09:31:26 EST 2013


Within Roassal I need to have a svg shape that knows about a path.
Currently I do not make use of Athens to draw the SVG, I simply use Athens to draw lines. 

Within Roassal I can define any SVG path as a shape. For example: 
	view add: (ROSVGPath path: 'M10,10 L30,30') element

Why this should not be at the level of Roassal? If I want to define a box, I would simply do
	view add: (ROBox new extent: 30 @ 20) element

It follows the same pattern no?

Alexandre


On Nov 17, 2013, at 8:45 AM, Stéphane Ducasse <stephane.ducasse at inria.fr> wrote:

> I see that you have a loooot of fun.
> Now I have the impression that in the future version you should not expose ROSVGPath and others 
> because there are at the importer level not Roassal. So why do you need to wrap them.
> If there is something missing in SVGPath what is it?
> 
> Stef
> 
>> Hi!
>> 
>> I had fun understanding how countries may be described using SVG.
>> Here is a first shoot:
>> 
>> <Screen Shot 2013-11-16 at 5.36.21 PM.png>
>> 
>> Moving the mouse above a country name highlight the country. You can now rehearse your geography.
>> 
>> The complete source code of this example is:
>> 
>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>> | view element nameComponent label |
>> view := ROView new.
>> 
>> ROSVGPath countries do: [ :k |
>> 	element := (ROSVGPath path: (ROSVGPath perform: k)) elementOn: k.
>> 	view add: element.
>> ]. 
>> 
>> nameComponent := ROElement new.
>> ROSVGPath countries do: [ :k |
>> 	label := ROLabel elementOn: k asString.
>> 	label @ ROLightlyHighlightable.
>> 	label on: ROMouseEnter do: [ :event | ROBlink highlight: (view elementFromModel: event model asSymbol) ].
>> 	label on: ROMouseLeave do: [ :event | ROBlink unhighlight: (view elementFromModel: event model asSymbol) ].
>> 	nameComponent add: label.
>> ].
>> ROGridLayout new
>> 	gapSize: -3;
>> 	lineItemsCount: 15;
>> 	on: nameComponent elements.
>> 	
>> view add: nameComponent.
>> nameComponent translateTo: 0 @ 400.
>> 
>> view openInWindowSized: 1000 @ 700
>> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>> 
>> Cheers,
>> Alexandre
>> -- 
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>> 
>> 
>> 
> 

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.







More information about the Pharo-dev mailing list