REBOL3 - !RebGUI (A lightweight alternative to VID [web-public])

Return to Index Page
Most recent messages (300 max) are listed first.

#UserMessageDate
8155AshleyUploaded build 124 with new request-calc requestor (as per discussion from 20-Apr-2009).Sun 14:22
8154Grahamthanks .. will check it out today.26-Jun 20:39
8153AshleyUploaded build 123 with tab-thru implemented as described above (except that tab-panel doesn't cycle each tab). Also fixed initial text case (stack overflow) and a long-standing text-list bug (no cursor control when select-row used).26-Jun 14:24
8152Ashleyre: list/tree missing ... a half-implemented change that I had to pull out several builds ago.26-Jun 14:21
8151AshleyThe tabing changes are still a WIP, it'll take a couple of builds to get 100% ... but at least I can grok it now!24-Jun 13:16
8150GrahamThe group-box is screwy though ... no longer contains all the fields23-Jun 1:00
8149Grahamis updated as you said above.23-Jun 0:57
8148GrahamIn List/Table, if you click on the table, you can tab in and out now if the Look & Feel/Behaviors/Tabbing .. if you add table and text-list23-Jun 0:57
8147GrahamIn build 122, in tour.r and in List/Tree the right hand tree is now missing.23-Jun 0:54
8146Grahamstack overflow issue persists :(23-Jun 0:42
8145GrahamExcellent ... at present I have to trap enter on the last field of a panel to set focus to the next panel.22-Jun 23:44
8144AshleyYes, but make sure you use the updated versions of both %ctx-rebgui-edit.r and %set-focus.r. I've also uploaded build 122 to correct a typo in back-field.

With regards to the question as to "what key should escape from cyclic", I've come to the conclusion that the best way of handling this is to just "tab through" cyclic widgets, so:

f1: field panel data [f2: field f3: field] f4: field

would tab as f1, f2, f3, f4, f1, etc. tab-panel would operate as:

f1: field tab-panel data ["a" [f2: field f3: field] "b" [f4: field f5: field]] f6: field

with a tab sequence of f1, f2, f3, f4, f5, f6, f1, etc

This way we don't have to worry about what keystrokes to change tabs or exit grouping widgets. What do you think?

22-Jun 23:14
8143GrahamCan I use this new tabbing system on earlier builds?22-Jun 20:35
8142AshleyUploaded build 121 with a completely rewritten tabbing system. Tabbing into/out of tables and text-lists is now supported (you need to copy new behavior/tabbed and behavior/cyclic values across into %ui.dat). Will add remaining widgets next build plus ability to exit a cyclic widget (e.g. press a key to exit a group-box). What keystroke/combo do folks want to map the later functionality to?22-Jun 15:02
8141Jankofor bazaar there is https://launchpad.net/ ... for svn you also have code.google22-Jun 5:21
8140Jankothere are also websites that offer free hosting (with issue tracking and other typical stuff ) of OS projects for distributed vcs-s Bazaar, Mecurial and Git ... I stopped using svn and went to bazaar and I like it ... there is comparison of various such sites here http://en.wikipedia.org/wiki/Comparison_of_free_software_hosting_facilities22-Jun 5:20
8139GrahamI had a trac also on geekisp, but it was plagued by trac spam, and the site owner wasn't willing at that time to upgrade the trac to block spam. So the only way to stop spam was to block all comments .. so I abandoned it.21-Jun 22:18
8138GrahamPekr, it cost $5 a month on geekisp. But codeplex is better .. as it is free, and it is much easier for anyone to join, and add comments. However i miss the diff that geekisp had ... unless it is on codeplex as well somewhere.21-Jun 22:16
8137GrahamStill get a stack overflow with my test case .. http://rebgui.codeplex.com/WorkItem/View.aspx?WorkItemId=2309221-Jun 22:11
8136AshleyUploaded build 120 which addresses the stack-overflow issue (and as a by-product drastically cuts the number of calls to next-field/back-field when tabbing) ... please test.

I'll also echo Graham's call for issue tracker submissions, as I'm now prioritzing fixes based on what's in there.

21-Jun 13:57
8135AshleyI don't mind where the source resides, as long as:

a) It doesn't cost me anything b) It's accessable via standard SVN clients c) It's simple

Jamie very kindly sponsored the first 3 years of hosting on geekisp, and when that ceased Graham created a project on CodePlex (which I assume offers free hosting?). That seems to be working OK so far, but I'm happy to move across to Qtask if it meets above three source hosting requirements.

21-Jun 9:07
8134ReichartPekr, agreed. You are alwys welcome though to upload the data to Qtask's tasks, at least you guys will never lose it.20-Jun 18:50
8133Pekrit is paid service? how much does it cost? Qtask offer is fair of course, but if guys are used to trac service, and it is not expensive, maybe we could sponsor it ...20-Jun 5:46
8132ReichartAnd Graham, this statement is not TO YOU, but rather to anyone here would like to "help"20-Jun 1:57
8131ReichartIf we can get the data, we can suck it into Qtask, then it will be there.20-Jun 1:56
8130GrahamBecause I presume Jaime stopped paying for it ...19-Jun 23:59
8129ReichartWhy do you no longer have access to it?19-Jun 23:33
8128GrahamSince we no longer have access to the geekisp trac and issues database ... would all of those who remember any existing issues please enter them into the new issue tracker. http://rebgui.codeplex.com/WorkItem/List.aspx18-Jun 23:43
8127GrahamIt would also be good to be able to tab into a table ... if that's feasible.17-Jun 22:26
8126AshleyGood test case. I'll look at it over the weekend.17-Jun 13:34
8125GrahamBasically a table with focus, and the only widget inside a panel will cause a stack overflow as it tries to tab out looking for the next widget that can accept focus.16-Jun 22:29
8124GrahamI have recreated the stack overflow error on tabbing here http://rebgui.codeplex.com/WorkItem/View.aspx?WorkItemId=2309216-Jun 9:13
8123GrahamIs it possible to rewrite the tabbing functions so that it doesn't use recursion?16-Jun 8:24
8122GrahamUnfortunately this did not help .. just shifted the error elsewhere. Now getting

make object! [ code: 902 type: 'internal id: 'stack-overflow arg1: none arg2: none arg3: none near: [all [ face/show? find behaviors/tabbed face/type not find face/options 'info face ]] where: 'tabbed? ]

16-Jun 8:23
8121GrahamWell, in the meantime I have wrapped the into-widget with an error try and return none if there is an error.15-Jun 23:27
8120GrahamThe user thinks that they tabbed on something which is consistent with this function's function.15-Jun 20:45
8119Grahambut not sure of the circumstances of how it is being triggered.15-Jun 20:35
8118Grahamwell, I mean I know it is coming from rebgui-edit.r and the 'into-widget function which has a recursive find ....15-Jun 20:34
8117GrahamAlso, I have reports of this error ... not sure where it is coming from

make object! [ code: 902 type: 'internal id: 'stack-overflow arg1: none arg2: none arg3: none near: [unless find [object! block!] type?/word get] where: 'into-widget ]

15-Jun 20:32
8116GrahamYes that sounds good.15-Jun 20:28
8115AshleyAh, I see. What you need is a new method, on-mouse-focus, which would ignore keyboard focus changes?15-Jun 12:47
8114Grahamit's to be like the search fields you see on web pages .. click on it .. and the existing text disappears allowing you to enter your search term.15-Jun 10:34
8113AshleyChange it so the field *prior* to this one clears it on-unfocus?15-Jun 10:32
8112Grahamany suggestions on how to obtain the wanted behaviour?15-Jun 10:28
8111Ashleyctx-rebgui/behaviors/action-on-enter has 'field in it by default ... so pressing enter *does not leave the field* but instead causes the field to regain focus.15-Jun 10:06
8110Grahamwhen you enter text and enter, the text is cleared ....15-Jun 9:33
8109Grahamdisplay "" [ text "Enter some text and then enter" return field on-focus [ clear-text face true ] on-click [ print face/text ] ]

do-events

15-Jun 9:32
8108GrahamAshley, what's happening here?15-Jun 9:32
8107GrahamThey actually mean somet hing.30-May 21:32
8106GrahamYou look at the error message .... and fix it.30-May 21:32
8105BrockLouis, I haven't looked at your code, but it might be as simple as predefining ProjectName, like ProjectName: "" or something.30-May 13:19
8104LouisThe problem I have with GUI programming is that I don't know how to find bugs. How do you guys do it?30-May 10:09
8103LouisHummm. After entering one record I'm now getting:

** Script Error: ProjectName has no value

30-May 10:07
8102LouisThanks again to Izkata also.30-May 8:48
8101LouisGraham, thanks. That fixed it. Strange. I took those braces off right after you told me to, and it didn't work. Well, I had been up all night working on this. So maybe I just did it in my mind. : >) Thanks again.30-May 8:46
8100Graham[(SQL "select * from projects")]30-May 6:51
8099LouisGraham, which braces were you talking about?30-May 6:36
8098Louis>> describe "projects" == [0 "Priority" "" 0 none 0 1 "ProjectName" "" 0 none 0 2 "ExchangeRate" "" 0 none 0 3 "Objectives" "" 0 none 0 4 "Deliverables" "... >>30-May 4:56
8097LouisGraham and Izkata, thanks for the help. But I must be misunderstanding something, as it is still not working. Here is what I have:

CONNECT/create/flat %cl.db

if error? err: try [ SQL "select * from projects" ][ er: disarm err if find er/arg1 "no such table" [ SQL "create table projects (Priority, ProjectName, ExchangeRate, Objectives, Deliverables)" ] ]

do show-cc: make function! [] [ display "CRITICAL LINKS Version 1.0.0" compose/only/deep [ ;image %chain.jpg return group-box "Critical Chain and Theory of Constraints principles" #W data [ text "1. REMEMBER YOUR PURPOSE" font [color: blue size: 26 shadow: 1x1] return ;bar ;return text "2. Free Up Your Major Constraint" font [color: red size: 20 shadow: none] return text "3, Focus on one project at a time---don't multi-task." font [color: black size: 12 shadow: none] ] at 103x14 image %critical-chain.jpg 30x6 at 133x2 group-box "Redeem the Time" #W data [ after 2 label " System Clock Time:" my-time: text 28x7 "0:00:00" return bar return label "Average session time:" my-session: text 28x7 "0:00:00" ] return

;****************************************************************** tab-panel #HWLV data [ ;****************************************************************** "Projects" [ label "Project Name:" ProjectName: field 141x5 label "Priority:" Priority: drop-list 30 #W "1" data ["1" "2" "3" "4" "5" "6" "7" "8" "9" "10"] 10x5 return label "Objectives:" pad 131 label "Exchange Rate" ExchangeRate: field 20x5 return Objectives: area 200x10 return label "Deliverables:" return Deliverables: area 200x10 return label "Current Projects:" return current-projects: table (tab-size + 80x35) #HWLV options ["Priority" right .03 "ProjectName" left .2 "ExchangeRate" left .2 "Objectives" left .3 "Deliverables" left .1] data [(SQL "select * from projects")] return button "Save" [ SQL reduce ["insert into projects values (?,?,?,?,?)" Priority/text ProjectName/text ExchangeRate/text Objectives/text Deliverables/text] current-projects/redraw ] pad 20 radio-group 60x5 data [1 "Add" "Edit"] pad 20 button "Quit" [quit] ]

30-May 4:55
8096Izkatacompose/only/deep, in that case30-May 1:52
8095GrahamAnd if you sql thingy returns a block .. you don't need the extra [ ]30-May 0:00
8094Grahamwhere's your compose/deep ?30-May 0:00
8093LouisWhat is wrong with this line:

current-projects: table (tab-size + 80x35) options ["Priority" right .03 "ProjectName" left .2 "ExchangeRate" left .2 "Objectives" left .3 "Deliverables" left .1] data [(SQL "select * from projects")]

29-May 21:45
8092Grahamstill needs to be all [ series? span remove find span #Y ]23-May 9:04
8091Grahammakes it simpler.23-May 9:02
8090DockimbelIt was a recent change, don't remember when it happened exactly.23-May 9:02
8089Grahaminteresting.23-May 9:02
8088Graham2.7.6 ?23-May 9:02
8087DockimbelREMOVE accepts NONE as argument in the last versions.23-May 8:55
8086GrahamIn rebgui-widgets.r , any objections to changing

attempt [remove find span #X] attempt [remove find span #Y]

to

all [ find span #X remove find span #X] all [ find span #Y remove find span #Y]

23-May 8:36
8085GrahamIf anyone wants write access to the project, just sign up to codeplex and let us know so that we can join you to the Rebgui project.22-May 20:21
8084GrahamOk, as long as I didn't make any changes while playing around ....22-May 20:21
8083RobertS.22-May 15:56
8082AshleyWell, the build that's up there is 118, so I just synced against that. I'll have a play with this over the weekend (I've got a few changes to upload).22-May 14:11
8081GrahamAshley, this is what I think you should do .. after signing up as a contributor, checkout the repository I uploaded. Then copy all your source files over the ones in this new checkout, and then commit. That should give us the latest.

codeplex has a source code browser and issue tracker.

20-May 21:27
8080GrahamThe svn url is https://rebgui.svn.codeplex.com/svn ... not svn:// as in the geekisp.com site.20-May 21:19
8079GrahamOk, I hacked it this way ... I created a new directory and checked out from the new repository. Then I copied all the files from my local copy to the new directory but deleted all the svn directories. I then committed all these files .. and it says it created a 116 build ... I think it's supposed to be 118 :(

I then published the project http://rebgui.codeplex.com/

20-May 21:17
8078GrahamAny subversion experts out there? I tried to relocate my copy to the new site, but get a UUID mismatch. The new repository UUID doesn't match the existing one on my local copy, and presumably gets created when I created the new projecct.20-May 21:06
8077GrahamI've created the rebgui project on codeplex.com and will have a go at uploading the sources I have.20-May 20:21
8076DockimbelCureCode is just for issue/wishes tracking. Btw, the source code for CC is available, anyone can set it's own CC instance online (it needs some installation documentation). I'd like to work on a trac-like tool with SVN integration, thought.20-May 20:11
8075GrahamDo you need access to geekisp.com ? I got an email from Jaime yesterday and could ask him ...20-May 20:06
8074shadwolfassemblia (the track i use for viva rebol and area-tc is easy to register but then the url are quite the pain20-May 18:37
8073AshleyPerhaps CureCode ... if Doc will have us! ;)20-May 12:00
8072AshleyI'm open to suggestions ... and if someone could setup an account and give me a 101 intro on how to use/access it I'll upload the latest source there and repoint my site links to it. Thanks.20-May 11:55
8071GrahamMaybe we need to shift rebgui over to another site eg. codeplex15-May 10:08
8070GrahamLooks like all the tracs Jaime was sponsoring have lapsed ... http://trac.geekisp.com/15-May 9:42
8069shadwolfi tried on-key too the key events can't reach the wdget for some unknown reason

Well anyway i won't loose more time with that issue.

12-May 11:32
8068GrahamBut that shouldn't stop us from enhancing it further .. if we can!11-May 23:55
8067GrahamI guess Ashley wants to place Rebgui into a state of closure and move on.11-May 23:55
8066Ashleyon-key might be what you're after ( http://www.dobeash.com/RebGUI/user-guide.html#section-3.2.8 )11-May 14:38
8065shadwolfrebgui-ctx.r >> system/view/screen-face/feel: none ; kill global events system (used by 'insert-event-func)

the reason why area-tc will not be adapated to rebgui until ashley explain me how to map custom events for a custom face

10-May 16:28
8064shadwolffeel/engage don't recieve keyboard events ... which seems really strange.10-May 15:58
8063shadwolfI don't understand how to handle events with rebGUI10-May 15:58
8062shadwolffeel: make object! [ redraw: detect: over: none engage: func [face act event /local txt] [ probe act ]; fin engage ]

then i create the distrubution then i run my "demo" app in the widget area-tc (custom) I see time and mouse related events but i never see keyboard related event

10-May 15:25
8061shadwolfwhen i do10-May 15:24
8060shadwolfi'm trying to port area-tc to rebgui ... and I don't understand why10-May 15:23
8059AshleyRebGUI is in maintenance mode so at least no more drastic (widget breaking) changes are in the pipeline ;)10-May 13:23
8058PekrI'll try to talk to Cyphre, but not sure how deep the changes would have to be. If it would require a rewrite, then I am not ready to pay for it once again ...10-May 13:12
8057PekrOf course if grid breaks some RebGUI habits, then it is not good .....10-May 13:11
8056PekrI do understand your point of view, which is - you try to keep Rebgui to its original idea. But - VID styleset is not real alternative to R2 GUI navadays, so refusing more complex widgets, especially in the case where noone really pushes anyone to use them, is escaping my understanding.10-May 13:11
8055PekrOK, here we go:

- full keyboard navigation - virtual-data-system - ability to hide/show columns, without the need to reorganise original data block (virtual columns) - the same for rows - programmable navigation (goto) - buttons, checkboxes - simply layout elements in cells - tri-state columns - sorted, unsorted, original

missing (it was supposed to be done as an update): - column resizing - saving the configured state for particular form

10-May 13:09
8054Ashleyscroll-panel data [sheet] ?10-May 13:04
8053Pekrok, so here we are, with such argument and final result - no proper grid with basic functionality like horizontal scrolling.10-May 12:58
8052AshleyThe problem with the grid widget was that it relied on custom changes in rebgui-edit.r (i.e. it wasn't self-contained) and it was just too big to easily "grok" (and hence port). A good grid widget should have as few features/options as possible IMHO (i.e. get something that handles the text-only 80% case before worrying about more complex sub-widget support).10-May 12:57
8051Grahamgo for it!10-May 11:36
8050PekrI think I know why - because it worked with some 2006 version of RebGUI, but not later ... well, I'll see, what I can do ....10-May 11:35
8049GrahamPekr, I never got that to work.10-May 11:30
8048PekrGraham - it is not true. IIRc I prepared package which I sent to you, with primitive initial doc, with included rebgui version, and it was working. The bad thing is, that it is some early version I paid for, but at that time there were some API changes to RebGUI, and I was not able to further contract Cyphre to adapt it ...10-May 11:29
8047Pekrwell, there is 'on-key, but it is not what is needed imo. Widgets do use abstracted widget/action principle ...10-May 11:27
8046GrahamI never saw the grid ever working.10-May 11:27
8045PekrI downloaded 118 and there is no grid. Grid was not adopted to new API IIRC.10-May 11:26
8044Grahamnot the latest version10-May 11:26
8043Pekryes, but you use probably old Rebgui distro, no?10-May 11:25
8042Grahamthere's on on-key handler there.10-May 11:23
8041GrahamI seem to have a grid.r in my distro.10-May 11:22
8040PekrCyphre's grid. After Henrik's grid it is simply the most advanced REBOL grid and it is really stupid it was not adopted to new standard, waste of functionality and money ...10-May 11:20
8039Grahamwhich grid?10-May 11:19
8038Pekryes, but there is no code in grid, which calls on-click. My asumption is, that it is being called by rebgui internally for my widget. So I have to probably define it. Dunno. Most probably I am not able to proceed further. There is not clear description of that functionality.10-May 11:19
8037Grahamengage function seems to handle the click on the 'up event10-May 11:11
8036Grahamhttp://trac.geekisp.com/rebgui/browser/widgets/button.r10-May 11:09
8035PekrI am trying to adapt Cyphre's old grid to recent RebGUI requirements. I got myself past color adaptation, so actually I can get it displayed, internally it returns correctly API function results, but I need to adapt to event handling. I am facing two problems:

- editing, double-click etc do not work - during some actions as resizing I get following error:

** Script Error: action has no refinement called on-click ** Where: set-data ** Near: face/action/on-click face

I looked into: help ctx-rebgui/widgets/grid/action, but those funcs are not set. Is there any need to set those function for particular widget? I looked at some other styles as e.g. button, but button is not using its face/action/on-click either, so I am a bit confused ....

10-May 8:41
8034Grahamcan't see why that should happen.28-Apr 1:55
8033GrahamExcept my application no longer works ... even with a wait as small as 0.00128-Apr 1:54
8032Grahamputing a wait 0.1 before the window title check seems to fix it for me.28-Apr 1:40
8031GrahamPerhaps view needs a way to call a callback after it has substantiated the new window ...28-Apr 0:58
8030GrahamHow about the display function not returning until it finds it's own window in the view*/screen-face/pane ?28-Apr 0:56
8029GrahamI'll try the wait thing and see if that works.28-Apr 0:51
8028GrahamThat seems to me to suggest that the single click action is firing twice and not just once.28-Apr 0:50
8027GrahamI understand that a dbl-click always produces a single click action, but why do we get two windows popping up on double click?28-Apr 0:49
8026Ashley"a print statement after this confirms the layout function is called twice on a double click" ... as per documentation ( http://www.dobeash.com/RebGUI/user-guide.html#section-3.2.3 ) "Every on-dbl-click event is preceded by an on-click event, as shown in the following example: ..." But, the real problem here (as you've discovered) is that the method for checking window uniqueness relies upon a [title] string that only manifests *after* a layout is substantiated. I suppose RebGUI could manage its own window title cache, but then you introduce another point of failure (if the cache gets out of sync with view*/screen-face/pane). I wonder if putting a small wait value *before* the current title string test would "fix" the problem (i.e. give the preceeding layout sufficient time to substantiate)?27-Apr 23:35
8025Vladimir:)27-Apr 5:30
8024GrahamWell, not unless you want to modify it.26-Apr 20:25
8023Grahamno26-Apr 20:00
8022VladimirQuestion about the table widget: Can the label in column header be two rows ? Like this: "Date of purchase"26-Apr 16:26
8021GrahamLooks like this is the case... a print statement after this confirms the layout function is called twice on a double click.25-Apr 8:56
8020GrahamI see I have altered the display.r a little

foreach window view*/screen-face/pane [if title = window/text [return none]] ;; GC - always return a value

instead of using 'exit

25-Apr 8:42
8019GrahamYou don't see this is in smaller apps because of the timing issues.25-Apr 8:37
8018GrahamHmm. Maybe the first window is not created before the second one is as the window creation is async. So, it does not find the window title in the pane, and so the layout function is called again.25-Apr 8:32
8017GrahamWhereabouts is the color information for a button stored? face/color is none so it gets set to none after the button is drawn.25-Apr 5:58
8016Grahamforeach window view*/screen-face/pane [all [title = window/text exit]]

so 'display exits before it calls the 'layout function

24-Apr 21:14
8015GrahamRebgui's 'display function prevents the second window opening ... so I don't understand why the problem is still occuring.24-Apr 21:12
8014Grahamie the local variable assumes the value from the second window, and loses it's own original value.24-Apr 21:10
8013GrahamIf you use the left hand table, and do a double click, then the "show" button will produce the same output in both windows. Change it to a closure on the right hand table, and the "show" button now works correctly.24-Apr 21:01
8012Grahamthis illustrates the problem.

do %/c/rebgui9/rebgui/rebgui.r do http://www.fm.tul.cz/~ladislav/rebol/default.r do http://www.fm.tul.cz/~ladislav/rebol/closure.r

nw: func [ /local lab ][ view/new/offset layout compose [ below lab: text (form now/precise) button "show" [ probe lab/text ] ] to-pair reduce [ random 400 random 400 ] ]

nw2: closure [ /local lab ][ view/new/offset layout compose [ below lab: text (form now/precise) button "show" [ probe lab/text ] ] to-pair reduce [ random 400 random 400 ] ]

display "Double Click Test" [ table 40x40 options [ "Func Dbl Click me" left .9 ] data [ "one" ] on-click [ nw ] on-dbl-click [ ] table 40x40 options [ "Closure Dbl Click me" left .9 ] data [ "two" ] on-click [ nw2 ] on-dbl-click [ ] ]

do-events

24-Apr 20:59
8011GrahamAshley, why is double click here producing two windows?

do %/c/rebgui9/rebgui/rebgui.r

nw: func [ ][ view/new/offset layout compose [ label text (form now/precise) ] to-pair reduce [ random 400 random 400 ] ]

display "Double Click Test" [ table 40x40 options [ "Dbl Click me" left .9 ] data [ "one" ] on-click [ nw ] on-dbl-click [ ] ]

do-events

24-Apr 20:51
8010GrahamI take it you've never seen this issue where locally named widgets lose their values?24-Apr 20:27
8009GrahamNot at present.24-Apr 19:52
8008AshleyBut you can't reproduce this outside of your app?24-Apr 11:44
8007GrahamJust did some checking on other functions that are invoked normally with a single click on a table row ... and so far they all have the same problem. double click corrupts their local context.24-Apr 0:27
8006GrahamAs I mentioned above, it is something to do with rebgui's double click handler.23-Apr 20:04
8005GrahamI got the idea to try this since somehow the local context was being clobbered. So, creating a new context each time does solve the problem.23-Apr 19:59
8004GrahamI use Ladislav's closure http://www.fm.tul.cz/~ladislav/rebol/closure.r23-Apr 19:57
8003Grahamchanging the above to add2script: closure [ /local t1 ] [ display/parent "test" [ t1: table 40x40 options [ "item" left .99 ] data [ "one" ] on-click [ either value? 't1 [ alert first t1/selected ][ alert "t1 has no value!" ] ] ] ]

fixes it.

23-Apr 19:55
8002PekrR2 has closures?23-Apr 14:44
8001AshleyI'd still like to understand and fix the base problem ... what do you mean by changing a function to a closure?23-Apr 14:39
8000GrahamAnyway, this looks very promising at solving a lot of Rebgui issues I've had over the last few years... where I've clicked on a table row and the on-click function has collapsed because the face/selected path is not present.23-Apr 11:54
7999GrahamMust be something to do with double click somehow ...23-Apr 10:10
7998GrahamOk, I seem to have fixed the issue. Changed my add2script to a closure from a function and no more errors.23-Apr 9:45
7997Grahambut I don't get the error where the t1 variable becomes none!23-Apr 6:32
7996Grahamhowever, I can't reproduce it outside my app yet. Now if I replace the above with

add2script: has [ tl ][ view/new layout [ t1: text-list 100x100 data [ "one" ] [ print t1/text ] ] ]

then double click always produces two windows ...

23-Apr 6:28
7995GrahamPuzzle time .... I have this

add2script: has [ t1 ] [ display/parent "test" [ t1: table 40x40 options [ "item" left .99 ] data [ "one" ] on-click [ either value? 't1 [ alert first t1/selected ][ alert "t1 has no value!" ] ] ] ]

Now if this is invoked by single-click on an element in a table, it's fine. If I invoke by double-click on the table to invoke, it gives the error. If I remove the single click action, and allow it to be invoked on double click, then it is also fine.

23-Apr 6:20
7994GrahamThe main thing I wanted was a way to input numbers using the mouse which is easy enough using a calculator layout.22-Apr 11:40
7993AshleyYou could make it a special field so if someone enters a literal ("12") it doesn't do anything, otherwise ("10+2") it parses and evaluates it (perhaps putting "ERR!" in the field if the expression couldn't be evaluated).22-Apr 10:28
7992GrahamActually I was just thinking of allowing users to use a gui to enter numbers into fields ...but why not use a calculator requester for that?20-Apr 23:43
7991Grahamforgot about that one ... but yes.20-Apr 20:30
7990AshleyYou mean like the basic one in View/Desktop?20-Apr 10:18
7989GrahamAnyone done a request-calculator requester ?20-Apr 0:50
7988GrahamThat would allow popup menus where the mouse is.19-Apr 20:21
7987Grahamyeah ... that would be good19-Apr 20:21
7986AshleyDefine "current face". We could certainly do sometjhing like:

display/relative-to face 20x20

19-Apr 13:32
7985GrahamAshley, how about a refinement for display that opens a window relative to the current face ... so like /position15-Apr 9:37
7984GrahamI can create a global dbl-click-edit function, but since the widgets have names all made local, I can't effect the changes I want unless I make the widget names global as well.15-Apr 2:59
7983GrahamThis isn't strictly a Rebgui question ... but here goes. I want to double click on a word and perform an action. That action involves interacting with some gui elements on the current screen. Now, there is a function 'hilight-text inside the rebgui 'edit object which is inside the rebgui-ctx context. So, I can hook in there with my dbl-click function. But how to make it call my function which is defined for each window?15-Apr 2:57
7982GrahamLooks like resize does work if the tree is enclosed in a scroll panel.14-Apr 9:11
7981Graham>> display "" [ tree 45x10 options [resize] data [ "one" [ "4" "5" "6" ] ]] do-events ** Script Error: Cannot use path on none! value ** Where: show-tree ** Near: all [parent-face parent-face/action/on-resize/child parent-face]14-Apr 8:45
7980shadwolfREGui wasn't done in waste that's my own opinion (damn i missed the n't ...on my previous lines)13-Apr 12:21
7979shadwolfREbgui has in a background to show to that VID has many lacks (because no one really focus his attention only to design it. at least on teh VID2 version) widget and event system could be simplier and provide more efficiency (less memory use more widget set ). REbgui was done in waste that's my own opinion13-Apr 12:20
7978shadwolfhowever main goal of rebGUI was to provide a cool widget enhancement library for VID propose a "example" set of widget people want to use the most in their software ( well that list of widgets can be found in any advanced graphical library such as GTK+ winap32 aqua QT WxWindows Tcl/tk etc...)13-Apr 12:16
7977shadwolfR3 is not for tomorow ( or maybe Carl done some crazy amount of work in the night and gets all ready for tomorow morning ???) so rebGUI still has a couple of years to go on ^^ and as a matter of fact i prefer i good VID /DRAW system with no widget than lot of widgets with a not extendable dialect what makes all the interrest of VID is therefor the high flexibility of it and it's relative simplisicity and that aspect have to remain and even been enhanced13-Apr 12:12
7976shadwolfRebGUI was created only because VID wasn't up to the task. damn right ashley but nothing guaranty us the VID next set of widget will be hum more reliable (to not say more usefull ...) but still VID remain a powerfull things so with our without cool widget set from base since VID stay a powerfull base and draw still remains too it's still possible to make a set of widgets more hum .. more to feet our taste and needs ?13-Apr 12:08
7975Grahamseems to work13-Apr 11:14
7974Grahamdisplay "" [ table 40x100 options [ "name" left .99 ] data [ "a" "b" ] [ face/parent-face/remove-row first face/picked ]] do-events13-Apr 11:14
7973Grahamface/parent-face/remove-row then?13-Apr 11:12
7972AshleyYes, the functions belong to the widget not the row face.13-Apr 11:11
7971GrahamI'm thinking that perhaps I've always used table names for the other functions ... such as select-row13-Apr 11:10
7970GrahamDoes this apply to all the table functions?13-Apr 11:09
7969AshleyHi Giuseppe, I'll respond in full to your questions here as I've had quite a few emails recently asking similar questions about the future of R3 and RebGUI.

"As you have created the best GUI solution for REBOL2" ... Thanks, remember that "best" is in the eye of the beholder though ;) ... RebGUI was created only because VID wasn't up to the task.

"I ask to myself why your still not involved in REBOL3 GUI." ... Apart from the fact that I cannot give the project the time it requires, the R3 GUI is in far more capable hands than mine. I'm looking forward to it making RebGUI obsolete! ;)

"Are you waiting the final VID version to port your great experience in this area ?" ... When the R3 GUI is stable I'll look at how best to port apps from RebGUI to it. I'm thinking either a compatibility layer or an outright script conversion utility. But while we wait for that glorious future (stable R3/GUI SDKs on Windows, Mac and Linux) RebGUI is still the only R2/GUI game in town (IMHO).

13-Apr 11:07
7968Grahamdisplay "" [ t: table 40x100 options [ "name" left .99 ] data [ "a" "b" ] [ t/remove-row 1 ]] do-events13-Apr 11:07
7967GrahamHmm. works.13-Apr 11:06
7966Grahamjust naming the table?13-Apr 11:05
7965Ashleytry >>display "" t: table 40x100 options [ "name" left .99 ] data [ "a" "b" ] [t/remove-row 1 ]] do-events ... (untested)13-Apr 10:51
7964Grahamwhen you click on a row to remove it12-Apr 6:57
7963Graham>> display "" [ table 40x100 options [ "name" left .99 ] data [ "a" "b" ] [ face/remove-row 1 ]] do-events ** Script Error: Invalid path value: remove-row ** Where: action ** Near: face/remove-row 112-Apr 6:57
7962GrahamNot clear to me why this error occurs12-Apr 6:57
7961BrockPardon my ignorance, by why wouldn't you?12-Apr 2:52
7960Grahamnot my code .. it's Rebgui code12-Apr 1:09
7959Steevelol, why do you use CASE here ?12-Apr 0:28
7958GrahamI'd like a text variant .. eg. a-text for active text which highlites on over and returns to its color on away. I can get the over working okay, but the on-away doesn't restore the color.11-Apr 22:45
7957Grahamjust reporting this error ... no expectations

make object! [ code: 300 type: 'script id: 'no-value arg1: 'event arg2: none arg3: none near: [case [ event/double-click [face/action/on-dbl-click face] act = 'up [face/action/on-click face] act = 'alt-up [face/action/on-alt-click face] act = 'key [face/action/on-key face event face/action/on-edit face] act = 'scroll-line [face/action/on-scroll face event/offset] act = 'scroll-page [face/action/on-scroll/page face event/offset] ]] where: 'wake-event ]

9-Apr 7:36
7956shadwolfdocumentation is not reflecting actual rebGUI structure T___T (reb-widget.r is old)8-Apr 20:20
7955shadwolfok i found the documentation on deboash.com ^^8-Apr 20:14
7954shadwolfhow can i add a custom rebface to rebGUI to make it dynamical know the existance of my custom rebface8-Apr 19:58
7953shadwolfREBGUI 117 whaoooo version the looks really really pro and mature project congratulation Ashley8-Apr 18:54
7952shadwolfif you do a hudge work to have to redo it from scratch next week that's not fun7-Apr 1:48
7951shadwolfhum logically because R3 is not official and completed so stabilised etc...7-Apr 1:48
7950GiuseppeCAshley, one question. As you have created the best GUI solution for REBOL2 I ask to myself why your still not involved in REBOL3 GUI. Are you waiting the final VID version to port your great experience in this area ?7-Apr 1:23
7949GrahamThanks.6-Apr 2:56
7948AshleyTracked down the edit-list tab problem ... it's the on-unfocus handler it inherits from drop-list that is causing the problem. Need some way of conditionally wrapping the hide-popup so it only does it if the edit-list is actually active.

Other issues are noted.

5-Apr 12:46
7947GrahamAnd selecting a particular leaf programmatically?5-Apr 1:41
7946GrahamAny chance of navigating the tree with the cursor keys?4-Apr 4:55
7945GrahamThere's another thing with edit-list. Unlike a drop-list, you can tab into it, and use the down arrow to cause the list to drop, but you can't use the keyboard to select a value. You have to switch to using the mouse.30-Mar 7:51
7944GrahamDoesn't happen with drop-list, and doesn't happen with display/parent30-Mar 7:26
7943GrahamThis is an odd one

display/dialog "test" [ edit-list "1" data [1 2 3] return text "some space"] do-events

click on the edit-list, and tab out .. the window disappears

30-Mar 7:24
7942Grahamthanks29-Mar 10:31
7941AshleyBoth is good. That's a fairly simple change to tree.r ... if I find some time over the week I'll do it.29-Mar 10:29
7940Grahambut only one is displayed in the tree29-Mar 10:21
7939Grahamreturns both?29-Mar 10:20
7938AshleySomething like:

tree data ["Pets" ID-10 ["Cat" ID-11 "Dog" ID-12]] options [value]

which returns the value instead of the display string?

29-Mar 10:18
7937Grahamthat could be a 30 char long uuid and it won't show29-Mar 10:08
7936Grahamoptions [ "key" left .001 ..... ]29-Mar 10:06
7935Grahami can then update that row based upon that db key.29-Mar 10:05
7934Grahamforinstance .. in a table, i usually have a hidden field size .001 so it won't display29-Mar 10:05
7933AshleyExample usage?29-Mar 10:02
7932Grahamie. a db key29-Mar 9:41
7931GrahamAny ideas on enhancing the tree widget to have a hidden field we can use to access db records?29-Mar 9:41
7930GrahamAshley, you're alive!!29-Mar 9:39
7929Pekrthanks ...29-Mar 9:18
7928AshleyPekr/Graham (re group-box resize overlap convo from 13-Jan) ... it's a limitation not a bug. The #H and #W directives assume they are by themselves in a given row/column.

"Instead of ... unview/only face/parent-face/parent-face ... why not unview/ony find-window face" ... performance over coding efficiency.

"Ashley hasn't been on line here since xmas eve ... is he on a rather extended holiday" ... the GFC has forced me to allocate considerable resources elsewhere, but I'm back for the time being.

"button is blue. But with over effect, going to green (default?), and with press, going pink" ... the over (theme light) and press (state light) colors are global. 118 fixes the problem whereby these states lost your original color override.

"We have arrow key navigation of tables. How can we get the enter key to do the action?" ... add 'table to behaviors/action-on-enter

29-Mar 9:16
7927GrahamAnyone using the RebGUI tree widget? I'd like to use it ... but I don't see a way to have a hidden field that could be used to retrieve a db record25-Mar 8:04
7926GrahamHmm. Perhaps the latest build does do this.12-Feb 8:13
7925GrahamWe have arrow key navigation of tables. How can we get the enter key to do the action?12-Feb 7:14
7924GrahamTry 116 then .. or whereever it was before Ashley used the new color scheme.29-Jan 19:06
7923PekrI have report from bobik, that 117 is even worse in that regard ...29-Jan 11:11
7922Grahamgo back to earlier version29-Jan 10:20
7921Pekrversion 11829-Jan 9:02
7920GrahamOf course using find-window is not as efficient.29-Jan 8:10
7919GrahamOh ... latest version huh? I'm not using that one.29-Jan 7:59
7918Grahamwhat version are you using?29-Jan 7:58
7917Grahamnot for me29-Jan 7:57
7916Pekrbutton is blue. But with over effect, going to green (default?), and with press, going pink :-)29-Jan 7:56
7915Pekrdisplay "test" [button blue "Hello"] do-events29-Jan 7:56
7914GrahamI do change button colors ... but I haven't noticed anything odd29-Jan 7:54
7913PekrGraham - do you change button colors? E.g. if I set button blue in dialect, I actually get 3 color - normal state, over state, pressed state. But those colors are like color wheel - totally unrelated :-) I wonder if color related code reflects changed button color?29-Jan 7:44
7912GrahamAshley hasn't been on line here since xmas eve ... is he on a rather extended holiday??29-Jan 7:38
7911GrahamInstead of ... unview/only face/parent-face/parent-face ... why not

unview/ony find-window face

?

29-Jan 7:37
7910Pekrit is imo not question of particular GUI system, but the question of widgets available. That is why I also wanted split-screen, resizable. But - those issues are not RebGUI related, so we are most probably chatting in wrong group ...23-Jan 8:16
7909GrahamJust wondering if Vid+ addresses this sort of issue too?23-Jan 8:09
7908GrahamI'm feeling a little off colour today23-Jan 8:08
7907PekrGraham - where's you green color? :-) I can't almost read your name on my notebook's LCD now ...23-Jan 8:04
7906PekrGraham - there are some aproaches out there. Some apps choose some pre-app-run dialog box, which let's you select, where you want to go. I am not much comfort with it, e.g. Open Office 3.0 starts that way. Othere do use different aproch, e.g. - on the left side, you have icon-list element, which can be even tabbed. That defines your right pane content

http://www.megaleecher.net/uploads/spybot_search_and_destroy.jpg

You can have many icons, on many tabs, so many options of how to organise your content pane ....

23-Jan 8:03
7905GrahamSo, I think I need to alter the display function to create default handlers for the function keys23-Jan 7:54
7904GrahamOf course, if a window always had an "OK" button function, a "Cancel" function and a "Save" function, this would make things somewhat easier.22-Jan 18:56
7903GrahamDidier, I'll have to look at Rebgui to see if it can do this .. but at present I can use the window text.22-Jan 18:55
7902GrahamPekr, you can create empty tabs, and then replace the tab contents dynamically.22-Jan 18:54
7901DideCIn VID you can handle F keys by window with the event handler of the window. Hope that what you call a screen is a window :-\22-Jan 17:28
7900PekrWith one of my apps, I used win32 wrapper to get-window-text function, and I set window's text title. Not sure you can change title when you select different tab? What about setting one global variable for such purpose, which you would set each time when entering new screen? Maybe lot's of work to do it now, as you have 300 screens already, but :-)22-Jan 16:38
7899PekrGraham - not sure about RebGUI, but VID generates face structures at the end anyway. So - I am not sure you can easily make F keys local to certain screen. Well, maybe you can, but you would have to look how RebGUI handles events underneath. What I disliked about some tab styles was that all your tabs are always instantiated, whereas I wanted load-as-selected behaviour. That could help a bit in your situation.22-Jan 16:36
7898Henrikyes... not possible to slap on a dialect if your app is that complex.22-Jan 9:14
7897Grahamhmm.. I didn't do that ... so I guess I just have to use the window title.22-Jan 9:11
7896Henrikyes... I have an app that works in a similar way. the answer was to construct a dialect that describes each screen with well-defined parts.22-Jan 9:10
7895GrahamThe trick then is to define them per screen.22-Jan 9:09
7894HenrikGraham, I think a lot of measuring devices use this technique with soft keys. If you have a device with a fixed set of blank keys next to the display, they would likely work as softkeys.22-Jan 9:08
7893GrahamCheyenne is just there for displayiing timelines.22-Jan 9:08
7892Grahamoh .. don't use localhost22-Jan 9:07
7891HenrikIt seemed to install fine and Cheyenne is running. But I was not allowed to connect to it.22-Jan 9:07
7890GrahamBut that is what I am trying to do .. assign diferent ops based on the current screen.22-Jan 9:07
7889Grahamwhich problem did you get with Synapse??22-Jan 9:06
7888GrahamNope, never used an HP4822-Jan 9:06
7887HenrikI couldn't get Synapse to run, but was wondering if soft keys is the answer. If you've used an HP48 or similar calculator, it has 6 F-keys which are assigned to different operations depending on which screen is shown.22-Jan 9:05
7886GrahamThis is what MS has done by creating the control panel .. did Gnome copy this?22-Jan 8:57
7885GrahamOne of the possible solutions I wondered about is to create multiple different applications somehow sharing the data ... like an IOS desktop22-Jan 8:56
7884Grahamthe occipital cortex sits above the brain stem and cerebellum22-Jan 8:54
7883GrahamOr, I colour code buttons .. making the most likely selected button green ... so the users can work using their hind brains22-Jan 8:53
7882Grahamie. less is more sort of thing22-Jan 8:52
7881GrahamTrying to simplify what the user can see ... to reduce the possible actions the user can take.22-Jan 8:52
7880GrahamI do hide buttons etc .. which only appear based on choices the user makes22-Jan 8:51
7879GrahamI guess I can use the text content of the face to work out where I am .. and hope I have unique text strings.22-Jan 8:50
7878GrahamDon't understand.22-Jan 8:49
7877Reichart"which is a bit of a cognitive load on the users :(" Yes, Qtask has the same problem... Having looked at many applications that have LOTS of tabs, medical, legal, etc. I don't know yet what way around it there is.

One idea I have is that you come in to a mostly blank set of screens, with a few tabs, and a button that brings up a dialog. It is a giant menu of things you can ask to be on the screen. You pick from this, and at LEAST then everything that is there you put there. Also, you can turn everything on quickly as a feature. And you will always know if you don't see it, it is probably on that menu of things.

22-Jan 8:46
7876GrahamI ditched the Windows installer and my app now does the installation of all the accessory programs viz. ghostscript, gsview, imagemagick, jarnal etc22-Jan 8:35
7875Grahamhttp://demo-client.s3.amazonaws.com/synapse.exe22-Jan 8:34
7874GrahamSo, how can I use the face to identify the particular screen ... without too much work!22-Jan 8:32
7873Grahamthe parameters that are available are face and event22-Jan 8:32
7872GrahamSo, what I need to do is make the F keys stick to a particular screen, rather than being global.22-Jan 8:31
7871GrahamScreens are all created dynamically.22-Jan 8:30
7870GrahamHow long ... not too long. Never timed it.22-Jan 8:30
7869GrahamI am trying to use the function keys to replace a mouse click on the "Save" button. But the function keys are global .... so if one defines it to have a specific action for one screen, there's bound to be a problem where the wrong definition arises.22-Jan 8:30
7868HenrikGraham, how long does your app take to load and how are the screens initially set up?22-Jan 8:29
7867GrahamI've got about 300 different screens in my application ( apparently someone counted ) ...which is a bit of a cognitive load on the users :(22-Jan 8:28
7866Kaioops - group is one off18-Jan 7:23
7865KaiAshley - how do I overcome this problem: I need to reduce the record block prior to db-inserting it because it contains sub-blocks. I would like to use 'next inside for autoincs, however.....18-Jan 7:08
7864GrahamLooks like a resizing bug.13-Jan 9:20
7863Pekrit works, if I change panel 2 to #HX, but then it does not resize ....13-Jan 8:39
7862PekrHow to easily set auto resizing, for simple scenario as - window, two group boxes, in each of them area. I try with various LVHW combinations, but can't it get working, group-boxes are overlapping with simple #HW:

display "just a try" [group-box "1" 100x50 #HW data [] group-box "2" 100x50 #HW data []] do-events

13-Jan 8:32
7861ManuM. .24-Dec 16:12
7860ManuM. .24-Dec 16:12
7859ManuM.23-Dec 0:10
7858GrahamUnless I enclose all of the group-boxes inside another grouping widget and use the #L directive on all the group boxes?22-Dec 7:58
7857GrahamI've got three vertically left aligned group-box's and I'm sizing them the same by using absolute sizes to also right align them. But this means I can't use different gui sizes because then the contents of the boxes can exceed the group-box. But if I use automatic sizing using -1x-1, then I can't get both left and right sides of the group-boxes to align ... or can I??22-Dec 7:15
7856GrahamHe doesn't normally do this.7-Dec 9:33

Return to Index Page