Dear Alex, This is great! Thanks for sharing! :D
On Thu, 23 Jul 2020 at 01:10, Alex Tweedly via use-livecode < use-livecode@lists.runrev.com> wrote: > 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 > -- https://www.andregarzia.com <http://www.andregarzia.com> Want to support me? Buy me a coffee at https://ko-fi.com/andregarzia _______________________________________________ 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