Styling a Pharo UI application

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

Re: Styling a Pharo UI application

Offray Vladimir Luna Cárdenas-2

+1 :)

Offray


On 26/06/16 02:56, stepharo wrote:

+ 1

Stef

Tommaso,

can you give some concrete examples of what it is that you wanted to do to refine your application and that was really hard (or impossible) to do with Spec?

As long as we do not know what is wrong, we cannot fix it.

As long as we do not know what important things are wrong, we cannot prioritize.

--
Does this mail seem too brief? Sorry for that, I don’t mean to be rude! Please see http://emailcharter.org .

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -  University of Chile

On Jun 25, 2016, at 15:54, Tommaso Dal Sasso <[hidden email]> wrote:

The beauty that I am looking for as a developer for has to do with the code and the API. I consider important how fast I am able to prototype a working example --in this Spec is excellent-- and how much I can extend the code to refine my application --in this Spec is really hard to use--.



Reply | Threaded
Open this post in threaded view
|

Re: Styling a Pharo UI application

Tommaso DS

I was not complaining about Spec, just reporting my experience with the various UI toolkits in Pharo as a relatively newbie to this area of Pharo.

Anyway, as I wrote in my first email, I had difficulties with Spec to go beyond building a standard interface, especially in performing text manipulation (font size) or coloring the background of a string, or encapsulating pieces of text in frames. I tried to understand how to do that, but there is very little documentation on the matter, and the main answer I got was "be prepared to use Morphic".

Trying to understand how to access the properties of the elements I found several comments like:

[talking about font size in Spec]
On 03/10/15 09:24, stepharo wrote:
> I think that this part has been completely forgotten by spec.
> Normally the layout should take into account the size of the label and font
> and I do not see why we could not specify the color and other attributes we want to have but we did not work on this point.
> Now we will have to see that in the context of Brick skin.
>
> Stef

Don't get me wrong, I like Spec, it is just unclear to me if it wants to be the default toolkit to build widgets in Pharo (in this case it should probably access more properties of Morphic), or if wants to be completely engine-agnostic, therefore preferring abstraction over expressiveness.

Tommaso



On 26/06/16 23:39, Offray Vladimir Luna Cárdenas wrote:

+1 :)

Offray


On 26/06/16 02:56, stepharo wrote:

+ 1

Stef

Tommaso,

can you give some concrete examples of what it is that you wanted to do to refine your application and that was really hard (or impossible) to do with Spec?

As long as we do not know what is wrong, we cannot fix it.

As long as we do not know what important things are wrong, we cannot prioritize.

--
Does this mail seem too brief? Sorry for that, I don’t mean to be rude! Please see http://emailcharter.org .

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -  University of Chile

On Jun 25, 2016, at 15:54, Tommaso Dal Sasso <[hidden email]> wrote:

The beauty that I am looking for as a developer for has to do with the code and the API. I consider important how fast I am able to prototype a working example --in this Spec is excellent-- and how much I can extend the code to refine my application --in this Spec is really hard to use--.




Reply | Threaded
Open this post in threaded view
|

Re: Styling a Pharo UI application

kilon.alios
No Spec is a helper API to help you make GUIs quickly, its not a Morphic replacement. Bloc is the Morphic replacement and it has something similar to Spec called Brick.

The GUI situation in pharo is not good, Pharo forked Morphic from Squeak, a well designed API that its design was not followed as it extended and it turned ugly in the process and none actually bother documenting it other than small fragments here and there. Bloc tries to clean up that design at least the Bloc I tried a year ago, I hear now that a lot of thing have changed.

Personally I make my own GUI API that fits my needs, I take what Morphic offers and I provide a design that is far closer to the way I think.

Unfortunately right now GUI is in a state of flux in Pharo but that is actually a good thing since it definitely needs improvement.

Morphic is very useful to learn because right now is the only GUI API that works well for Pharo. Bloc is not ready for public consumption and Spec was never meant for heavily customisable and customised GUIs.

Having to read Morphic code to understand it is definetly painful. For example for my customised ChronosManager I decided to provide Taskbar functionality. So I try to copy the taskbar functionality that is implemented in SystemWindow and adjusted to my needs, it was a nightmare. I manage to freeze my image several time and it took a ton of trial and error to figure out how it worked and it still does not behave exactly as I wanted.

I am still considering to move my entire GUI to Html/JS/CSS , its ugly and fragmented to work with these technologies but at least they are well documented and very powerful. This is a reason why I designed a way to use Python libraries from Pharo. Python libraries are beautifully designed, well documented and very mature.

So you have plenty of options and there is no reason to limit yourself on a pure pharo solution. Modern applications are written in multiple languages and frameworks.

You just use the right tool for the job.

On Thu, Jun 30, 2016 at 2:57 PM Tommaso Dal Sasso <[hidden email]> wrote:

I was not complaining about Spec, just reporting my experience with the various UI toolkits in Pharo as a relatively newbie to this area of Pharo.

Anyway, as I wrote in my first email, I had difficulties with Spec to go beyond building a standard interface, especially in performing text manipulation (font size) or coloring the background of a string, or encapsulating pieces of text in frames. I tried to understand how to do that, but there is very little documentation on the matter, and the main answer I got was "be prepared to use Morphic".

Trying to understand how to access the properties of the elements I found several comments like:

[talking about font size in Spec]
On 03/10/15 09:24, stepharo wrote:
> I think that this part has been completely forgotten by spec.
> Normally the layout should take into account the size of the label and font
> and I do not see why we could not specify the color and other attributes we want to have but we did not work on this point.
> Now we will have to see that in the context of Brick skin.
>
> Stef

Don't get me wrong, I like Spec, it is just unclear to me if it wants to be the default toolkit to build widgets in Pharo (in this case it should probably access more properties of Morphic), or if wants to be completely engine-agnostic, therefore preferring abstraction over expressiveness.



Tommaso



On 26/06/16 23:39, Offray Vladimir Luna Cárdenas wrote:

+1 :)

Offray


On 26/06/16 02:56, stepharo wrote:

+ 1

Stef

Tommaso,

can you give some concrete examples of what it is that you wanted to do to refine your application and that was really hard (or impossible) to do with Spec?

As long as we do not know what is wrong, we cannot fix it.

As long as we do not know what important things are wrong, we cannot prioritize.

--
Does this mail seem too brief? Sorry for that, I don’t mean to be rude! Please see http://emailcharter.org .

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -  University of Chile

On Jun 25, 2016, at 15:54, Tommaso Dal Sasso <[hidden email]> wrote:

The beauty that I am looking for as a developer for has to do with the code and the API. I consider important how fast I am able to prototype a working example --in this Spec is excellent-- and how much I can extend the code to refine my application --in this Spec is really hard to use--.




Reply | Threaded
Open this post in threaded view
|

Re: Styling a Pharo UI application

jfabry
In reply to this post by Tommaso DS
Hi Tommaso,

thanks for the explanation! I did not mean to point fingers at you for complaining, I was just trying to figure out what the problem was. So thanks again for sharing.

This is indeed not yet possible, and it would be cool to have it working. However there is a workaround since you can take any Morph and embed it in a Spec UI. For example:

initializeWidgets
| … textMorph … |
[… do a lot of other stuff …]

textMorph := LabelMorph newLabel:’asdf’.
textMorph color: Color red.
text :=  textMorph asSpecAdapter.

Voila, a label with red text.

--
Does this mail seem too brief? Sorry for that, I don’t mean to be rude! Please see http://emailcharter.org .

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -  University of Chile

On Jun 30, 2016, at 07:56, Tommaso Dal Sasso <[hidden email]> wrote:

I was not complaining about Spec, just reporting my experience with the various UI toolkits in Pharo as a relatively newbie to this area of Pharo.

Anyway, as I wrote in my first email, I had difficulties with Spec to go beyond building a standard interface, especially in performing text manipulation (font size) or coloring the background of a string, or encapsulating pieces of text in frames. I tried to understand how to do that, but there is very little documentation on the matter, and the main answer I got was "be prepared to use Morphic".

Trying to understand how to access the properties of the elements I found several comments like:

[talking about font size in Spec]
On 03/10/15 09:24, stepharo wrote:
> I think that this part has been completely forgotten by spec.
> Normally the layout should take into account the size of the label and font
> and I do not see why we could not specify the color and other attributes we want to have but we did not work on this point.
> Now we will have to see that in the context of Brick skin.
>
> Stef

Don't get me wrong, I like Spec, it is just unclear to me if it wants to be the default toolkit to build widgets in Pharo (in this case it should probably access more properties of Morphic), or if wants to be completely engine-agnostic, therefore preferring abstraction over expressiveness.

Tommaso



12