World: r3wp
[!REBOL3 GUI]
older newer | first last |
james_nak 3-Feb-2011 [5850] | So you are referring to what happens when the faces are first rendered or when a user manipulates the GUI manually or both? |
Ladislav 3-Feb-2011 [5851] | The above is not related to what happens when the Panels are first rendered. It refers to the case, when somehow, a panel changes somehow, e.g. whan a new button is inserted into a panel, or a divider in a panel is moved, .... |
james_nak 3-Feb-2011 [5852] | Thanks. Then, if I am thinking about this correctly, in the case where a user might increase the size of a window, would it be likelt he wants the interface to be larger or that he wants to see more of what is not visible. Am I off in thinking this is what you are asking? |
Oldes 3-Feb-2011 [5853] | I personally don't like any automatic sizing... when I design a gui, I know exactly how I want the components large with pixel precision. |
james_nak 3-Feb-2011 [5854] | Yes, I see that point as well. Most of time I resize something it is to either gain more real estate (Obviously shrinking the window) or to see what is being hidden, as with a large spreadsheet or to show me more as one might do with an email client. In the latter case, the objects resize larger but not the fonts, etc. This ALTME window is a good example. If I want to see more messages I can increase the size but I don't expect everything to just get bigger. |
Ladislav 3-Feb-2011 [5855x2] | Sounds exactly as my preferences are. I originally wanted it that way, but was somehow outvoted. Anyway, the current improvements I made (will be in the next release) look satisfactory to Cyphre. Therefore, I count your votes as votes to not recalculate the INIT-SIZE, MIN-SIZE or MAX-SIZE automatically, respecting the user setting as "higher authority", while allowing him to demand the (re)calculation whenever he feels like. |
How about the interface allowing the programmer to specifically request the update - do you think the /UPDATE [...] looks fine? | |
Henrik 3-Feb-2011 [5857] | Ladislav, how will it work across multiple windows? |
Ladislav 3-Feb-2011 [5858] | Hmm, it should not matter how many windows there are. |
Henrik 3-Feb-2011 [5859] | ok, I guess it depends on the model for how to do manual updates |
james_nak 3-Feb-2011 [5860] | I think /update [...] is good. |
Rebolek 4-Feb-2011 [5861] | Oldes, if you want R3GUI won't resize anything. |
Pekr 4-Feb-2011 [5862] | I have no preference, as I am not able to imagine all possible outcomes. I fear we might get in a weird situations, when someone adds a button, you will see part of the button, but panel will not be large enough. But otoh I am able to understand, that auto-adjusting what user thinks is the right size to the pane, might be unnerving too. Anyway - those questions are not for users, but for style programmers, no? Or where I am supposed to use /update refinement? |
Ladislav 4-Feb-2011 [5863x6] | Yes, mainly when programming a style, you nailed it |
But, OTOH, if you use the INSERT-PANEL-CONTENT function, you will be able to tell, what shall happen to the panel dimensions | |
(until now, the panel autosized without you being able to suggest you wanted to keep its dimensions) | |
so, Pekr, if you consider just the case of the INSERT-PANEL-CONTENT function, what would you want to be the default behaviour? | |
%trunk/r3-gui/source/panel-make.r3 and %panel-sizing.r3 committed. Changes: - SPACING initialization moved to the INIT-PANEL function | |
sorry, crying right, but on a wrong toom here ;-) | |
Pekr 4-Feb-2011 [5869x4] | ok, so let's think what does it mean? Because - most of the time, I use maximized windows, so: 1) for maximized window, if there is an area - let's think above message pane in Altme for e.g., if I insert new button there, there is no place to enlarge the panel to, so what happens? Do panel scrollers appear? And if so - am I kept at the beginning (top-left) of the panel, or am I scrolled to the location of last inserted element? Please note, that those concept are relevant for grid/table navigation, etc., it is just similar 2) if the window is not maximized, and panel is about to be resized - is window enlarged automatically? So PANEL ENLARGEMENT preferred behaviour (note - say nothing about auto or manual update preference though): If I would be for the auto-update, what I would probably hate would be if the size/position (let's think of always centered window) of the window would be automatically moved. PANEL SHRINKING: So - what should happen, if you remove elements? The same as above apply? Does the whole window shrinks? Or just scrollers get eventually removed, or the panel is simply smaller, whereas the window remains to be sized as-is? As you can see, I need an answer to above questions too. It is all about what is the most pleasan vs unnerving to use. And it relates to what happens to Window, not to panel, that is just secondary question, if it stretches automatically .... |
I can see following possibilities: PANEL ENLARGEMENT: - panel is not enlarged, it adds scroller - panel is enlarged, but it does not affect window - window adds scrollers - panel causes enlargement of the window (hence window moves, and we should be carefull, because new size of the window does not need to fit to the screen - it is a special case) PANEL SHRINKS (content removed): - panel just stays as is, eventually removes scrollers - panel shrinks, to fit its content, but window remains of the same size - panel shrinks to fit the content, window shrinks to fit the panel All above plus the combination of auto, vs manual | |
Sorry for the color, but the latest message is as I can see the possible scenarios, just wanted to distinguish it. Leaving for work now, online back in 40 minutes ... | |
So - one more note - if above would be wisely implemented, I am for auto-update with manual override not to update for the style author. But if I would get unexpected results, I prefer not to auto-resize probably (but not 100% sure, unless giving it a try for a while) | |
Ladislav 4-Feb-2011 [5873x5] | if I insert new button there, there is no place to enlarge the panel to, so what happens? - that is actually not true; when resizing, the algorithm resizes proportionally to the INIT-SIZE, which means, that a change to INIT-SIZE of an element changes the proportions of displayed parts, while no change to the INIT-SIZE does not |
example: if a (maximized) window contains two panels, and you enlarge the init-size of one of them, leaving the other as-is, the proportions change, and the panel with enlarged init-size will become greater | |
(at the expense of the other panel, which becomes smaller) | |
if the window is not maximized, and panel is about to be resized - is window enlarged automatically? - that depends - if the window INIT-SIZE does not change, its actual size does not change as well | |
As you can see, I need an answer to above questions too. It is all about what is the most pleasan vs unnerving to use. - frankly, you can at least try the examples provided and see what happens now; and, eventually, present your observations here | |
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? |
older newer | first last |