AltME groups: search
Help · search scripts · search articles · search mailing listresults summary
world | hits |
r4wp | 1023 |
r3wp | 10555 |
total: | 11578 |
results window for this page: [start: 10701 end: 10800]
world-name: r3wp
Group: !REBOL3 GUI ... [web-public] | ||
Pekr: 14-Jan-2011 | Don't loose your time with further explanations, time to read sources and do few tests ... some things will become obvious, some not, and then I''ll ask ... | |
Pekr: 15-Jan-2011 | I am still not sure I am comfort with group having different semantics to panel :-( .... trying to do some tests with Carl's demo, and it is going to be pain-in-the a..., to insert returns in there. From the very beginning of the R3 GUI projects my opinion was, that group should be just de-stylised panel (no visual borders), but identical in behaviour ... I hope I will change my mind later in the proces .... | |
Maxim: 15-Jan-2011 | btw Pekr, from an API designer's standpoint, these types of questions are all very good IMHO. they force us to reflect on decisions and, often, trying to do so will either confirm them or with discussion might give new ideas. I'm not part of this gui team, but I'd really like if someone asked pointy questions like this on my stuff. | |
Pekr: 15-Jan-2011 | 1) make-panel does not accept third options argument anymore 2) the first two args are reversed 3) make-panel does not accept block (style) anymore, but a face object - I don't know how to do this one yet ... | |
Pekr: 15-Jan-2011 | I changed it to: unless pan [ pan: make-panel make-face 'vpanel (pick test-blocks index) 'group poke test-panels index pan ] But something is "not bound" ... I get following error: ** Script error: when has no value ** Where: make make make-face unless view-sub-panel do switch -apply- apply if f oreach if do-face switch do do-bind-actor actor all foreach do-style set-face sw itch do do-bind-actor actor all foreach do-style case do-event do-event do-event either -apply- wake-up loop -apply- wait do-events if view catch either either -apply- do ** Near: make styl/facets opts options: make object! any [opts []] ta... | |
Pekr: 15-Jan-2011 | My question still persist - how do I easily create a panel from a layout block? :-) Instead of one nice funcitons, which served well, I need to study different concept, and make-panel is generally not usefull to average mortal :-) | |
Ladislav: 15-Jan-2011 | trying to do some tests with Carl's demo, and it is going to be pain-in-the a..., to insert returns in there - that is an error, the group style is not the style Carl had, so you should not do that at all | |
Ladislav: 15-Jan-2011 | MIN-SIZE and MAX-SIZE of panel - currently, those values are computed by the updating software. Do you think we should allow the user to set these? When you think this should be allowed, and for what purpose? | |
Maxim: 15-Jan-2011 | none of my algorithms have max-size and its never been a problem in any layout I wanted to do. | |
Ladislav: 15-Jan-2011 | no html needed when you just need to copy a part of it and do | |
Pekr: 16-Jan-2011 | In general, if you don't want to use the RETURN keyword, don't use the *group styles, they are designed *for the purpose* of supporting the RETURN keyword - not a big deal, really. My problem is, that what I want is behaviour of panel style, but without gfx borders. But - I could create new style, removing the visual elements of panel. Maybe such a style could be added by default, but not sure others would find it usefull, nor do I know what name to use ... | |
Pekr: 16-Jan-2011 | Ladislav - did not read all your posts here, but as you are here, and for me to proceed - how do I "easily" create panel, if I have layout stored in a block? Carl's demo uses: view-sub-panel: funct [ index main-pan desc ][ set 'current-panel index set-face desc form pick test-notes index pan: pick test-panels index unless pan [ pan: make-panel 'group pick test-blocks index [columns: 1] poke test-panels index pan ] switch-panel main-pan pan 'fly-right ] his make-panel used three values. OK, options block is not needed, nor supported right now. Function attributes are now reversed (dunno why, the argument order is not compatible with make-face for e.g.). That is still easily fixable. But now "rma's" make-panel accepts face, not dialect block. I tried to use make-face on a dialect block, but no luck .... | |
Ladislav: 16-Jan-2011 | Maybe such a style could be added by default, but not sure others would find it usefull, nor do I know what name to use ... - yes, that is possible. The difference between original, Carl's implementation, and the new one is, that you have all the box model attributes accessible, so you can do it easily now on your own. | |
Henrik: 16-Jan-2011 | Do we have a good documentation on how SHOW or screen updates occur? There is little point in the user having to figure this out himself to optimize display for speed. | |
Pekr: 16-Jan-2011 | btw - I expect that you guys surely know what you do, and so far my gui understanding is still minimal :-) But anyway - was there really a need to make make-panel internal? Except for the options block, I found it nice, that you can easily create panel from the stored layout block, just by one function .... | |
Robert: 16-Jan-2011 | And, to do this, all parts of the GUI must be accessible and able to describe. Hence, MIN-SIZE & MAX-SIZE make sense on a face level. If I need to specify it, at least I can. | |
Pekr: 17-Jan-2011 | Hmm, so I did some tests, and here's my observation: - I still have to complain, that in order to MAKE PANEL, I have to use function MAKE FACE, even if function of corresponding name exists, and was made useless for such purpose :-( Easy things SHOULD be easy to do - The suggested code of pan: make-face 'hpanel [columns: 1] is self-explanatory, but then SWITCH-PANEL function does not work. And the possibilities are: - this function is obsolete - this function was not adapted to new stuff - make-face does not create sufficient/expected output The problem is in the following code - I have two panels - m = main, p = child: view [m: hpanel [text "test"] options [init-size: 200x200] button "switch" do [switch-panel m p 'fly-right]] p: make-face 'hpanel [columns: 1] insert-panel-content p [button "hello"] view p ;- check it .... It crashes on switch-panel, because: >> p/gob/offset == 571x384 >> margin: get-facet m 'margin == [0x0 0x0] >> p/gob/offset: get-facet m 'margin ** Script error: cannot set offset in path p/gob/offset: So - does make-face create incompatible structure? Is 'switch-panel supposed to work? And if not, how do I support those fly effect for switching panels? Just don't push me to manually use insert-panel-content and tonnes of similar functions? | |
Pekr: 17-Jan-2011 | Once again - simple things should be simple to do, and simple even in my code - when I make-panel, I make panel, not a face. When I switch-panels, I just switch panels, so no need for user to care about panel content handling funcitons imo .... | |
Pekr: 17-Jan-2011 | ... but -better to do something, than nothing ... | |
Pekr: 18-Jan-2011 | Could you try following code? You can eventually replace 'vpanel by 'hpanel [break-after: 1]. With vpanel, it just causes stack overflow, with hpanel, it kind of displays panel, but try to resize the window and see the mes ... REBOL [] do %r3-gui.r3 lay: [ when [load] do [print "Load trigger!"] clicker button "Do" alert "Button pressed!" button "Big Quit Button" maroon options [max-size: 2000x50] quit bar text "Toggle button..." t1: toggle "Toggle" of 'tog button "Set False" set 't1 false button "Set True" set 't1 true toggle "Mirror" attach 't1 toggle "Mutex" of 'tog bar text "Radios and check boxes" radio "Set above toggle on" set 't1 true radio "Set above toggle off" set 't1 false bar check "Checkbox attached to above toggle" attach 't1 ] child: make-face 'vpanel [] set-panel-content child lay view child | |
Robert: 19-Jan-2011 | Cool... you already made good progress. Do you know the boxmodel graphic? I might need to add it to our web-page. | |
Robert: 19-Jan-2011 | This is the code: code: view [ title "Opinion Survey" text "Do you want programs to be easy to build?" hpanel 2 [ label "Answer:" hgroup [ radio "Agree" radio "Disagree" radio "Not sure" ] pad check "I'm a programmer." pad check "I am also a REBOL expert." label "Name:" field label "Comment:" area ] hgroup [ button "Submit" submit http://www.rebol.net/cgi/submit.r button "Reset" reset button "Cancel" close ] ] loop 10 [ do code ] print "all code passed - no crashes" halt | |
Pekr: 19-Jan-2011 | It works. But it was not enough to just change the view-show.r3 code, and call it after do %r3-gui.r3, as the initial redirection will remain. A bit tricky, as there is no script to build new r3-gui.r3 from sources, and sources are collapsed, but I managed it to change :-) | |
Ladislav: 20-Jan-2011 | Pekr, regarding your lay: [ when [load] do [print "Load trigger!"] clicker button "Do" alert "Button pressed!" button "Big Quit Button" maroon options [max-size: 2000x50] quit bar text "Toggle button..." t1: toggle "Toggle" of 'tog button "Set False" set 't1 false button "Set True" set 't1 true toggle "Mirror" attach 't1 toggle "Mutex" of 'tog bar text "Radios and check boxes" radio "Set above toggle on" set 't1 true radio "Set above toggle off" set 't1 false bar check "Checkbox attached to above toggle" attach 't1 ] child: make-face 'vpanel [] set-panel-content child lay view child example - it is incorrect, since you try to give VIEW a HPANEL instead of a WINDOW, I suppose, that it was just a test, how it would look? | |
Ladislav: 20-Jan-2011 | not currently, do you want to have such an alternative as well? | |
Pekr: 23-Jan-2011 | One thing is clear - it will not be complete port, e.g. fly-in/out effects are not supported when changing the panel content (switch-panel function is not adapted yet). Somy styles are also not adapted to the new GUI, and some are not adapted to the resizing model. I would welcome if RMA would do that basic work. E.g. even something like view [doc "text"] is guggy, and it displays the content twice, etc. | |
jocko: 23-Jan-2011 | I encourage you (with the support of RMA) to do it , as far as it is possible, as this demo is well conceived, very "pedagogic", and auto-documented. | |
Pekr: 23-Jan-2011 | I have a question to 'when style - is that adapted? Well, it basically works, in a simple panel example: lay: [button "OK" do [print "OK"] when [load] do [print "screen on-load"]] view lay But when I simulate the demo, it is not triggered: lay: [button "OK" do [print "OK"] when [load] do [print "screen on-load"]] panel: make-face 'vpanel [columns: 1] set-panel-content panel lay win: make-face 'window [] set-panel-content win panel view win | |
Cyphre: 24-Jan-2011 | To workaround the current issue you should build the panel like: lay: [button "OK" do [print "OK"] when [load] do [print "screen on-load"]] panel: make-face 'vpanel [columns: 1 content: lay] win: make-face 'window [] set-panel-content win panel view win | |
Pekr: 25-Jan-2011 | I would also like to report, that R3 is highly unstable, when playing with panels, and trying to set their content, e.g. manually to some slots (I tried doing directly main-pan/content: lay, main-pan/facets: lay, main-pan/facets/content: lay, main-pan/gob/pane: lay), to simply obey insert-pane-content function. It does not take much time for R3 to crash, and now I mean hard-crash - exiting the R3. No matter what nonsense I am trying to do, it should not crash R3 imo .... | |
Ladislav: 25-Jan-2011 | hmm, do you intend to visit Liberec today or tomorrow? | |
Pekr: 25-Jan-2011 | As Cyphre explained one concept to me, and because I have some questions, I post it publicly, so that others might benefit from the info. I was not properly understanding the structure of the panel. Cyphre was kind of surprised why do I need to know it, and that I might not eventually need it for the layout work, but the truth is, that I would like to understand system internals. In R2, the structure of the face was mostly the same IIRC. And you put your elements into face/pane. I found out, that structure of face might be different for various styles. I hope I am not wrong. And in such a case, I suggest to document particular style fields, so that one does know, what does it serve for. That might be really good for programmers ... | |
Henrik: 25-Jan-2011 | I have already explained why before, so I'm not going to do that again. But suffice it to say, that it's my personal opinion and may be overridden. I just think it's a shame to be blinded by apparent "freedom" by having the ability to meddle with faces directly. When building large apps, this is a mistake, an illusion of freedom. | |
Maxim: 25-Jan-2011 | sorry, but having built "large apps" and for clients, this freedom is very necessary. if you don't use it that will make the gui generally better, but there is always a time when its required and it has to be possible. what VID lacked had nothing to do with styles and looks. it was the fact that everything under it was insufficient at best... layout sucks, event system sucks, dynamicity sucks, no way to switch stylesheets on the fly, no locale, etc. | |
Maxim: 26-Jan-2011 | how I see it is that you need to be able to hack the faces, but you must not be forced to do so because the framework and API are insufficient. if the system is strong enough, it will live with very little in app hacks. it will live on its own merits. | |
Maxim: 26-Jan-2011 | but when a client tells me, I want this banner red, this one navy and this one black... I've stopped trying to convince them that its ugly, it just irritates them, and it inevitably leads to bad relations. I will convey my experience and state that its not something professional, but in the end, the client writes the check, and I need to be able to push the bytes out the door. there is no philosophy or ideology when you need to deliver and a tool can't turn around and be flexible. I don't want to post stuff from other engines here since its not a comparison game, but I've used many APIs from prbably 20 different dev platforms, and everytime I use one which has an "unwielding" ideology where you can't modify things to make them do what you want... as a user, I get frustrated and I just look for something else to do and/or work on. good defaults, decent properties and backbone, clean style. all the rest, open and hack. I woudn't be a Reboler otherwise. that's just my 2 cents. | |
BrianH: 26-Jan-2011 | The current design is supposed to allow non-GUI-designer programmers to specify layouts. Even if you are both the layout programmer and the style designer, the work is supposed to be separated. For that matter, a proper layout dialect for the types of apps that the R3 GUI is made for (not games) should be portable to other device form factors, accessible, etc. So if you need to be a theme designer, do it in the theme section of the app, not the layout. And if you need to be picky about the styles, do it in the style section of the app, not the layout. | |
Maxim: 26-Jan-2011 | anyways... I'll stop participating in this debate.. just cause I've got other things to do ;-) | |
Pekr: 26-Jan-2011 | Layout user, is not probably going to do his own styles. | |
Pekr: 26-Jan-2011 | The worst thing we can do is to let the option there, while not acting upon the override. So - if we REALLY want button's size to be fixed, the option really has to be removed, and it has to fail on GUI parse ... | |
Pekr: 26-Jan-2011 | From Max: "I don't want to post stuff from other engines here since its not a comparison game, but I've used many APIs from prbably 20 different dev platforms, and everytime I use one which has an "unwielding" ideology where you can't modify things to make them do what you want... as a user, I get frustrated and I just look for something else to do and/or work on." And I say - Amen. Set it into stone, and you might wonder in the end, why you have no following. It is exactly the same reason most ppl are not able to understand, that no matter how logical it is to have the skin done as a last, R3 GUI did not get any following, because of the first look experience simply get's users not interested at all. And it was said here not jus by me. You can protest, but that is all you can do about it. | |
Rebolek: 26-Jan-2011 | You shouldn't have to do it, but you can. | |
Rebolek: 26-Jan-2011 | The right way to do big button is to use stylize and make your own big button. You definitely not want to go thru your code at some later date and change all 100x100 to 200x200 for example. | |
Pekr: 26-Jan-2011 | that's rather easy, but not easy enough. Still a different concept. You guys act like button is a text, and it is not :-) If I will have whole screen of the same buttons, I might use stylize, e.g. for the calculator widget, as an example, becuase constantly repeat button 30x30 is not convenient for me. But it still does not mean, that ocassionally wanting to have button a bit differently sized does a damage. Do you think users are crazy and will make each button differently sized, just because they can? :-) (Well, as for MS Word files, some users are able to create completly twisted texts, bu still - that is a text, difficult to restyle ... while we are talking GUI here. | |
Kaj: 26-Jan-2011 | Hah to defining large subprojects and expecting someone else to do them | |
Ladislav: 26-Jan-2011 | No mind reading, if you want to change the Max-size, you need to know, what do *you* want it to be. | |
Rebolek: 26-Jan-2011 | Cyphre - without init-size in the options definition you won't be able to set the size like: button XxY You cannot do that right now, so what's the point. | |
Ladislav: 26-Jan-2011 | it's the size user specified in layout dialect - if the user specifies Max-size, then I do agree, if not, then there is no reason why to "read his mind" | |
Pekr: 26-Jan-2011 | we should change the button init code so it changes max-size if user specifies the inline pair! - I am against that change, you don't know (not being able to read mind) what is the Max-size user wants to have anyway" My take is - if the max size is lower than requested size, then let be requested size be the max size. What could be the harm? Or do you think that in such a case, user could complain, that his button does not resize to being even bigger? | |
Rebolek: 26-Jan-2011 | I do not expect that every user that will write [button "text" 100x100] has studied source or documentation to understand how resizing works and what max-size mean, they probably just want to have their button's size to be 100x100. So either the code should set all size to 100x100 or it should throw error and not allow setting size like this at all. | |
Pekr: 26-Jan-2011 | To be fair, we could say, that if I specify button 5x5, what to do then? Should min-size be set to min(init-size, min-size)? What if user is an idiot, and sets the size to -5x-5? :-) | |
Rebolek: 26-Jan-2011 | Cyphre, when somebody's fiddling with options block, they must understand at least facets. When writing code like [button 100x100], you do not need to know anything about style internals. | |
Pekr: 26-Jan-2011 | There was also one proposal, to rename options/facets: - the naming is reversed - in style, you use options for inline parameters, whereas in a layout, you use options to set facets - I understand Carl and maybe others would not like to give up on facets being a name for properties/attributes, but .... - I proposed to rename it, so that options in a layout = options in a style, and for inlined style definition we could use facets, or inlined name. What do you think about it? | |
Robert: 26-Jan-2011 | And IMO this approach fits with Henrik's wish to restrict things (which would be through the default values) to save you time and hassles. If you override it, well do it, and take the whole responsibility on your own. | |
Cyphre: 26-Jan-2011 | Brian...I don't have multiple screens so I personally have no high priority in this. But this is open to anyone..things to do: 1. do a research of the multi-screen handling under different OSes (win, linux, mac) 2. define proper abstracted interface 3. implement specific code for each platform | |
Henrik: 26-Jan-2011 | better leave him alive, because he has work for me to do :-) | |
Cyphre: 26-Jan-2011 | Oldes, there is lot of different quirks where the html definition doesn't work as it should, especialley between different browsers. Or do you want to argue about this? Just check all the html/css quirks related websites. | |
Ladislav: 27-Jan-2011 | system without errors is nice - system without errors is necessary, I do not want the app to error out always the user pulls the border too far | |
Ladislav: 27-Jan-2011 | Do you mean I suggested I was against allowing the user to set his preferred limits? | |
Ladislav: 27-Jan-2011 | I do want to execute resize to 100x100, which is done respecting rule #2 | |
Ladislav: 27-Jan-2011 | I do want to draw the item resized to 100x100, using the established rules | |
Maxim: 27-Jan-2011 | because all the layout is a network of nodes, you can really do funky stuff... I plan on making a demo of such things as snapping overlays to edges of other widgets. | |
Ladislav: 3-Feb-2011 | Panel resizing user poll: Background information: For resizing purposes, every graphic element (including panels) has: INIT-SIZE, MIN-SIZE and MAX-SIZE dimensions: * INIT-SIZE is the size that is being resized (magnified or minified), * MIN-SIZE is the smallest possible size of the element after resize, * MAX-SIZE is the largest possible size of the element after resize. Until now, we used auto-sized panels, for which we always (after every content change, like insertion of a button, etc.) recomputed their INIT-SIZE, MIN-SIZE and MAX-SIZE based on the sizes of the elements the panel contained. Currently it looks, that there are many reasons, why it may be better to *not automatically recompute* INIT-SIZE, MIN-SIZE and MAX-SIZE after at least some of the possible change types. Therefore, we introduced a non-auto-sized panel, which auto-computes INIT-SIZE, MIN-SIZE and MAX-SIZE on-demand only. Our questions: * After inserting a button (or other contents), what do you think should be the default action - recompute all the above values, or not recompute any of the above values? * How to specify a non-default behaviour? Cyphre came with a proposal to use a /UPDATE refinement accepting a WHAT block, so, e.g. /UPDATE [MIN-SIZE MAX-SIZE] is required to update just the specified dimensions. Would you find a different alternative more convenient? | |
james_nak: 3-Feb-2011 | 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 | How about the interface allowing the programmer to specifically request the update - do you think the /UPDATE [...] looks fine? | |
Henrik: 3-Feb-2011 | ok, I guess it depends on the model for how to do manual updates | |
Pekr: 4-Feb-2011 | 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 .... | |
Pekr: 4-Feb-2011 | 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"? | |
Pekr: 4-Feb-2011 | 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: 7-Feb-2011 | Graham no. It's up to you what are you going to do with that event. | |
Pekr: 12-Feb-2011 | 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 ... | |
Pekr: 12-Feb-2011 | 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? | |
Pekr: 12-Feb-2011 | 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? | |
Pekr: 12-Feb-2011 | What is the correct way to call an actor? do-style face 'on-update? | |
Henrik: 13-Feb-2011 | The plan is to do styles on priority with needs with the SCRUM tool, that's why tables are being worked on right now. Also continual design reviews are necessary to make sure we won't run into design dead-ends. That's why there may be regressions. | |
Pekr: 13-Feb-2011 | Robert - I can't see any subsystems ready, other than proper resizing (which is really nice), and focusing system. How can you say 2-3 styles are enough to judge the design? I would not call non-working styles being an eye-candy :-) This is all about architecture - when porting demo, I meet the case when I am able to easily change e.g. color of the scroller with Carl's GUI, which does not seems to be a case with RMA's GUI, or I just don't know how to do it. As I did not want to bether you here with such simple stupid thing, I tried to study material-system myself. But - I can tell one thing - if those things are not simple on the surface, it is either - missing docs, or very wrong architecture. You should really remember, why Carl decided to rework the GUI - to be the pleasure to use, kind like of Amiga AMOS Basic, yet still allowing more complicated designs. If that aspect will not be pursued, ppl will not like the GUI. And what is the system good for, if not liked to be used by ppl? OK, at this point, with 2-3 styles in focus, I might postpone port of the demo, no? As the demo is surely done with more than 2-3 styles :-) I will soon finish it to the state, when clicking the left side list items will not crash the demo. Non working stuff will be commented out. Then others might try to get more complicated set-ups running ... | |
Rebolek: 14-Feb-2011 | So much questions, great :) I want freaking to change the color of the scroller - If not possible right now, it's bug and will be fixed. How do I destylize" panel for e.g.?" - use material NONE What is the correct way to call an actor? - do-style FACE [object!] ACTOR [word!] DATA [any-type!] ; for example: do-style face 'on-update none how can I recognise, what arguments particular actors should obtain - good question. I have some ideas how to solve it, but right now you should ask or study source :) How can I properly attach scroller to progress bar? - In your case it should be auto-attached and 'attach shouldn't be needed. Maybe 'attach doesn't work at the moment as the auto-attaching of scrollers is actually a very bad thing that brings more problems than it solves.So ATTACH is going to be reviewed and fixed when necessary. I really wonder, if R3 GUI sees ANY regular development? - It does, but the developement does occur in areas you're probably not interested in (GUI internals, TEXT-TABLE...) Recent R3 GUI status is, that it is not usable for more than simple dialog box - Typical Pekrovina ;) | |
Pekr: 14-Feb-2011 | - Rebolek - if a button and field are enough for you forms, than yes, GUI is usable for a real-life apps :-) - do-style - OK, understood. I also found do-face in the sources. Is it relict of Carl's GUI, or is that function good for something too? - actor arguments - Carl did so by simply put them in the comments of the first line, right after the left bracket. All it needs is imo a discipline, when writing styles :-) - I am not much interested in attaching the scroller to progress bar, apart from getting demo ported. But - it surely should be allowed and fixed. I will ask different question here - how do I display scroller, with minimal sized knob? | |
Henrik: 14-Feb-2011 | Ultimately a scroller and an item to scroll has many subtleties that you don't notice at first, such as step size, whether you want smooth or non-smooth scrolling, and the structure of the item to scroll, and whether you want separate behaviors for vertical and horizontal scrolling. Then there is also placement of the scroller. Do you want the scroller to automatically "sense" what direction it has to scroll in? All this means that the scroller should treat each such case as a special case and you can't ask a style developer to meddle with attachment code inside the scroller style to deal with this issue. It's better and simpler to have a "dumb" scroller that will do your bidding for your style. It "works" in Carl's demo, because he only has 1 or 2 cases to work with, but it doesn't really work that well. He never implemented tables, image-pans, icon lists, chat lists, maps, browser windows, etc. | |
Pekr: 14-Feb-2011 | Rebolek - I don't know if it works. I might work. The "trouble" is, that scroller itself displays itself with 100% knob size. So there is nothing to scroll :-) How do I cause the scroller to have smaller initial knob size? | |
Rebolek: 14-Feb-2011 | I think the original idea was that user should always use SET(GET)-FACET for accessing values and should pretend that FACE/STATE/... is impossible to do, so STATE would stay internal and inaccessible. | |
Pekr: 14-Feb-2011 | For better understanding of material system. I can see code like this: material: 'scroller area-color: 200.233.245 edge-color: 0.0.0.128 arrow-color: black area-fill: over-fill: sky down-fill: coal And late in the on-make, this: ; Prepare materials make-material face get-facet face 'material set-material face 'up Questions: 1) why are those facets being set? Is it just that you need to give them some initial value? Is my understanding correct, that during on-make, those values are being overriden? Most probably not, because materials field hold up/down/over values. 2) is material system sufficient, if it holds only gradients? It should imo hold all values, which might influence the design of the widget. And hence even bare-bones colors. The question also is, if draw-blocks shold not be part of the material system too, because my impression is, that so far, it does very little to be any usefull, and the difficulcy to understand the whole concept might not be worth the effort. 3) There is an architecture discrepancy - materials do use central storage (kind like old VID kept 'feel actions block together - nice idea, but really not any usefull, and VID2 design mistake imo), while draw blocks are contained per style definition. I think it might be wise to think about moving materials: [up [] down [] over[] ] slots to the style definition itself | |
Pekr: 14-Feb-2011 | What I really start to miss is high level design docs. I simply don't necessarily agree to some of architecture design decisions. I know that last thing you want to do is to create docs, but I am starting to think I'll produce some CC tickets for that ... | |
Pekr: 14-Feb-2011 | FACED is not usefull anymore, as you reversed the design. Once gain - Carl's gui: FACED = instance local, FACETS = shared. RMA's GUI - FACETS = instance local, FACED = dismissed, INTERN = instance local. So if you question usefullness of FACED, then you are also imo questioning usefullness of INTERN. I must miss something then, or you did not understand, what was FACED supposed to do in Carl's GUI? | |
Pekr: 14-Feb-2011 | I am going to suggest the rename of do-style and do-face. Those names have absolulty no sense. DO-ACTION, DO-REACTION would be better one imo ... | |
Ladislav: 14-Feb-2011 | - allow max-size override. If user requests 400x400 button, which exceeds max size in x and y axis, set new max-size to that value. The argument that that might not be eventual max-size user might imagine does not hold any water. - as said, MAX-SIZE shall be independent from INIT-SIZE. What I do want to preserve is the independency between INIT-SIZE and MAX-SIZE, since that *is* needed in reasonable cases. | |
Pekr: 17-Feb-2011 | What materials do (apart frome some cute functions to calculate gradients, etc.), is that it basically adds block of following objects into face/materials: base: make object! [ up: down: over: make object! [ specular: 'high intensity: 1 diffusion: [1 1] opacity: 1 texture: none ] ] | |
Pekr: 17-Feb-2011 | Henrik - I am not sure I am denying materials. I can understand the abstraction, although so far I can't see the PRACTICAL benefit. The reason is, that the whole "skinning" is overrated, especially in regards to REBOL. Because - can you take R3 GUI style, and open it in Photoshop, do some skin/material simulation, and have it being saved? If not, the idea of central storage, regarding it being kind of collection of hundreds of contributed skins, might not follow the reality :-) I wonder if there ever be more than one skin :-) Hence - this is the reason I might prefer in-style storage. | |
Henrik: 17-Feb-2011 | The color is something you set, when creating the use of the material. That's how I can create buttons of many different colors, but with same material properties. That is another abstraction, which is not yet implemented, so I had to do it in the style for those buttons. | |
Pekr: 17-Feb-2011 | 1) Anyone yet has to prove to me, that having centralised skin/material storage will be practically usefull. What tool on Earth will you use to visually edit them? Imo none - we will have to come up with own REBOL based tool, which might understand all those draw defnitions imo 2) Having materials stored in the style (being part of stylize) means you can internally do whatever you want with it. In fact - what material system does in on-init style phase is, that it physically stores the material object into face/material. You could work even the opposite way - knowing the list of styles, you can collect all materials, if you need them to have in one place - what for, I don't know, maybe for some visual tool, where you will be able to tweak them ... one day ... maybe ... as surely Photoshop is not usable ... The fact is, that having materials stored centrally is correct design-wise. But having to deal with styles, and based upon practical merits, having definitions scattered around lowers usability of the system, and easiness of understanding of system internals ... | |
Rebolek: 17-Feb-2011 | Do you prefer using images in buttons? Patching current buttons to use images instead of draw blocks isn't that hard. | |
Henrik: 17-Feb-2011 | it might be that I'm understanding it wrong, but do you simply want a MATERIAL word for the style? that seems to be the only difference. | |
Rebolek: 17-Feb-2011 | How on earth I define, in stylize level, how is options block mapped to facets? Why do you want to do that? Let's say I want to write KNOB style. I can set for example it's value, color and size, so options would be something like: options: [ level: [percent!] knob-color: [tuple!] knob-size: [integer!] ; it's round, so diameter is enough for size ] Then I can use knob-color, knob-size... in draw block without any manual mapping. | |
Ladislav: 17-Feb-2011 | - In regards to above point, I really wonder, if buttons should be resizable at all. I said - resizable, not settable. I wonder, if I would like buttons to be of consistent size. I might try with face/resizes?: false, if that would make the trick. If you set the RESIZES attribute to OFF, you get a completely different behaviour, than what you expect: - the resizing algorithm will leave the button untouched, which means, that it does neither compute the position, nor the size, and the button would just "float" - the next version will contain more than 20 different examples, Cyphre's visibility example manipulating the RESIZES attribute included - if you just want the resizing algorithm to not change the size of an element, while allowing the resizing algorithm to compute the position of the element, you should do it differently. Just set the INIT-SIZE, MIN-SIZE and MAX-SIZE of the element all to the same pair. You will notice, that the size of the element will not change, no matter what, only the position may change. | |
Pekr: 17-Feb-2011 | - if you just want the resizing algorithm to not change the size of an element, while allowing the resizing algorithm to compute the position of the element, you should do it differently. Just set the INIT-SIZE, MIN-SIZE and MAX-SIZE of the element all to the same pair - this is the worse solution from the two offered, while more usefull. I can imagine I simply don't want buttons being resizable. Then 'resizes field does not express the meaning of the word, as in fact it does not resize, but it also floats, which is imo not that much usefull. In order to prohibit e.g. button from resizing, I need to derive the styles, and remove the init-size options from being set. | |
Pekr: 18-Feb-2011 | OK, and I think you are wrong too, and we can let it that way :-) the fact that some options may be inlined (i.e. the name may be used in another context) does not change that in any way - yes, it does. So far I can only follow my brain logic, which simply was confused. Well, I could admit, that I am dumb :-) But the chances are, that some other ppl might be confused too, so my answer is: - style/options does NOT clearly define, what options user can set in dialect options block, because that block, is SUPERSET of the style/options. It allows you even to define whatever word, without the word being a regular facet field: >> view [b: button options [ble: func [][print "huh?"]] do [b/facets/ble]] huh? I wonder if that might even be a security issue, to pass such a function via the options block? So - how is that options block even closely similar to what style/options is? Those two have completly different meaning/functionality :-) | |
Henrik: 18-Feb-2011 | This is part of Carl's original design and I imagine that he made the idea of "slots" as you call it, so there is a simple way to map grouped areas of code to faces, when they are created. Note in the source, the definition of a style and a face are right next to eachother. So it becomes "how do I create a face from a model of a face, as quickly and easily as possible?" | |
Ladislav: 18-Feb-2011 | But, otherwise, I do not see any urgent need to do any renaming, since in button 50x20, hardly anybody would have any trouble understanding, that the 50x20 value is an option user is allowed to specify, similarly, as any option in the Options block... | |
Kaj: 18-Feb-2011 | ARGS and PARAMS are ugly abbreviations of technical words. If the problem is that OPTIONS do not map directly to options in the face, it seems that WITH was the better name :-) | |
Kaj: 24-Feb-2011 | >> do %r3-gui.r3 Script: "R3 GUI - load and start" Version: $Id: $ Date: 9-Dec-2010/10:32:04+1:00 >> do %demoJC.r3 Script: "R3 GUI - Development Test Script" Version: 0.1.1 Date: none Script: "R3 GUI - load and start" Version: $Id: $ Date: 9-Dec-2010/10:32:04+1:00 ** Internal error: stack overflow ** Where: reduce switch parse to-text reduce parse to-draw all update-subgobs foreach update-subgobs foreach update-subgobs foreach update-subgobs show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native show-native sho... |
10701 / 11578 | 1 | 2 | 3 | 4 | 5 | ... | 106 | 107 | [108] | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 |