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

World: r3wp

[Rebol School] Rebol School

Well, if you assume that your internal storage method is one which 
just needs to be "converted" to an other, like CSV => XML, you might 
be in for a suprise when trying to model a real time dynamic system 
with Undo like a paint program with a file format as export.

For example, do you store a given object once, with the history of 
the object elsewhere, or do you store the object together, with the 
most recent at the top of the list.

Also, Do you store objects, and actions, or both togther.
Okay, I follow now.  Like using the Photoshop format that saves the 
object order etc with the file.  Tx for the explanation.
I did a primitive whiteboard a number of years ago, but I cheated. 
When you placed a line, arrow, etc. there were little faces attached 
to the drag points that acted as handles.
Brock, yes.
That's how Carl did it in warp-image.r, so I assume that is close 
to what I need.  Anton might use some different techniques in some 
of his recently published drag & drop examples on his site.  I need 
to look at them again to see how he handled dragging the shape.
Thanks for the feedback.
Brock, show us your enhancements to paintplus, and then maybe someone 
can help you.  It's hard to deal in the abstract.
And it's not clear to me what you want.
Graham, I haven't really enhanced it as far as new features, more 
added a little more of what already existed ;-) .  I've added a different 
line type and some predefined text symbols for quick 'drag and drop' 
of frequently used objects.  Oh, and connected the SAVE button to 
write to the sqlite backend.  Nothing earth-shattering by any stretch. 
 I'll post what I have to my MS Skydrive for you to access it.
What I want is the ability to move the shapes from the drawing area 
once they have been drawn.  Currently, you have the UNDO feature 
which you implemented to remove the last item in the draw stack. 
 But I want the ability to click on any line drawn, get some sizing 
handles, and move the handles to reposition the location of the object. 
 So you don't have to redraw an entire image just to fine tune the 
placement of a line that was placed early in the draw session.
... move the shapes IN the drawing area ... after they have been 
I will do this in the AM, too tired now and it's on my work laptop, 
not my personal desktop that I am currently at.
MS skydrive .. not heard of it before .. but I see I have 25Gb of 
free storage.  neat!
Limited to 50Mb per file.
Yes, a pain, but 25 GB of free storage I'll take any day.
It's pretty slow to transfer the files as well.  I tried transfering 
a 49 MB file and it took near an hour to transfer.  I don't do this 
often, but that seemed excessive to me.
I have tried on three seperate occassions and it always seems slow.
If it's for backup, Mozy is OK. It works in the background here and 
you get a free 2 GB account.
(plenty for rebol sources :-))
Since AltME is very alive in these days I whish to go back to school 
and review with you some basic concepts of REBOL.

The, with the result of these discussion I'll write some pages on 
REBOL2 DocBase and then for REBOL3.
Hope you will help. Tomorrow we will start.
The = Then
Sound Good!
Hi. I have a 2-VID-windows program and I want to modify the layout 
(e.g add images) of the first window by clicking on buttons of the 
second window. How can I do that please ?
Each window is a face, so you treat it the same as if they were two 
panes in the same window.
ok, how can I find sample code for panel handling ?
http://hmkdesign.dk/rebol/old/panescookbook.html<-- this is quite 
old, but it may give you some ideas.
thanks ^^
I've added a zip file with the images and scripts needed for my sample 
application mentioned above.

When you unzip the files, executing the script  practice-planner-ns.r 
 will launch the paintplus application and open the necessary background 
image.  The radio button options allow dropping of content directly 
in the drawing area that will appear as part of that final image. 
 These images can be 'undone' but can't  be moved or modified once 
There are some text objects below the radio buttons [RS  S LS  M 
L], that can be dragged from their current location and moved anywhere 
on the layout, not just the drawing area.  These objects can be moved 
again at any point, and are not included in the overall draw dialect 
for the image area.
If I can blend these two functionalities into one, I'd have the best 
of both worlds.  Essentially I'm looking to build a Vector-like draw 
program, but as simple and small as possible.  This would allow drag 
points onto any selected object in order to allow for resizing or 
fine-tuning of object placement.  As I said previously, I believe 
Anton has done some work with drag-points on lines etc, but don't 
remember the script name that did this.  Warp-image.r also does something 
similar with an image.
I think this would be a very interesting project to undertake.  It 
would be nice to have both the smallest paint program, and vector 
drawing program in Rebol.
I'm sure you will let me know if there are any issues accessing the 
Needs sqlite.r
you can remove that line from the code, it's only used to save the 
draw data if you press the save button.  I should have removed any 
reference to the sqlite and the associated queries.
those text objects can be dragged over the drawing area ...
yes they can, but they don't get included in the draw block that 
is being represented.  Whereas the objects that are selectable by 
the radio buttons are actually included in the draw block.
I used the method to drag-and-drop as used in Nick's Guitar Chords 
app.  It worked great for that type of drag and drop.
Hi, I'm starting with Rebol and I'm asking myself how to split a 
given string according to a pattern delimiter : "2 linebreaks or 
more" ?
Simplest way I can think of:
parse "One^/Two^/^/Three^/^/^/Four" "^/"
The ^/ is an escape character meaning newline
Izkata: thanks for answering me. In fact that's what I'm currently 
using, but that's not satisfying because I'm splitting with one linebreak, 
to two.  I'm looking for something that outputs : ["One^/Two" "Three" 
>> out: []

>> parse "one^/two^/^/three^/^/^/four" [any [copy arg to "^/^/" (append 
out arg) any newline] copy arg to end (append out arg)]
== true
>> out
== ["one^/two" "three" "four"]
Geomol, you are faster than me, but that's almost the same as I was 
coming up with :-)
:-) Now, is there any shorter/smarter way to do it?
it is probably easier in R3.
Thanks a lot Geomol (can you explain to me a bit your snippet? I'm 
currently studying the parse dialect)
Henrik: why would it be easier in R3 : does parse gained some additional 
tricks ?
The second argument to parse can be a string, and then parse split 
up the first argument, or the second argument can be a block of parsing 
rules. out is just my output block.

So the parsing rules go:
1) first any of a sub-block of sub-rules

2) sub-block copy the input string to a point, where two newlines 
are found, the result in the variable: arg

3) the paranthesis is evaluated (as normal REBOL code), and it append 
arg (the part of the string, we just copied) to the variable out
4) the parser then skip any number of newlines (2, 3 or more)

5) when the sub-rules are not valid any longer, the input string 
is copied till the end (and appended to out as before)
kib2: not yet, but there are some more logical string splitting functions 
in R3.
particularly string parsing needs to be improved. the above code 
should be simpler to do.