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

Reply via email to