Table of Contents

Date Released

Final Release: August 2, 2018
Final Candidate 4: July 26, 2018
Final Candidate 3: July 25, 2018
Final Candidate 2: July 23, 2018
Final Candidate 1: July 14, 2018
Beta 7: July 12, 2018 Minor demo change Desktop Only
Beta 6: July 11, 2018
Beta 5: July 5, 2018
Beta 4: July 3, 2018
Beta 3: July 1, 2018
Beta 2: June 29, 2018
Beta 1: June 21, 2018
Alpha 3: June 11, 2018
Alpha 2: June 1, 2018 [Private]
Alpha 1: May 21, 2018


Type Change
ADD GraffitiAccordion now has Add/Insert/Item/ItemCount/Remove/RemoveAll methods.
ADD GraffitiAccordion now has ItemMouseEnter/ItemMouseExit events.
ADD GraffitiAccordion now has a new “Simple” style that ditches a lot of the properties in favor of appearing more like system default controls.
ADD GraffitiGrid now has ColumnContextClick and RowContextClick events.
ADD GraffitiPropertyList now has a RowHeight property.
ADD GraffitiPropertyList now has an AutoEdit property that will automatically bring up the editors for non-single line text nodes when the user clicks ths current value.
ADD GraffitiPropertyList now has a IconColor property.
ADD GraffitiPropertyList now has an ExpanderColor property.
ADD GraffitiRating
ADD GraffitiSettings now has an Erase(DeleteFile as Boolean = False) method.
ADD GraffitiSettings now supports Operator_Lookup.
ADD GraffitiTabBar now has a new property: MaximumTabWidth as Integer
ADD GraffitiTabBarItem now has a new property: CustomColors as Boolean
ADD GraffitiTabBarItem now has a new property: TabColor as Color
ADD GraffitiTabBarItem now has a new property: TextColor as Color
ADD GraffitiTabBarItem now has a new property: TextBold as Boolean
ADD GraffitiTabBarItem now has a new property: TextFont as String
ADD GraffitiTabBarItem now has a new property: TextItalic as Boolean
ADD GraffitiTabBarItem now has a new property: TextSize as Integer
ADD GraffitiTabBarItem now has a new property: TextUnderline as Boolean
ADD GraffitiTabBarItem now has a new property: TabColorActive as Color
ADD GraffitiTabBarItem now has a new property: TextColorActive as Color
FIX Corrected more than 300 analysis warnings.
FIX GraffitiAccordion once again properly refreshes child containers on MacOS.
FIX GraffitiActionBar now supports using image sets. As such, AddButton now only takes one parameter.
FIX GraffitiColorPicker once again properly draws the transparency grid regardless of height.
FIX GraffitiColorPicker once again utilizes colors set in the property inspector.
FIX GraffitiDateTimePicker now properly draws custom colors on day names in calendar views.
FIX GraffitiDateTimePicker now properly draws day background in calendar views.
FIX GraffitiDesktopControl should no longer require write access to temporary folders in order to function.
FIX GraffitiGrid now properly calculates percentage column widths on scale factors greater than 1.0
FIX GraffitiGrid once again properly draws flex columns during scrollbar updates.
FIX GraffitiGrid now automatically supports multiline values by using EndOfLine (any variation) and line wrapping.
FIX GraffitiGrid no longer draws text too far right of the cell (making part of the text invisible).
FIX GraffitiGrid no longer draws outside the border in DrawCellProgress.
FIX GraffitiHTMLEditor no longer misplaces the caret when entering a character and the field is empty on macOS 10.13.
FIX GraffitiHTMLEditor inserts (image, table, audio, twitter, etc) now work properly on 10.13.4.
FIX GraffitiHTMLEditor no longer passes unnecessary data between the JavaScript library and the Xojo class during text changes. This should be a major positive for performance.
FIX GraffitiHTMLEditor no longer loses spaces that fall in increments of 900 characters in the text in the HTML and Text properties.
FIX GraffitiHTMLEditor now focuses the editor when focus is switched to the class.
FIX GraffitiPropertyList now properly draws the disclosure widget on HiDPI.
FIX GraffitiPropertyList now expands or collapses rows when clicking anywhere in the row, rather than only on the disclosure widget.
FIX GraffitiPropertyList now applies Font styles (excluding colors) to the cell editor.
FIX GraffitiPropertyList now properly positions PropertyListChild.kChildList windows on mixed scaling setups.
FIX GraffitiSwitch now properly displays Focus Rings (using System color on the knob) on Windows when UseFocusRing = True and AcceptFocus = True.
FIX GraffitiSwitch False-to-True animation no longer begins outside the control's area.
FIX GraffitiSwitch animation speeds tweaked a little.
FIX GraffitiSyntaxEditor now provides the approprive line index for Breakpoint events.
FIX GraffitiTreeView once again properly supports dragging tree items without using the explicit drag handle icons.
FIX GraffitiTreeView nows draws properly on load in 2018r1.1.
FIX GraffitiTreeView once again properly positions the row editor.
FIX GraffitiTreeView once again fires NodeDoubleClick event on uneditable and unexpandable rows.
FIX GraffitiTreeView now properly updates nodes expanded state on double-click.
NOTE GraffitiAccordion now defaults to 12pt font size when 0 is provided in the TextFont property.
NOTE GraffitiAccordion updated to use item interface.
NOTE GraffitiCalendar updated to use item interface.
NOTE GraffitiGrid updated to use column interface.
NOTE GraffitiHTMLEditor no longer conditionally uses ECMAScript6 or ECMAScript5. The class is now strictly ECMAScript5 to help in debugging macOS versions older than 10.13 and provide a more consistent experience across platforms.
NOTE GraffitiPropertyList has new default icons, colors and spacing.
NOTE GraffitiTabBar updated to use item interface.
NOTE GraffitiTagField updated to use item interface.
NOTE GraffitiTreeView now uses the Styles enumeration for the Style property.
NOTE GraffitiTreeView updated to use item interface.


Type Change
ADD GraffitiWebAccordionNav now has methods for iteration: Item(index), ItemCount
ADD GraffitiWebAccordionNav now has additional update methods: UpdateIcon, UpdateText
ADD GraffitiWebAccordionNav now has an additional RemoveItem overload: RemoveItem( GraffitiWebAccordionNavItem )
ADD GraffitiWebAdSense
ADD GraffitiWebAlert now has *_O events for returning objects rather than the normal events which only return strings. GraffitiWebAlert will move to the new events, and remove the old ones in R28.
ADD GraffitiWebButtonSegment now has a Count() as Integer method.
ADD GraffitiWebButtonSegment now has a Button(Index as Integer) as GraffitiWebSegmentButton method.
ADD GraffitiWebButtonSegment now has a FullWidth as Boolean = False property. When True all buttons will expand to fill the control's width.
ADD GraffitiWebCamera 2.0.
ADD GraffitiWebCamera now supports device selection.
ADD GraffitiWebCamera now supports Safari on iOS and macOS.
ADD GraffitiWebChart now has a BackgroundColor as Color property.
ADD GraffitiWebContextMenu now supports creating and manipulating arbitrary menus that are disconnected from on-page objects.
ADD GraffitiWenCurrencyField now has a ReadOnly property.
ADD GraffitiWebGrid 2.0
ADD GraffitiWebGrid has new Events: EditBegin, EditEnd
ADD GraffitiWebGrid has a new Property: Editing as Boolean
ADD GraffitiWebGrid has new Methods: EditCommit, EditCancel
ADD GraffitiWebGrid now has a Currency EditType, which should be used for Double/Currency values.
ADD GraffitiWebGrid now has FormatTypes.Double and EditTypes.Double
ADD GraffitiWebGridColumn now has a DecimalPlaces property for use with Double values, and defaults to 4.
ADD GraffitiWebLikert 2.0
ADD GraffitiWebPagination
ADD GraffitiWebTabBar now supports FontAwesome icons in tabs.
ADD GraffitiWebTextField
ADD GraffitiTimePicker now has MeridiemLow(AM) and MeridiemHigh(PM) properties for customization of ante- and post-meridiem strings.
ADD GraffitiWebToggle now has TrueStyle as WebStyle and FalseStyle as WebStyle properties.
ADD GraffitiWebToolbar
ADD GraffitiWebTooltip's Bind and BindTo methods now have an additional optional parameter: ShowDelay as Integer = 1000.
REM GraffitiWebDatePicker no longer has a SetValue method. Value should be set directly to the Value property using Date objects.
REM GraffitiWebTree no longer has an ItemsChecked event.
FIX GraffitiWebAccordionNav's UpdateNotifications method once again works.
FIX GraffitiWebAccordionNavItem's NotificationCount property now defaults to -1, which hides the count in the display.
FIX GraffitiWebAlert now properly requires FontAwesome icon types be specified for buttons and alerts.
FIX GraffitiWebAlert no longer throws JavaScript exceptions when using special characters in button names or captions.
FIX GraffitiWebAlert now automatically converts EndOfLine to HTML line break tags.
FIX GraffitiWebAlert once again honors the Modal property of GraffitiWebAlertMessages.
FIX GraffitiWebButton now honors Colored, Accent, and Override properties when FaceStyle = 0.
FIX GraffitiWebButtonSegment no longer reports the existence of a non-existent ExtraSmall size.
FIX GraffitiWebChart no longer crashes when using apostrophes in the labels of some chart types.
FIX GraffitiWebCalendar's ListMonth view now switches properly.
FIX GraffitiWebCalendar no longer randomly sends AllDay events off in to the ethereal void.
FIX GraffitiWebCalendar's ViewChanged event is now more reliable, and properly fires when you navigate timeframes in a single view.
FIX GraffitiWebCamera no longer throws a JavaScript exception on IE11. This class doesn't work in IE11, but it fails gracefully.
FIX GraffitiWebContextMenu no longer inappropriately assigns the MenuItem style to submenus.
FIX GraffitiWebCurrency once again properly supports more than two decimal places.
FIX GraffitiWebDatePicker should now honor IE and Edge clear button on Input field.
FIX GraffitiWebDatePicker now fires the ValueChange event more appropriately.
FIX GraffitiWebDatePickers now show the widget tick in the appropriate place based on Orientation.
FIX GraffitiWebDatePickerRange once again properly applies the Format property on load.
FIX GraffitiWebGrid column resizing now works as expected.
FIX GraffitiWebGrid column sorting once again works as expected.
FIX GraffitiWebGrid once again has a keyboard handler with new KeyPress event, which also supports modifier keys Alt, Ctrl, and Shift.
FIX GraffitiWebGrid now updates SelectedRows and SelectedCell when using the NextRow/PreviousRow/NextCell/PreviousCell methods, and fires the SelectionChanged event.
FIX GraffitiWebGrid RowSelectionChanged event renamed to SelectionChanged.
FIX GraffitiWebGrid no longer locks up when scrolled to the bottom on a WebDialog.
FIX GraffitiWebGrid ScrollPositionChanged event now only fires when the user has finished scrolling (after 100ms) in order to reduce the amount of communication with the server.
FIX GraffitiWebGrid date cells are now formatted correctly upon update regardless of locale.
FIX GraffitiWebGrid's date cell editor now automatically chooses the user's language rather than defaulting to English on all systems.
FIX GraffitiWebGrid integer editing now properly drops decimal values using a Floor method.
FIX GraffitiWebGrid now uses the browser's locale for displaying and parsing values in Currency columns.
FIX GraffitiWebLabel now properly parses FontAwesome 5 Icons.
FIX GraffitiWebLabel no longer throws JavaScript exceptions under certain circumstances.
FIX GraffitiWebLikert once again updates values appropriately.
FIX GraffitiWebNotifier service worker script now properly installed.
FIX GraffitiWebNotifier no longer throws a JavaScript exception on Safari when requesting permission.
FIX GraffitiWebPDF will now silently fail when trying to perform actions on a document, when no document has been created with NewDocument()
FIX GraffitiWebPDF.AddImage no longer requires a Type parameter.
FIX GraffitiWebPopupMenu should now display properly over modal dialogs.
FIX GraffitiWebSignature no longer fires the SignatureChanged event when programmatically setting the SignatureData property.
FIX GraffitiWebSpeechRecog no longer attempts to execute JavaScript in insecure sessions.
FIX GraffitiWebSpeechRecog no longer throws a JavaScript exception in unsupported browsers.
FIX GraffitiWebSyntaxEditor add and remove breakpoints now functions properly.
FIX GraffitiWebSyntaxEditor Case Sensitive search now functions properly.
FIX GraffitiWebTabBar now properly updates display when setting the Value property and using custom styles.
FIX GraffitiWebTabBar now uses the Orientations enum and the Orientation property, replacing the old TabAlignment property.
FIX GraffitiWebTimePicker now honors previously selected Meridiem values.
FIX GraffitiWebTimePicker now properly triggers the Open event.
FIX GraffitiWebToggle now uses the Styles enumeration for the VisualStyle property.
FIX GraffitiWebToggle now properly sets the value when programmatically assigning a boolean value to the Value property rather than toggling the control's value state.
FIX GraffitiWebTree once again updates tree items on check/uncheck/expand/collapse.
FIX GraffitiWebTree once again fires ItemChecked/ItemUnchecked events.
NOTE GraffitiWebDatePicker classes' DisableTouchKeyboard renamed to DisableKeyboard, as it now applies to all platforms.
NOTE Heavy modifications to GraffitiWebToggle may require the removal and re-adding of control instances on Pages/Containers/Dialogs.
NOTE GraffitiWebButton now uses the FaceStyles Enumeration instead of Constants for the FaceStyle property.
NOTE GraffitiWebCurrencyField's Text property is now Read-Only. You should always use the Value property to set the value of the component.
NOTE Fixed some bugs in the ccCalendarEditEvent demo container.
NOTE GraffitiWebContextMenu's BindTo method renamed to AddMenu.
NOTE GraffitiWebContextMenu methods now overloaded to support unattached menus.
NOTE Heavy modifications to GraffitiWebCurrencyField may require the removal and re-adding of control instances on Pages/Containers/Dialogs.
NOTE GraffitiWebCurrencyField updated to version 4.1.x of autoNumeric.js
NOTE GraffitiWebTree now requires explicit setting of FontAwesome types. “fa-times” should now be “fas fa-times”
NOTE GraffitiWebTree no longer has a global Checkboxes property. Checkbox visibility should be set on individual items. This was an extraneous option given the functionality.
NOTE jQuery Touch Punch now implemented in conjunction with jQuery UI to make jqui components more touch friendly.
NOTE GraffitiWebStorage bumped to 2.0 with rewrite to mimic Dictionary functionality and conventions, and further avoid potential JavaScript exceptions.
NOTE Added Infinite Scrolling example code to GraffitiWebGrid's demo page. See gwgDemo.ScrollPositionChanged event handler.
NOTE Loosened the tight restrictions on GraffitiWebSpeechRecog in order to include mobile variants of Chrome.
NOTE GraffitiWebTabBar updated to version 1.3.3
NOTE Bootstrap updated to version 4.0.0. Any class that uses Bootstrap components may need further modifications.
NOTE GraffitiWebCursor updated to support FontAwesome5.
NOTE All classes now use the “visibility” CSS property for visibility, this improves animation compatibility.
NOTE As support for the SpeechRecognition API appears to have stalled on all major browsers except Chrome, GraffitiWebSpeechRecog is considered deprecated for unsupported platforms, and feature complete for where it works, and receive no further updates until that status changes.
NOTE GraffitiWebButtonSegment uses the new GraffitiUpdateInterface, so you can directly modify children. This will be rolled out to other classes progressively.
NOTE GraffitiWebGrid 2.0 uses the new GraffitiUpdateInterface, so you can directly modify children. This will be rolled out to other classes progressively.
NOTE GraffitiWebToolbar uses the new GraffitiUpdateInterface, so you can directly modify children. This will be rolled out to other classes progressively.