CLFramework-UIBuilder

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

CLFramework-UIBuilder

gerard alis
i published the CLFramework package

http://www.squeaksource.com/CLFramework.html

Is totally alpha version, not valid for serious apps.The set of widgets of Polymoprh adapteds to designer is limited, and don´t works with normal mechanism as MorphicModel, else with events.
I´m continue working in it, but I have arrived at crossroads, where i think is best create my own set of widgets, from zero, or perhaps be more ambitious and try use 3d... i dont know; my knowledges is limited.


I added new features; can be viewed here:

Inlaying a view into another
http://www.youtube.com/watch?v=L0dSuunKbEM

Adding external files (images only) for use in UIBuilder
http://www.youtube.com/watch?v=UXvwieFA_4k

Building a context menu
http://www.youtube.com/watch?v=cilG97m4u2g


For probe the designer only type

view := CLUIBuilderMainForm new show.

in a workspace.


I want to be thankful to Jordi Delgado and Citilab for Smalltalk initiative and lessons, and future events ( ESUG 2010 :)  )


Regards
Reply | Threaded
Open this post in threaded view
|

Re: CLFramework-UIBuilder

Rob Rothwell
Heh.

With very little effort I created a window with a button, pushed the button, and got a nice "Hello World" in the Transcript...

I always thought this was just what "Squeak" needed...regardless of the windowing framework (Morphic, Native, etc...).

Take care,

Rob

On Sun, Sep 6, 2009 at 5:22 PM, nullPointer <[hidden email]> wrote:

i published the CLFramework package

http://www.squeaksource.com/CLFramework.html

Is totally alpha version, not valid for serious apps.The set of widgets of
Polymoprh adapteds to designer is limited, and don´t works with normal
mechanism as MorphicModel, else with events.
I´m continue working in it, but I have arrived at crossroads, where i think
is best create my own set of widgets, from zero, or perhaps be more
ambitious and try use 3d... i dont know; my knowledges is limited.


I added new features; can be viewed here:

Inlaying a view into another
http://www.youtube.com/watch?v=L0dSuunKbEM

Adding external files (images only) for use in UIBuilder
http://www.youtube.com/watch?v=UXvwieFA_4k

Building a context menu
http://www.youtube.com/watch?v=cilG97m4u2g


For probe the designer only type

view := CLUIBuilderMainForm new show.

in a workspace.


I want to be thankful to Jordi Delgado and Citilab for Smalltalk initiative
and lessons, and future events ( ESUG 2010 :)  )


Regards
--
View this message in context: http://n2.nabble.com/CLFramework-UIBuilder-tp3594252p3594252.html
Sent from the Pharo Smalltalk mailing list archive at Nabble.com.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: CLFramework-UIBuilder

Stéphane Ducasse
In reply to this post by gerard alis
> i published the CLFramework package
>
> http://www.squeaksource.com/CLFramework.html

Excellent!
>
> Is totally alpha version, not valid for serious apps.The set of  
> widgets of
> Polymoprh adapteds to designer is limited, and don´t works with normal
> mechanism as MorphicModel, else with events.

What do you mean?
That you use Announcements?

> I´m continue working in it, but I have arrived at crossroads, where  
> i think
> is best create my own set of widgets, from zero, or perhaps be more
> ambitious and try use 3d... i dont know; my knowledges is limited.

Pay attention because we saw a lot of people doing the same.
Designing a new set of widgets is a HUGE effort.
For the use of 3d I do not see any point doing that.

A valuable effort would be to check the polymorph widgets that are  
worth.
- Remove broken or useless morphic widgets.
- improve existing widgets
- as an example alain plantec designed and implemented a new tree with
much much better capabilities than the default one and we are waiting  
that he
finishes to integrate into pharo
- At esug alain show us a first attempt to use cairo to build a new  
"morphic"
and there widgets will also be missing.

I think that having a layout manager (copying may be the one of sophie)
is more important than new widgets because how do the components move  
when you
resize a window or the relative placement of widgets is also important.

> I added new features; can be viewed here:
>
> Inlaying a view into another
> http://www.youtube.com/watch?v=L0dSuunKbEM
>
> Adding external files (images only) for use in UIBuilder
> http://www.youtube.com/watch?v=UXvwieFA_4k
>
> Building a context menu
> http://www.youtube.com/watch?v=cilG97m4u2g
>
>
> For probe the designer only type
>
> view := CLUIBuilderMainForm new show.
>
> in a workspace.
>
>
> I want to be thankful to Jordi Delgado and Citilab for Smalltalk  
> initiative
> and lessons, and future events ( ESUG 2010 :)  )
>
>
> Regards
> --
> View this message in context: http://n2.nabble.com/CLFramework-UIBuilder-tp3594252p3594252.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: CLFramework-UIBuilder

gerard alis


>What do you mean?
>That you use Announcements?

I use #triggerEvent: mechanism, but hided. I dont know of Announcements ; what is the difference?

Basically the control when want launch a event (for example the click) call the message #raiseOnClick:args:
where the first parameter is the sender of event, and the second parameter is the click event.That is always works of that way in the widgets events.    

Regards
Reply | Threaded
Open this post in threaded view
|

Re: CLFramework-UIBuilder

Stéphane Ducasse

On Sep 7, 2009, at 2:37 PM, nullPointer wrote:

>
>
>
>> What do you mean?
>> That you use Announcements?
>
> I use #triggerEvent: mechanism, but hided. I dont know of  
> Announcements ;
> what is the difference?

with announcement you get an object around and not just a symbol.
For the future use announcement since it is the new standard for  
notification
in Smalltalk

>
> Basically the control when want launch a event (for example the  
> click) call
> the message #raiseOnClick:args:
> where the first parameter is the sender of event, and the second  
> parameter
> is the click event.That is always works of that way in the widgets  
> events.
>
> Regards
> --
> View this message in context: http://n2.nabble.com/CLFramework-UIBuilder-tp3594252p3597137.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: CLFramework-UIBuilder

Henrik Sperre Johansen
In reply to this post by Stéphane Ducasse

Stéphane Ducasse skrev:

>> i published the CLFramework package
>>
>> http://www.squeaksource.com/CLFramework.html
>>    
>> I´m continue working in it, but I have arrived at crossroads, where  
>> i think
>> is best create my own set of widgets, from zero, or perhaps be more
>> ambitious and try use 3d... i dont know; my knowledges is limited.
>>    
>
> I think that having a layout manager (copying may be the one of sophie)
> is more important than new widgets because how do the components move  
> when you
> resize a window or the relative placement of widgets is also important.
>  
Dabbling with it last night, this was one of the things I felt was
missing the most too.
It might be nice with a tab of its own for an editor of a morphs
LayoutFrame, which could replace the current properties Anchors,
Position and Extent

- Initial placement was a snap (The list of selectable widgets is a
valid droptarget though, I had to ctrl-click and delete morph a couple
of times due to dropping wrong :P)
- The attributes are quite easy to edit (except not remembering old
values for a few of them if I navigated away, then back again)
- The menu editor was very nice (a bit unintuituve that you had to
ctrl-s after entering data before navigating away though, yet autosaving
on icon selection. Also, only icon changes were accepted when you chose
a new icon, the rest (label etc.) were lost)

As for widgets, the only one I was really missing was a splitter.

Cheers,
Henry

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: CLFramework-UIBuilder

gerard alis
Thanks for probe and conseils :)

>It might be nice with a tab of its own for an editor of a morphs
>LayoutFrame, which could replace the current properties Anchors,
>Position and Extent

Im not sure of understand correct way (my english is poor). Want you say a button around the selected morph for edit position, extent and anchors? I think in something similar but working with an new halo.

>- The attributes are quite easy to edit (except not remembering old
>values for a few of them if I navigated away, then back again)

I could try that, but i´m dont know do it with actual controls.A simple change of text launch the valueChanged event of controls ( textboxes properties ). When i can save for retrieve an old value?

>- The menu editor was very nice (a bit unintuituve that you had to
>ctrl-s after entering data before navigating away though, yet autosaving
>on icon selection. Also, only icon changes were accepted when you chose
>a new icon, the rest (label etc.) were lost)

I´m not be good tester i believe. I´m cannot reproduce the error. Note the text value, or help text only is updated in the treeview when the intro key is pressed in the textbox.

>As for widgets, the only one I was really missing was a splitter.

I believe i could add the next weekend :)

Thanks to all for probes :))

Reply | Threaded
Open this post in threaded view
|

Re: CLFramework-UIBuilder

gerard alis
In reply to this post by Stéphane Ducasse

Exists some manual or tuto for explanation of use?
I see a tuto of Cincom Smalltalk, but im not sure of understand it  :|

Stéphane Ducasse-2 wrote
On Sep 7, 2009, at 2:37 PM, nullPointer wrote:

>
>
>
>> What do you mean?
>> That you use Announcements?
>
> I use #triggerEvent: mechanism, but hided. I dont know of  
> Announcements ;
> what is the difference?

with announcement you get an object around and not just a symbol.
For the future use announcement since it is the new standard for  
notification
in Smalltalk

>
> Basically the control when want launch a event (for example the  
> click) call
> the message #raiseOnClick:args:
> where the first parameter is the sender of event, and the second  
> parameter
> is the click event.That is always works of that way in the widgets  
> events.
>
> Regards
> --
> View this message in context: http://n2.nabble.com/CLFramework-UIBuilder-tp3594252p3597137.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project@lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: CLFramework-UIBuilder

Henrik Sperre Johansen
In reply to this post by gerard alis
On 08.09.2009 23:00, nullPointer wrote:

> Thanks for probe and conseils :)
>
>    
>> It might be nice with a tab of its own for an editor of a morphs
>> LayoutFrame, which could replace the current properties Anchors,
>> Position and Extent
>>      
> Im not sure of understand correct way (my english is poor). Want you say a
> button around the selected morph for edit position, extent and anchors? I
> think in something similar but working with an new halo.
>    
No, an extra tab on the left, where you can edit the values of the
Morphs LayoutFrame (top/left/right/bottom offset and fraction).
It's a much more flexible way of defining a position that will behave
nicely when you resize the widget than what can be done currently
(albeit abit more complicated)
Try:
Morph allSubInstances collect: [:each | each layoutFrame ] thenSelect:
[:each | each notNil]
editing the instance variables of such an instance for the current morph
is what I'd like :)
>    
>> - The attributes are quite easy to edit (except not remembering old
>> values for a few of them if I navigated away, then back again)
>>      
> I could try that, but i´m dont know do it with actual controls.A simple
> change of text launch the valueChanged event of controls ( textboxes
> properties ). When i can save for retrieve an old value?
>    
Ehm, my bad, I didn't mean "old" values, I meant the current values of
the morph. Anchors and Style were the only ones, I believe.

>    
>> - The menu editor was very nice (a bit unintuituve that you had to
>> ctrl-s after entering data before navigating away though, yet autosaving
>> on icon selection. Also, only icon changes were accepted when you chose
>> a new icon, the rest (label etc.) were lost)
>>      
> I´m not be good tester i believe. I´m cannot reproduce the error. Note the
> text value, or help text only is updated in the treeview when the intro key
> is pressed in the textbox.
>    
I make a new menu item, type in text, and select a new field. if I
select the other item without ctrl-s (in Windows) while Text input field
is focused, I loose the change.
Also, the tabbing order is kind of backwards, going up instead of down
(Name field -> press tab -> Focus goes to Help text instead of Action
Selector)

Cheers,
Henry

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: CLFramework-UIBuilder

gerard alis

>Ehm, my bad, I didn't mean "old" values, I meant the current values of
>the morph. Anchors and Style were the only ones, I believe.

ahhh now understand :)  I believe is best in that case put the options as toolbar action, above. of that way the change of styles and anchors work with various morphs in a one time.

>    
>> - The menu editor was very nice (a bit unintuituve that you had to
>> ctrl-s after entering data before navigating away though, yet autosaving
>> on icon selection. Also, only icon changes were accepted when you chose
>> a new icon, the rest (label etc.) were lost)
>>      
> I´m not be good tester i believe. I´m cannot reproduce the error. Note the
> text value, or help text only is updated in the treeview when the intro key
> is pressed in the textbox.
>    

In the first moment the value of textbox was changed for each key press, and updated in treeview.But in two last versions of Pharo after each keypress the cursor of textbox was put in the first character. I have search a solution for that.The Control-Save in Windows or intro

Is possible change the order of tabsIndex in Polymorph?  If exists a way perhaps i could incorporate too in the designer.  

Regards

Reply | Threaded
Open this post in threaded view
|

Re: CLFramework-UIBuilder

Stéphane Ducasse
In reply to this post by gerard alis

this is the same as before except you have a full object instead of a  
symbol.
You register interest in something and when this event occurs you get  
an object containing the information
you need not only a symbol.

stef


>
>
> Exists some manual or tuto for explanation of use?
> I see a tuto of Cincom Smalltalk, but im not sure of understand it  :|
>
>
> Stéphane Ducasse-2 wrote:
>>
>>
>> On Sep 7, 2009, at 2:37 PM, nullPointer wrote:
>>
>>>
>>>
>>>
>>>> What do you mean?
>>>> That you use Announcements?
>>>
>>> I use #triggerEvent: mechanism, but hided. I dont know of
>>> Announcements ;
>>> what is the difference?
>>
>> with announcement you get an object around and not just a symbol.
>> For the future use announcement since it is the new standard for
>> notification
>> in Smalltalk
>>
>>>
>>> Basically the control when want launch a event (for example the
>>> click) call
>>> the message #raiseOnClick:args:
>>> where the first parameter is the sender of event, and the second
>>> parameter
>>> is the click event.That is always works of that way in the widgets
>>> events.
>>>
>>> Regards
>>> --
>>> View this message in context:
>>> http://n2.nabble.com/CLFramework-UIBuilder-tp3594252p3597137.html
>>> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>
> --
> View this message in context: http://n2.nabble.com/CLFramework-UIBuilder-tp3594252p3606145.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: CLFramework-UIBuilder

Stéphane Ducasse
In reply to this post by gerard alis
I checked what you did and I think that you did the hardest part.
if you plug a VW like window spec and builder (which is not that complex compared to what you did then you would have a really cool UIBuilder).

Stef


On Sep 9, 2009, at 12:13 AM, nullPointer wrote:

>
>
>> Ehm, my bad, I didn't mean "old" values, I meant the current values of
>> the morph. Anchors and Style were the only ones, I believe.
>
> ahhh now understand :)  I believe is best in that case put the options as
> toolbar action, above. of that way the change of styles and anchors work
> with various morphs in a one time.
>
>>
>>> - The menu editor was very nice (a bit unintuituve that you had to
>>> ctrl-s after entering data before navigating away though, yet autosaving
>>> on icon selection. Also, only icon changes were accepted when you chose
>>> a new icon, the rest (label etc.) were lost)
>>>
>> I´m not be good tester i believe. I´m cannot reproduce the error. Note the
>> text value, or help text only is updated in the treeview when the intro
>> key
>> is pressed in the textbox.
>>
>
> In the first moment the value of textbox was changed for each key press, and
> updated in treeview.But in two last versions of Pharo after each keypress
> the cursor of textbox was put in the first character. I have search a
> solution for that.The Control-Save in Windows or intro
>
> Is possible change the order of tabsIndex in Polymorph?  If exists a way
> perhaps i could incorporate too in the designer.  
>
> Regards
>
>
> --
> View this message in context: http://n2.nabble.com/CLFramework-UIBuilder-tp3594252p3606541.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: CLFramework-UIBuilder

Stéphane Ducasse
In reply to this post by gerard alis
your windows spec are nearly there.

        specMorph
                ^CLPanel new color: (Color r: 0.654 g: 0.678 b: 0.694);width: 250; height: 225; name: 'container'.

by transforming the previous into the following you get a spec that you can then interpret


        specMorph
                ^#(CLPanel new color: (Color r: 0.654 g: 0.678 b: 0.694);width: 250; height: 225; name: 'container').







On Sep 9, 2009, at 12:13 AM, nullPointer wrote:

>
>
>> Ehm, my bad, I didn't mean "old" values, I meant the current values of
>> the morph. Anchors and Style were the only ones, I believe.
>
> ahhh now understand :)  I believe is best in that case put the options as
> toolbar action, above. of that way the change of styles and anchors work
> with various morphs in a one time.
>
>>
>>> - The menu editor was very nice (a bit unintuituve that you had to
>>> ctrl-s after entering data before navigating away though, yet autosaving
>>> on icon selection. Also, only icon changes were accepted when you chose
>>> a new icon, the rest (label etc.) were lost)
>>>
>> I´m not be good tester i believe. I´m cannot reproduce the error. Note the
>> text value, or help text only is updated in the treeview when the intro
>> key
>> is pressed in the textbox.
>>
>
> In the first moment the value of textbox was changed for each key press, and
> updated in treeview.But in two last versions of Pharo after each keypress
> the cursor of textbox was put in the first character. I have search a
> solution for that.The Control-Save in Windows or intro
>
> Is possible change the order of tabsIndex in Polymorph?  If exists a way
> perhaps i could incorporate too in the designer.  
>
> Regards
>
>
> --
> View this message in context: http://n2.nabble.com/CLFramework-UIBuilder-tp3594252p3606541.html
> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project