• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp1023
r3wp10555
total:11578

results window for this page: [start: 7901 end: 8000]

world-name: r3wp

Group: !RebGUI ... A lightweight alternative to VID [web-public]
Ashley:
16-Apr-2007
BTW, what changes are you having to add back in every time you do 
an SVN sync? I'll look at incorporating the more generic ones.
Graham:
16-Apr-2007
I also redefined spellchecker ... to do other things
Graham:
17-Apr-2007
I'm getting a 5 second delay on using the "close" button in the spell 
checker, or on the final "add".  I wonder if it's better to close 
the spell checker window down first and then do the file maintenance.
Graham:
17-Apr-2007
Do you have a utility for us to build our own dictionaries?  Or is 
it just a collection of unique words?
Ashley:
17-Apr-2007
The dictionary files are just a collection of sorted unique space 
separated words (all on one line, no carriage returns). I extracted 
them from the latest Abiword dictionary files. No utility as such, 
but the trick to generating them in REBOL is to get a block of strings 
then do a:

	write %my-dict.dat form sort unique my-block-of-strings


As for the button disabling question, I thought it was specifically 
related to the spellcheck taking 5 seconds. But, more generally, 
I'm against that type of thing. Far better to pop up an alert or 
progress bar for actions that will take time. Pressing a button should 
provide *immediate* feedback or results.
Anton:
18-Apr-2007
It's more work, but only the widget really knows how to do these 
things properly.
Ashley:
18-Apr-2007
Agreed, but it's not high on my list of things to do.
Pekr:
18-Apr-2007
Ashely - as you mentioned "to do", what is your prioritisation towards 
RebGUI? Just curious ...
Ashley:
18-Apr-2007
Like RebDB and the SQLite Driver I want to get it to the point where 
"it just works", and fixes/enhancements are rarely required. Currently 
it does most of what *I* need it to do, so I'm focusing on nailing 
the few remaining bugs and getting the documentation up to scratch 
for a 1.0 release. I'm envisaging a lot of changes once R3 is released 
so this won't happen until after that.
Graham:
18-Apr-2007
If I resize a window containing a chat widget, it corrupts the widget. 
 Can I link to the resize event to do a show on the chat widget?
Pekr:
19-Apr-2007
Graham - why e.g. Chat widget appeared? Do you use it? I will have 
to look, how it communicates :-) btw - why there is the distortion 
to initial display of the widget?
Ashley:
19-Apr-2007
Designer's Guide

 updated with a few minor corrections & clarifications (mostly to 
 do with Beta 2 changes).
Graham:
20-Apr-2007
If you have a large left box, how do you then align the following 
widgets so that 'return aligns to the left large widget?
In VID you set a ruler thingy ...
Graham:
20-Apr-2007
That's okay about the alignment .. I just used a panel to do what 
I wanted.
Graham:
21-Apr-2007
I suspect it would not be particularly overkill to track the caret 
on every keystroke ... editors do it all the time.
Ashley:
21-Apr-2007
Or do you expect the cursor to be positioned between the letters 
"X" and "b"?
Ashley:
22-Apr-2007
Couple of deep design questions. Run the following code:

display "A" [
	button [
		display "B" [
			f: field on-unfocus [false]
			button [print "Click"]
			do [set-focus f]
		]
	]
]


1) Click the button to open display "B" ... type some text, then 
click the OS close button ... then try the same thing again.


What you should see is that you can't enter any text the 2nd time. 
This is due to the fact that the 2nd time set-focus is called it 
fails to unfocus so is left in limbo. Not sure what to do about this 
case.


2) Run the sample again. Click button to open display "B" and click 
the button.


Note that the button's action fired as clicking a button does not 
shift focus (i.e. you can click a button and continue typing in a 
field). The question is: even though we are not tabbing out of the 
field, should the button's action have fired. This question becomes 
even more relevant when the button action does something like open 
a new display (or close the existing one) ... should this action 
be allowed to proceed even though there is a failed unfocus action 
pending?
Ashley:
22-Apr-2007
Ah, you fix one problem only to discover a bigger one! Anyway I've 
uploaded build#89 which addresses the two specific issues above:


1) Clicking the close button on a window now forces an unfocus but 
*without* triggering the on-unfocus action (or a show).


The /close refinement of display must now return true or false to 
proceed or not with the close operation.


2) Clicking a button only fires its action if it is not the current 
focal face and the focal face's on-unfocus action returns true


Try these with the test code posted above. You should see that it 
now behaves as you would expect. But now try the following code:

	display "" [
		field
		calendar
	]


Click on the field and start to type, then click on the calendar 
and continue typing! Why does this happen? It happens because when 
we detect the 'down event we have no way of knowing whether it originated 
from the field or the calendar. %display.r *should* be able to have 
a detect function that (among other things) does a:

	if all [
		find [down up alt-down alt-up] event/type
		face <> view*/focal-face
	][
		code to check on-unfocus
		code to do an unfocus
	]


but this will not work because of a view bug that causes face to 
be the window face *not* the face that originated the event. Urrgh. 
At this time I can't see how to trap and process mouse click focal 
changes. Might have to delve into the VID sources again to see how 
(if) it was solved there.
Ashley:
22-Apr-2007
What do you need to merge, I thought I'd inlined all your changes 
by now?
Graham:
22-Apr-2007
so, this way I guess I'll have to add to the user's form the do block
Graham:
22-Apr-2007
Is there a way I can make it so that escape always closes the current 
window?  Or, do I have to put a widget with escape as the key ?
Ashley:
22-Apr-2007
Build#91 uploaded to SVN with inbuilt ESC handling. The processing 
 logic is:


1) If a widget has focus (e.g. an area or field) let it handle the 
ESC
2) If it's assigned to a widget then do the associated action

3) If a popup (including choose: drop-list, edit-list, menu) is active 
close it

4) Otherwise, treat the ESC as a close event (i.e. invoke close handler, 
check for app exit, etc)
Ashley:
23-Apr-2007
who makes ctrl tab, and ctrl shift tab working

 ... easy enough to trap these keystrokes. Figuring out what to do 
 with them then is the tough part!

Also, cursor key to change focus on buttons

 ... yep, keyboard focus control is one of those long-standing issues 
 I'd like resolved. But mouse issues come first for me (i.e. until 
 the focus/caret/mouse system is 100% I'm not interested in enhancing 
 the keyboard focus system beyond basic tab support.
Ashley:
23-Apr-2007
word you were checking used to remain high lighted

 ... by virtue of a focal-face bug. I eventually want to do the highlighting 
 with draw.
Pekr:
23-Apr-2007
what to do is easy - at least in Windows (but I would expect mac 
and linux too), you switch tab focus ... ctrl shift tab goes in reverse 
order ....
Anton:
11-May-2007
But I think you're right, the fastest thing to do is derive your 
own drop-list widget.
Ashley:
11-May-2007
Another way of achieving the same effect is to simply populate %locale.dat 
with the required language/domain specific substitutions and let 
layout do its thing. e.g.:

	words: [
		"AAA" "My-AAA"
		"BBB" "My-BBB"
	]

then:

	drop-list data ["AAA" "BBB"]


I just don't see how changing radio-group and drop-list [only] solves 
anything. What about text-list, table, drop-list or any other widget 
that display's a value or values?
Robert:
12-May-2007
Fonts: I want to get some text / labels in "Arial Narrow" on the 
screen. How do I do this? I tried but don't know what I need to do.
Graham:
17-May-2007
We do need a directory selector that can access directories across 
the network.  At present i have to resort to using request-file,and 
selecting a file in the target directory.
Anton:
20-May-2007
if face: focal-face [
            if flag-face? face hide [
                unlight-text 
                insert/dup clear face/data "*" length? face/text 
                do swap-text
            ] 

            tmp: any [caret-to-offset face caret caret-to-offset face caret: 
            tail face/text] 
            tmp: tmp - (face-edge / 2) 
            tmp2: face/para/scroll 

            all [tmp/x < 0 tmp2/x < 0 face/para/scroll/x: tmp2/x - tmp/x] 

            all [tmp/y < 0 tmp2/y < 0 face/para/scroll/y: tmp2/y - tmp/y] 
            action: face-size - tmp - face/para/margin 

            if action/x < 5 [face/para/scroll/x: tmp2/x + action/x - 5] 

            if action/y < liney [face/para/scroll/y: tmp2/y + action/y - liney] 
            show face
        ]
Terry:
22-May-2007
After looking at all of the various UI for Rebol that's currently 
available, and although they are all great in their own right, I 
can't help but think there's something missing.  I've found the rebol 
mashups I've done using Javascript, HTML, CSS and Flash.. to be so 
much more flexible, and of a higher quality... perhaps not in things 
like speed etc., but when it comes to eye-candy, View, and all of 
it's GUI libs come in third at best.


If you're running windows.. take a look at RASH.. a simple blue button 
that floats on top of all your other windows.. click it, and a panel 
pops up.. 

It uses Flash as the UI.. and it's really quite easy to tie Rebol 
into Flash..  and you can do it with core. Why there isn't more Flash 
/ Rebol mashups is weird
Ashley:
1-Jun-2007
I'm of the "don't tell me about it unless I can do it camp" here. 
Nothing worse than hunting through a complex menu to work out what 
I can and can't do. 80% of what I want to do or see should be no 
more than one click away IMHO.
Ashley:
1-Jun-2007
Trick is to remember that the do block is evaluated prior to the 
display being shown, so you just have to use:

	display "" [
		p: panel green data [] false
		f: field false
		do [p/show?: f/show?: true]
	]
	do-events
Graham:
1-Jun-2007
Is it feasible to do the same for area widget?
Ashley:
2-Jun-2007
The reason most UI's dont do this is you either have to reserve space 
for the slider, leaving an empty area, or dynamically readjust the 
text to fit ... which annoys users as the number of lines changes 
on them. So, no. ;)
btiffin:
9-Jun-2007
How do you get a slider to react to the mouse wheel?
Ashley:
9-Jun-2007
You have to do it indirectly, as in:

display "" [
	p: panel data [slider] on-scroll [
		var: face/pane/1
		var/data: var/data + either negative? scroll/y [-.1][.1]
		show var
	]
	do [system/view/focal-face: p]
]
Pekr:
20-Jun-2007
I hope it should not be a problem to adapt. IMO Cyphre would do it 
in one day, but let him work on R3 :-)
amacleod:
20-Jun-2007
I found grid.r on trac.geekisp. How do I download the script from 
here? I've tried to cut and paste but hte line numbers come along 
with it. And how do I use it with rebgui?
amacleod:
20-Jun-2007
I'm running he test app with grid.r and rebgui in same directory. 
Do  I need to "Do" grid.r?
Pekr:
3-Aug-2007
I used nVidia cards exclusively, hating ATI. So, I had defined accelerator 
keys for moving windows from one monitor to other, typicall ctrl 
alt num1 (or num2). That worked with AltME and other View based apps. 
I have also some Win32 wrappers to do so - resizing, window z-axis 
positioning, setting window position, etc.
Robert:
23-Sep-2007
Curl: Do you mean Curl as basic system or transforming to Curl? IIRC 
there system is quite fat and requires special servers etc. They 
have a complicated licensing scheme etc.

So, I agree with Petr, why use Curl if we have Rebol?
Pekr:
23-Sep-2007
And I guarantee you,that REBOL plug-in, if done right, is a killer 
product. Let's show that html monkeys trying to do stupid grids slow 
as mollasses that REBOL can be light years faster. Web should never 
get past static page displays :-)
Pekr:
24-Sep-2007
Graham - Cyphre's styles pack contains tabs with arrows, so that 
you can have more than is visible space. Horizontal only though ... 
You could contract Cyphre to do it for RebGUI ....
Graham:
25-Sep-2007
Is there something I can do to trap the error at the widget level 
so it doesn't propagate upwards?
Ashley:
30-Sep-2007
Build#99 uploaded with fix to above. You can now do:

	rg/select-item 0

or:

	rg/select-item none
Ashley:
6-Oct-2007
That's not a trivial thing to do with the current design ... and 
then add the complexity of action types (single, double or alt-clicks; 
combined with various on-* triggers ... it gets messy very quickly).
Ashley:
11-Oct-2007
Hmm, I'm sure it never used to do that ... I think a bug has been 
introduced along the way. Need to fix that one.
Louis:
22-Oct-2007
In the following script I would like to be able to click on a row 
of the table to populate the data entry fields, so that I can edit 
the data for the record displayed in that row. How do I do that? 
 

rebol []
do %sqlite.r
do %rebgui.r
unless value? 'ctx-rebgui [

    either exists? %rebgui-ctx.r [do %rebgui-ctx.r] [do %rebgui.r]
]
set-colors
tab-size: 120x55

fonts: reduce [font-sans-serif font-fixed font-serif "Courier New"]
if not exists? %id.txt [write %id.txt 1]
either not exists? %indodex.db [
    CONNECT/create %indodex.db

    SQL "create table base (ID, Title, Nama, Alamat, Kota, Propinsi, 
    Telefon, Handfon, Fax, Email, URL, Tgl_Nikah, Nota)"

    SQL "create table birthdays (ID, Nama, Jenis, Hubungan, Tgl_Lahir, 
    Agama, Nota)"
][
    CONNECT/flat %indodex.db
]

do show-cc: make function! [] [
set-colors
(i: to-integer read %id.txt)
label-width: 19
f-width: 59
display "IndoDex Ver. 1.0.1" compose/only [
            button-size 16x8
            margin 1x1
            space 1x1
            ;image %roladex.jpg 
            ;return
            label 7 "ID:" id: text (to-string i) 7
            pad 17
            ;label 13 "Nama:" 

            title: drop-list 30 #W "Pak" data ["Pak" "Ibu" "Sdr." "Sdri." "Drs." 
            "Dr." "Tuan" "Nyonya" "Nona" "Pdt."] 17x5
            nama: field f-width
            label label-width "Telefon:" 
            telefon: field f-width
            label label-width "Handfon:" 
            handfon: field f-width
            return
            pad 31
            label label-width "Fax:" 
            fax: fax: field f-width
            label label-width "E-Mail:" 
            email: field f-width
            label label-width "URL:" 
            url: field f-width
            return
            pad 31
            label label-width "Alamat:" 
            alamat: field f-width
            label label-width "Kota:"
            kota: field f-width
            label label-width "Propinsi:"
            propinsi: field f-width
            return
            pad 31
            label label-width "TglNikah:" 
            tgl_nikah: field f-width
            label label-width "Nota:" 
            nota: field 139
            return
            return

            t: table options ["ID" left .03 "Title" left .04 "Nama" left .2 "Telefon" 
            left .16 "Handfon" left .14 "Fax" left .14 "E-mail" left .15 "URL" 
            left .15] data (sql "select id, title, nama, telefon, handfon, fax, 
            email, url from base") 270x150 
            return
            button "Add" [
                either all [nama/text <> "" nama/text <> none][

                    SQL reduce ["insert into base values (?, ?, ?, ?, ?, ?, ?, ?, ?, 
                    ?, ?, ?, ?)" id/text title/text nama/text alamat/text kota/text propinsi/text 
                    telefon/text handfon/text fax/text email/text URL/text tgl_nikah/text 
                    nota/text]

                    insert t/data SQL "select id title nama alamat kota propinsi telefon 
                    handfon fax email URL tgl_nikah nota from base"

                    ;a: sql/flat "select id/text title/text nama/text alamat/text kota/text 
                    propinsi/text telefon/text handfon/text fax/text email/text URL/text 
                    tgl_nikah/text nota/text from base"
                    ;sql reduce [insert table/data a]
                    id/text: form i: i + 1
                    save %id.txt i
                    clear-text nama
                    clear-text alamat
                    clear-text kota
                    clear-text propinsi
                    clear-text telefon
                    clear-text handfon
                    clear-text fax
                    clear-text email
                    clear-text url
                    clear-text tgl_nikah
                    clear-text nota
                    ;show id
                    t/redraw
                    return
                ][
                    alert {Cannot save if "Nama" field is empty.}
                ]
            ]
            button "Update" []
            button "GUI Info" [

                print [id/text " " title/text " " nama/text " " alamat/text newline]
            ]
            button "DB Info" [
                print [TABLES newline]
                SQLite/col-info?: true
                newline
                print [SQL "select * from base" newline]
                print [SQLite/columns newline]
                print [ROWS "base" newline]
            ]
            button "Halt" [
                halt
            ]
            button "Quit" [
                quit
            ]
]
]
do-events
Graham:
5-Nov-2007
Ashley, we talked about this before.  I  am looking for a way to 
spell check in a popup or static window attached to the area that 
is being checked, and to double click on the choice, have it replace 
the highlighted text, and then move on to the next text which is 
then highlighted.  I got it working except for the part of highlighting 
the next word that is suspect.  It highlights and then immediately 
loses the highlight .. perhaps something to do with the double click 
and focus system?
Ashley:
5-Nov-2007
I remember looking at this and concluding that ctx-edit.r would have 
to be changed rather dramatically to allow this ... it has to do 
with the order in which set-focus and show are called. Several minor 
hacks I experimented with (mainly in set-focus) just didn't cut it. 
I put it in the "too hard" basket but may revisit this now that the 
long-running (for me at least) pick-list bug has been fixed; and 
I also have a few users asking about this as well.
Graham:
13-Nov-2007
You need an async version of ftp, or spawn another process to do 
this.
btiffin:
13-Nov-2007
I always use display/dialog for requestors. Works well; not a whole 
bunch of code to write.  If you do %rebgui.r (and don't encap an 
app) you still have access to view's request-text.
JohanAR:
4-Dec-2007
REBOL [
	title: "Weird error in area"
	Date: 04-Dec-2007
	File: %areaerror.r
	Author: "Johan Aires Rasten"
	Version: 0.1.0
]

do %rebgui.r


; Values of 25 or less doesn't produce the error, but larger ones 
do
max-info-lines: 26


display system/script/title [
	panel sky data [
		after 1
		button-size 30
		button "Status" [print-info "status"]
		button "Archive" [print-info "archive"]
		button "test" [
			loop 30 [print-info "status"]
			loop max-info-lines - 4 [print-info "archive"]
		] 
		button "crash!" [print 1 / 0]
	]

 info-area: "To see error: Press test button, then Status once" area 
 80x40 #HW options[info] data []
]

info-area-list: make list! []

print-info: make function! [
	info
][
;	Add the line to the buffer
	append info-area-list rejoin [info "^/"]
	if max-info-lines < length? head info-area-list [
		remove head info-area-list
	]

; set-text works, but it moves the scrolling area to the top
;	set-text info-area rejoin make block! head info-area-list

; This produces weird errors:
	info-area/text: rejoin make block! head info-area-list
	show info-area
]

do-events
Ashley:
14-Dec-2007
So, to use list-view as an example, you can now write:

do %list-view.r

display "" [
	area 60x40
	vid 60x40 data [list-view with [data: [a b c]]]
]

Magic, huh?
Kai:
17-Dec-2007
Ashley ~ contratry to what you state in the User Guide, multiple 
returns do not seem to work at all - can you confirm tthis? Anything 
I am missing?
Kai:
18-Dec-2007
Ashley - what is the method of choice to temporarily disable/re-enable 
input widgets (fields, drop-lists, checks)  in code ?  Disable as 
in: do not allow focus or content manipulation.
Ashley:
18-Dec-2007
There isn't. These things are set when the widget is created. In 
the rare cases I've had to do this I just unview and redisplay ... 
not elegant but it works.
btiffin:
18-Dec-2007
Umm, re disable;  Doesn't  on-focus [false]  do what Kaj wants here 
- kinda - mostly?   The widget is still on screen but you can't click 
on or tab to it.
Ashley:
20-Dec-2007
Not soon. This is a hack to support common editable widgets, whereas 
a proper solution should support every widget that is editable *and* 
selectable (e.g. tab-panel, table, drop-list, check, radio-group, 
etc). It means adding 'info support to a lot of widgets that currently 
do not have it.
Jean-François:
22-Dec-2007
Ashley, Is there a simple way to get this version, or do I have to 
download & install a SVN client?
Graham:
24-Dec-2007
Just wondering if the tree might return more information than just 
the face text. Say you want to retrieve stuff from a database but 
only want to do so if it is a level below a node.  At present you 
don't know if you're at a node of a leaf.
Ashley:
24-Dec-2007
Robert, yes. Your tree-view widget is a superset of what I need / 
want (and is 21Kb vs my 3Kb).


Ideally, I'd like every widget to be 5kb or under, with 10kb a max. 
After developing and merging over 40 widgets I've come to the following 
conclusions:

1) 90% of the basic usage cases can be coded in under 5kb
2) Double the code size to increase this to 95%
3) Quadruple this size to get it to 99%

4) Time required to maintain / fix and document a widget increases 
exponentially as code size increases

5) A widget that tries to do many things is no longer a widget ... 
it is an app (list-view and grid fall into this category)

6) While developing the sheet and tree widgets I came to the realization 
that the scroller logic could be externalized in another widget (scroll-panel) 
thus removing much of the duplicated scroller handing code found 
in a number of widgets


Where does this leave grid? Near as I can figure it's a combination 
of table and sheet, but supporting cell types other than plain old 
field. I can see how folks want to pull data from a DB and put it 
into a grid, so does that mean we have 'typed' columns or can every 
cell be different. If the later, then aren't we just talking about 
a sheet with support for more datatypes?


And now for the accessors. We obviously want functions to load and 
save data, put and get cells, and add / delete rows; but do we really 
need functions to move columns around? Or hide and reveal columns? 
It's very easy (and tempting) to over-engineer ... but keeping things 
as simple as possible (but no simpler) makes for a stable system 
that is easily fixed, extended, maintained and documented.
Ashley:
24-Dec-2007
Yep, a lot of that code is app / context specific; although the widget 
should allow you to extend its functionality via APIs rather than 
having to "roll your own" every time you need a bit of extra functionality. 
scroll-panel is a move in that direction; "I'd like a spreadsheet 
here, and I'll put that in a scroll-panel because I want to scroll 
a large sheet; and I'll add left-click and right-click handlers to 
handle load and save; and assign a screen dump routine to F3, etc". 
All that is currently possible. "I'd like to move this cell from 
here to here" is not currently possible, and I doubt anyone could 
create an API that could let you do *everything*. (take something 
simple like alternating row colors; I had someone ask if the *number* 
of alternating colors could also be specified!)
Pekr:
24-Dec-2007
svn://svn.geekisp.com/rebgui - is the correct address. All I need 
to do is to go up to see RebGUI dir, click on it, and select Update 
from right context menu in my file manager. Works here ...
Ashley:
24-Dec-2007
was it deliberate decision to remove the functions tab from tour.r

 Yes, RebDOC now covers the same ground. My goal is to pull the content 
 across from %tour.r into RebDOC and then obsolete it (%tour.r that 
 is). In RebDOC the examples will become stand-alone scripts.

RebGUI Core

 ... I like it, and it means we can distinguish general RebGUI app 
 issues from RebGUI Core issues (e.g. keyboard navigation is a core 
 issue, lack of a domain specific "bells & whistle" widget a RebGUI 
 app issue). For me the line is quite simple: if it is an issue that 
 can be fixed by creating a new widget (either from scratch or based 
 on an existing one) then it is probably an app issue; if it is an 
 issue that effects most if not all widgets and / or the fix is to 
 the RebGUI engine itself (e.g. a %rebgui-* script) then it is probably 
 a core issue.

request-dir function has lost the 

home" button" ... yep. The old request-dir function was dynamic and 
only read dirs as needed. The new one, due to the "static" nature 
of tree, pre-reads all dirs. It's also lost the "make dir" button. 
These features maybe important to us as developers, but if users 
need to navigate the entire file system or create dirs to use an 
app then the native request-file is probably a better choice. The 
[new] request-dir is really intended for the simple "which of these 
directories or sub-directories do you want to use" case, and assumes 
the developer will use the /path refinement to start in the relevant 
directory. These changes were requested by one of my clients who 
didn't want their staff "seeing stuff they shouldn't and creating 
directories everywhere".

neat scroll-panel now means I can have enormously wide tab-panels

 ... I had that in mind when I created it! Note that the horizontal 
 and vertical sliders only appear as needed and the space they occupy 
 is given back to the child widget. Also note that the button on the 
 extreme bottom right of scroll-panel toggles between "home" and "end".
Ashley:
24-Dec-2007
I've had to do something similar and you really need pixel-level 
precision with a domain specific app (or widget). Isn't that hard 
as the number of form elements is limited. The version I was doing 
was trying to automatically place and size fields after filtering 
the form to create a B&W image (for element placement purposes). 
Another approach might be to create a widget that lets you easily 
move and size boxes, then save the face offsets and sizes and apply 
them to a RebGUI display that has the same number of widgets in the 
same order.


I'll take a look at check, led and radio-group sizing later this 
week. All these widgets *should* be able to scale without a problem 
(much like symbol does). In fact I was contemplating using webding 
symbols (for the tick and cross) in lieu of draw.
Reichart:
24-Dec-2007
Would be cool if you think of it in terms of simply clicking inside 
the center of a printed checkbox, and the widget-checkbox simply 
scales (expands) until it hits the edges, and then some (several 
more pixels).


In theory you could do the same thing for areas where you are meant 
to fill in hand written items as well.  Basically looking at where 
the cursor was clicked, "falling" down until you hit a line, then 
expanding left and right until you hit stuff.


I designed a cool tool about 20 years ago called Snarfit that allowed 
artist to just draw where ever they wanted, and then it would grab 
everything on the page and save them out as separate objects.  It 
basically looked for blank space, and sucked up to the objects.


~ sad when we have to be compatible with printed technology.  We 
are about to undertake a huge project of making Qtask a Content Management 
system for scanned images.  I plan to make it just like Google maps, 
where the images are scalable (in chunks) and then you can draw on 
them, add tasks (as PostIts), etc.
Ashley:
25-Dec-2007
I looked at the RegGUI logo and...well

 ... yeah, I'm not a graphics guy and there is only so much you can 
 do with MS Comic font ;)


New one looks polished and I'd like to adopt something new for 2008 
as I plan to release Beta 3 (last one prior to a 1.0 release) soon. 
I'm open to suggestions on color (my preference is for red but I 
think that's taken by ruby :( ) ... also, I'm not sure about the 
X-Internet bit; REBOL and various RebGUI apps may be, but RebGUI 
itself isn't. Perhaps the word "Core" instead.


Let's get a few suggestions / comments in before you do another one.
Reichart:
25-Dec-2007
I'm open in all ways.  Meaning, when you have some feedback, I will 
do up a bunch (differnt colours, etc.), use or don't use what you 
like.  It takes me just minutes to pop one out.  I have a system 
set up to make such art...
Reichart:
26-Dec-2007
Exactly.  There is also the concept of having widgets remember from 
session to session.  We are working on this for tabs in Qtask (we 
already do some of it).  

Each person wants something different, so we focus on it first doing 
what you expect it to do.


I have an idea for something that could be really cool, or really 
suck.  The good news is it is completely passive, so it won't annoy 
anyone.  The concept is this:


A magic mode you can jump into on any application or service (ASP).


In this mode, everything does NOT behave as expected, but rather 
become more abstract and detached.  So if you click on a button, 
for example the [Send] button here in AltME, a menu pops up:

---------------
Send
What is this?
Options
Rename
Translate
Shortcut key(s)
---------------

For each of these


Send - simply does what ever the button is actually meant to do (in 
this case "Send"

What is this? - Jumps to help, and has a bi-directional unique ID.

Options - Things you can set about the behavior of this button, for 
example, with "Send", you might want to know about the multi-line 
feature.
Rename - Rename this button in the current language.

Translate - Change or give this a name in another language (superset 
of Rename)

Shortcut key(s) - Se the shortcut for this, and also see all the 
others so there are no conflicts.  Allows for mode hierarchy of keys.



Would be really cool to make this a framework of its own, so that 
it is automatic.
Ashley:
26-Dec-2007
are we replacing the tab, or the panel?

 We're replacing the panel, which in this context is refereed to as 
 a tab. Same logic applies to the 'select-tab accessor.

Are we sure widgets should 

remember" their state?" ... with regards to the RHS of the display; 
it can be argued either way. If I want to look at the usage text 
of each widget then it's nice to be able to scroll to the bottom 
and then remember this state as I click on each new widget ... but 
then again, if I want to "start afresh" with each entry it'd be nice 
if the scroller reset. As discussed, I'll add this as an option.


re: Magic modes. In one of my apps I had "programmable" buttons that 
you could right-click to bring up a menu of what the button should 
say (it's text) and what it should do (it's functionality). Only 
a small number of these buttons existed and they were colored differently. 
This one simple feature saved a lot of screen real-estate, was easy 
to explain to end-users; and most importantly, was the "killer" feature 
for those using the app.
Ashley:
31-Dec-2007
What color does it use for borders?
 ... none, it's transparent.

will sheet and tree-view support at least keyboard basics?

 sheet already supports tab, tree at present has no keyboard support. 
 These are on the "things I'd like to improve one day if I have nothing 
 better to do" list. ;)
Pekr:
31-Dec-2007
You know, Ashley, there are several measures to UI and its usability. 
I noticed that ppl really warry, some do most of the things using 
mouse, and then RebGUI is 98% correct (no scroll-wheel support here 
or there, area not being able to auto-scroll when hiliting). But 
those used to keyboard, are suffering much more pain. And believe 
me - although I can understand minimalistic aproach to RebGUI (and 
it really feels better than VID2 in almost all aspects), in the end, 
if widget "missbehaves", I really don't care that, if it is 6KB or 
12KB - all I care is - does it behave as expected?
Ashley:
31-Dec-2007
Providing keyboard support for inherently graphical controls (e.g. 
radio-group, spinner, etc) is IMHO a waste of time. All the main 
input widgets (field, edit-list, area, sheet, etc) should and do 
have proper keyboard support. If you're designing an application 
for fast data entry then you should confine your widgets to those 
that accept keyboard input (i.e. data entry forms). If you want a 
rich GUI with a full set of graphical widgets then I don't think 
it's too much to ask that users have a pointing device. I mean, you 
don't expect users to use Windows without a mouse? Or Office type 
applications?


But, list away as I'm currently doing major code fixes (better scroll-wheel 
support for one) anyway; if it's relatively straight-forward to do 
I'll do it.
Reichart:
31-Dec-2007
Should RebUI do anything that Windows and Mac don't?  Seems there 
are going to be places where a cool widget would save space, or allow 
for a neat trick, but............it also means something most people 
won't know or understand.
Ashley:
31-Dec-2007
Uploaded build#112 with extensive changes.


1) scroll-wheel support added to scroll-panel (CTRL+Scroll to scroll 
the horizontal scroller)

2) set-values and get-values fixed (added support for scroll-panel 
and fixed a few bugs)

3) Added a new widget, pill, that is basically a box with rounded 
corners

4) Changed the look of tab-panel so that the current tab is same 
as page background and remaining tabs have a solid color

5) splash requestor now accepts a file! or image! (so you're not 
forced to provide a spec block if you already have an image)
6) Experimental new logo

7) Color management is being totally overhauled (I'll post separately 
on this topic)


*** Do not sync this build if you want to retain the "old" look & 
feel ***
Ashley:
31-Dec-2007
RebGUI color management.


The "old" RebGUI color management system evolved by adding new colors 
to ctx-rebgui/colors as and when a new color was selected. Many of 
these colors (e.g. button, tooltip*, btn*) were widget specific. 
In all, 15 colors were defined. In addition to this, a number of 
hard-coded colors such as white, black, coal, red and blue were scattered 
throughout the system.


The effect of all this was to provide a means whereby *most* colors 
could be changed, but the design of a "theme" other than the default 
WinXP scheme was problematic.


The new color management system rationalizes these colors down to 
a base set of 8, being:

	page
	text
	theme-light
	theme-dark
	state-light
	state-dark
	outline-light
	outline-dark


with all existing "old" color references being converted to the "new" 
ones. page and text will usually be white and black (high contrast), 
with outlines being grey, and theme and state being variations on 
the same color. The updated request-ui shows how these themes can 
more easily be chosen (there is a drop-list beneath each of the theme 
and state groups that sets both light and dark to a similar color).


This is still a work in progress, and I am basing the model (and 
color selections) largely on those described in the "Quilt design 
style guide"; and colors / ideas from:

	http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines

 http://library.gnome.org/devel/gtk/unstable/gtk-Resource-Files.html
 (styles section)

A number of things have to come together to make this work:


 1) Conceptual model: do we have the right tokens to reflect all color 
 configurable aspects of the UI (e.g. is there a color word appropriate 
 for a highlight selection, a heading, etc)

 2) Are they named appropriately (e.g. is selected better than state-light?)
	3) What colors should be used in what context?


This last one is very tough. As a general rule I've followed the 
Quilt model and used outline-light for non-edit edges, theme-dark 
for edit edges and heading backgrounds, etc (you can find a crude 
list of usage cases under the new "Colors" tab of RebDOC).


But what about a widget like button? It potentially has the following 
color states:

	Unselected	theme-dark
	Focus		theme-light
	Button-down	?

and widgets such as sheet which might have:

	Headings	theme-dark with page font/color text
	Cells		page
	Edges		outline-light
	Selected cell	theme-light
	Forumla cell	theme-light
	Cell that cursor is currently over

and there are a number of ways of denoting this with color:

	as a background color change
	as a font color change
	as an edge color change
	as a combination of the above


In short, there are a lot of ways of implementing this. What I want 
needs to be simple and consistent with as few colors as possible. 
Any suggestions (including links to good color management techniques 
/ approaches) greatly appreciated.
Reichart:
8-Jan-2008
Ok, here are some other examples, and considerations when sized.


For example, when you get small, the "hand" looks like the REAL hand 
on the screen, which could confuse people.  So while it is fun at 
larger sized, it won't work once the pixels drop to less than 4x4 
each (my guess).


I think you might like the one in the lower right.  It is very RACEY, 
the italics make it look "fast" and the black and red were something 
I think you requested.

If you want me to try something special, or do a treatment like something 
else you have seen out there, just say the word.


This one is a Qtask syndicated Folder.  So any file we put in this 
folder from inside Qtask can be accessed by people outside of Qtask


http://www.qtask.com/files.cgi?tab=sFolderList&uuid=YG82XF3CFW8AQ6W5NYTXV9NKE3QT


So for example, since this came from the "REBOL SIG" project inside 
Qtask, Ashley, you can go into that project, and delete this file, 
which will effectively put it in the Trashcan, and this link will 
then point to an empty folder for people.
Graham:
18-Jan-2008
Just wondering how hard it would be to do a predictive text like 
widget
PeterWood:
18-Jan-2008
I think they do it that way to avoid having to use the mouse ...unless 
you can make the selection without using the mouse, choosing will 
be slower than typing.
Kai:
24-Jan-2008
I see how I can "talk" to , say, a text in a group by doing   set-text 
group/pane/1  but how  do I set the caption of a text in a group 
on the second tab of a tabgroup?
Graham:
21-Feb-2008
do you have to be on the tab panel you are replacing to use tab-panel/replace-tab 
?  I see the new layout appear on the current tab.
Ashley:
21-Feb-2008
do you have to be on the tab panel you are replacing to use tab-panel/replace-tab?
 ... No, see the following test case:

	t: tab-panel data [
		"A" [field]
		"B" [field]
	]
	button [t/replace-tab 2 [button]]

Click the button then tab "B".

... Was this related to the new look?

 ... yes, the new look is an extensive WIP that "breaks" build 112.

Are the function keys accessible under Linux?
 ... http://www.dobeash.com/RebGUI/user-guide.html#section-4.4
btiffin:
10-Mar-2008
Daniel; Check out http://www.rebol.org/cgi-bin/cgiwrap/rebol/view-script.r?script=layout-1.8.r
for a what you see is kinda what you get layout editor.   The tricks 
will be buried in the code, but it has to do with ordering the face/pane 
entries.  Also see http://rebol.com/docs/view-system.html#section-3
for a description of face/pane.
Graham:
15-Mar-2008
display "" [ area 100x100 options [ info ] on-click [ print "You 
clicked me"]] do-events

- the area does not respond to the on-click action whereas


view layout [ info 40x40 [ print "You clicked me" ]] works fine in 
VID
RobertS:
16-Mar-2008
There seems to be a problem in 2.7.6 on WIn XP
start  rebvire them go to console
do %rebui.r
editor %some_file_not_yet_existing.r

; now hit Save as : concole returns and both console and editor are 
locked up
; TEST

; REpeat without load of rebgui.r ; warning so such file and then 
Save As will save as that file no problem
btiffin:
17-Mar-2008
I tried once.  But it was more an exercise in linking RebGUI menu 
Find/Replace to area ... too many hacks to keep caret in synch, so 
instead of tarnish Dobeash with my lousy code ... I just didn't. 
  But a quick RebGUI display of an area isn't too hard to pull off, 
but you need to rely on the built in key handlers.  Sadly Find/Replace 
is not in the list, but you do get a spell checker 'for free'.  ;) 
  In Ashley's defence, it is not the design intent of RebGUI to be 
an editor.


I've not tried, but Anton has been pumping out a new editor ... may 
conflict less than  editor  dunno, but I kinda doubt it will work 
without the same types of problems.

Alternative is to use CALL and launch an external editor.
JohanAR:
23-Mar-2008
Is it possible to display a modal window, without using dialog? My 
program gets screwed up if display calls do-events and disables tooltips, 
but I don't want users mucking about with the main window while another 
window is open.


And speaking of which.. Is disabled tooltips in dialogs a new feature? 
I suspect it's the reason my tooltips stopped working a while ago 
:\
Graham:
23-Mar-2008
Maybe what i need to do is keep a record of all the active windows, 
unview/all and later on view them all again.
So, need a view/all windows [block!]
Graham:
11-May-2008
I've got a tab-panel next to a panel - where the panel is on the 
right.  I wish to hide the panel ( set the width to zero, and hide 
it ), and shrink the whole window by the space previously occupied 
by the panel.   But if I do this, the tab panel also resizes.  Is 
there a way I disable resizing temporarily?
Graham:
30-May-2008
An odd error .. if I do this on a table ... face/remove-row I get 
an error complaining of an invalid path.  I have to use the table 
name
Pekr:
18-Jun-2008
What do I need to "include", when doing rebface + rebgui? rebface.exe 
tour.r does not work ...
Pekr:
25-Jun-2008
Robert - there still has to be a leak in REBOL! Even if you try primitive 
hello world example, you start with 6MB of RAM, you do nothing, and 
after do-events it grows 3 - 4 MB, slowly, but constantly!
Graham:
30-Jun-2008
I've got some custom panels that I have a resizing routine written 
for them.  how do I trigger that to run when the main window resizes?
Graham:
7-Jul-2008
the MS demo expands in-situ which would be nice to do ... but I recreate 
the whole thing
BrettH:
18-Jul-2008
I'm trying to do some 'field navigation' within a rebgui form and 
cannot figure out how to get teh filed cursor to 'goto field'
Graham:
19-Jul-2008
this works 


do %rebgui.r

display "" [

label "Publication : "   

  publication: field  100x8   font  [  size: 18 color: black  shadow: 
  none  ]
					on-unfocus [ uppercase publication/text 
							     ; I'd like to jump to "page" field here
									
							   ]
		label "Date :"     

  date: field  30x8  font  [  size: 18 color: black  shadow: none  
  ]
		on-focus [ set-focus page false ]
		
		label "Page: "  

  page: field  20x8  font  [  size: 18 color: black  shadow: none  
  ]
		return
] do-events
BrettH:
19-Jul-2008
Mmm ! Your code sort of does the job, but your forcing the field 
Date to be skipped by it own on-focus trap
which would skip Date always,
what I'm trying to do is have Description

control the next field to 'visit' depending on what ever test I code 
in the on-unfocus
 attached to Description field.

for eg: ( pseudo code )

label "Publication : "

  publication: field  100x8   font  [  size: 18 color: black  shadow: 
  none  ]

  on-unfocus [ if desc-flag = 1 [ set-focus new-description ] [ set-focus 
  old-description ] ]

====

Your observation of 'reseting' focus back to Description field is 
an interesting one which I had not considered.
Graham:
19-Jul-2008
well, until Ashley tells us how to do it, you could hide a dummy 
field behind the date field to take the focus from the tab, and then 
make the decision from that.
7901 / 1157812345...7879[80] 8182...112113114115116