# Changelogs
Module
## Release 51
Release Date: Aug 9, 2023
| Type | Ticket | Description |
| --- | --- | --- |
| Added | None | GraffitiAnimatorControl |
| Added | None | GraffitiPagePanel |
| Added | None | GraffitiProgressBar |
| Added | None | GraffitiStepBar |
| Fixed | None | GraffitiAvatar no longer exposes improper superclass events. |
| Fixed | None | GraffitiBadge no longer exposes improper superclass events. |
| Fixed | None | GraffitiTabPanel can no longer draw tab contents improperly when rapidly changing the control's currently selected segment. |
| Changed | None | GraffitiCard.Action renamed to ButtonPressed. |
| Changed | None | GraffitiSlider.ValueChange renamed to ValueChanged. |
## Release 52
Release Date: Nov 4, 2023
| Type | Ticket | Description |
| --- | --- | --- |
| New | None | GraffitiAccordion |
| New | None | GraffitiPopupMenu (Rewritten) |
| New | None | GraffitiSplitView |
| New | None | GraffitiWall |
| Added | None | GraffitiGrid.IsTreeView as Boolean property |
| Added | None | GraffitiGrid.TreeColumn as GraffitiGridColumn property |
| Added | None | GraffitiGrid.CellDrawTreeDisclosure( g as Graphics, column as GraffitiGridColumn, row as GraffitiGridRow, disclosure as Picture, bounds as Xojo.Rect ) as Boolean event definition |
| Added | None | GraffitiGrid.CellDrawTreeStructure( g as graphics, column as GraffitiGridColumn, row as GraffitiGridRow ) as Boolean event definition |
| Added | None | GraffitiGridRow.IsExpanded property |
| Added | None | GraffitiGridRow.Add( row as GraffitiGridRow ) method |
| Added | None | GraffitiGridRow.AddAt( index as Integer, row as GraffitiGridRow ) method |
| Added | None | GraffitiGridRow.IndexOf method |
| Added | None | GraffitiGridRow.LastIndex() as Integer method |
| Added | None | GraffitiGridRow.Remove( row as GraffitiGridRow ) method |
| Added | None | GraffitiGridRow.RemoveAll method |
| Added | None | GraffitiGridRow.RemoveAt( index as Integer ) method |
| Fixed | None | GraffitiGrid now draws column headers in the right position when dragging to reorder and scrolled beyond 0. |
| Fixed | None | GraffitiGridCellEditor.Visible is now properly maintained before/during/after edit operations. |
| Fixed | 163 | GraffitiPopupMenu no longer redisplays a broken selection screen after being dismissed. |
| Fixed | None | GraffitiProgressBar has a new GlowIntensity property that controls the opacity of the value area's glow. Value 0-100 with 0 being invisible. |
| Fixed | None | GraffitiProgressBar value change animation is now smoother. |
| Fixed | None | GraffitiSliders that are vertical with type Single once again properly draw their value area. |
| Fixed | None | GraffitiSliders with type Single are no longer incorrectly limited by the value of ValueHigh. |
| Fixed | None | GraffitiStepBar colors are now more consistent and readable in light mode. |
## Release 52.1
Release Date: Nov 4, 2023
| Type | Ticket | Description |
| --- | --- | --- |
| Note | None | Various API changes as documented. |
## Release 52.2
Release Date: Nov 9, 2023
| Type | Ticket | Description |
| --- | --- | --- |
| Fixed | None | Fix for GraffitiGrid tree icon exception on smaller displays. |
## Release 53
Release Date: Dec 11, 2023
| Type | Ticket | Description |
| --- | --- | --- |
| New | None | GraffitiTagField |
| New | None | GraffitiW3W |
| Changed | 181 | GraffitiEditor now uses an entirely pixel-based system for font sizes. EM/REM support can be done with the CustomCSS property and hiding the font size popupmenu. |
| Fixed | 201 | GraffitiAccordion should no longer leak memory from closed instances. |
| Fixed | 201 | GraffitiCalendar should no longer leak memory from closed instances. |
| Fixed | None | GraffitiDateTimePicker no longer excludes a row of days from month view on certain months. |
| Fixed | 201 | GraffitiGrid should no longer leak memory from closed instances. |
| Fixed | 201 | GraffitiKanban should no longer leak memory from closed instances. |
| Fixed | 201 | GraffitiPopupMenu should no longer leak memory from closed instances. |
| Fixed | None | GraffitiProgress drawing should be less jerky if value changes before value animation is complete. |
| Fixed | 201 | GraffitiThumbList should no longer leak memory from closed instances. |
| Fixed | 201 | GraffitiTimeline should no longer leak memory from closed instances. |
| Removed | 182 | GraffitiEditor's Zoom methods have been removed due to issues with rendering constraints and the CSS Zoom property's removal from the standards path. |
| Note | None | Added default dimensions for all controls. |
## Release 54
Release Date: Feb 20, 2024
| Type | Ticket | Description |
| --- | --- | --- |
| Added | 270 | GraffitiGrid has a new CellPressed( column as GraffitiGridColumn, row as GraffitiGridRow ) event. |
| Added | None | GraffitiGrid will now draw a red indicator during drag operations if the drag operation will fail. |
| Added | None | GraffitiGridRow has a new Cell( columnName as String, assigns value as Variant ) method overload. |
| Added | None | GraffitiGridRow has a new Cell( columnName as String ) as Variant function overload. |
| Added | None | GraffitiGridRow has a new Path() as GraffitiGridRow() method for returning the top-down location of the row when IsTreeView = True. |
| Added | 287 | GraffitiPopupMenu has a new ParentScreen as MobileScreen property that should be set in Opening and controls the display of the popover. |
| Added | 303 | GraffitiSyntaxEditor.ShowGutter as Boolean = True property. |
| Fixed | 266 | GraffitiEditor now supports changing fonts and defaults after initialization. |
| Fixed | 262 | GraffitiGrid now properly refreshes after setting row selection programmatically. |
| Fixed | None | GraffitiGrid.Formatters.TimeWithSeconds now properly displays the NilDateOverride. |
| Fixed | None | GraffitiGrid should no longer throw internally generated InvalidArgumentExceptions when reparenting rows during drag operations while IsTreeView = True. |
| Fixed | 280 | GraffitiGrid should no longer encounter a NilObjectException in GraffitiGridRow.Destroy when calling RemoveAllRows. |
| Fixed | 280 | GraffitiGrid should no longer encounter a NilObjectException in GraffitiGrid.Paint under some circumstances. |
| Fixed | 262 | GraffitiGrid should once again expose properties to the inspector whose values are enumerations. |
| Fixed | 279 | GraffitiGrid will no longer allow drag reordering of rows in to their own children when IsTreeView = True, fixing a StackOverflowException. |
| Fixed | 262 | GraffitiGrid will now report the correct selected rows when using IsTreeView = True and child rows are selected. |
| Fixed | 259 | GraffitiKanban now applies a minimum height to column drop areas to allow dragging items to empty columns. |
| Fixed | 277 | GraffitiPagePanel should no longer enounter an InvalidArgumentException in Remove. |
| Fixed | 277 | GraffitiPagePanel should no longer enounter an InvalidArgumentException in RemoveAll. |
| Fixed | 277 | GraffitiPagePanel should no longer enounter an InvalidArgumentException in RemoveAt. |
| Fixed | 277 | GraffitiPagePanel should now show the first panel in the array when all previous panels have been removed and new panels added. |
| Fixed | 286 | GraffitiPopupMenu.Enabled now properly refreshes the display. |
| Fixed | None | GraffitiTabPanel should no longer enounter an InvalidArgumentException in Remove. |
| Fixed | None | GraffitiTabPanel should no longer enounter an InvalidArgumentException in RemoveAll. |
| Fixed | None | GraffitiTabPanel should no longer enounter an InvalidArgumentException in RemoveAt. |
| Fixed | None | GraffitiTabPanel should now show the first panel in the array when all previous panels have been removed and new panels added. |
| Fixed | 269 | GraffitiWall will no longer encounter an InvalidArgumentException in RemoveAll. |
| Fixed | 269 | GraffitiWall will no longer encounter an InvalidArgumentException in RemoveAt. |
| Fixed | None | GraffitiWall will now properly refresh on changes in Xojo 2023R4. |
## Release 55
Release Date: Apr 16, 2024
| Type | Ticket | Description |
| --- | --- | --- |
| Added | 338 | GraffitiEditorSelection.Find(toFind as String, caseSensitive as Boolean = False, wholeWord as Boolean = False) as Boolean |
| Added | 388 | GraffitiEditorSelection.FindActive() as Boolean |
| Added | 338 | GraffitiEditorSelection.FindNext() as Boolean |
| Added | 338 | GraffitiEditorSelection.FindPrevious() as Boolean |
| Added | 338 | GraffitiEditorSelection.FindReset() as Boolean |
| Added | 338 | GraffitiEditorSelection.Replace(withText as String) as Boolean |
| Fixed | 319 | GraffitiEditor now defaults to allowing all tags in paste operations. |
| Fixed | 320 | GraffitiEditor's Font menus once again work as expected when custom values have been defined. |
| Fixed | None | GraffitiEditor should once again work on iPad devices where there appears to be a bug in Xojo's framework related to MobileHTMLViewer loading when pushing to a containing screen. |
| Fixed | None | GraffitiEditor should no longer freeze the iOS app when run on an iPad and the instance is on a secondary screen. |
## Release 56
Release Date: Jul 15, 2024
| Type | Ticket | Description |
| --- | --- | --- |
| New | None | GraffitiRadialProgress |
| Added | None | GraffitiPopupMenu has a new PerformSearch( searchText as String ) as GraffitiPopupMenuSections() event for displaying on-the-fly search results. |
| Fixed | None | GraffitiGrid now properly redraws edited cells when double-pressing the Grid while editing is active. |
| Fixed | None | GraffitiGrid now considers double-press to be a cancel action when editing. |
| Fixed | None | GraffitiPopupMenu's Clear button once again dismisses the popup view. |
## Release 57
Release Date: Jul 26, 2024
| Type | Ticket | Description |
| --- | --- | --- |
| New | None | GraffitiColors.Bootstrap.Default5 |
| New | None | GraffitiTOTPField |
| New | None | GraffitiTOTPProvider |
## Release 59
Release Date: Aug 15, 2024
| Type | Ticket | Description |
| --- | --- | --- |
| Added | 490 | GraffitiKanban has a new StackColumns as Boolean = True property which controls whether overflown columns will stack vertically or flow horizontally. |
| Fixed | None | GraffitiKanban.ColumnsWidthExtraSmall now updates properly. |
## Release 60
Release Date: Sep 21, 2024
| Type | Ticket | Description |
| --- | --- | --- |
| New | 522 | GraffitiDiffViewer |
| Added | None | GraffitiDateTimePicker has a new WeekdaysFontName as String = "System" property. |
| Added | None | GraffitiDateTimePicker has a new WeekdaysFontSize as Integer = 0 property. |
| Added | 514 | GraffitiSyntaxEditor has a new ToHTML( includeCSS as Boolean = True ) method. |
| Fixed | None | GraffitiAccordion text drawing updated for 2024r3 |
| Fixed | None | GraffitiAvatar text drawing updated for 2024r3 |
| Fixed | None | GraffitiAvatarGroup text drawing updated for 2024r3 |
| Fixed | None | GraffitiBadge text drawing updated for 2024r3 |
| Fixed | None | GraffitiButton text drawing updated for 2024r3 |
| Fixed | None | GraffitiCard text drawing updated for 2024r3 |
| Fixed | None | GraffitiColorPicker text drawing updated for 2024r3 |
| Fixed | None | GraffitiDateTimePicker text drawing updated for 2024r3 |
| Fixed | None | GraffitiGrid text drawing updated for 2024r3 |
| Fixed | None | GraffitiNote text drawing updated for 2024r3 |
| Fixed | None | GraffitiPagination text drawing updated for 2024r3 |
| Fixed | None | GraffitiPopupMenu text drawing updated for 2024r3 |
| Fixed | None | GraffitiProgressBar text drawing updated for 2024r3 |
| Fixed | None | GraffitiRadialProgress text drawing updated for 2024r3 |
| Fixed | None | GraffitiRating text drawing updated for 2024r3 |
| Fixed | 503 | GraffitiWall should now position items properly when Animated = False. This was due to Xojo reporting container widths as 0 until after they've been added to a view. |
| Fixed | 503 | GraffitiWall no longer gets locked in an endless Paint loop when Animated = True due to Xojo reporting container widths as 0 until after they've been added to a view. |
| Fixed | 503 | GraffitiWall no longer inappropriately exposes pointer and keyboard events. |
| Changed | 503 | GraffitiGrid now has a ParentView as Variant property, replacing the ParentScreen as MobileScreen property. Acceptable values are of types MobileScreen or MobileContainer. |
| Fixed | None | GraffitiTagField text drawing updated for 2024r3 |
## Release 61
Release Date: Dec 27, 2024
| Type | Ticket | Description |
| --- | --- | --- |
| New | None | GraffitiMenuItem |
| New | None | GraffitiPanelSelector |
| New | None | GraffitiTextField |
| Added | 592 | GraffitiCalendar now has EventAt(index as Integer) as GraffitiCalenderEvent method. |
| Added | 592 | GraffitiCalendar now has LastIndex() as Integer method. |
| Added | None | GraffitiColorPicker has a new AlphaGridSize as Integer = 10 property. |
| Added | None | GraffitiGrid has a new Footer as GraffitiGridRow property. Read-Only. |
| Added | None | GraffitiGrid has a new FooterBackgroundColor as ColorGroup property. |
| Added | None | GraffitiGrid has a new FooterRowHeight as Integer = 48 property. |
| Added | None | GraffitiGrid has a new IsFooterVisible as Boolean = False property. |
| Added | None | GraffitiGrid now has more natural drag scrolling. |
| Added | None | GraffitiGrid now has scrollbars. |
| Added | None | GraffitiGrid's GridCellBooleanRenderer class now uses SFSymbols rather than drawing a non-standard picture value. |
| Added | None | GraffitiGrid has a new GridCellDateEditor class. |
| Added | None | GraffitiGrid has a new GridCellDateRenderer class. |
| Added | None | GraffitiGrid has a new GridCellDoubleEditor class. |
| Added | None | GraffitiGrid has a new GridCellHyperlinkRenderer class. |
| Added | None | GraffitiGrid has a new GridCellIntegerEditor class. |
| Added | None | GraffitiGrid has a new GridCellLineChartRenderer class. |
| Added | None | GraffitiGrid has a new GridCellPasswordRenderer class. |
| Added | None | GraffitiGrid has a new GridCellProgressRenderer class. |
| Added | None | GraffitiGrid has a new GridCellRatingRenderer class. |
| Added | None | GraffitiGrid has a new GridCellTimeEditor class. |
| Added | None | GraffitiGrid has a new GridCellTimeRenderer class. |
| Added | None | GraffitiGrid has a new GridLinearChartDataset class. |
| Fixed | 600 | GraffitiCalendar should no longer encounter issues with months being offset by 1 in some events. |
| Fixed | None | GraffitiCalendar touch/press interactions should now feel more natural. |
| Fixed | None | GraffitiGrid now better positions and clips embedded controls and containers. |
| Fixed | None | GraffitiGrid now repositions editors when they active and display is scrolled. |
| Fixed | 587 | GraffitiPopupMenu default text drawing routine no longer draws the baseline vertically off-center. |
| Fixed | None | GraffitiScrollbar should no longer encounter NilObjectExceptions in Show and Hide methods when instantiated via code and before the Opening event has been raised. |
| Fixed | None | GraffitiScrollbar automatic visibility improved. |
| Fixed | None | GraffitiStepBar once again properly positions Title and Description text. |
| Fixed | None | Improved drag handling for components based on GraffitiControlCanvas. |
| Note | None | GraffitiGrid sample renderers and editors are now part of the control, and moved to the gsGrid.Support folder. Delete the old "Grid Renderers" and "Grid Editors" folders from your project before updating. |
| Removed | None | GraffitiGrid.ParentView property. |
## Release 62
Release Date: Mar 27, 2025
| Type | Ticket | Description |
| --- | --- | --- |
| New | None | GraffitiButtonGroup |
| New | None | GraffitiGradientSelector |
| New | None | GraffitiOptionButton |
| New | None | GridCellPopupMenuEditor |
| New | None | GridCellPopupMenuRenderer |
| New | None | GraffitiSimpleEditor |
| New | None | GraffitiGridCellRenderer has a new ConvertValue( column as GraffitiGridColumn, row as GraffitiGridRow ) as String method to return the String value of a cell's data for rendering if no custom drawing is carried out. |
| Added | None | GraffitiAvatarGroup now implements the iterable interfaces to support For...Each for child items. |
| Added | 636 | GraffitiCalendar has a new AddViewButton( view as Views ) method. |
| Added | 636 | GraffitiCalendar has a new LastViewButtonIndex as Integer function. |
| Added | 636 | GraffitiCalendar has a new RemoveAllViewButtons method. |
| Added | 636 | GraffitiCalendar has a new RemoveViewButton( index as Integer ) method. |
| Added | None | GraffitiCalendar has a new ShowNavButtonsAtToday as Boolean = False property. |
| Added | None | GraffitiCalendar has a new ShowTodayButton as Boolean = True property. |
| Added | None | GraffitiCalendar has a new ShowYearButtons as Boolean = True property. |
| Added | None | GraffitiCalendar has a new ViewButton( index as Integer ) as Views function. |
| Added | None | GraffitiCalendar now implements the iterable interfaces to support For...Each for child items. |
| Added | None | GraffitiGrid has a new AddRows( rs as Rowset, indexColumnName as String = "row_id" ) method. |
| Added | None | GraffitiGrid has a new DatabaseRemoveRow as Boolean = False property. |
| Added | None | GraffitiGrid has a new DatabaseUpdateRow as Boolean = False property. |
| Added | None | GraffitiGrid now implementes the iterable interfaces to support For...Each for rows. |
| Added | None | GraffitiKanban now implements the iterable interfaces to support For...Each for columns. |
| Added | 632 | GraffitiKanbanColumn has a new Width property for setting a static width in pixels. |
| Added | None | GraffitiKanbanColumn now implements the iterable interfaces to support For...Each for child items. |
| Added | None | GraffitiMenuItem now implements the iterable interfaces to support For...Each for child items. |
| Added | None | GraffitiPagePanel now implements the iterable interfaces to support For...Each for child items. |
| Added | None | GraffitiPanelSelector now implements the iterable interfaces to support For...Each for child items. |
| Added | None | GraffitiPopupMenu now implements the iterable interfaces to support For...Each for child items. |
| Added | None | GraffitiStepBar now implements the iterable interfaces to support For...Each for child items. |
| Added | None | GraffitiTabPanel now implements the iterable interfaces to support For...Each for child items. |
| Added | None | GraffitiTagField has a new DeselectAll method. |
| Added | None | GraffitiTagField has a new SelectAll method. |
| Added | None | GraffitiTagField now implements the iterable interfaces to support For...Each for child items. |
| Added | None | GraffitiThumbList now implements the iterable interfaces to support For...Each for child items. |
| Added | None | GraffitiWall now implements the iterable interfaces to support For...Each for child items. |
| Fixed | None | GraffitiColorPicker can no longer encounter NilObjectExceptions when drawing the color wheel on some devices. |
| Fixed | None | GraffitiGrid.CellBorderType now exposed to the inspector. |
| Fixed | None | GraffitiGrid.RowBorderType now exposed to the inspector. |
| Fixed | None | GraffitiGrid no longer reserves space for rows whose Visible property = False. |
| Fixed | None | GraffitiGrid should now properly allow row drag reordering on the first visible rows when IsHeaderVisible = False. |
| Fixed | 630 | GraffitiKanban no longer ignores column and item drag operations to the end of the display area for that type. |
| Removed | 636 | GraffitiCalendar.ShowDayViewButton. Use AddViewButton method. |
| Removed | 636 | GraffitiCalendar.ShowMonthViewButton. Use AddViewButton method. |
| Removed | 636 | GraffitiCalendar.ShowWeekViewButton. Use AddViewButton method. |
## Release 63
Release Date: Jul 1, 2025
| Type | Ticket | Description |
| --- | --- | --- |
| New | None | GraffitiPDF |
| New | None | GraffitiSlideshow |
| Added | 749 | GraffitiEditor has a new AllowStyleChangesOnly as Boolean = False property that prevents users from making changes to the editor's content by either typing or drag/drop but allows changing the formatting of existing text. |
| Added | None | GraffitiKanban has a new ColumnPressed( column as GraffitiKanbanColumn ) event definition for when users press a column. |
| Added | 714 | GraffitiKanban has a new CustomTheme as String property for overriding the default Bootstrap4 theme. |
| Added | 750 | GraffitiKanban has a new DragBehavior as DragBehaviors property for controlling the source of drag operations. |
| Added | 750 | GraffitiKanban has a new DragBehaviors enumeration (0 = Anywhere, 1 = Handle). |
| Added | 715 | GraffitiKanban has a new ItemPressed( item as GraffitiKanbanItem ) event definition for when users press an item. |
| Added | 750 | GraffitiKanban has a new ShowDragHandles as Boolean = False property. |
| Added | 750 | GraffitiKanban now supports embedded FontAwesome icons in the various text elements, but this produce undesired results when edited by users. |
| Added | 716 | GraffitiKanbanColumn has a new AllowReorder as Boolean = True property that controls whether its items can be reordered by dragging. |
| Added | 754 | GraffitiKanbanColumn has a new BorderSize as Integer = -1 property that controls the size of the border. Set to -1 for theme default. |
| Added | None | GraffitiKanbanItem has a new CanLeaveColumn as Boolean = True property that controls whether the item can leave its parent column by dragging. |
| Added | 754 | GraffitiKanbanItem has a new BorderSize as Integer = -1 property that controls the size of the border. Set to -1 for theme default. |
| Added | None | GraffitiKanbanItem has a new ItemAt( index as Integer ) as GraffitiKanbanListItem function for retrieving the GraffitiKanbanListItem as the specified index. |
| Added | None | GraffitiKanbanItem has a new LastIndex() as Integer function for retrieving the index of the last GraffitiKanbanListItem. |
| Added | 751 | GraffitiKanban drag scrolling has been significantly improved. |
| Fixed | 757 | GraffitiEditor now repositions menus on audio, image, and video editors if they would appear outside the bottom of the viewport. |
| Fixed | 756 | GraffitiEditor now better handles display of mixed font names in selection in the toolbar. |
| Fixed | 756 | GraffitiEditor now better handles display of mixed font sizes in selection in the toolbar. |
| Fixed | 692 | GraffitiKanban once again loads. |
| Fixed | 719 | GraffitiKanban now appropriately applies the column Indicator property to the column card body. |
| Fixed | None | GraffitiKanban should no longer enter a state where it isn't scrollable after some item/column drag operations. |
| Fixed | 738 | GraffitiKanbanColumn now properly applies IndicatorHeader. |
| Fixed | 738 | GraffitiKanbanColumn now properly applies IndicatorBorder. |
| Fixed | 736 | GraffitiKanbanItem now applies IndicatorBorder when set before being displayed in the control. |
| Fixed | 740 | GraffitiKanbanItem now properly applies the AvatarPicture. |
| Fixed | 746 | GraffitiKanbanItem now properly applies the ImagePicture. |
| Fixed | 745 | GraffitiKanbanItem now hides the list items area when no list items are present. |
| Fixed | 668 | GraffitiSimpleEditor now allows Mention and Hashtag selection using touch. |
| Fixed | None | GraffitiSimpleEditor mentions and hashtags are now visually improved in dark mode. |
| Changed | 750 | GraffitiKanban now displays drag handles on columns and items that have a CanDrag property value of True to improve UX. |
| Changed | None | GraffitiMobileWebControl renamed to GraffitiWebUIControl. This should have no effect on user projects. |
| Changed | 767 | GraffitiSplitView's handle now draws in a way that more closely matches Web. |
## Release 64
Release Date: Oct 17, 2025
| Type | Ticket | Description |
| --- | --- | --- |
| New | None | GraffitiHTMLtoPDF |
| New | None | GraffitiImageViewer |
| Added | None | GraffitiEditorFormat has a new LinkTarget as String property. |
| Added | None | GraffitiEditorFormat has a new LinkTitle as String property. |
| Added | None | GraffitiEditorFormat has a new LinkURL as String property. |
| Added | 818 | GraffitiPDF.Internal.Template.WatermarkFontName as String = "Helvetica" |
| Added | 818 | GraffitiPDF.Internal.Template.WatermarkFontStyle as GraffitiPDF.Document.FontStyles |
| Added | 818 | GraffitiPDF.Internal.Template.WatermarkOpacity as Double = 0.5 |
| Added | 822 | GraffitiPDF.Tables.Instance.AddFooterStyle( column as Integer, style as GraffitiPDF.Tables.CellStyle ) method. |
| Added | 822 | GraffitiPDF.Tables.Instance.AddHeaderStyle( column as Integer, style as GraffitiPDF.Tables.CellStyle ) method. |
| Added | 819 | GraffitiPDF.Tables.Instance.Footer( index as Integer ) as String method. |
| Added | 819 | GraffitiPDF.Tables.Instance.Footer( index as Integer, assigns value as String ) method. |
| Added | 819 | GraffitiPDF.Tables.Instance.FooterStyle as GraffitiPDF.Tables.CellStyle property |
| Fixed | 825 | GraffitiPDF now properly positions footers on all pages. |
| Fixed | 823 | GraffitiPDF.Document.DrawLine no longer throws a JavaScript exception. |
| Fixed | 821 | GraffitiPDF.Tables.Instance.BodyStyleAlternate is now honored. |
## Release 65
Release Date: Jan 27, 2026
| Type | Ticket | Description |
| --- | --- | --- |
| New | None | GraffitiSelectGroup |
| Fixed | None | GraffitiScrollbar once again raises the ValueChanged event under all expected circumstances. |
| Fixed | None | GraffitiScrollbar once again restricts Value to Maximum and Minimum range. |
## Release 65.1
Release Date: Feb 2, 2026
| Type | Ticket | Description |
| --- | --- | --- |
| New | None | Added Library and Navigator Icons. |
| Fixed | 894 | GraffitiHTMLtoPDF now embeds the Roboto font by default as the base library now requires it. |
| Fixed | 899 | Workaround for bug in Xojo's Libraries implementation in regards to the registration system. |
## Release 65.2
Release Date: Feb 3, 2026
| Type | Ticket | Description |
| --- | --- | --- |
| Note | None | Internal Release |
## Release 65.3
Release Date: Feb 5, 2026
| Type | Ticket | Description |
| --- | --- | --- |
| New | None | Fixed a number of enumeration references that Xojo wouldn't resolve in 2025R3.1. |
## Release 66
Release Date: Apr 1, 2026
| Type | Ticket | Description |
| --- | --- | --- |
| New | None | Xojo 2026R1 Compatibility. |
## Release 67
Release Date: Apr 9, 2026
| Type | Ticket | Description |
| --- | --- | --- |
| Fixed | None | GraffitiGrid should no longer encounter a NilObjectException reparenting a row via drag. |
| Fixed | 929 | GraffitiKanban no longer adds GraffitiKanbanListItems to all GraffitiKanbanItems in a column when calling AddListItem. |
## Release 68
Release Date: Apr 15, 2026
| Type | Ticket | Description |
| --- | --- | --- |
| Changed | None | GraffitiSuite now incorporates a method of determining the true Application object to workaround a linker error when users have renamed it from "App" to something else. |
## Release 69
Release Date: May 9, 2026
| Type | Ticket | Description |
| --- | --- | --- |
| Added | None | Current GraffitiSuite Library version is now available by accessing the GraffitiSuite.Version constant. |
| Added | None | GraffitiPopupMenu has a new InitialValue as String property. This value is split by EndOfLine to populate the control at Opening. |
| Fixed | None | GraffitiSuite is now initialized in more scenarios where it was needed. |
| Updated | None | Updated documentation to reflect the move to Libraries. |
## Release 70
Release Date: May 22, 2026
| Type | Ticket | Description |
| --- | --- | --- |
| Added | None | Added DrawControlInLayoutEditor mechanism for all applicable classes. |
## Release 71
Release Date: Unreleased
| Type | Ticket | Description |
| --- | --- | --- |
| Added | None | Additional metadata. |
| Fixed | 947 | GraffitiPagePanel no longer applies a standard gap size to the width and height constraints of the container but not to the top and left. |
| Updated | None | Xojo 2026 Release 2 Compatibility. |
## Release 72
Release Date: Aug 11, 2026
| Type | Ticket | Description |
| --- | --- | --- |
| Added | None | GraffitiAvatar has a new HasStatus as Boolean = False property. |
| Added | None | GraffitiAvatar has a new StatusColor as Color property. |
| Added | None | GraffitiAvatarGroupItem has a new HasStatus as Boolean = False property. |
| Added | None | GraffitiAvatarGroupItem has a new StatusColor as Color property. |