r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!REBOL3 GUI]

Pekr
15-Oct-2010
[3889]
Of course, I expect "typical" - from top-left to right-bottom direction. 
Not sure, how gui would look like, if I would try to think about 
arabic support for e.g.
Cyphre
15-Oct-2010
[3890]
ok, so the number would means 'columns' for hpanel and 'rows' for 
vpanel. Anyone thinks it should be some other way?
Pekr
15-Oct-2010
[3891x2]
yes, that is why I eventually thougt about renaming it :-)


rows 2 [button "1" button "2" button "3" button "4" button "5" button 
"6"]


columns 2 [button "1" button "2" button "3" button "4" button "5" 
button "6"]
... but - those are too general names, someone might think they belong 
to some grid style :-), so vpanel, hpanel, with above behaviour, 
would be OK for me ...
Cyphre
15-Oct-2010
[3893]
yes, columns/rows would be too general, thanks for your feedback 
;-) Anyway you can always do: stylize [rows: vpanel [] columns: hpanel 
[]] if you want.
Pekr
15-Oct-2010
[3894]
hmm, looks easy to do :-)
Henrik
15-Oct-2010
[3895]
Anyone thinks it should be some other way?
 I agree on the current behavior.
Ladislav
15-Oct-2010
[3896]
...the current behavior
 - am I right that you mean the one described by Pekr?
Henrik
15-Oct-2010
[3897]
yes
Ladislav
15-Oct-2010
[3898x2]
OK, thanks
So, does everybody else want to "remain silent forever" in this respect?
Pekr
15-Oct-2010
[3900]
Any other point of view, how Cyphre's code could be interpreted?
Izkata
15-Oct-2010
[3901]
vpanel 2 [.....]
-> "I want 2 vertical panels" ->
button 1  button 4
button 2  button 5
button 3  button 6
Pekr
15-Oct-2010
[3902]
Izkata: So how should system know, how many elements you want to 
have in each?
GrahamC
15-Oct-2010
[3903x2]
That's also how rebgui does it ...   across is default so vpanel 
2 [ .. ] is two coumns
columns
Izkata
15-Oct-2010
[3905]
I've actually not used either, Pekr just asked for other interpretations 
- and that's how I first read Cyphre's code.


Pekr:  Elements divided by number, rounded up (with final column 
simply containing the remainder) is how I would do it...
Robert
15-Oct-2010
[3906x2]
The thing is: Either the number is like a SKIP refinement or like 
the number for LOOP
IMO SKIP is more useful as it eleminates explict NEWLINE items.
Ladislav
15-Oct-2010
[3908]
Izkata: understood, and how about the Hpanel? There you want the 
layout proposed by Pekr?
Gregg
15-Oct-2010
[3909x2]
The number for rows/cols still isn't intuitive to me ("2 columns" 
or "2 rows" would be clear). As far as ordering, it would be nice 
if you could lay out your code so it "maps" visually to the layout.
That goes along with what Daniel (Iskata) is saying.
Robert
15-Oct-2010
[3911]
If you have V* than the number is always H and vice versa. IMO that's 
something good to remember. Otherwise source can become to chatty. 
And yes, laying out the code in the intended way is good style anyway.
Gregg
15-Oct-2010
[3912]
Not his layout, but the idea of "I have n groups".
Ladislav
15-Oct-2010
[3913]
Aha, did not know, that RebGUI did it that way
Gregg
15-Oct-2010
[3914x2]
So, if you specify an H or V mode (and mindset), then when you're 
grouping your faces, do you think in terms of a FORSKIP look or a 
SPLIT model? And what makes it easy to add a new row or col?
vpanel 1 [
	button "1"
	button "2"
	button "3"
	button "4"
	button "5"
	button "6"
]
vpanel 2 [
	button "1" button "2"
	button "3" button "4"
	button "5" button "6"
]
vpanel 3 [
	button "1" button "2" button "3"
	button "4" button "5" button "6"
]



hpanel 1 [

 button "1" button "2" button "3" button "4" button "5" button "6"
]
hpanel 2 [
	button "1" button "2" button "3" 
	button "4" button "5" button "6"
]
hpanel 3 [
	button "1" button "2" 
	button "3" button "4" 
	button "5" button "6"
]
Henrik
15-Oct-2010
[3916]
an alternate type of grouping could be blocks of blocks:

panel [
	[button "1" button "2"]
	[button "3" button "4"]
	[button "5" button "6"]
]

not sure how useful that is.
Gregg
15-Oct-2010
[3917]
Note, I am not saying that's what I expect, but rather it's to visualize 
how the orientation affects the order. 


Something else to think about is whether you can, or should be able 
to, invert H and V and have the layout still work.
Ladislav
15-Oct-2010
[3918]
invert H and V and have the layout still work

 - that is generally not impossible, of course, but it is against 
 the readability requirement Cyphre mentioned as his reason why he 
 proposed Hpanel and Vpanel styles instead of having panel #H panel 
 #V
Gregg
15-Oct-2010
[3919]
In order to transpose the grid, you need to know the number of items 
in the opposite axis of the panel.
Ladislav
15-Oct-2010
[3920x2]
In order to be able to show the grid you need to know the number 
of items in both axes, but that is not the problem to compute
This is more a dialect design problem, i.e. what will be more "intuitive" 
for the user
Gregg
15-Oct-2010
[3922x2]
I don' t know how the row/col value overrides, or avoids conflicting 
with, the width of the face, or if the parent' panel is sized as 
a layout, based on sub-faces and you can't change it. A pair! would 
have the same problem, if used to explicity state both the number 
of rows and columns.
Yes, and I think the grouping of the data in the code layout is the 
driving force there. The number tells you how many "groups" (H or 
V) and then you enter items so they are contextually related in the 
code.
Ladislav
15-Oct-2010
[3924]
A pair! has two more problems, actually:


1) it is redundant, since knowing the number of cells, and just one 
of the dimensions, you can easily compute the other one; such a data 
redundancy is, in databases, called "denormalized data" and is undesirable

2) the user frequently wants to give just one number, assuming, that 
the other is computed every time some cells are added or removed, 
thus, not wishing to give the value for both dimensions
Gregg
15-Oct-2010
[3925]
1) Eliminating redundancy is not the same as normalization. 

2) "the user frequently wants to..." This is speculation, isn't it? 
:-) 


I could just as easily say that the normal case is that I know how 
I want my canonical grid laid out, and I may want to specify some 
cells to be empty.
Ladislav
15-Oct-2010
[3926]
the user frequently wants to...

 - that it is not a speculation, I was told by Cyphre that there are 
 at least two users frequently wanting that
Gregg
15-Oct-2010
[3927]
And while we can say that normalization's goal is to eliminate redundancy 
in storage, we can also say that it doesn't solve the redundancy 
problem at all levels (e.g. when joining data). There are also reasons 
to denormalize. It's interesting to think about though.
Ladislav
15-Oct-2010
[3928]
specify some cells to be empty

 - the number of cells is given by specifying the graphical objects 
 in the layout; the software can count them and know the number of 
 cells; if you want to obtain "empty cells" just put in some Pads
Gregg
15-Oct-2010
[3929x2]
...that there are at least two users frequently wanting that

I stand corrected. :-)
Pads - Yes, Gabriele's design had an elegant solution for this IIRC.
Maxim
15-Oct-2010
[3931x2]
the last time I worked on a grid, the sizing values where autocomputed 
and shared accross rows and columns.
when one cell changed a single X or Y value, all the other cells 
of the same row or column where aware and could update on their own.
Ladislav
15-Oct-2010
[3933]
Please, keep in mind, that this discussion is not about computation! 
This is about the dialect, which must not be redundant to not allow 
to specify impossible combinations
Maxim
15-Oct-2010
[3934x2]
the overall sizing algorithm took care of "collateral" effects.
but the *design* of the layout engine provides logical clues into 
how it should be expressed in terms of a dialect.
Gregg
15-Oct-2010
[3936]
Max - Which brings up the point of what controls the size. Do the 
sub-faces control the size of the panel, or does the panel control 
the size of the sub-faces?

Ladislav - Yes.
Maxim
15-Oct-2010
[3937x2]
if the system uses the whole column to resize things horizontally 
(width affecting word-wrap and thus controls height indirectly) then 
the height should be automatic.
should
 == "could"