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

World: r3wp

[I'm new] Ask any question, and a helpful person will try to answer.

Henrik
18-Nov-2008
[1526]
LAYOUT produces a tree of objects. Each object is a face. VIEW displays 
that tree of objects.
amacleod
18-Nov-2008
[1527]
Some times people call the main window 'main' but its not part of 
rebol syntax.
Anton
18-Nov-2008
[1528x2]
Yeah, you can call it whatever you want (avoiding other default rebol 
global words, of course).
I usually call the one window in my one-window apps WINDOW. eg.

	window: layout [...]
	view window

which, in simple cases, can be compressed to:

	view window: layout [...]
I split into separate lines because I often want to put stuff in 
between, eg. a window resize handler.
Sunanda
19-Nov-2008
[1530]
Hope I am not adding extra confusion by adding this attempted explanation...

** Many applications will have a single VIEW LAYOUT [...] to display 
everything.

** They can then use SHOW and HIDE to selectively make displayed 
faces visible or not.


** If you have several sets of controls that need to replace each 
other (like when you click a tab) then subpanels within the one VIEW 
is the way to go:

** You have a separate LAYOUT for each subpanel. (You probably got 
the idea that the main view is called MAIN from Carl's subpanel examples. 
It can be called anything).

** To SHOW a subpanel, you set the panel contents to the appropriate 
LAYOUT.


** Finally, as Gregg says, you can have multiple, independent windows 
using VIEW/NEW. Best to work up to that slowly :-)
Reichart
19-Nov-2008
[1531]
Sunanda,  that was pretty usefull, is this written up this clearly 
in a wiki somewhere on the web?
Sunanda
19-Nov-2008
[1532]
Thanks.....Not as far as I know. I think all I was doing is putine 
some context on Car's subpanels how-to:
http://www.rebol.com/how-to/subpanels.html
Reichart
19-Nov-2008
[1533]
Yes, this is why I want all docs in Wikis.

Each person learns differently, which is why it is nice to have different 
approaches to the same issue.


Your simple list of declarative facts is the way I like to learn 
(followed up with some simple examples, and then some complex examples 
afterwards, hopefully with some comments that explains why it is 
complex).
DavidR
19-Nov-2008
[1534x2]
Thanks everyone for your explanations have tried a couple of scenarios 
using the subpanels method have not been successful yet but will 
need to persevere!
Yes amacleod I could not find any rebol reference to main yet it 
was there in some programming code
DavidR
25-Nov-2008
[1536x2]
I'm afraid I do not understand how sub-panels work can someone give 
me a  commented simple illustration (the simpler the better please) 
of how they work, sorry to be so thick but its not working in my 
example?
I keep getting this error also cannot get rid of it?
** Script Error: panel1 has no value
** Where: func [face value][show panel1]
** Near: show panel1
Graham
25-Nov-2008
[1538]
break your code down to the simplest possible and post it
james_nak
25-Nov-2008
[1539]
http://www.rebol.com/how-to/subpanels.html
DavidR
25-Nov-2008
[1540x5]
Thanks james_nak have already looked at that but I still don't get 
it i'm missing something in the structure or mechanics
Graham simplist form will try
afraid I will have to post it all as there is probably lots of mistakes
rebol [Title: "SOS-XP"]
  view layout [
  image center %DT.jpg 768x576 ibevel pewter 6x6
  button gray 50x30 "START" [show panel1]
  at 75x605 button gray 3x30

  at 750x610 text "00:00" rate 1 black ;effect [gradient 0x1 0.0.150 
  0.0.50]
  feel [engage: func [face act] [face/text: now/time  show face]]

]
  
panel1: view layout [
  image center %DT.jpg 768x576 ibevel pewter 6x6
  at 75x605 button gray 3x30

  at 750x610 text "00:00" rate 1 black ;effect [gradient 0x1 0.0.150 
  0.0.50]
  feel [engage: func [face act] [face/text: now/time  show face]]
  at 200x300

  area wrap font-color white {You use this program & batch files entirely 
  at your own risk,
  due to the myriad of hardware/software configurations I cannot

  without any certainty claim that you will not damage your system!

  Always Always Always make a full system backup of your partition
  before attempting to use SOS-XP & that you have tested the back

  up so your are positive in your own mind you can make a recovery!} 
  red bold 
  at 240x410 button "Agree" [show panel2]
  at 450x410 button "Disagree" [QUIT]]
  do-events

panel2: view layout [
image center %DT.jpg 768x576 ibevel pewter 6x6
  button gray 50x30 "START" [show panel3]
  at 75x605 button gray 3x30

  at 750x610 text "00:00" rate 1 black ;effect [gradient 0x1 0.0.150 
  0.0.50]
  feel [engage: func [face act] [face/text: now/time  show face]]

]755x650
it works up to the second window but when the "agree" button is depressed 
it stalls & this error message repeats through the interpretor  ** 
Script Error: panel1 has no value
** Where: func [face value][show panel1]
** Near: show panel1
Graham
25-Nov-2008
[1545]
That's not stripped down ... we don't have your images etc.
btiffin
25-Nov-2008
[1546]
panel2 is not defined when you evaluate panel1 and panel1 is not 
defined when REBOL is evaluating the main face?  No?
Graham
25-Nov-2008
[1547]
the panels need to be defined earlier

panel2: layout [ ... ]
btiffin
25-Nov-2008
[1548]
I think   panel3: layout [ ...]  panel2: layout [ ...]   pane1: layout 
[ ...]   then the main   view layout   would work 

Graham beat me to it.
DavidR
25-Nov-2008
[1549]
Graham what do you mean by stripped down?
Graham
25-Nov-2008
[1550x2]
removed of any code not relevant to the problem at hand.
we couldn't run your code because you referenced images we don't 
have
DavidR
25-Nov-2008
[1552]
I C Sorry!
Graham
25-Nov-2008
[1553]
next time :)
DavidR
25-Nov-2008
[1554]
so according to btiffin I am working back to front (panel3 then panel2 
then panel1 then the main layout)
Graham
25-Nov-2008
[1555x5]
doesn't matter the order
remove the do-events
panel1 ... 3 are objects, which are returned by layout
you must define them before you use them
panel1: view layout [ ] is not defining the layout
DavidR
25-Nov-2008
[1560]
EEK! If I remove the do-events the buttons do not work then, this 
item was suggested by Henrik & it fixed the broken buttons
btiffin
25-Nov-2008
[1561x4]
Yeah DavidR;  the order doesn't really matter as long as the definitions 
come before REBOL has to reduce the value.  REBOL will let you make 
and load values (simply word! at that stage), but these words have 
to have a value when evaluation (reduce, do, ... or show in this 
case) is required.

Next...

Then change the show panel1 to view panel1  after   panel1: layout 
[ ... ] is used to create the face object.
And you still need view on the main   ...  so I take back what I 
just said ... the main view sets up the do-event event handler for 
all the faces.  (not tested so just rambling now)
You may need view/new  etc...   there are a few options for sub-windows.
see hide-popup  for a way of closing sub windows
DavidR
25-Nov-2008
[1565x2]
Tell ya what without all the code clonk inbetween & as a structure 
can you provide a simple layout. Yes tried view /new for opening 
another window with the previous set behind I think it will go up 
to 8 windows deep?
according to the readme help files
btiffin
25-Nov-2008
[1567x2]
source inform  and source request  for a sample of how this can all 
fit together
Or ... for an easier professional look to an app, I suggest RebGUI. 
 http://www.dobeash.com/rebgui.htmlAshley has done a wonderful 
job of taking the REBOL view engine one step up (imho).  Some may 
disagree; but RebGUI is my main REBOL graphical app tool.
DavidR
25-Nov-2008
[1569x2]
source inform  and source request - Is this a different forum
Yes would like to get around to using it (RebGui) but would like 
to understand the background mechanics a bit more sorry about the 
laymans terminolgy but know very little about programming
btiffin
25-Nov-2008
[1571]
Sorry, right from the REBOL console >> source inform
DavidR
25-Nov-2008
[1572x2]
I think I will need to approach this from a different angle will 
try out some other scenario's
but many thanks for the help
btiffin
25-Nov-2008
[1574]
Anytime
Anton
25-Nov-2008
[1575]
Graham, 

	panel1: view layout [ ]  

*is* defining the layout.


It's also opening it as a window and waiting for events, of course.
Remember VIEW just returns the face that it was given.