Release Information #

Platform Version Release Date
All R38 March 29, 2021

Desktop #

Type Change
ADDED GraffitiHTMLEditor now supports soft carriage returns by pressing Shift+Enter. (14359)
ADDED GraffitiHTMLEditor has a new InsertLineBreak(atPos as Integer = 0) method for inserting a soft carriage return at the current selection index. (14359)
ADDED GraffitiHTMLEditor’s toPage method now includes more basic format and style information when passing True to the includeStyleBlock parameter (15056)
ADDED GraffitiHTMLEditor’s toPage method now includes imported fonts from the FontsImport event. (15056)
ADDED GraffitiHTMLEditor’s toPage method now has a new parameter for including custom CSS: additionalCSS as String. (15056)
ADDED GraffitiSyntaxEditor has a new GetFolds() as Dictionary() method for returning all currently folded block positions. Dictionary keys are “start” and “end”. (15121)
ADDED GraffitiSyntaxEditor has a new IsRowFolded(row as Integer) as Boolean method. (15121)
ADDED GraffitiSyntaxEditor has a new FoldAdded(startRow as Integer, endRow as Integer) event definition. (15121)
ADDED GraffitiSyntaxEditor has a new FoldRemoved(startRow as Integer, endRow as Integer) event definition. (15121)
FIXED Instances where creating new JSONItem instances were failing in 2021R1 have been fixed.
FIXED GraffitiAccordion now properly vertically aligns disclosure widgets.
FIXED GraffitiColors no longer implicitly checks for the existence of GraffitiImmersiveApp. (14359)
FIXED GraffitiGradientSelector no longer expects Xojo to perform Point to Xojo.Point conversions. (14359)
FIXED GraffitiHTMLEditor no longer throws an exception when getting SelLength value as a result of a focus-switching action. (15068)
FIXED GraffitiHTMLEditor no longer throws an exception when getting SelStart value as a result of a focus-switching action. (15068)
FIXED GraffitiKanban stability and error checking has been improved for Windows targets.
FIXED GraffitiSplitter should no longer cause drag tearing on Windows to such an extent that the text of the other controls is obscured by the redraw.
FIXED GraffitiSyntaxEditor now properly disables file drops when FileDropAllowed is set to False. (15104)
CHANGED GraffitiSyntaxEditor.CurrentLine now gets its value in realtime rather than caching from events. (15121)
CHANGED GraffitiSyntaxEditor.CurrentColumn now gets its value in realtime rather than caching from events. (15121)
REMOVED GraffitiHTMLEditor’s toPageInline method has been removed. It was previously deprecated as it performs the same function as toPage since sometime around R30. (15056)
REMOVED GraffitiSyntaxEditor’s Content property has been removed in favor of its Text property.

Web #

Type Change
NEW GraffitiFavIcon
ADDED There is a new Session Attribute named “LoadFA”. When not added or has a value of True, FontAwesome will be loaded into the browser. When set to False, FontAwesome will not be loaded. Disabling FontAwesome is not recommended outside of debugging speed issues.
ADDED GraffitiButton has a new Cancel as Boolean property. When True, the button’s Pressed event will fire if the user presses the Enter/Return key on any component that exists as a child of the same parent and the event is able to bubble up through the DOM. (15142)
ADDED GraffitiButton has a new Default as Boolean property. When True, the button’s Pressed event will fire if the user presses the Enter/Return key on any component that exists as a child of the same parent and the event is able to bubble up through the DOM. (15142)
ADDED GraffitiButton has a new Press method for raising the Pressed event. This does not trigger client-side autodisable or spinner. (15142)
ADDED GraffitiEmailValidator will now respond to any change made to an attached field with a 100ms timeout.
ADDED GraffitiEmailValidator will now apply the is-invalid Bootstrap class to the field when there is a suggestion.
ADDED GraffitiGrid has a new Color EditType.
ADDED GraffitiGrid has a new PopupMenu EditType. (15112)
ADDED GraffitiGrid has a new PopupMenu Formatter. (15112)
ADDED GraffitiGrid has a new Multiselect EditType. (15112)
ADDED GraffitiGrid has a new Multiselect Formatter. (15112)
ADDED GraffitiGrid now has a RowExpanded(row as GraffitiGridRow) event.
ADDED GraffitiGrid now has a RowCollapsed(row as GraffitiGridRow) event.
ADDED GraffitiGrid now has a TreeView property. When True, the component will be setup for displaying parent and child relationships between rows. Sorting is disabled in this mode.
ADDED GraffitiGridColumn now has a IntegerButtonIndicator as WebUIControl.Indicators property.
ADDED GraffitiGridColumn now has a IntegerValueMax as Integer = 100 property.
ADDED GraffitiGridColumn now has a IntegerValueMin as Integer = 0 property.
ADDED GraffitiGridColumn has a new PopupMenuAllowEmpty as Boolean = True property. (15112)
ADDED GraffitiGridColumn has a new PopupMenuPlaceholder as String = “(Empty)” property. (15112)
ADDED GraffitiGridColumn has a new PopupMenuValue() as String property. (15112)
ADDED GraffitiGridColumn has a new ProgressAnimated as Boolean = False property.
ADDED GraffitiGridColumn has a new ProgressStriped as Boolean = False property.
ADDED GraffitiGridRow now has a Expandable as Boolean = False property for supporting TreeView mode.
ADDED GraffitiGridRow now has a Expanded as Boolean = False property for supporting TreeView mode.
ADDED GraffitiGridRow has a new ProgressIndicator as WebUIControl.Indicators property.
ADDED GraffitiTimeline now supports the following locales: es, es_ES, ja, ja_JP (15128)
ADDED GraffitiUploader now supports transmitting thumbnail images when adding GraffitiWebFiles from Xojo using the AddFile method. Be mindful of file sizes. (15082)
ADDED GraffitiWebFile now has a Tag as Variant property.
FIXED GraffitiButton now captures Enter/Return when focused rather than allowing those actions to bubble up unexpectedly. (15142)
FIXED GraffitiButton now responds to pressing the Spacebar when it has focus. (15142)
FIXED GraffitiButton now responds to touch events. (15142)
FIXED GraffitiCalendar no longer adds events twice when calling AddEvent in the Open or Shown events while LockBuffer = False. (15152)
FIXED GraffitiCalendar should no longer fail to display when using only the “Today” button on the left side of the header.
FIXED GraffitiCurrencyField no longer initializes event listeners twice when placed on a WebDialog. (15139)
FIXED GraffitiPDF should now do a better job of preserving the set font face when setting only the style using SetFontStyle. (15108)
FIXED GraffitiPopupMenu now uses the current theme’s font face and size for form controls in the primary display. (15095)
FIXED GraffitiPopupMenu now uses the current theme’s font face and size for form controls on the in-popup search field. (15095)
FIXED GraffitiPopupMenu will no longer show an empty square on some browsers when AllowAdd = False and no icons are defined for the items. Whitespace normalized between all control types. (15092)
FIXED GraffitiPopupMenu’s dropdown arrow positioning has been modified to appear more correct in Bootstrap 4. (15095)
FIXED GraffitiSignature should once again draw properly. (15098)
FIXED GraffitiSignature now uses chunked sending for large images and should no longer trigger unknown exceptions in the Xojo framework that cannot be handled.
FIXED GraffitiTimeline now properly displays a themed background.
FIXED Instances where creating new JSONItem instances were failing in 2021R1 have been fixed.
CHANGED GraffitiButtonSegment rebuilt. Massive API changes.
CHANGED GraffitiPDF now explicitly sets Helvetica Normal as the default font when calling NewDocument. If you wish to use a different font face and/or style, set it using SetFont after your NewDocument call. (15108)
NOTE This version contains massive changes to support file loading for all products. Things may be broken that I didn’t catch.
NOTE Cleaned up method and property scopes in GraffitiControlWrapper.