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 use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution