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

World: r3wp

[!REBOL3 GUI]

Pekr
5-Mar-2011
[6477x3]
Someone might have a feeling, that I sound negative. I don't :-) 
The achievement is concrete, material, good. But to have consistent 
and well behaved GUI, business grade, we need to introduce anyther 
layer - consistency:


- tabbing and visual representation of in-focuse styles - currently 
very inconsistent. Maybe not just implemented for all styles

- keyboard navigation is a must. We have to be able to navigate by 
keyboard thru allowed guielements, consistently
- keyboard acceleration keys are completly missing so far
- style metrics
- final design/skin as a last one
Resizing - very nice, predictable.
from tab-box docs - what is 'some?

tab-specs: some [
Rebolek
5-Mar-2011
[6480]
Thanks for reply, Pekr.

- curecode - I'm not sure about others but I don't have enough rights 
on curecode to change state of tickets.

- visuals - 1) as has been said many times, not a priority right 
now and also 2) highly subjective

- tabs should have line removed - see above reply to Graham, why 
it's problematic

- keyboard navigation is broken in this release, subject for next 
release

- text-table is useless - I really like these statements of yours 
without any serious backing. "I want to see the display of infiinte 
amount of data, proper caching." - please, elaborate of what's not 
possible here.
Pekr
5-Mar-2011
[6481x3]
Rebolek - easy to describe. Cyphre is the guru of grids. I remember 
his Cyphre styles grid, and I also do remember grid my company paid 
for, for RebGUI. And I really don't understand, why witch each new 
GUI, we have to start from scratch, and introduce something which 
is clear departure from what was achieved before? Here's few features, 
which were supported:

- cell can be ANY style (VID dialect)

- virtual columns/rows. Simply put - no need to reformat data obtained 
from some data source. Easy to switch/hide columns/row. Only pointers 
to data moved, no need to reformat data, easy to submit back to db 
backends, without the need to reformat the data again

- hilighting - row or cell or cell + row, full keyboard navigation
- horizontal scrolling
- ultra fast, unlimited amount of records


In the past (1998) we bought a product called GridPlus for our CA 
Visual objects. It was few thousands of lines of code, but it just 
smashed any other grids from Delphi, etc. Ditto for DOS era - EzBrowse 
- it even allowed to freeze columns, save set-up of grid plus filters 
for particular windows etc. I have very good idea what kind of functionality 
should grid allow.
Keyboard support - I'll wait for next release then ...
As for the consistency, and my complaint that the whole gui is not 
build with unifying idea - it has NOTHING to do with the skin. Just 
look at arrows:

- arrow button
- arrow button of scroller
- arrow button of drop-down
- arrow button of text table


Those are all different, and this is exactly the reason why some 
ppl try to do comound styles - to have just one arrow. If you are 
not carefull, you end up with above different arrow representations 
...
Henrik
5-Mar-2011
[6484]
Pekr, it might actually be that it's not a good idea to use the same 
arrow for things that are quite different, for skinning reasons. 
But I also suspect, you wouldn't complain, if the arrows were skinned 
identically.
Rebolek
5-Mar-2011
[6485x3]
- cell can be ANY style - this is TEXT-TABLE so it's clearly not 
intend of this style

- no need to reformat data, easy to switch/hide columns/ rows - data 
are referenced, simple update-face will update table, columns can 
be hidden, that's specified in dialect, row hiding can be done with 
filters

- unlimited amount of records - if you mean limited by RAM then yes, 
that's implemented and only visible lines are displayed, not everything

- save set-up of grid - yes, text-table supports that. You can store 
state of whole table and create new one from this state in one line 
of code.

- horizontal scrolling - wasn't needed, but isn't problematic. text-table 
can support unlimited columns.
visual consistency - it has been said many times (but probably still 
not enough) that it's not priority.
there is TABLE style that can has cell of any type. It was too slow, 
but it should be much faster now, so you can expect in one of next 
releases.
Pekr
5-Mar-2011
[6488]
Rebolek - I am suggesting that anyone doing a serious GUI work should 
do some mock-ups, and build a spec table. rows= style name, columns= 
tabblable? | accelerator key |  shared visuals. It is not about the 
look, but it is about the behaviour imo. Just look at the text-table 
arrow - it is a separate button. It will have influence to tabbing 
for e.g.?
Henrik
5-Mar-2011
[6489]
Pekr, that is solved using tags.
Pekr
5-Mar-2011
[6490]
Henrik - do we allow tab order somehow? Just curious ....
Henrik
5-Mar-2011
[6491]
I think that is to be determined how that should be done. Currently 
it follows face order.
Robert
5-Mar-2011
[6492x2]
wow, we really earned some feedback with this result. Very good.
text-table: This is a very good and powerful style already. It solves 
80% of all use-cases in commercial apps. It's lean, fast and supports 
some advanced features out of the box. Speed of implementaiton is 
focus here, not configurability. The auto-filters are XLS inspired 
but the semantics are extended. You see all available values divided 
into from current shown list (above divider) and from all data (below 
the divider).
Pekr
5-Mar-2011
[6494x4]
I'll wait for next relase. For me, the person who mostly uses keyboard, 
the demo shows it is very broken in that regard. Maybe I might try 
to catch few bugs here or there with simpler set-up than 'all-styles. 
But then Rebolek knows about the bugs, so I don't know if the experimentation 
would not be wasted?
Will there be any interim release of already known bugs, or will 
it be typical "friday" release in a week or two?
Please take the not about allowing tabbing order into consideration. 
I do remember I used it in gui only few times though, so not sure 
if it is any usefull to be able to define tabbing order other way 
than in top-left to bottom-right direction?
not=note
Henrik
5-Mar-2011
[6498]
I'm not sure if the direction is possible other than by simply doing 
it with layout, where you can flow faces in a particular direction, 
but ordering by specifying a number should be possible.
Pekr
5-Mar-2011
[6499]
what about left-to-right guis? But dunno if we should care about 
those rare countries to support? :-) Or does layout allow already 
different than left-to-right setups?
Henrik
5-Mar-2011
[6500]
I think it would be fairly easy to do a straight mirror of the GUI 
and just flow text in the opposite direction.
Rebolek
5-Mar-2011
[6501]
Pekr, experimentation would definitely not be wasted, we know about 
the keyboard-navigation problem, but there still may be lot of bugs 
we don't know about, like those two Graham and Claude found yesterday 
(thanks again!)
Kaj
5-Mar-2011
[6502]
Danger, Will Robinson! Better not call Arab countries rare
Pekr
5-Mar-2011
[6503x2]
Kaj, I am OK with that :-) I thought about them rare as in - rare 
REBOL usage :-)
When drawing style is going to be fixed?
Kaj
5-Mar-2011
[6505]
Unicode should change that
Pekr
5-Mar-2011
[6506]
Jocko - very good achievement with the demo.
Rebolek
5-Mar-2011
[6507]
Drawing - next release I think.
Pekr
5-Mar-2011
[6508x3]
Is my understanding of box model correct? The GOB size is maximal 
size, and it contains content area, which is being called viewport, 
plus padding, plus edge, plus margin?
According to the following doc, Richtext is improved upon what was 
available with pre A100 releases? http://www.rm-asset.com/code/level1/r3-gui/richt-text/
As there now seems to be available info like glyph-metrics, is it 
possible to get nicer text rendering? Or is the nicer text rendering 
unrelated? Not being skilled in that area - what is kerning info 
etc. good for?
Kaj
5-Mar-2011
[6511]
Kerning is the adjustment of the distance between glyphs
Henrik
6-Mar-2011
[6512]
Is there anyone for who, the code in this report does not crash:

http://issue.cc/r3/1866
Pekr
6-Mar-2011
[6513x2]
works here. With priori release I get rebol level error, stating 
something about copy ....
btw - this simple design shows one aspect we should adress - too 
many lines too close together. I wonder if there should be panel 
style with no borders.
Rebolek
6-Mar-2011
[6515]
there are and they're called HTIGHT and VTIGHT
Pekr
6-Mar-2011
[6516]
Rebolek - I am not sure. Aren't TIGHT styles using different metrics?
Rebolek
6-Mar-2011
[6517]
yes they use. Ok, we can make *PANEL borderless and call current 
panel for example *FRAME
Pekr
6-Mar-2011
[6518x2]
I remember style of such a name from some prior gui attempts, and 
it used tight spacing between the elements. What I am looking after 
is precise copy of vpanel, hpanel, with just zero graphics, or at 
least different border
I can see there is a backdrop style, but dunno what kind of functionality 
it uses ....
Henrik
6-Mar-2011
[6520]
yes, naming should be:

tight: no spacing, frameless
tightframe(?): no spacing, frame
panel: spacing, frameless
frame: spacing, frame
Rebolek
6-Mar-2011
[6521]
it's windows backdrop, kind of special style
Henrik
6-Mar-2011
[6522]
Pekr, backdrop is the window back drop. it's automatically added 
to any window to force proper redraw of the entire window frame.
Pekr
6-Mar-2011
[6523]
hmm, there seems to be so much of colors, etc. I sometimes almost 
feel, that we overload GUI once again. In R2, there was a face. We 
introduced gob, as a means of having smaller object in memory. In 
fact, there is a face linked to each gob, no? And just print recent 
styles structure - it is now bigger than R2's face. And you also 
don't use 'intern for things which could be shared between the instances 
= wasting memory again?
Rebolek
6-Mar-2011
[6524]
You're confusing GUI with graphical subsystem. In R2, face was used 
in graphical subsystem, R3 uses gob! instead. Face in R3GUI stores 
all GUI-related informations and cannot be compared with R2 face.
Pekr
6-Mar-2011
[6525]
R2/View starts at 7.4MB here. And running RebGUI Tour.r (containing 
all styles), goes to 16MB. R3 starts at 2.4MB, running all-styles.r3 
goes to 11.8 MB
Henrik
6-Mar-2011
[6526]
Also, the size of the face structure is not at question. It hardly 
eats any memory, a few bytes at worst.