World: r3wp
[!REBOL3-OLD1]
older newer | first last |
BrianH 24-Oct-2008 [7754x3] | The funct function (or whatever the name turns out to be) will be built-in to R3 and likely back-ported to R2, don't worry. |
As for questions, I would prefer that you ask them now, as long as you can take "maybe", "don't know yet" or "hasn't been decided yet" as an answer on occasion. There are things that we need to know, but the overall design strategy is a good one so far. | |
I may not have studied Gabriele's system as much as you have, but I have studied many other GUI systems and implemented some as well. There are a lot of differences between the systems in implementation details, but to a great extent they accomplish many of the same things. I know enough about Gabriele's and Carl's GUIs to be able to tell you that the overall design strategy is different, but the capabilities are comparable. | |
Graham 24-Oct-2008 [7757] | Good to know that all the bases are being covered and not in concrete. Thanks Brian. |
Pekr 26-Oct-2008 [7758x2] | There is new Doc showing, how to "easily" view all styles - http://www.rebol.net/wiki/GUI_Example_-_View_all_styles |
BrianH: could you please elaborate a bit on following? - what is make-panel function good for? To predefine statical layout, without viewing it? General question then is, if we don't miss 'layout function with R3 VID. Is there more functions like that, e.g. make-face as with R2? - could you please explain a bit 'plane style? I thought that 'panel style itself spans available window space, and if the content is larger, scrollers are used automatically (kind of area with auto-scrollers :-) And if we need to distinguis resize or don't resize states, wouldn't it be enough to use something like "panel all-pan options [resize?: no]"? Thanks a lot .... | |
Henrik 26-Oct-2008 [7760] | >> source make-panel make-panel: make function! [[ {Create a panel from layout dialect block and options block.} style [word! none!] content [block! none!] "Contents of the panel" options [object! block! map! none!] "Options of the panel" /local options face ][ if content [ unless options [options: copy []] extend options 'content content ] face: make-face style options init-panel face bind-faces face do-style-all face 'on-init none do-triggers face 'load face ]] |
Pekr 26-Oct-2008 [7761x2] | thanks. |
Henrik - when I compare your panel skin designs so far (e.g. 40 vs 48), dunno why, but I like of liked the panel look in image number 40. It remings me like you mentioned those "natural materials". It almost looks like it is carved into the surface. Not sure it would work if multiple such panels would be on one page .... | |
Henrik 26-Oct-2008 [7763] | I think it could work, but I have some problems figuring out the right draw block so that it works with alpha. The panel is still under heavy revision. |
Pekr 26-Oct-2008 [7764] | I think that heavy alpha TV like interfaces might need completly separate skin? I remember how Carl wanted his list style for 1.3 project (the style was not released, it is in IOS world) to support borderless list styles. When you go alpha, it is similar - borders might not work easily ... |
Pekr 27-Oct-2008 [7765] | Henrik - question towards your skinning experience. So far it seems, that when you choose gradient based backgrounds, the overall colors are darkish - round button, slider. Are you settiling for such a theme, or still just experimenting? The problem is, that when you make it brighter using gradients, it starts to look glossy (maybe not necessarily, dunno). |
Henrik 27-Oct-2008 [7766] | I'm experienting until the skin is done. Anything can change at any time if I find that a particular element is not working or if I get a better idea along the way. |
Pekr 27-Oct-2008 [7767] | I am doing some background experimentations with your screenshots in primitive Windows painter :-) With my color (mild themes of orange, or water, sky, gradiented, the UI works ....) |
Henrik 27-Oct-2008 [7768] | ok :-) |
BrianH 27-Oct-2008 [7769] | Pekr, some answers. - The make-panel function is currently used internally by most of the group-like styles during their creation. - A panel will resize its contents when it is resized, a plane will maintain a fixed internal size and provide a scrollable surface with scrollbars if its external size gets smaller than its internal size. - No, it is not easier to distinguish resizable states that way. For one thing, that requires more typing. For another, a plane is a compound style with extra internal faces for the scrollbars, while a panel is not. Simpler styles are faster and easier to debug. They already share most of their internal code, so it is no big deal to add another style. |
PeterWood 27-Oct-2008 [7770] | I'm confused by these statements in Docbase: "1. The READ-STRING function is a temporary function used to read files and convert them from binary (and possibly in Unicode format) into a string datatype." I thought that the string datatype was now UTF-8 encoded. |
Pekr 27-Oct-2008 [7771] | What is thick-skin good for? I really can't firnd practical example usage for that. I would instead prefer behavioral changes, e.g. being able to animate style, without change to style low level ... |
Anton 28-Oct-2008 [7772] | Peter, binary mode is the default for READ. READ-STRING looks at the binary and tries to interpret it, checking for unicode format (and maybe other formats), before converting to rebol string, which internally is UTF-8. |
PeterWood 28-Oct-2008 [7773x2] | Thanks, Anton. I should have included the second note : 2. Although the REBOL kernel does support Unicode, the graphics library does not yet handle unicode strings. |
So does this mean that the graphics library is still treating a string as being 8-bit encoded? No doubt according to the current Windows codepage? does READ-STRING convert utf-8 to whatever 8-bit encoding the graphics library is using? | |
Pekr 28-Oct-2008 [7775] | BrianH: with new DocBase example, we can see view/across, which changes the layout direction. Is there also across/below keyword in VID directly, as in VID2? |
shadwolf 28-Oct-2008 [7776x2] | puting widget organisation into the view command ??? and if a want to mix below things and accross other things in the same pane I'm fucked ? |
i put an example of that kind of mixed below and accross organisation of widgets in same pane and notice a bug | |
Pekr 28-Oct-2008 [7778x2] | shadwolf - how do you know it is or is not possible? :-) That is why I am asking about it :-) |
http://www.rebol.net/wiki/GUI_Note_-_Shapes_in_DRAW_Blocks- I think that we should be aiming at graph based low level AGG based design, with the ability to cache various nodes. IIRC Cyphre was talking about something like that, but not sure it is implemented ... good that such low level things are explained though ... | |
Henrik 28-Oct-2008 [7780] | pekr, no across or below available in the dialect itself (yet). |
Pekr 28-Oct-2008 [7781] | Henrik - thanks for the info, but anyway - eh, why to have it at 'view level, which gives you the possibility to adjust the direction only once? Hmm, maybe it makes sense, because at panel level you can use panel, or group to "change" orientation, although those styles serve different purposes ... |
Henrik 28-Oct-2008 [7782] | Pekr, I'm not sure if it has been decided yet whether they go in or not. If Carl misses them enough, they might go in. GROUP does all what they do, though. |
Pekr 28-Oct-2008 [7783] | I also noticed change from 'acts to 'reactors :-) |
Henrik 28-Oct-2008 [7784x2] | SCROLLER now has a tiny bit of intelligence: It will scroll the first face that responds to ON-SCROLL if one precedes it earlier in the layout code. So: view [text-list-box [1 2 3 4 5 6 7 8] scroller] will automatically attach scroller to the text-list-box and scroll it. |
view [text-list-box [1 2 3 4 5 6 7 8] text-list-box [1 2 3 4 5 6 7 8] scroller] will only scroll the last text-list-box. | |
Pekr 28-Oct-2008 [7786] | so no 'attach keyword? |
Henrik 28-Oct-2008 [7787] | not needed there |
Pekr 28-Oct-2008 [7788] | Henrik - is there general 'list style, so that e.g. text-list is based upon that? |
Henrik 28-Oct-2008 [7789] | I've not studied it yet, so I don't know how lists work. |
Pekr 28-Oct-2008 [7790] | aha, never mind. I was just curious, if there is one, if it supports iterated faces, or not ... |
Gabriele 28-Oct-2008 [7791] | string! internally is NOT utf-8 in R3. |
Anton 28-Oct-2008 [7792] | Oops. Isn't it utf-16, at least when necessary ? |
PeterWood 28-Oct-2008 [7793] | Thanks for that clarification Gabriele.Though iIt does rasie the question what is the format of string! in R3? |
BrianH 28-Oct-2008 [7794x4] | As far as your code is concerned, a string! will be a series of Unicode codepoints. Internally, who cares? The implementation of string! is likely to be the same as the native implementation on the platform is running on, or whatever is more efficient. I think that string! is now UTF-16 on Windows, and the symbols behind word! values are internally UTF-8. Still, it doesn't matter what strings are internally because AS-STRING and AS-BINARY are gone. All string-to-binary conversions will need encoding. REBOL scripts are going to be UTF-8 encoded though, as I recall. |
It turns out that one of my earlier answers was not quite accurate. Though the implementation of plane and panel are different, it turns out that plane is actually less complex than panel rather than the other way around. The plane style doesn't need to be complex because scrollers magically find the faces they scroll. | |
READ-STRING is a temporary function because it is intended to replace it with a full encoding and decoding infrastructure supporting multiple formats and encodings. Until then, we have READ-STRING and WRITE-STRING. | |
Pekr, being able to animate styles continues to have nothing to do with skinning :) | |
Pekr 28-Oct-2008 [7798] | BrianH: could you try to explain, what the thick-skin is? I don't understand it from its description.... |
BrianH 28-Oct-2008 [7799x3] | A thick-skin is changing the entire layout and interactive behavior of an app. Think Winamp 5+ |
Medium skins will be the most common, and it is currently intended for a medium skin to come bundled with more than one thin skin. This may change though. It is intended for a medium skin to be able to be designed by a non-programmer graphic designer. | |
In theory, medium skins could be non-app-specific, able to be applied to different R3 apps. Thick skins would likely be app specific, or at least specific to certain complex styles. At this point there aren't many complex styles because the design of the system tends to make styles simpler to implement than you would otherwise expect. | |
Pekr 28-Oct-2008 [7802] | In what sense does thick-skin allow to change behaviour? Own reactors? The whole layout? The thing is, that I can't imagine practical case. Will thick skin be used to cover platform differences, e.g. scroller arrow positions, etc? |
BrianH 28-Oct-2008 [7803] | I think a medium skin will cover that well enough. Scrollers are currently implemented in a single face with draw commands. |
older newer | first last |