Another example on which you can zoom in and out.



-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| view element nameComponent label stack |
view := ROView new.
view @ RODraggable.

ROSVGPath southAmerica do: [ :k |
element := (ROSVGPath path: (ROSVGPath perform: k)) elementOn: k.
view add: element.
]. 

nameComponent := ROElement new.
ROSVGPath southAmerica 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.


stack := ROViewStack new.
stack zoomInButton; zoomOutButton.
stack addView: view.

stack add: nameComponent.
nameComponent translateTo: 0 @ 20.

stack openInWindowSized: 1000 @ 700
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

On Nov 16, 2013, at 5:44 PM, Alexandre Bergel <alexandre.bergel@me.com> wrote:

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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.