• 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
r4wp5907
r3wp58701
total:64608

results window for this page: [start: 10001 end: 10100]

world-name: r3wp

Group: !RebGUI ... A lightweight alternative to VID [web-public]
Ashley:
29-Mar-2005
Previous images were 18x18, while I'm using "standard" 22x22 ones. 
Everything else needs to be resized accordingly, but it's going to 
be hard-coded so a lot of the dynamic sizing code can go. Less is 
more. ;)
shadwolf:
29-Mar-2005
with a little  modification to para:  arround line 132 you can use 
both witout any over showing of text problem
shadwolf:
29-Mar-2005
know what next task is a true challenge making tables in the style 
of GUI4CLI ... I'm affraid to turn mad ;)
shadwolf:
29-Mar-2005
G4C TUT_MCListview

// ===========================================================
// A Multi Column (or Database) Listview..
// ===========================================================

WINDOW 126 90 367 373 "Listview"
	winattr style resize

xOnLoad
	// add some records to the listview & open..
	gosub #this AddRecords
	guiopen #this

xOnClose
	guiquit #this

// ===========================================================
// The listview
// - This is a normal MULTISELECT listview (the default).
// For this type to be triggered, you must double-click it.
// ===========================================================

XLISTVIEW 0 0 0 0 'The Title' "" var

	attr ID mylv
	attr resize 0022
	attr frame sunk

	// Give it a grid and allow the user to drag, drop & re-arrange
	// the lines - You can add more styles here..
	attr style grid/arrange/drag/drop/arrange

	// Add some columns. The first one we state with a '#'
	// in front to indicate we mean the 1st column.
	attr LVCOLUMN '#Item/width/120/TITLE/Description'

 attr LVCOLUMN 'Units/width/60/TITLE/Units/TYPE/number/JUSTIFY/RIGHT'

 attr LVCOLUMN 'Amount/width/60/TITLE/Amount/TYPE/number/JUSTIFY/RIGHT'

 attr LVCOLUMN 'Total/width/60/TITLE/Total/TYPE/number/JUSTIFY/RIGHT'

	// show the line double clicked..

 SetWinTitle #this 'SUM: $%Units x $%Amount = $($%Units * $%Amount)'


// ===========================================================
// This is a routine to add 100 records with various
// meaningless values to the above listview. Note how
// the fields can be used as normal variables.
// ===========================================================

xRoutine AddRecords
	local c

	use lv #this mylv

	// before we start, we HIDE the listview. This will
	// stop Gui4Cli from visually refreshing it every time
	// we add a record and will GREATLY increase the speed.
	// This will have no effect if the window is closed.
	// After we finish, we show it again..
	setevent #this mylv HIDE

	for c 0 100
		// add an empty record..
		lv add ''

		// Fill the fields with various values..
		%Item   = "This is Item $c"
		%Units  = $($c * 3)
		%Amount = $(($%Units / 2)*1000)
		%Total  = $($%Units * $%Amount)

	endfor

	// Show the listview again, refreshing the display..
	setevent #this mylv SHOW

// ===========================================================
// Right mouse button handling - Some menu choices..
// ===========================================================

xOnRMB


 QuickMenu -1 -1 'Select All/Remove selected/Add 100 records/#sepa/cancel'
	use lv #this mylv
	docase $$choice
		case = 0			// Select All
			lv select all
			break
		case = 1			// Remove selected
			lv delete selected
			break
		case = 2			// Add some records..
			gosub #this AddRecords
	endcase
Robert:
31-Mar-2005
tabbing: How about a tabbing for "forms" and a tabbing WRT group-boxes. 
CTRL+TAB could jump out of the group box to the next field/group 
box and SHIFT+CTRL+TAB would jump backwards.
Robert:
31-Mar-2005
splitter: adding a richt-click to reset splitter to original position. 
If users have screwed up their layout ;-))
Robert:
31-Mar-2005
tab: IIRC someone state it already. A scroll-able tab-heading.
Robert:
31-Mar-2005
tab / group: Is the DATA part realy required as a structural element? 
What about this?

tab-panel [
	size 1000x300
	"Tab1" [...]
	"Tab2" [...]

The idea is to implicitly add a tab for each STRING! BLOCK! pair.
]
Pekr:
31-Mar-2005
Rebol is so much free-form, that with something like VID, componentised 
(shared) feels, etc., you can get yourself into trouble and VID starts 
to look like a bit bloated, although it is really to say such thing 
about anything rebol related ...
Ashley:
31-Mar-2005
Robert

 1) Widget observations: all noted. LED is the read-only functional 
 equivalent of 'check used for things like system status displays, 
 etc

 2) Tabbing (basic version) is slated for 0.1.8, more advanced features 
 will have to wait until the base widget set is complete.

 3) DATA is a required structural element to ensure widget specific 
 initialization is performed by init *not* the display function.

 4) Implicit face usage has two big advantages: a) allows you to cut 
 and paste code between widgets; b) different widgets can share the 
 same code.

 5) RebGUI still lacks a few of the more complex list / table / menu 
 / treeview type widgets.

 6) Re: new projects. RebGUI is still ALPHA and the basic design may 
 fluctuate as the requirements of more complex widgets becomes clearer. 
 I wouldn't be building any commercial applications based on it quite 
 yet (not until it goes beta at least).

Pekr

 1) Also remember that VID was created against a much earlier version 
 of View, and that it is only recently that View functionality has 
 stabilized. One example of this is the extensive use of 'draw by 
 RebGUI compared to VID.

 2) Tabbing, like key mapping, is less of a technical issue than a 
 convention issue; but my aim is to be able to "drive" all RebGUI 
 widgets both with and without a mouse (although the priority is to 
 get the mouse behavior right first).
Geomol:
31-Mar-2005
I see a funny behaviour with the check widget. Left-clicking, as 
fast as I can, is no problem. Right-clicking fails sometimes. It 
seems, a fast double-click isn't noticed.
Ashley:
31-Mar-2005
Pekr: code will be shared where it makes sense, and it will be made 
obvious (i.e. no hidden or subtle dependencies).


Geomol: It's a windows specific problem (probably trying to access 
a context menu or something first). I noticed this a while back when 
mapping left / right mouse clicks to zoom in / out ... works fine 
on Linux though.
shadwolf:
31-Mar-2005
in all cases REBGUI is a good enhancement yet to VID :)
shadwolf:
31-Mar-2005
but it's a 1 month alive project Ashley and Vincent have done most 
of the work alone so if ppl will give a hand and help ashley concretly 
by apporting code things could advance faster
shadwolf:
31-Mar-2005
apporting code to any project is hard I understand this but a first 
step (what I try to do ) is to apport yet existing bunch of code 
that are fitted to REBGUI Ashley takes then the role of merger and 
last adapter. I hope this free some time for him  to focus on work 
of the engine.
shadwolf:
31-Mar-2005
Multitasking in rebol yes we have Francois Jouen  that done a multitask 
system in REBOL script
Ammon:
31-Mar-2005
Multi-tasking...  Was making a about your comment that you can only 
do one thing at once.
Ammon:
31-Mar-2005
I, for example, am working on porting my drop-down style and at the 
same time working on adding a refinement to Display to handle modal 
auto-closing dialogs...
Ammon:
31-Mar-2005
Well, from my POV...  Carl intended to have us build dialects that 
are better than VID.  There have been several attempts so far but 
none of them have made it far enough to actually be ready for mainstream 
usage.  I think that if we can actually produce a solid dialect that 
outperforms VID in enough areas then Carl will want to add it to 
the language or maybe even replace VID with it.
shadwolf:
31-Mar-2005
so we need to improve rebgui to dialectise it but I am affraid this 
apport a slower renderer and a more  consumtion
shadwolf:
31-Mar-2005
I'am very badd in dialects so I can't be of any use all my dialectal 
creation approche was learn thru makedoc it's good but not enought 
to imagine and write a vid like application
Ashley:
31-Mar-2005
Global Event System: looks like 'menu has to use it, and I don't 
know if we have a real alternative. One thing I've added to 0.1.8 
is a 'keep function that lets you specify what widgets you wish to 
use and sets to none everything not used by those widgets ... so 
if more complex widgets require global events then so be it.


Contributed code: I prefer simple code (that may need to be enhanced) 
over complex code (that may have to be pruned).


Multi-tasking: The RebGUI engine is 90% where it needs to be so I'm 
spending most of my time on widget integration at the moment.


View 2.0: We have to work with what we have, although I have made 
a concession to the future [AGG] with regards to RebGUI's use of 
draw in preference to image + effects.


Dialectise RebGUI: It would be relatively easy to make the specification 
more VID-like by having each attribute specified with a distinct 
datatype (and moving duplicate datatypes such as an 'offset pair 
to a keyword such as 'at) but you pay a big price in code complexity 
and efficiency; and I'm not convinced that inferred attributes ("this 
is a 3-part tuple so it must be a color, while this is a 4-part tuple 
so it must be a span") make code legibility and maintenance any easier.


None of this is to say I can't be convinced otherwise, this is why 
RebGUI is still ALPHA. ;)
shadwolf:
31-Mar-2005
Contributed code: sure but yet existing amazing thing wasn't thinked 
to be added to RebGUI so If we want a good time average and retake 
yet existing widget. I think it can be seen as an omage to those 
ppl that spent lot of time try to implement this widgets. If we find 
a way to include them it's like we have a parternity and a real look 
over what exists in the rebol free community that"s a king of concretisation 
and that allow us to improve faster I don't think pruning ctx-menu 
is slower that redone the work from scratch ;). And As I say earlier 
that shows our consern and attention to what exists in rebol free 
community ;). Like "Thank you man you give us this widget now look 
what we can do with how it grow and how it became self dependent. 
If your still want to apport to it or have some ideas on it to share 
with us your very welcome" :)
Carl:
31-Mar-2005
Personally, I think it would be very cool to have a non-RT GUI dialect 
that was better than VID, but just as flexible.  I wrote VID in very 
short period of time, and it was disigned for more than what it is 
typically used for.  For example, VID is written in such a way that 
it makes it easy to write something like the Layout script -- because 
you can return to the original VID source code from the face itself.
Carl:
31-Mar-2005
Good to be here. Had a few minutes extra, since there is a huge storm 
going on in this part of Florida, and everything is runing behind 
schedule.
Carl:
31-Mar-2005
If I had a lot more time, I would be doing a lot more work on VID, 
because the few missing styles are really annoying. So are the few 
areas like moded-dialogs that need more work..... as does the default 
text editing code.
shadwolf:
31-Mar-2005
CArl I'am agree with you VID is a very amazing system no challenge 
with it in any other langagues ... But The first thing that came 
to us when we show VID based GUI is " why does this window looks 
so wired..." The fact that I spent on in less time than in other 
langage (even IDE compositor based) is not relevent for the non programmer 
or informatic nerd (sorry for the nerd word ...). What he want is 
what he knows GUI that are sharp designed but in the convention he 
knows hehehehe  ;)
Carl:
31-Mar-2005
I'm thinking that if I can find someone who wants to work on VID, 
I will actually find a way to pay for that, you know-- it is that 
*important* for it to be fixed.
shadwolf:
31-Mar-2005
look WinXP some people consider it as a renoval and tru novety but 
showing them GNOME/Linux/ Enlightenment based interface and desktop 
they turn mad ;)
Carl:
31-Mar-2005
Yes.... those KDE/Gnome folks have done a nice job these days -- 
it would be great to get some people like that working on REBOL GUIs 
-- that would be used by many REBOL users.
Carl:
31-Mar-2005
I think that each time we tried to improve VID as a group, we got 
stuck because we tried to add too many things and make it too general. 
There are many improvements that I like, but in the end, it is more 
important to get them released than to make them perfect in every 
way.
shadwolf:
31-Mar-2005
Carl sure but in this point of view you loose attraction for RT ... 
and View vm grow grow and needs external things to be polished or 
to insert more evoluated (in the spirit of a user whan you have a 
menubar and a icon dockable bar it's evolued when you get them transparent 
it's even more evolved  :) )
shadwolf:
31-Mar-2005
I think feed it other is a good tactics that allow us to rethink 
some issues and you to get evolve too the existing system claiming 
that we still are in the Keep it simple ability ;)
Carl:
31-Mar-2005
I am hoping that when REBOL/Coop goes online, we will have a good 
way to deal with these issues.  We will be posting a lot of REBOL 
code (and C code too) for developers who feel that they can make 
them better in various ways that are most important to them.  In 
other words, if Pekr wants the REBOL console to scroll better, then 
he will have access to make that happen.
shadwolf:
31-Mar-2005
I'm certain this will start a newer trade impact and even attrack 
those borring people that do all the day clic and sell apps ;)
shadwolf:
31-Mar-2005
making art deals with beauty not with capitalism :) But sure in this 
materialist word if you can sell your art at a good price it's even 
better but that's not the main purpose ;)
shadwolf:
31-Mar-2005
Carl me too that's why I'm support REbGUI and I was claiming for 
a such ambisious project since many time ;)
shadwolf:
31-Mar-2005
instead of carring in our hown corner our little tasks it's better 
to try  to merge our knowledge that's not new GNU and other free 
software projet/foundation are doing it yet (like blender what amazing 
software ... think of it it is a very hudge project and ambisous 
(it's using PYTHON API to make script what could be done using rebol 
in blender 3D renderer software for scripting ??? ))
shadwolf:
31-Mar-2005
REbGUI has a simplicity in it that most of other intens doesn't have 
that's a good point to hope for futur  improvements ;)
shadwolf:
31-Mar-2005
being simple is not only a better CPU usage but it offers too some 
rest and easy path to our totured brains ;)
Robert:
1-Apr-2005
Maxim, how about using RebGUI as a base? Or are you already looking 
into this?
shadwolf:
1-Apr-2005
hum depending on the size if it's low sized you can put it on rebol.org 
with a comment and naming it ARROW4REBGUI.R for axample
Gregg:
1-Apr-2005
I'll need to look at dust it off a bit I think. If you don't see 
it, via mail or on REBOL.org, in the next few days, please ping me 
on it.
Gregg:
1-Apr-2005
Chris noticed that under AGG things are a bit blurred since we use 
draw commands.
shadwolf:
1-Apr-2005
Asley if you want to have a look to it it's here (no adapted to RebGUI 
yet ;) maybe tomorrow or sunday comming with a dropdown first implementation 
at the same time if I have enought time ;) ): http://shadwolf.free.fr/arrow-RebGUI.r
shadwolf:
2-Apr-2005
I work a some time on the porting of arrow widgets  basing me on 
gregg submition ;)  you can find it there: http://shadwolf.Free.fr/arrow-RebGUI-port.r
some work must be done ;) but I think Ashley could understand more 
than me what is needed ;)
PeterWood:
3-Apr-2005
Ashley, it would be really interesting to learn why you decided to 
write RebGUI and how you went about doing it. It would make a great 
article for Rebol.org.
PeterWood:
3-Apr-2005
It would still be great to read a short article from Ashley.
Ashley:
3-Apr-2005
My post of 2-Mar-2005 in the View group which kicked things off:


Which leads (sort of) to my next question. Does anyone think it is 
worth developing a simple, high-performance, low-memory GUI alternative 
to VID? The aim would be to have it built on View from the ground 
up such that you could (for example) use enface / rebface (or equivalent) 
without needing %view.r (and the over 120 KB of mezz it pulls in). 
If there's sufficient interest I'll document and release the Alpha 
implementation I have.


I'll jot down a few notes for an article before I forget too many 
of my streams of thought. ;)
Gabriele:
3-Apr-2005
Chris: i think that your example above turned out being a bug in 
gamma handling in earlier versions of view/agg. i'm not sure if it's 
the same on the latest version (especially if you adjust gamma properly 
for your monitor - the default should be ok for crt monitors i think)
Scot:
4-Apr-2005
Ashley. I would suggest talking to Maxim...I think he may have quite 
a few of those things worked out.
Vincent:
4-Apr-2005
a security issue with new password field: with the use of ctrl-left 
/ ctrl-right, spaces in hidden string are easy to find.
shadwolf:
4-Apr-2005
Have a nice try ;) It was my birthday today 4/4/5 I reatch 28 yo 
... Damn !!!
shadwolf:
5-Apr-2005
My actual effort in dev leads me to rebGUI project so MDP-GUI is 
in pause until rebGUI reatch stability then I would make a brand 
new version of MDP-GUI including the RebGUI look&feel. Once all this 
work will be done I could switch back to "One render/input window" 
problem :)
shadwolf:
5-Apr-2005
But as you say it normand it's not an easy topic so being able to 
solve it will be in my opinion a community effort because we need 
a little more than TDM  (to render tables for example... )
Maxim:
5-Apr-2005
is there a one-liner I can type on rebol console I can use to see 
something built with rebGUI. just curious how it looks and feels...
shadwolf:
5-Apr-2005
so things like view layout [ btn "EXIT" [quit]] would be writed in 
more than a sigle line in REBGUI ;)
shadwolf:
5-Apr-2005
Ashley : Chris made a minimalistic version of the arrow widget based 
on my actual version HERE IS THE LINK:  http://www.ross-gill.com/r/arrow-RebGUI-port.r
about 100 lines  ;)
Ashley:
9-Apr-2005
Latest build available at: http://www.dobeash.com/files/RebGUI-019.zip

Highlights include:


 - Integrated language localization (see http://www.dobeash.com/it/rebgui/locale.html)
	- New arrow widget (run %arrow.r to see it in action)
	- Use of as-pair
	- Minor updates to pwd-field
	- title-group simplified

Known issues


 - radio-group fails under 1.2.1 and rebface 1.2.10 (but not view 
 oddly enough). Comment / uncomment radio-group block under %tour.r 
 to see.
	- Need a "safe" implementation of 'construct for 1.2.1
Ashley:
9-Apr-2005
Pekr: It's all explained in http://www.dobeash.com/it/rebgui/locale.html


Brock: radio-group does this already (set of mutually exclusive choices) 
and I was contemplating a check-group widget which uses the data 
attribute to store a block containing state information for each 
check-box in the group.


shadwolf: menu and tabbing are still WIP. The arrow widget is integrated 
into %widgets.r, I just ran out of room (> 1024 pixel width) with 
the current %tour.r. Once the scroller and spinner widgets are complete 
I'll redo %tour.r breaking it down into sub-widget categories (the 
real solution is to enhance the tab-panel widget but one thing at 
a time).
Brock:
9-Apr-2005
Since you are also responsible for RebForms maybe this can be a feature 
request.  In .Net, you can have a form Validation Control, that confirms 
all of the validation checks on the fields of the form.  You are 
also allowed to indicate for each form element, whether it is to 
be included in the form-level validation or not (ie, free form text 
fields typically don't need validation).
Ashley:
9-Apr-2005
Brock: validation is also on my ToDo list (you can see the beginnings 
of it in the field widget character length limits). A couple of questions 
though (both how it is done in .Net and how it *should* be done in 
RebGUI):

	What's the granularity of the validation?

 Does it allow the specification of a mask (e.g. for phone numbers)?

 Is it validated as I type, when I leave the field, or when I save 
 the form? (Or is it flexible enough to let me choose the level of 
 validation?)


shadwolf: Haven't really thought about it much, but I figured the 
tab-panel redraw feel was a logical place to do the work.
shadwolf:
9-Apr-2005
oki thank you I will try to implement it if I have a succefull code 
I'll share it with you
Vincent:
10-Apr-2005
Proposal: IMHO, it would be better to use the VID convention for 
auto-size: negative size -> auto-size

as 9999 can lead to weird errors and crashs, if someone set dimensions 
to 999x999, or worst 99999x99999 .

...and 10k screen size isn't that improbable (the size of a virtual 
screen can be that big!)
Ashley:
10-Apr-2005
The "+" version of as-pair has fixed all the 1.2.1 crashes (and got 
rid of a few 1.2.1 specific work arounds).
Vincent:
10-Apr-2005
The memory leak is a known behaviour. The memory allocated is free 
by the GC after a total of 1 - 2 megabytes.

http://www.rebol.org/cgi-bin/cgiwrap/rebol/ml-display-thread.r?m=rmlYRJQ
Ashley:
10-Apr-2005
I was wondering when someone was going to ask about the whole 9999 
thing. ;) It's an optimization to avoid a redundant size assignment 
prior to 'size-text but has the problems you quoted. I'll probably 
change it back to -1x-1 in the next build or two.
shadwolf:
11-Apr-2005
in it the arrow/action is not done when we make a click on them ... 
pretty anoying for the rest ...
shadwolf:
11-Apr-2005
tab-panel: make face [
		color:	none
		pane:	[]
		l-arw: none 
		r-arw: none
		dir-buttons: false
		feel:	make default-feel [
			redraw: function [face act pos] [test-size test-wid] [
				if act = 'show [face/pane/1/size: face/size - 0x20
; 					
; 				 	test-wid: face/pane/1
; 		    		test-size: test-wid/size/x
; 					if greater? test-size face/size/x  [
; 						either not dir-buttons [
; 				 			dir-buttons: true
; 		    				insert tail face/pane face/l-arw: make arrow [
; 	        					size: 20x20
; 		    					offset: as-pair (face/size/x - 40) 0
; 		    					data: 'left
; 		    					action: [print "you clicked left" ]
; 	     					] do face/l-arw/init
; 		    				insert tail face/pane face/r-arw: make arrow [
; 	        					size: 20x20
; 		    					offset: as-pair (face/size/x - 20) 0 
; 		    					action: [print "you clicked right" ]
; 		    					data: 'right
; 	     					] do face/r-arw/init
; 	 					][	
; 	 						face/r-arw/offset: as-pair (face/size/x - 20) 0 
; 	 						face/l-arw/offset: as-pair (face/size/x - 40) 0 
; 	 					]
; 	     			]

; 			    print "la liste des bouttn est plus grande  que ce que l'on 
voit!!!" 
		    	]
			]
		]
		
		init:	has [tab-offset last-tab] [
			;	create main display area
			insert pane make face [ offset: 0x20 edge: default-edge]
			;	add tabs
			tab-offset: 0x0

   insert tail pane make face [ offset: 0x0 pane: [] color: none ]
			container: last pane

   insert container/pane make face [ offset: 0x0 pane: [] color: none]
			foreach [title spec] data [
				insert tail container/pane/1/pane make face [
					offset:	tab-offset
					size:	1x20
					pane:	[]
					text:	title
					effect:	reduce ['round edge-color 5 'draw copy []]
					resize:	none
					font:	make default-font [align: 'center valign: 'bottom]
					para:	default-para
					feel:	make default-feel [
						over: func [face act pos] [
							either act [

        insert face/effect/draw compose [	; compose required for AGG betas
									pen over-color
									line 3x1 (as-pair face/size/x - 4 1)
									line 2x2 (as-pair face/size/x - 3 2)
									line 1x3 (as-pair face/size/x - 2 3)
								]
								show face
							][

        if face/parent-face/parent-face/parent-face/pane/1/pane <> face/data 
        [	; clear unless selected
									clear face/effect/draw
									show face
								]
							]
						]
						engage: function [face act event] [pf old-face] [
							if event/type = 'down [
								pf: face/parent-face
								pf3: pf/parent-face/parent-face

        if pf3/pane/1/pane = face/data [return]	; has a new tab been selected?
								clear face/effect/draw
								old-face: pick pf/pane pf3/data			; find previous tab
								old-face/resize: pf3/size				; remember last size
								old-face/size: old-face/size - 0x1		; deflag old
								clear old-face/effect/draw
								face/size: face/size + 0x1				; flag new
								face/feel/over face true 0x0
								pf3/data: index? find pf/pane face		; set new pane#
								pf3/pane/1/pane: face/data				; init tab panel
								if pf3/size <> face/resize [				; recursive resize
									span-resize pf3/pane/1 pf3/size - face/resize
									face/resize: pf3/size
								]
								show pf3
							]
						]
					]
				]
				last-tab: last container/pane/1/pane

    last-tab/size/x: 10 + first size-text last-tab	; set tab title width

    display/layout "" spec last-tab					; generate tab spec into tab 
    pane
				last-tab/data: last-tab/pane					; swap pane into data
				last-tab/pane: none								; clear pane
				last-tab/resize: size							; original panel size

    tab-offset/x: tab-offset/x + last-tab/size/x	; set offset for next 
    tab title
			]
			print "size et countainer a la con !!"
			probe size/x
			container/size: as-pair size/x 20
			probe container/size/x
			container/pane/1/size: container/size

   container/pane/1/pane/1/size: container/pane/1/pane/1/size + 0x1	; 
   flag 1st tab
			data: 1								; set pane#
			pane/1/pane: container/pane/1/pane/1/data			; init tab panel

   container/pane/1/pane/1/feel/over container/pane/1/pane/1 true 0x0	; 
   flag first as active
		]
	]
shadwolf:
11-Apr-2005
now I have a new bug the 2 last header button are inserted into the 
secon tab-panel (the demo one ;) ))
shadwolf:
21-Apr-2005
ASHLEY  LOOK TO PRIVATE FOR A  SCROLLER WITH NONE  JITTERRING DRAGGER 
IMPLEMENTATION.
Gregg:
21-Apr-2005
Excellent Shadwolf. Glad to see things are still active and progressing 
on this. I wish I weren't so busy at the moment, and I hope the community 
will help to make RebGUI a model for future projects.
Ashley:
24-Apr-2005
Alpha2 build available at: http://www.dobeash.com/files/RebGUI-020.zip

Highlights include:


 - New, unit based sizing model (see http://www.dobeash.com/it/rebgui/display.html)

 - Improved language localization (see http://www.dobeash.com/it/rebgui/locale.html)

 - New arrow, chevron, check-group, led-group, scroller, spinner and 
 drop-list widgets
	- Lots of minor fixes
	- show redefine removed
	- Use of -1 instead of 9999 to denote auto-size
	- Aesthetic improvements (use of gradients)
	- %tour.r substantially rewritten

Known issues

	- spinner and drop-list widgets need more work
	- scroller needs more work (resizeable dragger)

In progress

	- Improved tab-panel (shadwolf)
	- Menu (cyphre / shadwolf)
	- tabbing
	- field input validation (field input masks, etc)

That leaves less than half a dozen widgets to go!

	list		single column
	listview	multi-column
	treeview
	popup-menu	context menu
	status		status bar with one or more “segments”
Robert:
24-Apr-2005
Great stuff!! One question WRT fields uses in specification and runtime, 
for example LED-Group. Is it possible to alter the led-group content? 
Adding or removing possible entries in it? Or is this a one-time 
action when the widget initializes?
Group: SQLite ... C library embeddable DB [web-public].
Ingo:
5-Apr-2006
Uuups, seems I fed the wrong data ... 

guid1 in the previous post was not the full guid as a thought, but 
the first character of said guid.
Ingo:
5-Apr-2006
So, the error in one small message: 

>> sql ["select * from person where guid = ?" #"a"]

** Script Error: length? expected series argument of type: series 
port tuple bitset struct
** Where: switch
** Near: *bind-text sid i val length?
Ashley:
5-Apr-2006
If you're using CONNECT/direct then char is not an available datatype 
(and you would have had the same problem trying to insert a char). 
What does the raw data look like? I suspect it is: {#"a"}
Robert:
7-Apr-2006
Ok, there seem to be some companies that offer special SQLite DLLs. 
Ashley, maybe you can have a look to see if the DLL interface is 
compatible? I think there shouldn't be big changes necessary. Take 
a look at: www.sqlcrypt.com
Robert:
7-Apr-2006
Yes, but for querying I need to encrypt the data as well to be able 
to select it. Don't know if this is a big performance hit.
Ashley:
7-Apr-2006
If it's only TEXT types you need to encrypt then we could always 
add a /secure refinement to CONNECT that would force encrypt / decrypt 
on all TEXT bind variables. Performance wouldn't be too bad as values 
would only be encrypted [once] on INSERT and SELECT, the actual query 
(which could potentially hit millions of rows) would be comparing 
encrypted strings and would only need to decrypt strings that form 
part of the result set. Very similiar to the overhead that MOLD/LOAD 
currently incur when not using the /direct refinement.
Graham:
7-Apr-2006
Does sqlite have a "like" command for searching within text fields 
?
Robert:
8-Apr-2006
IMO encryption should be on a lower level, on the file level. I don't 
want to care about using encryption in my application, I just want 
to set a flag that the database file gets encrypted.
Robert:
8-Apr-2006
Background: I'm building up a massive benchmark database for cost 
data. And I need to encrypt all information in it.
Robert:
22-Apr-2006
The SQLite docs say:

 If the optional IF NOT EXISTS clause is present and another table 
 with the same name aleady exists, then this command becomes a no-op.
Robert:
23-Apr-2006
Did anybody tested to open sqlite.r generated databases with a database 
manger? I can't. In one tool I can see the database but not tables, 
even I have created one.
Ashley:
23-Apr-2006
anybody tested to open sqlite.r generated databases with a database 
manger?
 Not sure what you mean here. The following works fine for me:

	c:\> sqlite3.exe my-db.db

docs state that I get back the number of columns and rows
 ... no longer the case (docs need to be updated)


Most efficient way to get number of rows is sql "select count(*) 
from my-table"


Number of columns can be found by: (length? describe "my-table") 
/ 6

I can't get back the columns name

 ... use the DESCRIBE command, or CONNECT/info (which then populates 
 sqlite/columns and sqlite/widths for every query; or alternatly, 
 set sqlite/col-info? true / false for a particular query).
Ashley:
23-Apr-2006
A simple rows function:

	set 'rows make function! [
		"Return row count."
		table [string!]
	][
		first sql/flat/direct reform ["select count(*) from" table]
	]

just add it to the body of the sqlite context.
Robert:
24-Apr-2006
WRT encryption. I found one implementation (you need to buy a license) 
that supports transparent encryption. IIRC I posted the link some 
time ago. I will have a look at the C code and there at the storage 
stuff to see how hard it is to add an AES encryption of storage pages. 
IMO it can't be that hard.
BrianH:
30-Apr-2006
I was just reading the User Guide on that site and I noticed that 
there were some parts of the docs on the DESCRIBE function that you 
seemed to have some questions about, particularly the meaning of 
some of the returned columns. (Sorry if I am in error about that.)


- On the table column listing, the notnull column refers to whether 
you are allowed to insert a NULL in that column. The pk column tells 
you whether the column is a primary key. Primary keys in SQLite are 
always integer and are their way of doing autonumber fields.


- On the indexes listing, a unique index also makes sure that the 
combination of values that the index applies to won't be duplicated 
in the table.
Ashley:
30-Apr-2006
Thanks, I've updated the page (replacing my shorthand for a flag, 
?, with the word flag). If anyone has a description of the columns 
for FKeys just holler and I'll add it in.
BrianH:
1-May-2006
No, this is a diagnostic table generated by a pragma statement. It 
isn't really a table internally. Still, the key for this "table" 
is (id,seq) and it is generated by a pragma that takes the table 
name as a parameter, so it is a seperate "table" for each real table.
BrianH:
1-May-2006
It really is a linked list internally - that's why I called it that 
:)
BrianH:
1-May-2006
Each "row" of the "table" refers to a column referenced by a foreign 
key that may refer to more than one column.
BrianH:
1-May-2006
And a table may have more than one foreign key.
BrianH:
1-May-2006
Still, you could make a tool that actually read these foreign keys 
and checked them externally if you want...
BrianH:
1-May-2006
It's kind of cool really when you read how this is done. I guess 
things can be a lot more interesting for a single-user embedded database 
engine. You can see where SQLite gets its high performance.
Robert:
1-May-2006
I have to take a look at the C code. But #pragma stuff is compile 
time...
BrianH:
1-May-2006
No, not C pragma, a set of PRAGMA statements that SQLite extensions 
to SQL, for settings and diagnostics.
Robert:
8-May-2006
Q: If I have a table with let's say 1 million records and I do a 
query that returns 250.000 records as result set. Do I get all of 
them copied into Rebol? Or can I access this result set "pagewise"?
Robert:
8-May-2006
So, what can be done is SELECT ... LIMIT n OFFSET m. At least this 
can handle the result set in defined block sizes on the application 
level. Of course paging requires a new query each time.
10001 / 6460812345...99100[101] 102103...643644645646647