Hi Alex, this is really a great contribution. Thank you very much.
- Matthias Rebbe Life Is Too Short For Boring Code > Am 23.07.2020 um 02:08 schrieb Alex Tweedly via use-livecode > <use-livecode@lists.runrev.com>: > > I'd like to announce the Beta (i.e. v0.1) release of my simple rich text > field. Currently it's not on Github or anywhere sensible - it's just on my > own download site (see URL at end of this email). > > I'd be happy if anyone finds it useful, and / or has feedback that might make > it useful. > > > FieldGroup - a rich text editor field for Livecode. > > Actually, as the old joke goes, it's not really "rich" text, just comfortably > off. :-) > > That is, it supports only some fairly basic features compared to a > fully-featured rich text editor. > > Supported features include : > - multi-level undo/redo > - 'undo' can be reset (e.g. after 'save', or 'open') > - set text style of a chunk by tool button or (sample) menu > - undo includes text style setting > - simple (enclosed) tool bars with text or icon buttons - optional of course. > - each kind of button comes in two sizes > - button tool bars in any one of four placements (top,right,bottom,left) > - view scaling > - call-backs to let the app know when undo/redo are available (e.g. to > adjust menus) > - no front scripts used. > > FieldGroup is a standalone group which can be simply copy/paste'd into your > own stacks, and provides a (moderately) rich set of text field features. You > can have as many of these fieldgroups as you want - each is entirely > self-contained. > > Easy to use - handlers/functions are well documented and (I hope) > straightforward to understand and use. The downloadable stack includes the > group, ready to be copy/pasted, as part of a simple sample app which shows > common uses. > > The handler definitions are included below - this is also available in the > sample app. The "fill" button ill give you text to play with, but shift-Fill > will restore this document. > > You can download the sample app - which includes the group you ned to > copy/paste - from > > https://www.tweedly.org/downloads/FieldGroupsample.livecode > > This popped out from a simple app I'm writing (actually, just starting to > write) so I'm sure I will realize I need more features, and they will be > added. However, I do not intend it to grow to an all-singing, all-dancing > word processor-like field editor - I have no need for one of those. But it > might be a staring point for someone else who wants that. > > -- Alex. > > /Handlers/ > > In general, these handlers are invoked by 'dispatch'ing the message to the > group. The sample app shows an example of how to structure the menu items > (edit and Format menus). It also contains examples of manipulating the text > (the *Exchange* button), showing different configurations of the buttons (the > *Snap* button, and capturing the return messages for undo/redo being > available. > > /Handlers/ > > */fg.init/* pAConfig > > Initialize the field, with an optional set of configuration parameters (see > fg.configChange for details of these). > > /dispatch "fg.init" to grp "fldgrp" with "textbuttonsize=large", > "svgbutton=large"/ > > */fg.configChange/* pAConfig > > Configure the settings for buttons usage, placement, size, etc. > > This can be either an array, with the key/value pairs, or any number of > parameters each being in the form “key=value”. > > Examples: > > /put "top" into tA["textbuttons"]// > put "small" into tA["textbuttonsize"] > dispatch "fg.configChange" to grp "fldgrp" with tA/ > > or > > /dispatch "fg.configChange" to grp "fldgrp" with "textbuttons=top", > "textbuttonsize=large"/ > > Parameters that can be set are: > - textbuttons : top | bottom > - svgbuttons : top | bottom | right | left > - textbuttonsize : small | large > - svgbuttonsize : small | large > - resizing : true | false (defaults true - if FALSE then the group will not > adjust for any resizing) > > */fg.version/* > > Returns the version of the fieldgroup. > > /dispatch function "fg.version" to grp "fldgrp"// > put "Version" && the result &CR into msg > / > > / > / > > */fg.getText/* pType > > Retrieve the contents of the field. > > /dispatch function "fg.getText" to grp "fldgrp" with "styledtext"/ > > pType is one of > - styledtext (the default) : return the complete styledtext /array > - text : plain text of the field/ > - htmlText : htmltext of the field > - rtftext : rtfText of the field > > */fg.resetUndoSystem/* > > Resets all undo info, for example if the app does a save, and if it determins > that the user should ne bot able to'undo' beyond that point, then it would > call this handler. > > /dispatch function "fg.version" to grp "fldgrp"// > put the result into URL ("binfile:savedfile.txt") > dispatch "fg.resetUndoSystem" to grp "fldgrp"/ > > / > / > > */fg.set.initialText/* pText > > Set the initial text for the field (i.e. set the text, an reset the undo > system). > > /put URL ("binfile:" & sFilename) into tText// > put arraydecode(tText) into tA > dispatch "fg.set.initialText" to grp "fldgrp" with tA/ > > pText can be either an array (in which case it is the styledText to be set), > or string (of simple text). > > > *fg.replaceChunk* pChunk, pAText > > Replaces the specified chunk of the field with the styledText in the array pA. > > /dispatch "fg.replaceChunk" to grp "fldgrp" with tChunk, tAText/ > > > *fg.set.textStyle* pStyle, pChunk > > Adds / removes the text style to the chunk of the field. If the chunk is > empty, then the change is applied to the current selection. > > /dispatch "fg.set.textStyle" to grp "fldgrp" with "bold"/ > > Note that if the all of the chunk already has the specified style, then it is > removed; oitherwise it is added; therefore, if the chunk is previously > "mixed" then the style is added. > > /*fg.set.viewScale* pScale/ > > Sets the viewing scale for the field. This simply adjusts the textsize, since > there is no provision for setting the text size of individual parts of the > field. > > /dispatch "fg.set.viewScale" to grp "fldgrp" with "+"/ > > pScale is one of : > - "-" : make text smaller > - "+" : make text larger > - 0 : reset text to default size > - N (< 6) : is a multiplier from default size, e.g. for apps that offer > "150%" etc. > - N (> 6): an actual text size. > > // > > -- end of definitions -- > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode