Layout for placing widgets

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

Layout for placing widgets

Stephane Ducasse-3
Hi

I was wondering if there is a layout that we can use to propose
alternate placing layout
for widgets in spec?

Like

attached to  the left 10pixels rubber band box or fixed size box
10pixels attached to the right.


Stef

Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Pavel Krivanek-3

2017-10-27 19:13 GMT+02:00 Stephane Ducasse <[hidden email]>:
Hi

I was wondering if there is a layout that we can use to propose
alternate placing layout
for widgets in spec?

Like

attached to  the left 10pixels rubber band box or fixed size box
10pixels attached to the right.


Stef


Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

tblanchard
Does that load as part of Bloc?

On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <[hidden email]> wrote:


2017-10-27 19:13 GMT+02:00 Stephane Ducasse <[hidden email]>:
Hi

I was wondering if there is a layout that we can use to propose
alternate placing layout
for widgets in spec?

Like

attached to  the left 10pixels rubber band box or fixed size box
10pixels attached to the right.


Stef



Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Stephane Ducasse-3
Pavel I do not think that cassowary is good for us.


On Sat, Oct 28, 2017 at 2:37 AM, Todd Blanchard <[hidden email]> wrote:

> Does that load as part of Bloc?
>
> On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <[hidden email]>
> wrote:
>
> Maybe we should check cassowary
>
> https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constraints
>
> 2017-10-27 19:13 GMT+02:00 Stephane Ducasse <[hidden email]>:
>>
>> Hi
>>
>> I was wondering if there is a layout that we can use to propose
>> alternate placing layout
>> for widgets in spec?
>>
>> Like
>>
>> attached to  the left 10pixels rubber band box or fixed size box
>> 10pixels attached to the right.
>>
>>
>> Stef
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Jan Vrany
On Sat, 2017-10-28 at 10:48 +0200, Stephane Ducasse wrote:
> Pavel I do not think that cassowary is good for us.

Why?

Jan

>
>
> On Sat, Oct 28, 2017 at 2:37 AM, Todd Blanchard <[hidden email]>
> wrote:
> > Does that load as part of Bloc?
> >
> > On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail.
> > com>
> > wrote:
> >
> > Maybe we should check cassowary
> >
> > https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#
> > ui-constraints
> >
> > 2017-10-27 19:13 GMT+02:00 Stephane Ducasse <[hidden email]
> > m>:
> > >
> > > Hi
> > >
> > > I was wondering if there is a layout that we can use to propose
> > > alternate placing layout
> > > for widgets in spec?
> > >
> > > Like
> > >
> > > attached to  the left 10pixels rubber band box or fixed size box
> > > 10pixels attached to the right.
> > >
> > >
> > > Stef
> > >
> >
> >
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Stephane Ducasse-3
Did you try?
I always pay attention to things that should iterate a while and
stabilise. Now I may be wrong.
I have cassowary on my machine.
I worked long time on constraints and I thought that apple has a
better model with anchor and rubber band.

Stef

On Sat, Oct 28, 2017 at 12:36 PM, Jan Vrany <[hidden email]> wrote:

> On Sat, 2017-10-28 at 10:48 +0200, Stephane Ducasse wrote:
>> Pavel I do not think that cassowary is good for us.
>
> Why?
>
> Jan
>
>>
>>
>> On Sat, Oct 28, 2017 at 2:37 AM, Todd Blanchard <[hidden email]>
>> wrote:
>> > Does that load as part of Bloc?
>> >
>> > On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail.
>> > com>
>> > wrote:
>> >
>> > Maybe we should check cassowary
>> >
>> > https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#
>> > ui-constraints
>> >
>> > 2017-10-27 19:13 GMT+02:00 Stephane Ducasse <[hidden email]
>> > m>:
>> > >
>> > > Hi
>> > >
>> > > I was wondering if there is a layout that we can use to propose
>> > > alternate placing layout
>> > > for widgets in spec?
>> > >
>> > > Like
>> > >
>> > > attached to  the left 10pixels rubber band box or fixed size box
>> > > 10pixels attached to the right.
>> > >
>> > >
>> > > Stef
>> > >
>> >
>> >
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Ben Coman
In reply to this post by Stephane Ducasse-3
> 2017-10-27 19:13 GMT+02:00 Stephane Ducasse <[hidden email]>:
>>
>> I was wondering if there is a layout that we can use to propose
>> alternate placing layout for widgets in spec?
>>
>> Like...
>> attached to  the left 10pixels rubber band box or fixed size box
>> 10pixels attached to the right.


> On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <[hidden email]>
> wrote:
>
> Maybe we should check cassowary
https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constraints


On Sat, Oct 28, 2017 at 4:48 PM, Stephane Ducasse <[hidden email]> wrote:
Pavel I do not think that cassowary is good for us.

Do you mean Cassowary in particular, or constraint based UI in general?

My naive first impression is, if Cassowary is good enough for Apple...

and Google (search here for "solver")...

such that "in 2016, both iOS and Android have first-party layout systems based on Cassowary."

then it seems worth some analysis, and discussion of better alternatives.  


Coincidentally, I see a Smalltalk implementation is available...


For balance, some points against AutoLayout, but some alternatives also seem to use Cassowary solver...


cheers -ben


Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Stephane Ducasse-3
Ok then may be we should give a try to use. Tx for the links.

Stef

On Sat, Oct 28, 2017 at 4:18 PM, Ben Coman <[hidden email]> wrote:

>> 2017-10-27 19:13 GMT+02:00 Stephane Ducasse <[hidden email]>:
>>>
>>> I was wondering if there is a layout that we can use to propose
>>> alternate placing layout for widgets in spec?
>>>
>>> Like...
>>> attached to  the left 10pixels rubber band box or fixed size box
>>> 10pixels attached to the right.
>
>
>> On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <[hidden email]>
>> wrote:
>>
>> Maybe we should check cassowary
>>
>> https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constraints
>
>
> On Sat, Oct 28, 2017 at 4:48 PM, Stephane Ducasse <[hidden email]>
> wrote:
>>
>> Pavel I do not think that cassowary is good for us.
>
>
> Do you mean Cassowary in particular, or constraint based UI in general?
>
> My naive first impression is, if Cassowary is good enough for Apple...
> https://news.ycombinator.com/item?id=9846992
> https://www.quora.com/Should-I-use-Auto-Layout
>
> and Google (search here for "solver")...
> https://academy.realm.io/posts/cool-constraintlayout-droidcon-boston-2017/
>
> such that "in 2016, both iOS and Android have first-party layout systems
> based on Cassowary."
> https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/
>
> then it seems worth some analysis, and discussion of better alternatives.
>
>
> Coincidentally, I see a Smalltalk implementation is available...
> http://www.squeaksource.com/Cassowary.html
> https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf
>
>
> For balance, some points against AutoLayout, but some alternatives also seem
> to use Cassowary solver...
> https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_i_dont_use_autolayout/
> https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/
> https://makeapppie.com/2015/10/28/why-stack-views-are-your-best-friend-if-you-hate-auto-layout/
> https://cocoacasts.com/working-with-stack-views/
>
>
> cheers -ben
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Stephane Ducasse-3
I was reading ...
I will see if I can load cassowary in Pharo.

On Sat, Oct 28, 2017 at 4:21 PM, Stephane Ducasse
<[hidden email]> wrote:

> Ok then may be we should give a try to use. Tx for the links.
>
> Stef
>
> On Sat, Oct 28, 2017 at 4:18 PM, Ben Coman <[hidden email]> wrote:
>>> 2017-10-27 19:13 GMT+02:00 Stephane Ducasse <[hidden email]>:
>>>>
>>>> I was wondering if there is a layout that we can use to propose
>>>> alternate placing layout for widgets in spec?
>>>>
>>>> Like...
>>>> attached to  the left 10pixels rubber band box or fixed size box
>>>> 10pixels attached to the right.
>>
>>
>>> On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <[hidden email]>
>>> wrote:
>>>
>>> Maybe we should check cassowary
>>>
>>> https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constraints
>>
>>
>> On Sat, Oct 28, 2017 at 4:48 PM, Stephane Ducasse <[hidden email]>
>> wrote:
>>>
>>> Pavel I do not think that cassowary is good for us.
>>
>>
>> Do you mean Cassowary in particular, or constraint based UI in general?
>>
>> My naive first impression is, if Cassowary is good enough for Apple...
>> https://news.ycombinator.com/item?id=9846992
>> https://www.quora.com/Should-I-use-Auto-Layout
>>
>> and Google (search here for "solver")...
>> https://academy.realm.io/posts/cool-constraintlayout-droidcon-boston-2017/
>>
>> such that "in 2016, both iOS and Android have first-party layout systems
>> based on Cassowary."
>> https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/
>>
>> then it seems worth some analysis, and discussion of better alternatives.
>>
>>
>> Coincidentally, I see a Smalltalk implementation is available...
>> http://www.squeaksource.com/Cassowary.html
>> https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf
>>
>>
>> For balance, some points against AutoLayout, but some alternatives also seem
>> to use Cassowary solver...
>> https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_i_dont_use_autolayout/
>> https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/
>> https://makeapppie.com/2015/10/28/why-stack-views-are-your-best-friend-if-you-hate-auto-layout/
>> https://cocoacasts.com/working-with-stack-views/
>>
>>
>> cheers -ben
>>
>>

ConstraintAsADesignPatternp28-samimi.pdf (2M) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Thierry Goubier
Le 28/10/2017 à 16:26, Stephane Ducasse a écrit :
> I was reading ...
> I will see if I can load cassowary in Pharo.

https://github.com/ThierryGoubier/Cassowary

Done two years ago.

Thierry

>
> On Sat, Oct 28, 2017 at 4:21 PM, Stephane Ducasse
> <[hidden email]> wrote:
>> Ok then may be we should give a try to use. Tx for the links.
>>
>> Stef
>>
>> On Sat, Oct 28, 2017 at 4:18 PM, Ben Coman <[hidden email]> wrote:
>>>> 2017-10-27 19:13 GMT+02:00 Stephane Ducasse <[hidden email]>:
>>>>>
>>>>> I was wondering if there is a layout that we can use to propose
>>>>> alternate placing layout for widgets in spec?
>>>>>
>>>>> Like...
>>>>> attached to  the left 10pixels rubber band box or fixed size box
>>>>> 10pixels attached to the right.
>>>
>>>
>>>> On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <[hidden email]>
>>>> wrote:
>>>>
>>>> Maybe we should check cassowary
>>>>
>>>> https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constraints
>>>
>>>
>>> On Sat, Oct 28, 2017 at 4:48 PM, Stephane Ducasse <[hidden email]>
>>> wrote:
>>>>
>>>> Pavel I do not think that cassowary is good for us.
>>>
>>>
>>> Do you mean Cassowary in particular, or constraint based UI in general?
>>>
>>> My naive first impression is, if Cassowary is good enough for Apple...
>>> https://news.ycombinator.com/item?id=9846992
>>> https://www.quora.com/Should-I-use-Auto-Layout
>>>
>>> and Google (search here for "solver")...
>>> https://academy.realm.io/posts/cool-constraintlayout-droidcon-boston-2017/
>>>
>>> such that "in 2016, both iOS and Android have first-party layout systems
>>> based on Cassowary."
>>> https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/
>>>
>>> then it seems worth some analysis, and discussion of better alternatives.
>>>
>>>
>>> Coincidentally, I see a Smalltalk implementation is available...
>>> http://www.squeaksource.com/Cassowary.html
>>> https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf
>>>
>>>
>>> For balance, some points against AutoLayout, but some alternatives also seem
>>> to use Cassowary solver...
>>> https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_i_dont_use_autolayout/
>>> https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/
>>> https://makeapppie.com/2015/10/28/why-stack-views-are-your-best-friend-if-you-hate-auto-layout/
>>> https://cocoacasts.com/working-with-stack-views/
>>>
>>>
>>> cheers -ben
>>>
>>>


Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Pavel Krivanek-3
Hi Thierry, 

your repository mentions the MIT license but the original license of the Cassowary package was LGPL. Is is a different code?

Cheers,
-- Pavel

2017-10-28 21:43 GMT+02:00 Thierry Goubier <[hidden email]>:
Le 28/10/2017 à 16:26, Stephane Ducasse a écrit :
I was reading ...
I will see if I can load cassowary in Pharo.

https://github.com/ThierryGoubier/Cassowary

Done two years ago.

Thierry



On Sat, Oct 28, 2017 at 4:21 PM, Stephane Ducasse
<[hidden email]> wrote:
Ok then may be we should give a try to use. Tx for the links.

Stef

On Sat, Oct 28, 2017 at 4:18 PM, Ben Coman <[hidden email]> wrote:
2017-10-27 19:13 GMT+02:00 Stephane Ducasse <[hidden email]>:

I was wondering if there is a layout that we can use to propose
alternate placing layout for widgets in spec?

Like...
attached to  the left 10pixels rubber band box or fixed size box
10pixels attached to the right.


On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <[hidden email]>
wrote:

Maybe we should check cassowary

https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constraints


On Sat, Oct 28, 2017 at 4:48 PM, Stephane Ducasse <[hidden email]>
wrote:

Pavel I do not think that cassowary is good for us.


Do you mean Cassowary in particular, or constraint based UI in general?

My naive first impression is, if Cassowary is good enough for Apple...
https://news.ycombinator.com/item?id=9846992
https://www.quora.com/Should-I-use-Auto-Layout

and Google (search here for "solver")...
https://academy.realm.io/posts/cool-constraintlayout-droidcon-boston-2017/

such that "in 2016, both iOS and Android have first-party layout systems
based on Cassowary."
https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/

then it seems worth some analysis, and discussion of better alternatives.


Coincidentally, I see a Smalltalk implementation is available...
http://www.squeaksource.com/Cassowary.html
https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf


For balance, some points against AutoLayout, but some alternatives also seem
to use Cassowary solver...
https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_i_dont_use_autolayout/
https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/
https://makeapppie.com/2015/10/28/why-stack-views-are-your-best-friend-if-you-hate-auto-layout/
https://cocoacasts.com/working-with-stack-views/


cheers -ben





Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

tblanchard
In reply to this post by Stephane Ducasse-3
Actually, Apple's "autolayout" is Cassowary.

It is kind of inconvenient to use as is.

However there are some very nice libraries.

One I have used on a couple iOS projects is called PureLayout.


It has nice methods like

aView autoAlignAxis: AxisHorizontal toSameAxisOfView: anotherView

or

aView autoCenterInSuperviewWithInsets: layoutInsets

as to license:

"The original implementation in OTI Smalltalk is in the public domain;"


If Thierry based his port on that version, it should be all good.

I'm a fan of PureLayout - very easy to use.

On Oct 28, 2017, at 7:07 AM, Stephane Ducasse <[hidden email]> wrote:

Did you try?
I always pay attention to things that should iterate a while and
stabilise. Now I may be wrong.
I have cassowary on my machine.
I worked long time on constraints and I thought that apple has a
better model with anchor and rubber band.

Stef

On Sat, Oct 28, 2017 at 12:36 PM, Jan Vrany <[hidden email]> wrote:
On Sat, 2017-10-28 at 10:48 +0200, Stephane Ducasse wrote:
Pavel I do not think that cassowary is good for us.

Why?

Jan



On Sat, Oct 28, 2017 at 2:37 AM, Todd Blanchard <[hidden email]>
wrote:
Does that load as part of Bloc?

On Oct 27, 2017, at 12:59 PM, Pavel Krivanek <pavel.krivanek@gmail.
com>
wrote:

Maybe we should check cassowary

https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#
ui-constraints

2017-10-27 19:13 GMT+02:00 Stephane Ducasse <[hidden email]
m>:

Hi

I was wondering if there is a layout that we can use to propose
alternate placing layout
for widgets in spec?

Like

attached to  the left 10pixels rubber band box or fixed size box
10pixels attached to the right.


Stef








Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Thierry Goubier
In reply to this post by Pavel Krivanek-3
Hi Pavel,

Le 28/10/2017 à 22:29, Pavel Krivanek a écrit :
> Hi Thierry,
>
> your repository mentions the MIT license but the original license of the
> Cassowary package was LGPL. Is is a different code?

I ported the original, public domain smalltalk implementation of Cassowary.

Regards,

Thierry

> Cheers,
> -- Pavel
>
> 2017-10-28 21:43 GMT+02:00 Thierry Goubier <[hidden email]
> <mailto:[hidden email]>>:
>
>     Le 28/10/2017 à 16:26, Stephane Ducasse a écrit :
>
>         I was reading ...
>         I will see if I can load cassowary in Pharo.
>
>
>     https://github.com/ThierryGoubier/Cassowary
>     <https://github.com/ThierryGoubier/Cassowary>
>
>     Done two years ago.
>
>     Thierry
>
>
>
>         On Sat, Oct 28, 2017 at 4:21 PM, Stephane Ducasse
>         <[hidden email] <mailto:[hidden email]>> wrote:
>
>             Ok then may be we should give a try to use. Tx for the links.
>
>             Stef
>
>             On Sat, Oct 28, 2017 at 4:18 PM, Ben Coman
>             <[hidden email] <mailto:[hidden email]>> wrote:
>
>                     2017-10-27 19:13 GMT+02:00 Stephane Ducasse
>                     <[hidden email]
>                     <mailto:[hidden email]>>:
>
>
>                         I was wondering if there is a layout that we can
>                         use to propose
>                         alternate placing layout for widgets in spec?
>
>                         Like...
>                         attached to  the left 10pixels rubber band box
>                         or fixed size box
>                         10pixels attached to the right.
>
>
>
>                     On Oct 27, 2017, at 12:59 PM, Pavel Krivanek
>                     <[hidden email]
>                     <mailto:[hidden email]>>
>                     wrote:
>
>                     Maybe we should check cassowary
>
>                     https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constraints
>                     <https://croisant.net/blog/2016-02-24-ui-layout-constraints-part-1/#ui-constraints>
>
>
>
>                 On Sat, Oct 28, 2017 at 4:48 PM, Stephane Ducasse
>                 <[hidden email] <mailto:[hidden email]>>
>                 wrote:
>
>
>                     Pavel I do not think that cassowary is good for us.
>
>
>
>                 Do you mean Cassowary in particular, or constraint based
>                 UI in general?
>
>                 My naive first impression is, if Cassowary is good
>                 enough for Apple...
>                 https://news.ycombinator.com/item?id=9846992
>                 <https://news.ycombinator.com/item?id=9846992>
>                 https://www.quora.com/Should-I-use-Auto-Layout
>                 <https://www.quora.com/Should-I-use-Auto-Layout>
>
>                 and Google (search here for "solver")...
>                 https://academy.realm.io/posts/cool-constraintlayout-droidcon-boston-2017/
>                 <https://academy.realm.io/posts/cool-constraintlayout-droidcon-boston-2017/>
>
>                 such that "in 2016, both iOS and Android have
>                 first-party layout systems
>                 based on Cassowary."
>                 https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/
>                 <https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/>
>
>                 then it seems worth some analysis, and discussion of
>                 better alternatives.
>
>
>                 Coincidentally, I see a Smalltalk implementation is
>                 available...
>                 http://www.squeaksource.com/Cassowary.html
>                 <http://www.squeaksource.com/Cassowary.html>
>                 https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf
>                 <https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf>
>
>
>                 For balance, some points against AutoLayout, but some
>                 alternatives also seem
>                 to use Cassowary solver...
>                 https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_i_dont_use_autolayout/
>                 <https://www.reddit.com/r/iOSProgramming/comments/4t6kd5/why_i_dont_use_autolayout/>
>                 https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/
>                 <https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/>
>                 https://makeapppie.com/2015/10/28/why-stack-views-are-your-best-friend-if-you-hate-auto-layout/
>                 <https://makeapppie.com/2015/10/28/why-stack-views-are-your-best-friend-if-you-hate-auto-layout/>
>                 https://cocoacasts.com/working-with-stack-views/
>                 <https://cocoacasts.com/working-with-stack-views/>
>
>
>                 cheers -ben
>
>
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Stephan Eggermont-3
On 28-10-17 23:20, Thierry Goubier wrote:
> Hi Pavel,
>
> Le 28/10/2017 à 22:29, Pavel Krivanek a écrit :
>> Hi Thierry,
>>
>> your repository mentions the MIT license but the original license of
>> the Cassowary package was LGPL. Is is a different code?
>
> I ported the original, public domain smalltalk implementation of Cassowary.

I also looked at the morphic port on squeaksource which is just a very
thin layer of using the public domain code on top of morphic. The author
of that was open to have his work relicensed (Apache style, but I never
followed up on that)

https://github.com/pharo-graphics/Bloc/issues/25

Just applying and adapting Thierry's code should provide us what we need

Stephan


Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

hernanmd
In reply to this post by Stephane Ducasse-3
IMO the right move is to take advantage of this technique/library in Smalltalk :

"The Auckland Layout Model (ALM) is a novel technique for specifying
2D layout as it is used for arranging the controls in a GUI. The model
allows the specification of constraints based on linear algebra, and
an optimal layout is calculated using linear programming. Linear
equalities and inequalities can be specified on horizontal and
vertical tabstops, which are virtual lines that form a grid to which
all the elements of the GUI are aligned. The described technique
supports the dynamic adaptation of a layout to changes in the
environment, e.g. window size, and offers more flexibility than other
layout managers. "

http://aucklandlayout.sourceforge.net/

Contains various models of layouts:

Border Layout
Box Layout (BGroupLayout)

Horizontal Layout
Vertical Layout

Gridbag Layout
Flow Layout
Constraint-Based Layout (BALMLayout)

The paper: https://www.cs.auckland.ac.nz/~lutteroth/publications/ZeidlerEtAl2013-AucklandLayoutEditor.pdf

The video: https://www.youtube.com/watch?v=NPPz1OJwICA

The website: https://www.haiku-os.org/blog/czeidler/2012-09-03_ale_auckland_layout_editor


Cheers,

Hernán



2017-10-27 14:13 GMT-03:00 Stephane Ducasse <[hidden email]>:

> Hi
>
> I was wondering if there is a layout that we can use to propose
> alternate placing layout
> for widgets in spec?
>
> Like
>
> attached to  the left 10pixels rubber band box or fixed size box
> 10pixels attached to the right.
>
>
> Stef
>

Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Thierry Goubier
Hi Hernan,

It's difficult to do an evaluation for the underlying solver, because
the paper doesn't evaluate that aspect.

 From a small sentence, they seem to be using the same algorithm than a
1997 A. Borning work (quadratic optimization) (i.e. the one used by
Cassowary).

Regards,

Thierry

Le 29/10/2017 à 13:11, Hernán Morales Durand a écrit :

> IMO the right move is to take advantage of this technique/library in Smalltalk :
>
> "The Auckland Layout Model (ALM) is a novel technique for specifying
> 2D layout as it is used for arranging the controls in a GUI. The model
> allows the specification of constraints based on linear algebra, and
> an optimal layout is calculated using linear programming. Linear
> equalities and inequalities can be specified on horizontal and
> vertical tabstops, which are virtual lines that form a grid to which
> all the elements of the GUI are aligned. The described technique
> supports the dynamic adaptation of a layout to changes in the
> environment, e.g. window size, and offers more flexibility than other
> layout managers. "
>
> http://aucklandlayout.sourceforge.net/
>
> Contains various models of layouts:
>
> Border Layout
> Box Layout (BGroupLayout)
>
> Horizontal Layout
> Vertical Layout
>
> Gridbag Layout
> Flow Layout
> Constraint-Based Layout (BALMLayout)
>
> The paper: https://www.cs.auckland.ac.nz/~lutteroth/publications/ZeidlerEtAl2013-AucklandLayoutEditor.pdf
>
> The video: https://www.youtube.com/watch?v=NPPz1OJwICA
>
> The website: https://www.haiku-os.org/blog/czeidler/2012-09-03_ale_auckland_layout_editor
>
>
> Cheers,
>
> Hernán
>
>
>
> 2017-10-27 14:13 GMT-03:00 Stephane Ducasse <[hidden email]>:
>> Hi
>>
>> I was wondering if there is a layout that we can use to propose
>> alternate placing layout
>> for widgets in spec?
>>
>> Like
>>
>> attached to  the left 10pixels rubber band box or fixed size box
>> 10pixels attached to the right.
>>
>>
>> Stef
>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

tblanchard
In reply to this post by Stephan Eggermont-3
+1

Sent from the road

> On Oct 29, 2017, at 03:58, stephan <[hidden email]> wrote:
>
> Just applying and adapting Thierry's code should provide us what we need

Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Ben Coman
In reply to this post by Thierry Goubier


On Sun, Oct 29, 2017 at 8:28 PM, Thierry Goubier <[hidden email]> wrote:
Hi Hernan,

It's difficult to do an evaluation for the underlying solver, because the paper doesn't evaluate that aspect.

The solver seems the least interesting part of ALM.   There two orthogonal concerns:  
* Generating the constraints - which is probably what distinguishes AutoLayout, ConstraintLayout, enaml and the key to usability
* Solving the constraints - while doing it right is well known, doing it efficiently is the challenge which Cassowary has covered.  But ideally the solver would be pluggable so performance could be improved later substituting an FFI or GPU implemented solver.  Also, if it is feasible to include a solver in the main Pharo distribution, it would be great if that could be re-used at the business application level.

So the interesting aspect of ALM seems to be:  
* A new algorithm that automatically generates the constraints necessary to keep a layout non-overlapping.
* Many other layout managers rely on a hierarchy of nested layouts to define more complex layouts. Within nested layouts, widgets typically cannot be aligned across different levels of the hierarchy
* ALM constraints are specified as horizontal and vertical tabstops, which are virtual lines that form a grid to which all the elements of the GUI are aligned.

This last point of virtual guidelines echos some ideas that reoccur for me from time to time - something similar to how professional designer software like Adobe Illustrator operate with virtual guidelines - though they use manual placement rather than dynamic constraint based placement.  

There is also the Auckland Layout Editor that might provide a good template to copy.  We've been missing a GUI editor for layouts.

cheers -ben



Le 29/10/2017 à 13:11, Hernán Morales Durand a écrit :
IMO the right move is to take advantage of this technique/library in Smalltalk :

"The Auckland Layout Model (ALM) is a novel technique for specifying
2D layout as it is used for arranging the controls in a GUI. The model
allows the specification of constraints based on linear algebra, and
an optimal layout is calculated using linear programming. Linear
equalities and inequalities can be specified on horizontal and
vertical tabstops, which are virtual lines that form a grid to which
all the elements of the GUI are aligned. The described technique
supports the dynamic adaptation of a layout to changes in the
environment, e.g. window size, and offers more flexibility than other
layout managers. "

http://aucklandlayout.sourceforge.net/

Contains various models of layouts:

Border Layout
Box Layout (BGroupLayout)

Horizontal Layout
Vertical Layout

Gridbag Layout
Flow Layout
Constraint-Based Layout (BALMLayout)

The paper: https://www.cs.auckland.ac.nz/~lutteroth/publications/ZeidlerEtAl2013-AucklandLayoutEditor.pdf

The video: https://www.youtube.com/watch?v=NPPz1OJwICA

The website: https://www.haiku-os.org/blog/czeidler/2012-09-03_ale_auckland_layout_editor


Cheers,

Hernán



2017-10-27 14:13 GMT-03:00 Stephane Ducasse <[hidden email]>:
Hi

I was wondering if there is a layout that we can use to propose
alternate placing layout
for widgets in spec?

Like

attached to  the left 10pixels rubber band box or fixed size box
10pixels attached to the right.


Stef






Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Stephane Ducasse-3
My main concerns is that right now we have limited ressources to work
on this topics.

Stef

On Sun, Oct 29, 2017 at 5:14 PM, Ben Coman <[hidden email]> wrote:

>
>
> On Sun, Oct 29, 2017 at 8:28 PM, Thierry Goubier <[hidden email]>
> wrote:
>>
>> Hi Hernan,
>>
>> It's difficult to do an evaluation for the underlying solver, because the
>> paper doesn't evaluate that aspect.
>
>
> The solver seems the least interesting part of ALM.   There two orthogonal
> concerns:
> * Generating the constraints - which is probably what distinguishes
> AutoLayout, ConstraintLayout, enaml and the key to usability
> * Solving the constraints - while doing it right is well known, doing it
> efficiently is the challenge which Cassowary has covered.  But ideally the
> solver would be pluggable so performance could be improved later
> substituting an FFI or GPU implemented solver.  Also, if it is feasible to
> include a solver in the main Pharo distribution, it would be great if that
> could be re-used at the business application level.
>
> So the interesting aspect of ALM seems to be:
> * A new algorithm that automatically generates the constraints necessary to
> keep a layout non-overlapping.
> * Many other layout managers rely on a hierarchy of nested layouts to define
> more complex layouts. Within nested layouts, widgets typically cannot be
> aligned across different levels of the hierarchy
> * ALM constraints are specified as horizontal and vertical tabstops, which
> are virtual lines that form a grid to which all the elements of the GUI are
> aligned.
>
> This last point of virtual guidelines echos some ideas that reoccur for me
> from time to time - something similar to how professional designer software
> like Adobe Illustrator operate with virtual guidelines - though they use
> manual placement rather than dynamic constraint based placement.
>
> There is also the Auckland Layout Editor that might provide a good template
> to copy.  We've been missing a GUI editor for layouts.
>
> cheers -ben
>
>>
>>
>> Le 29/10/2017 à 13:11, Hernán Morales Durand a écrit :
>>>
>>> IMO the right move is to take advantage of this technique/library in
>>> Smalltalk :
>>>
>>> "The Auckland Layout Model (ALM) is a novel technique for specifying
>>> 2D layout as it is used for arranging the controls in a GUI. The model
>>> allows the specification of constraints based on linear algebra, and
>>> an optimal layout is calculated using linear programming. Linear
>>> equalities and inequalities can be specified on horizontal and
>>> vertical tabstops, which are virtual lines that form a grid to which
>>> all the elements of the GUI are aligned. The described technique
>>> supports the dynamic adaptation of a layout to changes in the
>>> environment, e.g. window size, and offers more flexibility than other
>>> layout managers. "
>>>
>>> http://aucklandlayout.sourceforge.net/
>>>
>>> Contains various models of layouts:
>>>
>>> Border Layout
>>> Box Layout (BGroupLayout)
>>>
>>> Horizontal Layout
>>> Vertical Layout
>>>
>>> Gridbag Layout
>>> Flow Layout
>>> Constraint-Based Layout (BALMLayout)
>>>
>>> The paper:
>>> https://www.cs.auckland.ac.nz/~lutteroth/publications/ZeidlerEtAl2013-AucklandLayoutEditor.pdf
>>>
>>> The video: https://www.youtube.com/watch?v=NPPz1OJwICA
>>>
>>> The website:
>>> https://www.haiku-os.org/blog/czeidler/2012-09-03_ale_auckland_layout_editor
>>>
>>>
>>> Cheers,
>>>
>>> Hernán
>>>
>>>
>>>
>>> 2017-10-27 14:13 GMT-03:00 Stephane Ducasse <[hidden email]>:
>>>>
>>>> Hi
>>>>
>>>> I was wondering if there is a layout that we can use to propose
>>>> alternate placing layout
>>>> for widgets in spec?
>>>>
>>>> Like
>>>>
>>>> attached to  the left 10pixels rubber band box or fixed size box
>>>> 10pixels attached to the right.
>>>>
>>>>
>>>> Stef
>>>>
>>>
>>>
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Layout for placing widgets

Stephan Eggermont-3
In reply to this post by Stephane Ducasse-3
On 28-10-17 16:26, Stephane Ducasse wrote:
> I was reading ...
> I will see if I can load cassowary in Pharo.

I could get the squeaksource cassowary for morphic working without a
problem, just needed some extensions and fixes for changes we made in Pharo.

Stephan


12