World: r3wp
[!REBOL3 GUI]
older newer | first last |
Henrik 8-Mar-2011 [6721] | the function is different, because it is different - it's different, because when you stylize, you make style objects. when creating layouts, you are creating faces. faces and styles are not the same kind of object. |
Pekr 8-Mar-2011 [6722] | what is the difference to state fields, in comparison to holding a value in the facet field? Are state fields meant to hold interim/computed values? Is there any usage rule? |
Henrik 8-Mar-2011 [6723] | guie/face: object [ ; Faces hold the state and options of instances of a style. style: ; WORD! - name of the style for this face facets: ; OBJECT! - properties unique to this face state: ; OBJECT! - state variables (not properties) gob: ; GOB! - graphical object(s) for this face options: ; OBJECT! - optional facet changes as specified tags: ; MAP! - tags for this face ; NOTE: optionally extended in face creation with: ;name ; WORD! - reference name ;reactors; BLOCK! - block of user actions ; PANEL faces also add: ;trigger-faces; BLOCK! - faces which reacts on triggers in panels ] |
Pekr 8-Mar-2011 [6724] | Cyphre - what will layout be good in next version? To preconstruct GUI, not displaying it? |
Cyphre 8-Mar-2011 [6725x2] | yes, mostlt...but you should be able to pass LAYOUT result to VEW function as well without any problem |
=mostly | |
Pekr 8-Mar-2011 [6727] | so we are going back to view layout [], or not necessarily, and layout is just a helper to prebuild a gui? |
Cyphre 8-Mar-2011 [6728x2] | it doesn't matter what way you use...even if you use view [...] the equivalent of 'layout function must be called internally |
so to clarify: you will be able to write view layout [...] OR view [...] , depends on you. | |
Ladislav 9-Mar-2011 [6730] | Hi, here is an R3-GUI poll once again: For the resizing purposes, all elements have MIN-SIZE and MAX-SIZE specifying the limits of resizing. It is easy to see, that, unless MIN-SIZE <= MAX-SIZE in both coordinates, the requirements are contradictory. (For example, if we set MIN-SIZE: 100x100 and MAX-SIZE: 50x50 for the same object.) Currently, the code does not trigger an error in such case (not having a built-in test for it), giving the priority to the MIN-SIZE. The poll question: What do you prefer to happen in case object MIN-SIZE and MAX-SIZE dimensions are contradictory? Do you think the current behaviour is acceptable, or do you want the code to always trigger an error, if conflicting requirements are given? |
GrahamC 9-Mar-2011 [6731] | the max of any x y should be used as max-size |
BrianH 9-Mar-2011 [6732x3] | I prefer that max-size have some meaning. So if the size is set outside of max-size, the size should be constrained to max-size. That is the whole point of having a max-size setting in the first place. If a style has a max-size setting below max-int/max-int it should be there for a reason, and max-size can be overriden explicitly in the layout so it doesn't constrain unnecessarily. |
As for whether min-size should trump max-size or vice-versa, I prefer min-size to trump max-size, or maybe even push up max-size. The min-size setting is usually more important for styles, since it often has to do with making the face larger than the smallest size of its contents. | |
Screen size probably should trump min-size though. | |
Maxim 9-Mar-2011 [6735] | it shoudn't be an error. popping errors in gui code is generally pretty evil if it can be prevented... its better for the gui to look weird than the interpreter to jam for an unknown reason. the possible layout screw-up will be incentive enough for the bug to be fixed. a logging system could help us identify where the engine "thinks" there might be problems... a debug switch which compiles warnings like this would be nice. |
Ladislav 9-Mar-2011 [6736] | So, currently it seems to me, that Graham's idea to set the MIN-SIZE to be the minimum of MIN-SIZE and MAX-SIZE and vice versa, to set the MAX-SIZE to be the maximum of the MIN-SIZE and MAX-SIZE is supported by BrianH as well, and, possibly, Max would support such a method too, based on the fact, that it does not "jam" the application. Count my vote too. |
BrianH 9-Mar-2011 [6737x2] | As long as they are actually set that way, sure. If they are left as they are and then just interpreted that way at runtime, that can get confusing. |
And the actual size should be constrained by min-size and max-size; setting the size outside that range should not push the limits outwards. | |
Ladislav 9-Mar-2011 [6739x3] | Yes, I indeed meant "actually set that way", but, probably, will use the method just for panel/group columns/rows. Whether I should cater for the dimensions of all objects as well is not decided yet, since the problem actually occurred for column width in a panel. |
(where the user may not give some numbers, but rely on some algorithm to calculate the widths, having currently a choice of five methods) | |
And the actual size should be constrained by min-size and max-size - the actual size is a result of the resizing algorithm, and it indeed is clipped to the MIN-to-MAX range. | |
BrianH 9-Mar-2011 [6742] | Yup. And it should continue to be clipped in that way :) |
Gregg 9-Mar-2011 [6743] | Using the true min and max value, regardless of which property they are in, may keep things from going disastrously wrong in some cases. If it were just the app programmer in charge of things, I would vote for raising an error. Resizing systems are another story, and I agree with the new plan in that context, though it would be nice if there is a way to trace the bad cases when they occur. |
BrianH 9-Mar-2011 [6744x2] | The problem with raising an error is that these values can change at runtime, but runtime error reporting about this kind of thing is poor ar best. As Maxim said, we need infrastructure for logging errors, particularly ones that are really more warnings. |
Are these size constraints set through accessor functions, or otherwise processed by standard code before they are applied? That would allow the min-size and max-size to be repaired before they are used, so the min constraints can be ensured to be <= the max constraints. | |
Ladislav 9-Mar-2011 [6746] | Are these size constraints set through accessor functions, or otherwise processed by standard code before they are applied? That would allow the min-size and max-size to be repaired before they are used - yes |
Maxim 9-Mar-2011 [6747] | in glayout I had a lot of these issues to manage, and generally, I always had some part of the setup func which would normalize all the values to layout function expected behaviour. this allowed voluntary programmatic side-effects, but not thru the layout dialect. for example, all sizing values where clipped to be at least as large as min-size as the first step. |
GrahamC 9-Mar-2011 [6748] | I hate gui errors .. I'd rather have a screwed up display |
Gregg 10-Mar-2011 [6749] | I don't think anyone is arguing that Graham, but I would rather see an error myself than to have my users see a screwed up display. |
GrahamC 10-Mar-2011 [6750] | Maybe there should be an option to log errors somewhere? |
jocko 10-Mar-2011 [6751] | I'm trying to change the font color and size in a button, and in a field ... need some help ! |
Gregg 10-Mar-2011 [6752] | Something like this? view layout [button "Help" with [font: [size: 16 colors/1: 255.0.0]]] |
jocko 10-Mar-2011 [6753] | yes, but not working with r3 |
Gregg 10-Mar-2011 [6754] | Doh! I should pay attention to the group name. :-\ Must be time to sleep. |
jocko 10-Mar-2011 [6755] | Never mind, from my side, I'm just getting up ! |
Henrik 10-Mar-2011 [6756] | you need to make new styles to do this. |
GiuseppeC 11-Mar-2011 [6757] | A small note: I have ran the latest RE-GUI and the examples. I have see that when the CHECK is off the "v" is still visible but greyed. In GUI language I have seen the GREYED "v" means BOTH "true" and "false". Example: you want to filter in a database which customers are active, you set it to true, which are inactive, you set it to false (nothing visible). You want both true and false the you have a third state: the grayed V. |
Rebolek 11-Mar-2011 [6758] | Yes, that's possible to implement, there probably was no need for yet. |
Pekr 11-Mar-2011 [6759x7] | I have problem accepting result of examples: 15, 23, 24, 25, 26, and I stop here, probably many others ... The problem I see is,that I don''t want elements to jump during resizing the way it does. Please try form example 15. IMO if we don't support scaling, the text and its spacing should not change at all. I would expect panel being enlarged, but all it does is the panel moves down, and GUI creates space between the header text and the consecutive text. Also - look at example 26 - why the last line of boxes is shifted down the window from all the rest of the boxes? |
And you thought, I might like following coder, right? :-) view [hpanel [button button button] options [box-model: 'frame]] | |
If we can't come up with something better (which is beyond my imagination and the "proper" way would require to come up with xy alternate names for all panel/group combinations), I am definitely at least not sure about the facet (property) name. Does drawing the surounding frame (or simply parametrisation of one of style visual) has anything to do with the term "box model"? I would probably use draw-mode name, but not sure it would not be confused with draw frames then? What do you think? Forget the syntax, we can't do any better here imo, but what about the name? | |
Align examples - I don't understand the align+halign at all. Why the vertical coordinates of red and blue boxes are reversed? | |
Also - please use halign instead of allignt, to be consistent with hpanel, vpanel, etc. It has imo no sense to name one property valign, and the other one align. | |
as some things might get lost in the discussion, I am really thinking about putting some of above stuff into CC. Please add Rebolek the right to edit tickets status. | |
Panel example #35 - I just wonder, how many ppl will feel lost the same way as I feel. The naming terms in regards to results are difficult for me to resolve. As for alignment, there is several way of how to name things: halign, valing left , right, center (vleft, vright, vcenter, hleft, hright, hcenter) left, right, center, top, middle, bottom (or the corner alignment - top-left, top-right, buttom-left, bottom-right - if those would be used, I would immediatelly understand it) But - let's try to think about it a bit - we have some alignements in various GUI levels. If possible, let's stay consistent (e.g. it is enough that low-level text handling uses MS Word like terms, which don't relate to the rest of the gui) | |
Rebolek 12-Mar-2011 [6766x3] | re 15) text-resizing was enabled, so DOC-browser can render documents properly, but it seems that it doesn't sem max-size properly. I will check it. |
ALIGN, VALIGN - this is same naming as in HTML, so you can expect most people be familiar with it. | |
box-model facet name - what about FRAME? name: none, frame: 'simple, frame: 'fillet etc | |
Pekr 12-Mar-2011 [6769x2] | frame name works better for me than box-model, although it suggests a bit - frame - yes or no? frame-type would be more descriptive, but longer. I would be ok with frame, frame-type (mode), draw-mode - all better than box-mode imo .... |
as for alignment - from html I do remember align="left | right | center" ..... | |
older newer | first last |