SpecColumnLayout not behaving as expected

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

SpecColumnLayout not behaving as expected

Steven R. Baker
Heya folks,

I'm sure I'm doing something wrong, I just don't know what it is.

I have the following:

defaultSpec
    ^ SpecColumnLayout composed
        newColumn: [ :col |
            col
                add: #sideBar;
                add: #listView ];
        yourself

In the resulting window, I get the widgets stacked one on top of the
other, and I expected them to be next to each other (two columns in a row.)

What am I missing?

Thanks!

-Steven


Reply | Threaded
Open this post in threaded view
|

Re: SpecColumnLayout not behaving as expected

Peter Uhnak
Because it is the other way around: in the block ([ :col | ... ]) you are describing the content of the column.

So what you are actually doing is you create a Column (SpecColumnLayout), inside which you create another column (newColumn), and to that column you add two rows (add:, add:).

On Tue, Oct 17, 2017 at 4:32 PM, Steven R. Baker <[hidden email]> wrote:
Heya folks,

I'm sure I'm doing something wrong, I just don't know what it is.

I have the following:

defaultSpec
    ^ SpecColumnLayout composed
        newColumn: [ :col |
            col
                add: #sideBar;
                add: #listView ];
        yourself

In the resulting window, I get the widgets stacked one on top of the
other, and I expected them to be next to each other (two columns in a row.)

What am I missing?

Thanks!

-Steven



Reply | Threaded
Open this post in threaded view
|

Re: SpecColumnLayout not behaving as expected

Steven R. Baker

Oh!

I remember fighting with this last week too. Am I the only who who struggled with that? If not, perhaps we could call #add: #addRow: ?

-Steven



On 17/10/17 18:00, Peter Uhnák wrote:
Because it is the other way around: in the block ([ :col | ... ]) you are describing the content of the column.

So what you are actually doing is you create a Column (SpecColumnLayout), inside which you create another column (newColumn), and to that column you add two rows (add:, add:).

On Tue, Oct 17, 2017 at 4:32 PM, Steven R. Baker <[hidden email]> wrote:
Heya folks,

I'm sure I'm doing something wrong, I just don't know what it is.

I have the following:

defaultSpec
    ^ SpecColumnLayout composed
        newColumn: [ :col |
            col
                add: #sideBar;
                add: #listView ];
        yourself

In the resulting window, I get the widgets stacked one on top of the
other, and I expected them to be next to each other (two columns in a row.)

What am I missing?

Thanks!

-Steven




Reply | Threaded
Open this post in threaded view
|

Re: SpecColumnLayout not behaving as expected

Peter Uhnak
Try to think about is going on in the code, because then it is obvious (I hope).
For example you do the following:

column add: #sideBar; add:#listView.

why do you think that adding items to a column would create columns?
In Spec, one add:s rows to column, and columns to row.

If people are going to get regularly stack on this, we can certainly change it.

Peter


On Tue, Oct 17, 2017 at 10:23 PM, Steven R. Baker <[hidden email]> wrote:

Oh!

I remember fighting with this last week too. Am I the only who who struggled with that? If not, perhaps we could call #add: #addRow: ?

-Steven



On 17/10/17 18:00, Peter Uhnák wrote:
Because it is the other way around: in the block ([ :col | ... ]) you are describing the content of the column.

So what you are actually doing is you create a Column (SpecColumnLayout), inside which you create another column (newColumn), and to that column you add two rows (add:, add:).

On Tue, Oct 17, 2017 at 4:32 PM, Steven R. Baker <[hidden email]> wrote:
Heya folks,

I'm sure I'm doing something wrong, I just don't know what it is.

I have the following:

defaultSpec
    ^ SpecColumnLayout composed
        newColumn: [ :col |
            col
                add: #sideBar;
                add: #listView ];
        yourself

In the resulting window, I get the widgets stacked one on top of the
other, and I expected them to be next to each other (two columns in a row.)

What am I missing?

Thanks!

-Steven





Reply | Threaded
Open this post in threaded view
|

Re: SpecColumnLayout not behaving as expected

Steven R. Baker

You're right. Reformatted as one line it looks *way* more obvious.

Thanks!

-Steven


On 18/10/17 10:45, Peter Uhnák wrote:
Try to think about is going on in the code, because then it is obvious (I hope).
For example you do the following:

column add: #sideBar; add:#listView.

why do you think that adding items to a column would create columns?
In Spec, one add:s rows to column, and columns to row.

If people are going to get regularly stack on this, we can certainly change it.

Peter


On Tue, Oct 17, 2017 at 10:23 PM, Steven R. Baker <[hidden email]> wrote:

Oh!

I remember fighting with this last week too. Am I the only who who struggled with that? If not, perhaps we could call #add: #addRow: ?

-Steven



On 17/10/17 18:00, Peter Uhnák wrote:
Because it is the other way around: in the block ([ :col | ... ]) you are describing the content of the column.

So what you are actually doing is you create a Column (SpecColumnLayout), inside which you create another column (newColumn), and to that column you add two rows (add:, add:).

On Tue, Oct 17, 2017 at 4:32 PM, Steven R. Baker <[hidden email]> wrote:
Heya folks,

I'm sure I'm doing something wrong, I just don't know what it is.

I have the following:

defaultSpec
    ^ SpecColumnLayout composed
        newColumn: [ :col |
            col
                add: #sideBar;
                add: #listView ];
        yourself

In the resulting window, I get the widgets stacked one on top of the
other, and I expected them to be next to each other (two columns in a row.)

What am I missing?

Thanks!

-Steven