Yes :)



On 09 May 2016, at 13:45, Henrik Johansen <henrik.s.johansen@veloxit.no> wrote:

Yes, IIRC, the whole idea behind Spec was to have a literal syntax for specifying UI's. ��(Which is a neat storage format for, say, a UIBuilder)
The focus seems to have changed over time to directly using what was initially the intermediate object model��the builder generated when parsing the spec.

btw, I���ve never been happy with that change :)
and I agree, the original idea was to have some s-strings ��based description so an UI builder (to be done) could do a better job.

Esteban


Cheers,
Henry��

On 09 May 2016, at 1:22 , Denis Kudriashov <dionisiydk@gmail.com> wrote:


2016-05-09 11:38 GMT+02:00 Peter Uhn��k <i.uhnak@gmail.com>:
No. Morphs are created by Adapters, Spec interpreter instantiates glues everything together.
Regardless, there's no parsing involved��� what is there to parse? There are no literal arrays anywhere.
The SpecLayout (that we called array last week), is not an array, it's a composition of real objects

defaultSpec
^ SpecLayout composed
newRow: [ :row | row newColumn: [ :col | col add: #topToolbar height: self toolbarHeight ] ]
height: self toolbarHeight;
newRow: [ :row |��
row
newColumn: [ :col | col add: #navigatorModel ] origin: 0 @ 0 corner: 0.2 @ 1;
addSplitter;
newColumn: [ :col | col add: #tabManager ] origin: 0.2 @ 0 corner: 0.85 @ 1;
addSplitter;
newColumn: [ :col | col add: #formModel ] origin: 0.85 @ 0 corner: 1 @ 1 ]
top: self toolbarHeight;
yourself

Maybe array approach deprecated? But in first demos of Spec it was like this:

CheckBoxExample class>>defaultSpec

^ { #ContainerModel.
#add:. { self topSpec. #layout:. #(#SpecLayoutFrame
bottomFraction: 0
bottomOffset: 20) }.
#add:. {{#model . #container } . #layout: . #(#SpecLayoutFrame topOffset: 22) }
�� }��

(Actually it is from Pharo 5 image).