Release 25

Release 25.2 #

Date Released #

February 6, 2018

Desktop #

Type Change
[ADD] GraffitiNote now offers a close button with optional animation.
[FIX] GraffitiCalendar once again loads properly.
[FIX] GraffitiHTMLEditor now assigns the system’s language code on Windows for spell checking instead of relying on detection in CEF.
[FIX] GraffitiHTMLEditor now properly sets plain-text clipboard content.
[FIX] GraffitiNote now properly sets height when AutoHeight=True on HiDPI screens.
[FIX] GraffitiSyntaxEditor once again loads properly.
[NOTE] Fixed a scope issue with GraffitiDesktopControl.MessageLevels.
[NOTE] GraffitiHTMLEditor’s spell checking on Windows does not appear to work as expected for non-english languages, even when setting this value implicitly. This appears to be either a bug in the CEF version used by Xojo or the Xojo implementation of CEF. (Feedback ID: 51373)

Web #

Type Change
[ADD] GraffitiWebChart now supports label font styling with new properties.
[ADD] GraffitiWebGridColumn now has a read-only “Visible” property.
[ADD] GraffitiWebGrid now has a ColumnReordered(theColumn as GraffitiWebGridColumn, oldIndex as Integer, newIndex as Integer) event.
[ADD] GraffitiWebGrid now has a HeaderStyle(theHeader as GraffitiWebGridColumn, Assigns theStyle as WebStyle) method for changing single header styles on-the-fly.
[ADD] GraffitiWebGrid now has a HeaderRowHeight as Integer property for changing the header row’s height.
[ADD] GraffitiWebGrid now has a HeaderRowVisible as Boolean property for hiding the header row.
[FIX] GraffitiWebChartLegend once again resizes itself properly.
[FIX] GraffitiWebDatePickerSingle no longer throws a NilObjectException when the field is cleared then a new date is selected.
[FIX] GraffitiWebGrid no longer throws OutOfBoundsExceptions when showing Hidden columns in reverse order.
[FIX] GraffitiWebGrid once again has the ShowColumn(atIndex as Integer) method.
[FIX] GraffitiWebGrid hidden columns are no longer removed from the headers array, thus are now iterable using the GetColumn and GetHeader methods.
[FIX] GraffitiWebToggle should once again resize properly when changing Width or Height programmatically after initial load.
[NOTE] GraffitiWebChart now uses the ChartTypes enumeration for the ChartType property. You may need to reconstruct your chart instances on your pages/dialogs/etc.
[NOTE] GraffitiWebGrid now updates column order when it is changed in the UI. This may alter the behavior of your implementation.

Release 25.1 #

Date Released #

February 6, 2018

Desktop #

Type Change
FIX GraffitiHTMLEditor now properly sets clipboard content for Windows, Macintosh and Linux.

Web #

Type Change
ADD GraffitiWebNotifier version 2.0
REMOVE GraffitiWebNotifier version 1.0
NOTE

Release 25 #

Date Released #

February 1, 2018

Desktop #

Type Change
[ADD] GraffitiNote
[ADD] GraffitiSettings
[ADD] GraffitiTabBar
[ADD] GraffitiHTMLExporter for converting HTML to Email, Markdown, BBCode and en/de-coding HTML Entities.
[ADD] GraffitiCalendar now supports Event DoubleClicks.
[ADD] GraffitiDesktopControl (GraffitiSyntaxEditor, GraffitiCalendar, GraffitiHTMLEditor) now has a DebugMessage event for tracing JavaScript issues.
[ADD] GraffitiGrid now has a ScrollTo( X as Integer, Y as Integer ) method.
[ADD] GraffitiGrid now has a Scroll event.
[ADD] GraffitiGrid now has a Sorted( Column as GraffitiGridColumn ) event.
[ADD] GraffitiGrid now has a RowDrop( StartIndex as Integer, EndIndex as Integer ) event for drag reordering.
[ADD] GraffitiHTMLEditor now has a ContextClick event for showing custom MenuItems, use CustomContextMenu boolean property to enable.
[ADD] GraffitiHTMLEditor now has a EditorDefaults event for setting the default font and size.
[ADD] GraffitiHTMLEditor now has a ForceUpdate method for updating selection and content properties.
[ADD] GraffitiHTMLEditor now has more debug messaging.
[ADD] GraffitiHTMLEditor now has a WordWrap as Boolean = True property.
[ADD] GraffitiHTMLEditor now Copies and Pastes HTML on Windows and Mac.
[FIX] GraffitiAccordion now properly refreshed the active child container when animation completes on MacOS 10.12+.
[FIX] GraffitiCalendar should once again resize properly.
[FIX] GraffitiCalendar event rendering speed increased by about 2000%.
[FIX] GraffitiCalendar source files moved to constant in an attempt to correct issue where it fails to load on some MacOS targets.
[FIX] GraffitiColorPicker once again properly displays the opacity grid.
[FIX] GraffitiColorPicker now shows Hex values in #RRGGBBAA format. It’s important to note, however, that CSS doesn’t support this type of Hex value. One should always use rgb( r, g, b, a ) in CSS.
[FIX] GraffitiGrid no longer shows a rectangular artifact around sort icons.
[FIX] GraffitiHTMLEditor should once again resize properly.
[FIX] GraffitiHTMLEditor now properly displays Horizontal Rules.
[FIX] GraffitiHTMLEditor no longer adds multiple Horizontal Rules when clicking the button a single time.
[FIX] GraffitiHTMLEditor no longer becomes unreliable over time on MacOS El Capitan and below.
[FIX] GraffitiHTMLEditor inserts once again insert in the proper place.
[FIX] GraffitiHTMLEditor now properly updates the formats in the toolbar when selecting text formatted using the default font.
[FIX] GraffitiHTMLEditor no longer reaches a state where selection reporting is broken under certain conditions when pasting.
[FIX] GraffitiHTMLEditor GotFocus and LostFocus no longer become unreliable over time.
[FIX] GraffitiHTMLEditor should no longer insert errant blank lines of “<p><br></p>” when setting the HTML property with certain tags.
[FIX] GraffitiHTMLEditor source files moved to constant in an attempt to correct issue where it fails to load on some MacOS targets.
[FIX] GraffitiHTMLEditor no longer fails on fonts which contain characters that should be escaped.
[FIX] GraffitiHTMLEditor image linking once again works.
[FIX] GraffitiHTMLEditor now properly updates the editor area when hiding/showing toolbar buttons after load.
[FIX] GraffitiHTMLEditor once again accepts and properly inserts local images as BASE64 strings.
[FIX] GraffitiHTMLEditor no longer throws a BadDataException in UpdateFormat when changing colors.
[FIX] GraffitiHTMLEditor now properly assigns default font size.
[FIX] GraffitiHTMLEditor no longer inserts links shifted one character to the right on Windows.
[FIX] GraffitiHTMLEditor now properly sets cursor position after link insertion.
[FIX] GraffitiHTMLEditor no longer duplicates some events when the cause is simply refired without an actual change taking place.
[FIX] GraffitiHTMLEditor no longer inserts images offset by +1 character.
[FIX] GraffitiHTMLEditor no longer resets scroll position when the mouse leaves the editor’s area.
[FIX] GraffitiHTMLEditor once again properly gets the selection when a drag selection ends outside of the viewport.
[FIX] GraffitiHTMLEditor no longer retains Control/Command key state when losing focus, despite the key having been released.
[FIX] GraffitiHTMLEditor toolbar should no longer disappear when opening the Font or Size dropdown with long content.
[FIX] GraffitiSlideshow now hooks in to the paint event of the stage for drawing using Invalidate rather than setting the backdrop. This was causing intermittent crashes on MacOS.
[FIX] GraffitiSyntaxEditor should once again resize properly.
[FIX] GraffitiSyntaxEditor, GraffitiCalendar, and GraffitiHTMLEditor should no longer fire events twice on MacOS.
[FIX] GraffitiSyntaxEditor, GraffitiCalendar, and GraffitiHTMLEditor now return data properly on High Sierra.
[FIX] GraffitiSyntaxEditor, GraffitiCalendar, and GraffitiHTMLEditor now queue loading.
[FIX] GraffitiSyntaxEditor, GraffitiCalendar, and GraffitiHTMLEditor no longer scroll parts of the control out of view when using PageUp/PageDown.
[FIX] KillerToolBar flickering on embedded controls fixed (again) for Windows.
[NOTE] Additional error logging added to GraffitiDesktopControl.HandleEvent
[NOTE] GraffitiHTMLEditor updated to QuillJS 1.3.4
[NOTE] GraffitiHTMLEditor now provides a hasMedia parameter for the Toolbar_LinkClick event. If this is true, the link text should not be updated, as it will remove all embedded items such as images, videos, audio, tweets, and horizontal rules. This is handled properly in the demo. To properly apply a link to the text selected in the editor, you can call InsertLink with an empty string for the Title parameter.

Web #

Type Change
[ADD] GraffitiWebLabel
[ADD] GraffitiWebQRReader
[ADD] GraffitiWebCalendar now supports ICS imports and exports (functions ICSImport and ICSExport).
[ADD] GraffitiWebCalendar now has ViewDate property for getting/setting the currently displayed date. If set in the view, the starting date of the view fills this property.
[ADD] GraffitiWebCalendar now has TimeMinimum and TimeMaximum properties for Week and Day views to restrict what hours are visible, use RestrictView property to control.
[ADD] GraffitiWebCalendar now supports time restrictions for interaction (see GraffitiWebCalendarRestriction).
[ADD] GraffitiWebContextMenuItems now have a Style as WebStyle property.
[ADD] GraffitiWebDatePicker(ALL) have new properties for highlighting days of the week.
[ADD] GraffitiWebDatePicker(ALL) has a new method SetDayHighlighted( theValue as Boolean, ParamArray theDay as Integer ) for setting highlight status of a day of the week.
[ADD] GraffitiWebDatePickerSingle now has MonthChange and YearChange events for user navigation.
[ADD] GraffitiWebFontAwesome now has MouseEnter and MouseLeave events.
[ADD] GraffitiWebGrid now has HideColumn and ShowColumn methods.
[ADD] GraffitiWebGrid now supports Password columns. This is an insecure implementation, use at your own risk!
[ADD] GraffitiWebPDF now supports individual table cell styling.
[ADD] GraffitiWebPDFCellStyle class
[ADD] GraffitiWebPopupMenu now supports row icons when AllowAdd = True or MultipleSelect = True with GraffitiWebPopupMenuItem’s new properties: Icon, IconPosition, and IconColor.
[ADD] GraffitiWebPopupMenu now supports per-row styling when AllowAdd = True or MultipleSelect = True
[ADD] GraffitiWebPopupMenu now has an ItemCount method.
[ADD] GraffitiWebSlideshow has a new method for getting Slide URLs by index (GetSlideURL).
[ADD] GraffitiWebSlideshow has a new method for getting Slide Captions by index (GetSlideCaption).
[ADD] GraffitiWebTimePicker now has a ManualEntry as Boolean property, which also masks the input.
[ADD] GraffitiWebTimePicker now has a Clear() method.
[ADD] GraffitiWebTree now has a AllowEdit property which should only be set in the IDE’s inspector.
[ADD] GraffitiWebTree now has ItemChecked and ItemUnchecked events.
[ADD] GraffitiWebTree now has a ContextClick event. theItem will be Nil if the contextclick was not triggered on an item.
[ADD] GraffitiWebTreeItem now has a HasExpender as Boolean property. When False, will hide the expander from the UI which disallows Expanding/Collapsing.
[ADD] GraffitiWebUploader now has a FileRemoved( theFile as GraffitiWebFile ) event.
[REMOVE] GraffitiWebFontAwesome no longer has an UpdateStyle method, as the class now properly handles the Style property.
[FIX] All classes now support the Cursor property.
[FIX] GraffitiWebBattery no longer attempts to initialize before the page has finished loading.
[FIX] GraffitiWebButton now properly fires MouseEnter and MouseExit.
[FIX] GraffitiWebButtonSegment once again properly assigns the Value property when the selected button has changed.
[FIX] GraffitiWebButtonSegment once again honors setting LockRight.
[FIX] GraffitiWebCalendar now updates row height properly when hidden and re-shown.
[FIX] GraffitiWebCalendar once again removes events properly.
[FIX] GraffitiWebCalendar now properly sets display date when calling MoveToDate before initialization is complete.
[FIX] GraffitiWebCalendar no longer switches views when setting some properties.
[FIX] GraffitiWebCalendar rendering speed improvements when adding multiple items.
[FIX] GraffitiWebCalendar now rerenders events automatically after setup. This addresses issues where some events were drawing improperly intermittently.
[FIX] GraffitiWebContextMenu once again properly disables menu items.
[FIX] GraffitiWebDatePicker(ALL) no longer set day 0 to disabled if any other day of the week is disabled.
[FIX] GraffitiWebDatePickerMultiple no longer throws a JavaScript exception on datepicker_bs.
[FIX] GraffitiWebDatePickerRange no longer throws a JavaScript exception on datepicker_bs.
[FIX] GraffitiWebDatePickerSingle now properly fires ValueChange if user manually edits the text to a valid date then switches focus.
[FIX] GraffitiWebDatePickerSingle now properly updates the value if/when multiple change events are fired.
[FIX] GraffitiWebFontAwesome now properly honors the Style property.
[FIX] GraffitiWebFontAwesome now explicitly honors Top property value.
[FIX] GraffitiWebGrid no longer throws a JavaScript exception in InsertRow on intIndex.
[FIX] GraffitiWebGrid once again resizes properly when programmatically setting Width or Height.
[FIX] GraffitiWebGrid no longer references old RS JavaScript objects when setting the Style property.
[FIX] GraffitiWebGrid no longer throws JavaScript exceptions when field names contain “-”, “_”, or “/”.
[FIX] GraffitiWebRadioButton no longer throws a JavaScript exception on load in Safari.
[FIX] GraffitiWebPDF once again honors column widths in tables.
[FIX] GraffitiWebPDF now properly draws text blocks with unset width and high Y coordinate values.
[FIX] GraffitiWebPopupMenu once again closes popup when losing focus and placed on a Palette WebDialog.
[FIX] GraffitiWebPopupMenu now properly clears selection on single-select instances when calling DeselectAll().
[FIX] GraffitiWebPopupMenu no longer throws an OOBE in valuesChange under certain conditions.
[FIX] GraffitiWebPopupMenu now uses the Skins enumeration for Container and Dropdown skinning.
[FIX] GraffitiWebPopupMenu now supports using AllowAdd and MultipleSelect together on the same instance.
[FIX] GraffitiWebPopupMenu once again properly applies selections on load and using SetItemSelect.
[FIX] GraffitiWebPopupMenu method GetItemByID now scoped public.
[FIX] GraffitiWebPopupMenu’s SelectionChanged event parameter is now theItem as GraffitiWebPopupMenuItem.
[FIX] GraffitiWebPopupMenu now has additional safeguards in Enabled, ReadOnly, OpenPopup and ClosePopup for JavaScript exceptions.
[FIX] GraffitiWebPopupMenu no longer doubles items added to instances on WebDialog when MultipleSelect = False and AllowAdd = False.
[FIX] GraffitiWebPopupMenu should no longer leave dropdowns hanging around when the control has been hidden.
[FIX] GraffitiWebPopupMenu no longer triggers a NilObjectException after using RemoveAllItems then selecting a new value or calling SetItemSelect.
[FIX] GraffitiWebPopupMenu now properly sets the SelectedItem property when adding a custom value via the UI.
[FIX] GraffitiWebPopupMenu’s Text property has been removed. To set text on single select instances where AllowAdd=True use the SetText(theText as String) method.
[FIX] GraffitiWebSlideshow once again fires the SlideChanged event.
[FIX] GraffitiWebSlideshow once again properly sets the SlideTimeout value.
[FIX] GraffitiWebSlideshow now properly supports multiple instances per page.
[FIX] GraffitiWebTabBar now properly updates tab styles under all circumstances.
[FIX] GraffitiWebTimePicker no longer throws a JavaScript exception when assigning Value.
[FIX] GraffitiWebTimePicker now honors Nil when assigned to Value, and clears the selection.
[FIX] GraffitiWebTimePicker once again properly resizes at runtime when setting Width and Height programmatically.
[FIX] GraffitiWebTimePicker no longer fires the ValueChange event multiple times under certain circumstances.
[FIX] GraffitiWebToggle now honors Visible property set in IDE.
[FIX] GraffitiWebToggle now honors Enabled property.
[FIX] GraffitiWebTree’s SelectItem method no longer causes a JavaScript exception.
[FIX] GraffitiWebTree no longer fires ItemChecked multiple times per operation.
[FIX] GraffitiWebTree now retains selection styling when losing focus.
[FIX] GraffitiWebUploader no longer throws a JavaScript exception when setting properties programmatically in the Open event.
[FIX] GraffitiWebUploader now properly works with files of unknown MIME types (for these files, the “Type” is “unknown”).
[FIX] GraffitiWebUploader no longer retains a reference to GraffitiWebFile objects that have been removed.
[FIX] GraffitiWebUploader no longer throws a JavaScript exception when the target filename contains quotes, apostrophes, or other special characters.
[NOTE] GraffitiWebContextMenu updated to jQuery-contextMenu 2.5.0
[NOTE] GraffitiWebCalendar updated to FullCalendar 3.6.1
[NOTE] GraffitiWebPDF updated to jsPDF 2.3.2
[NOTE] GraffitiWebPopupMenu updated to Select2 3.5.4
[NOTE] GraffitiWebToggles updated to jQuery Toggles v4.0.0
[NOTE] GraffitiWebTree updated to FancyTree 2.26.0