World: r3wp
[!REBOL3 GUI]
older newer | first last |
Pekr 4-Feb-2011 [5878x2] | Ladislav - I might be too dumb to understand :-) What should I actually try? Do you suggest some panel test scripts, which are in the distro? Or what do you mean by "examples provided"? |
I still miss simple style to group things. I always wanted a panel, with border, gradient, etc., but then also exactly the same style, but with zero visuals ... IIRC, in Carl's GUI, it was panel vs group - except the fact, that it group used opposite coordinate system - very unwise btw In RMA's GUI, if I am not mistaken, group is internally completly different - it is here for those users, used to VID2 - you have to use RETURN keyword, it does not align in grid cells, etc. So - how do I easily define inline style, which removes panel visuals? I don't want to create new style for such a simple and usefull thing. And I start to think, that 'group style is here just to confuse users ... | |
Rebolek 4-Feb-2011 [5880] | Per, look at TIGHT, it's variant of PANEL that serves some of purposes you want and it's done using just redefining some facets, so you can make your PANEL variant based on it. |
Ladislav 4-Feb-2011 [5881x2] | Pekr: looks, that you will get more examples from Cyphre, who promised to pack some and make them available. So, I am afraid, that at the time being, you only have the examples from the gui-panels.html text available. |
Andreas: "A quick question: is proper alignment along font baselines planned for the GUI?" - no, it is not, since the understanding is, that it has already been implemented... In case you see some quirks, please, let us know. | |
GrahamC 6-Feb-2011 [5883] | I haven't kept up .. how does the GUI event model work ... is it comparable to DOM 2 event handling? |
Rebolek 7-Feb-2011 [5884] | Yes, it can be compared, events are handled by event-handler and on-* actors are called in appropriate face(s). |
GrahamC 7-Feb-2011 [5885] | So can you have multipe listeners for each event? |
Rebolek 7-Feb-2011 [5886] | I'm not sure what do you mean by that. By design, every event must have some unique face where it should end. But if you want run multiple actions with one event, that's possible. |
GrahamC 7-Feb-2011 [5887] | In the original DOM 0 model, each event had one handler attached to it. In DOM 2, you instead have listeners, as many as you want, listening for an event. Each of those are triggered by the event. So, it's like have 10 actions on a button, each of which are triggered on a mouse click. |
Robert 7-Feb-2011 [5888] | That's possible. |
GrahamC 7-Feb-2011 [5889] | In JQuery, it's called bind() and unbiind() |
Pekr 7-Feb-2011 [5890] | GrahamC: well, as for browser, I recently looked into FF 4 featureset - video, audio, smooth fonts (open type), transitions effects via CSS 3, 4x faster JS ... we are somehow starting to lag behind :-) |
GrahamC 7-Feb-2011 [5891] | Yeah ... I was thinking that maybe we should be using a similar event model to make it easier for us to learn both :) |
Pekr 7-Feb-2011 [5892] | GrahamC: the event does not necessarily have to be "consumed". In REBOL, we simply have events, and you can always return just the same event when processed by our handler. Remember insert-event-func from R2? You could create transparent event filters ... |
Rebolek 7-Feb-2011 [5893] | It's much better than R2, because it's actually possible to work with events. |
Pekr 7-Feb-2011 [5894] | We need the ability to create events, and we should also be sure, that we are able to obtain modern events, as e.g. above mentioned FF4 can now handle multi-touch native Windows 7 event. And we are not even receiving such things as ctrl tab for tab handling. What I still don't understand is - the system port? Is that port still available in R3? And what was it good for? It would be e.g. nice, if by opening the system port, you would insert such a listener to the OS event model, registering for particular events. Well, that might be slow, if you are not carefull, but that way you might be able to receive any system event possible .... but not sure it is even possible :-) |
GrahamC 7-Feb-2011 [5895] | Yeah, they also have event bubbling .. so a click can propagate outwards for other things to deal with |
Rebolek 7-Feb-2011 [5896x2] | We need the ability to create events - so you should try make event! |
event bubbling - that's part of R3GUI. | |
Pekr 7-Feb-2011 [5898] | Rebolek - I know make event! is possible, but does it actully work? IIRC it was not fully working in early alphas? So you say I am able to simulate e.g. a keypress, mouse event, etc.? |
GrahamC 7-Feb-2011 [5899] | is make event! attached to a particular GUI object? |
Rebolek 7-Feb-2011 [5900x2] | Yes. I haven't got use for it yet, so I tested it only briefly. But I was able to create event!, send it to another face and process it. |
Graham no. It's up to you what are you going to do with that event. | |
Pekr 7-Feb-2011 [5902] | Graham - why should it be? I expect it being just a structure/object, you fill in the data, and it gets inserted into the event queue, then your objects react accordingly, like if the event would be generated by normal action. |
GrahamC 7-Feb-2011 [5903x2] | So, how you would you simulate a mouse click on a button then? |
a button that might be buried by another window on top of it? | |
Rebolek 7-Feb-2011 [5905] | I would simply call on-click for that particular button |
Pekr 7-Feb-2011 [5906] | graham - the gui has many nice features/handlers. There are things like do-face, do-style, not sure if cause-action is there (IIRC it was part of Gab's GUI) |
GrahamC 7-Feb-2011 [5907] | resize on a window? |
Rebolek 7-Feb-2011 [5908] | do-style window 'on-resize win-size |
Henrik 7-Feb-2011 [5909] | eventually we'll need the automated test system, so an "event machine gun" is needed. |
GrahamC 7-Feb-2011 [5910x2] | and a way to record macros? |
is there a way to enter characters into a field ? Like the DEL, and Backspace ? | |
Henrik 7-Feb-2011 [5912] | macros could be derived from the undo system |
GrahamC 12-Feb-2011 [5913] | Is Pekr's port of the demo available yet? |
Pekr 12-Feb-2011 [5914x5] | I am going to work on it a bit today, and tomorrow, then I can release what I have ... |
I am really nervous about things like removing the easy ability of changing the color of something easily, and if it will unnerve me in the future, I will fork it ... :-) | |
I want freaking to change the color of the scroller, the way Carl did it easily, via span-colors, easily changing the gradient. Material system is useless for me, if I can't do so easy things the esay way ... | |
I am looking for the GUI for massess, not for academic stuff ... | |
Any hints how the material system work? How do I "destylize" panel for e.g.? Let's say I want panel functionality, but without the visuals (if I enclose everything in panel, there's too many borders and gradients around, and I would like to have more relaxed design). Let's say I would like to create derived style, called panel-, panel-less, pure-panel, whatever. I can see following draw code: draw: [ plain: [] gradient: [ clip margin-box/top-left margin-box/bottom-right pen none line-width 0 grad-pen linear 1x1 0 gob-size/y 90 area-fill box (margin-box/top-left + 1) (margin-box/bottom-right - 1) 1 ] ] And following on-make code: on-make: [ make-material face get-facet face 'material set-material face 'up all [ get-facet face 'area-fill set-facet face 'draw-mode 'gradient ] make-panel face 'panel ] What I am supposed to do, to change the disign? | |
Henrik 12-Feb-2011 [5919x2] | When this is created properly, the basic panel should have no visible frame. |
Then other styles would derive from it and add the necessary frame. | |
Pekr 12-Feb-2011 [5921x4] | yes, but what's the usage case? |
e.g. following function (trying to study material system): set-material: funct [ "Chooses the gradient from a material object to use with a face mode" face [object!] mode [word! none!] ][ all [ mat: get-facet face 'materials set-facet face 'area-fill any [ all [mode select mat mode] select mat 'up ; default mode is 'up, for none inputs select mat first words-of mat ; if 'up does not exist, use first word ] ] ] E.g. for panel, there is no 'materials facet, just 'material one, as can be seen in on-make actor .... | |
hmm, progressing slowly, but at least something: >> view [p: hpanel [button do [print mold get-facet p 'materials]]] make object! [ up: [0.0.0.200 0.0 0.0.0.255 0.5 255.255.255.255 0.5 255.255.255.220 1.0] down: [0.0.0.200 0.0 0.0.0.255 0.5 255.255.255.255 0.5 255.255.255.220 1.0] over: [0.0.0.200 0.0 0.0.0.255 0.5 255.255.255.255 0.5 255.255.255.220 1.0] ] == make gob! [offset: 566x379 size: 148x42 alpha: 0 text: "REBOL: untitled"] >> view [p: hpanel [button do [print mold get-facet p 'material]]] container-groove == make gob! [offset: 566x379 size: 148x42 alpha: 0 text: "REBOL: untitled"] | |
Why does following does not work? I try to set the panel to the 'plain mode, but calling 'show crashes the code: >> view [p: hpanel 200x200 [button do [set-facet p 'draw-mode 'plain show p]]] So - how do I refresh/redraw the panel? Should I somehow call the 'on-update actor? | |
Henrik 12-Feb-2011 [5925] | does the panel style have a draw-mode 'plain? |
Pekr 12-Feb-2011 [5926x2] | yes, an empty block :-) |
What is the correct way to call an actor? do-style face 'on-update? | |
older newer | first last |