ANN: FieldGroup - a simple rich text editor field.
Andre Garzia
andre at andregarzia.com
Thu Jul 23 03:54:37 EDT 2020
Dear Alex,
This is great! Thanks for sharing! :D
On Thu, 23 Jul 2020 at 01:10, Alex Tweedly via use-livecode <
use-livecode at 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 at 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
More information about the use-livecode
mailing list