I think he is trying to create an auto-indent editor, kind of like the
Rev IDE editor, only one that actually works.
I wrote my own auto-indent editor years ago. I know it can be done
(although perhaps not in Rev). Too bad they gave up before they had
finished the project.
Jon
[EMAIL PROTECTED] wrote:
sez [EMAIL PROTECTED]:
I have been trying to figure out how to create a little simple text
editor. Basically I want to add two features to a regular scrolling
field.
Feature 1
Pressing tab while the insertion point is on a line of text
needs to INDENT the line
pressing shift_tab needs to OUTDENT it.
Rev is perfectly capable of indenting text in a field, and even indenting
the first line of a paragraph differently from the 2nd and later lines. The
properties you wand are called "margins" (for the whole thing) and "firstMargin"
(for the first line). The "margins" property lets you adjust the top, bottom,
right, and left margins separately, in a 4-item list; if the margins property
is only one number, all sides of the text field get that number for heir
margin-value.
Unfortunately, Rev text fields can only have 1 (one) value for
margins/first/Margin, and that one value applies to *all* the paragraphs in the field --
so if you want different amounts of indentation for different paragraphs, you
have to use more than one text field. But if you don't mind indenting *all*
the text in a field simultaneously, something like this might work:
local DeltaTab = 8 # adjust this value up or down, as you please
on tabKey
put the margins of me into Fred
# if the margins *weren't* a 4-item list, let's make it so now
if the number of items in Fred = 1 then put "," & Fred & "," & Fred & "," &
Fred after Fred
if the shiftKey is up then put DeltaTab into DT else put (-1 * DeltaTab)
into DT
add DT to item 2 of Fred
add DT to item 4 of Fred
set the margins of me to Fred
end tabKey
That handler assumes you want to adjust the right and left margin values.
If you only want to worry about the first line's indent-value, try this
instead:
local DeltaTab = 8 # adjust this value up or down, as you please
on tabKey
put the firstMargin of me into Fred
if the shiftKey is up then put DeltaTab into DT else put (-1 * DeltaTab)
into DT
add DT to item 2 of Fred
add DT to item 4 of Fred
set the firstMargin of me to Fred
end tabKey
Feature 2
A new Line created by pressing "return" needs to line up with
the previous line
Like this...
Again, Rev makes all the paragraphs in a single field indent the same
amount. Therefore, this behavior is not just available, it's downright mandatory!
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution