r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!RebGUI] A lightweight alternative to VID

Graham
19-Oct-2006
[4831]
haven't
Louis
19-Oct-2006
[4832x8]
Ok, here it is: 


rebol [
    title: "CRITICAL CHAIN To-Do List Maker"
    owner: "Louis A. Turk"
    rebol: none
]
either exists? %session-time.txt [   ;for digital timer
    session-time: to-time read %session-time.txt
][
    session-time: 0:00:00.000
    write %session-time.txt session-time
]
time-start: now/precise
do %rebgui.r
;WHAT IS rebgui-ctx.r and where do I get it?????????????
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 "verdana"]

if exists? %project-list.txt [project-list: read %project-list.txt][write 
%project-list.txt [] project-list: []]

do show-cc: make function! [] [
display "CRITICAL CHAIN To-Do List Maker Version 1.0.0" [

    ;HOW CAN THE FOLLOWING TWO LINES BE CONVERTED TO WORK WITH RebGUI????????

    ;banner "0:00:00" rate 1 effect [gradient 0x1 0.0.150 0.0.50] 115x24

    ;feel  [engage: func [face act evt] [face/text: copy to-string round 
    (session-time + (difference now/precise time-start)) show face]]
    tab-panel #HW data [
        "Projects" [
            label "Project Name:" project-name: field  144x5

            label "Priority:" priority: drop-list 30 #W "1" data ["1" "2" "3" 
            "4" "5" "6" "7" "8" "9" "10"] 10x5
            return

            label "Objectives:" label "                                      
                                                                             
                                        Exchange Rate" exchange-rate: field 20x5
            return
            area 200x50
            return
            label "Deliverables:" 
            return
            area 200x50
            return
            button "Save" [show-text ex-status "Saved"]
            button "Add" [show-text ex-status "Edit"]
            return
        ]
        "Tasks" [

            ;WHY DOES THE FOLLOWING LINE ALWAYS DISPLAY A BLANK STRING?????????

            label "Project:" t-project-name: text (either <> "" project-name/text 
            [(form project-name/text)]["ERROR: Project NAME field is empty."]) 
            80x5
            label "Task Name:" t-name: field 79x5
            return
            label "Description:" 
            return
            t-description: area 200x50
            return

            label "Vender/Work Place:" t-vw-place: drop-list "Mega Mall" data 
            ["Grand Hardware" "Mega Mall" "Pasar Lima"] 63x5

            label "Resources Needed:" t-resource: drop-list "Louis A. Turk" data 
            ["Bus to Manado" "Louis A. Turk" "Caleb Turk" "Samuel Turk" "Compaq 
            SR1520NX"] 63x5
            return

            label "Total Hours Required:" t-hours: drop-list data [0.2 0.4 0.6 
            0.8 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 
            15.0] 14x5
            label "Cost:" t-cost: field
            return
            return
            button "Save" []
        ]
        "Venders/Work Places" [
            label "Vender/Work Place Name:" vw-place: field 152x5
            return
            label "Street Address:" vw-street: field 171x5
            return
            label "City:" vw-city: field 103x5 
            label "State" vw-state: field 38x5 
            label "Zip:" vw-zip: field 23x5
            return
            label "Phone 1:" vw-phone1: field 29x5
            label "Phone 2:" vw-phone2: field 29x5
            label "Fax:" vw-fax: field 29x5
            label "Email:" vw-email: field 48x5
            return
            label "Contacts: " vw-contacts: field 181
            return
            label "Notes:" 
            return
            vw-notes: area 200x50
            return
            button "Save" []
        ]
        "Resources" [
            label "Name:" r-name: field 100x5
            return
            label "Cost:" r-cost: field 30x5 

            label "per" r-label: drop-list data ["Hour" "Day" "Week" "Month" 
            "Year"]
            return []
        ]
        "Make Lists/Charts" [
        ]
        "How To" [
        ]
        "Help" [
        ]
    ]
]
] ;end show-cc
do-events
My questions are in the code. Look for ???????????????
I have another question also. I need a button that set a switch and 
display different text on the button to show how the switch is set. 
Does reb-gui have such a button?
Pardon all the obvious typos. set = sets, and display = displays
Anton, I'm running REBOL/View 1.3.2.3.1 5-Dec-2005 Core 2.6.3. I'm 
not encapping....yet. I do not know why I sometimes get the error 
message but usually not.
Now I do not seem to be getting the Microsoft error message at all, 
but I don't know what I changed to make a difference.
Unfortuanately, I have to leave to run some errands. It will probably 
be tomorrow tonight or tomorrow before I can get back.
tomorrow tonight = tonight
Anton
20-Oct-2006
[4840]
Well, from a bug-isolating point of view, it's not much use unless 
you can reproduce the bug at least in a semi-reliable way.
Anton
21-Oct-2006
[4841x8]
1) Convert the next two lines to rebgui


;banner "0:00:00" rate 1 effect [gradient 0x1 0.0.150 0.0.50] 115x24

;feel  [engage: func [face act evt] [face/text: copy to-string round 
(session-time + (difference now/precise time-start)) show face]] 


(Note; to-string makes a copy for you already, so no need to copy 
again.

Actually, showing the face converts face/text to string for you automatically...)
display "" [my-text: text 32x10 "0:00:00"] 
do bind [
	font: svv/vid-styles/banner/font 
	effect: [gradient 0x1 0.0.150 0.0.50]
	feel: make face/feel [
		engage: func [face action event][
			if action = 'time [
				face/text: now/time ; <-- set the time as you wish
				show face
			]
		]
	]
	rate: 1
	show self
] my-text
do-events
2) "Why does the following line always display a blank string ?"


t-project-name: text (either <> "" project-name/text [(form project-name/text)]["ERROR: 
Project NAME field is empty."]) 80x5

It is unclear to me what you want here exactly.
The code in the parens is only evaluated once, at layout time.
But project-name/text hasn't been set to anything at this time
(other than maybe a default empty string.)

Do you want the t-project-name/text to dynamically reflect the status
of the project-name field ? That is, to update as you type ?

But let's test with some shorter code:
display "" [
	project-name: field 

 t-project-name: text (either <> "" project-name/text ["not empty"]["empty"])
] do-events
The idea is to modify the field so whenever you type a key, the t-project-name 
is shown,

and to modify the t-project-name REDRAW so it sets its own text depending 
on the status of the field's text.
Let's look at them:

probe project-name/feel
probe t-project-name/feel
Let's modify the project-name key handler, appending the show.
project-name/feel: make project-name/feel [
	use [body][

  body: second :engage ; we get the engage function body block using 
  SECOND

  append second third body [show t-project-name] ; <- add this snippet 
  of code to it
	]
]


And let's modify the t-project-name REDRAW function (it has no feel 
so we make one
from the default FACE feel):

t-project-name/feel: make face/feel [
	redraw: func [face action position][
		if empty? face/text: project-name/text [face/text: "ERROR:"]
	]
]

Now all together:
display "" [
	project-name: field 

 t-project-name: text 50 (either <> "" project-name/text ["not empty"]["empty"])
]

project-name/feel: make project-name/feel [
	use [body][

  body: second :engage ; we get the engage function body block using 
  SECOND

  append second third body [show t-project-name] ; <- add this snippet 
  of code to it
	]
]

t-project-name/feel: make face/feel [
	redraw: func [face action position][
		if empty? face/text: project-name/text [face/text: "ERROR:"]
	]
]

do-events
Ashley
21-Oct-2006
[4849x2]
Uploaded build#36 which adds a no-divider option for table, corrects 
resizing problems with info areas, and adds viewed? func if not defined 
(i.e. script is being encapped with enface).
Graham, ticket #53 is working under latest build and I could not 
reproduce drop-list problem. Also note the no-dividers option ;)
Louis
21-Oct-2006
[4851]
Anton, thanks! I just arrived back home. I'll try your code Monday 
and get back with you.
Anton
21-Oct-2006
[4852]
Cool. :)
Maarten
21-Oct-2006
[4853]
Is there a tree widget for RebGUI? I need to build something to browse 
the filesystem
Jerry
21-Oct-2006
[4854]
Hello Maarten, I have a homemade tree view. It's not complete yet, 
but it works. I was planning to make it complete, but I stopped because 
I am waiting for REBOL 3 and VID+. Anyway, If you want to take a 
look at my homemade TreeView, send me an email [xy-:-cai-:-msa-:-hinet-:-net].
Ashley
21-Oct-2006
[4855]
Is there a tree widget

 ... no, but the request-dir function would be much better if there 
 was one.
Graham
21-Oct-2006
[4856x3]
Thanks Ashley .. I'll test it now.
I get this with ticket #53 and the lastest table.r

probe
["A"]
[1]
remove and probe again
[none]
[1]


So, not working for me.  Do I need something more than the table.r 
?
but the no-dividers is working fine!
Ashley
22-Oct-2006
[4859]
Hmm, I'm running build#36 and get the following when running the 
test case from ticket# 53:

click on "A" to hilight, then "Probe":

["A"]
[1]

then click "Remove" followed by "Probe":

none
[]

Replace the display title with:

	display join "Build " ctx-rebgui/build ...

It should display "Build 36".
Louis
22-Oct-2006
[4860]
Anton, your code works great, as I was confident it would. Many thanks!
Anton
22-Oct-2006
[4861]
Very good :)
Claude
22-Oct-2006
[4862]
it will be good to insert cyphre widget (table and tree) into current 
version of RebGui !!
Graham
26-Oct-2006
[4863]
I've got the same image in different layouts and it assumes different 
shapes!
Pekr
26-Oct-2006
[4864]
As for tree-view and menu - no need to reinvent the wheel - Cyphre's 
got really decent ones. The question is, how much would it take to 
redo them for RebGUI
Graham
28-Oct-2006
[4865x2]
what's the background color in rebgui ?  I want to place some invisible 
text ...
white ..
Pekr
31-Oct-2006
[4867]
Would it be difficult to make Rebgui look by default as Network Detective? 
IMO this is example of nice and attractive app design, still close 
to OS and less funky than VID ....
Robert
31-Oct-2006
[4868]
I think you have to touch every widget and create the eye-candy.
[unknown: 9]
31-Oct-2006
[4869x2]
Pekr, send me a link to a screen shot of it?
Is this Maarten's
Pekr
31-Oct-2006
[4871x2]
http://mail.canarie.ca/MLISTS/tech/att-1118/01-detective_run_en.png
yes, Maarten's. Robert is right, every widget would have to be a 
bit adapted. IMO the biggest problem is with tabs - they simply don't 
work on dark background - they look like few pixels error during 
rendering. The space between tabs is not big enough.
[unknown: 9]
31-Oct-2006
[4873]
I agree that NREN is cool looking.
Pekr
31-Oct-2006
[4874]
e.g. with Cyphre's styles, tabs even don't touch one each others 
- http://www.xidys.com/cyphre-styles.jpg
[unknown: 9]
31-Oct-2006
[4875x2]
I'm using it now.
Very clean, very nice.
Pekr
31-Oct-2006
[4877x2]
but I noticed there is one trick - not to put tabs directly on the 
background, instead try to put them in a box (groupbox?)
Nren is imo nice compromise, because - it looks professional enough, 
not dull, yet it bears its own style ...
[unknown: 9]
31-Oct-2006
[4879x2]
http://edr.euro.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGControls/chapter_18_section_7.html
Anything we would want to do has been described by apple.