On Thu, Oct 11, 2012 at 11:11 PM, Benjamin
<benjamin.vanryseghem.ph...@gmail.com> wrote:
>
> On Oct 11, 2012, at 11:04 PM, Pavel Krivanek wrote:
>
>> Unfortunately it is not only about a layer between Morphic and Spec.
>> Whole Spec design is greatly conforming to Morphic. Check out Spec
>> definitions, they look almost like transcription of Morphic calls
>>
>> MethodToolbar class >> defaultSpec
>>       <spec>
>>       ^ { #Panel.
>>                       #changeTableLayout.
>>                       #listDirection:.                #rightToLeft.
>>                       #addMorph:. {#model.    #browseModel.}.
>>                       #addMorph:. {#model.    #sendersModel.}.
>>                       #addMorph:. {#model.    #implementorsModel.}.
>>                       #addMorph:. {#model.    #versionModel.  }.
>>                       #addMorph:. {#model.    #dropListModel.}.
>>                       #hResizing:.    #spaceFill.
>>                       #vResizing:.    #shrinkWrap.    }
>
> This is because this method is out dated, it shold be now
>
>         ^ SpecLayout composed
>                 newRow:[: r |
>                         r
>                                 add: #browseModel;
>                                 add: #sendersModel;
>                                 add: #implementorsModel;
>                                 add: #versionsModel;
>                                 add: #dropListModel ]
>                 height: 25

Well, at least from the perspective of UI independence it looks much better.

-- Pavel

>
>>
>> Of course these methods are implemented only in Morphic classes. Whole
>> layout management is directly taken from Morphic. And the Spec
>> definitions are unclear and hard to read. They are composed almost
>> solely from symbols so it is hard to work with and analyze them with
>> our development tools. We have such beautiful metalanguage where to
>> create DSL is so easy...
>>
>> In comparison with OmniBrowser the Spec is big step back. Sorry, I do
>> not want to be ugly but I started this impression when I was working
>> on Periscope and since that time it is deeper and deeper.
>>
>> Cheers,
>> -- Pavel
>>
>>
>>
>>
>>
>> On Thu, Oct 11, 2012 at 10:21 PM, Igor Stasenko <siguc...@gmail.com> wrote:
>>> On 11 October 2012 20:52, Benjamin <benjamin.vanryseghem.ph...@gmail.com> 
>>> wrote:
>>>> This method is actually the only one from ComposableModel with direct 
>>>> Morphic binding :)
>>>>
>>>>
>>>> I am still trying to move that away, but I needed the rebuild to work
>>>>
>>> i think you can introduce own protocol (and put it as extension to
>>> morphic, if you want to)
>>> so, instead of saying
>>>
>>> widget removeAllMorphs
>>>
>>> you will use own extension method ,like:
>>>
>>> widget specRemoveAllChilds
>>>
>>> etc (spec here is namespacing prefix for a method, to indicate that it
>>> belongs to spec package
>>> and to indicate that it is a contract implied between spec and widget)
>>>
>>>> Ben
>>>>
>>>> On Oct 11, 2012, at 8:49 PM, Pavel Krivanek wrote:
>>>>
>>>>> Hi Ben,
>>>>>
>>>>> I really would like to write Spec binding for Phobos (Esteban will
>>>>> want to do it for Mars etc.). But, how to say that, Spec was not
>>>>> written with UI Independence in mind :-) Very basic example of that
>>>>> fact:
>>>>>
>>>>> ComposableModel>>buildWithSpec: aSpec
>>>>>      "Build the widget using the spec name provided as argument"
>>>>>      | widget |
>>>>>
>>>>>      (self spec notNil and: [ self needRebuild not ])
>>>>>              ifTrue: [ | old |
>>>>>                      self needRebuild: true.
>>>>>                      old := self widget.
>>>>>                      old removeAllMorphs.
>>>>>                      self ensureExtentFor: old.
>>>>>                      widget := SpecInterpreter buildMorphFor: self 
>>>>> withSpec: aSpec.
>>>>>                      widget submorphs do:[ :e |  old addMorphBack: e ].
>>>>>                      self spec instance: old.
>>>>>                      ^ old ]
>>>>>              ifFalse: [ widget := SpecInterpreter buildMorphFor: self 
>>>>> withSpec: aSpec. ].
>>>>>
>>>>>      self ensureExtentFor: widget.
>>>>>
>>>>>      ^ widget
>>>>>
>>>>> Can you please do at least basic steps in the architecture of Spec to
>>>>> make it more independent on Morphic?
>>>>>
>>>>> Cheers,
>>>>> -- Pavel
>>>>>
>>>>> On Wed, Oct 10, 2012 at 12:10 AM, Benjamin
>>>>> <benjamin.vanryseghem.ph...@gmail.com> wrote:
>>>>>> It was part of my battle plan to rule the world ;)
>>>>>>
>>>>>> We wanted with Nico to part it to Amber to get the Javascript part for 
>>>>>> free, then generate some XUL :)
>>>>>>
>>>>>> Anyway, really cool job, and impressive as well :)
>>>>>>
>>>>>> Ben
>>>>>>
>>>>>> On Oct 9, 2012, at 11:07 PM, Stéphane Ducasse wrote:
>>>>>>
>>>>>>> It looks really nice.
>>>>>>> I imagine that Spec could generate XUL too.
>>>>>>>
>>>>>>> Stef
>>>>>>> On Oct 9, 2012, at 9:48 PM, Pavel Krivanek wrote:
>>>>>>>
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> I would like to introduce you Phobos - the XULRunner based Smalltalk
>>>>>>>> framework for development of native GUI with standard look&feel for
>>>>>>>> Linux, Mac OS X and Windows.
>>>>>>>>
>>>>>>>> It is based on Zinc, WebSockets and Seaside continuations. For more
>>>>>>>> information including more screenshots see the project page:
>>>>>>>>
>>>>>>>> http://code.google.com/p/phobos-framework/
>>>>>>>>
>>>>>>>> You should pay attentions to FAQ too:
>>>>>>>> http://code.google.com/p/phobos-framework/wiki/FAQ
>>>>>>>>
>>>>>>>> Phobos has Seaside-like components and rendering style, can combine
>>>>>>>> XUL with HTML or SVG, supports printing etc.
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>> -- Pavel
>>>>>>>> <01.png>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Best regards,
>>> Igor Stasenko.
>>>
>>
>
>

Reply via email to