Release 43

Release 43.5 #

Release Information #

Platform Version Release Date
Desktop R43.5 November 22, 2021
Target New Added Fixed Changed Removed
Desktop 0 0 1 0 2

Desktop #

Type Change
FIXED More Desktop control variant fixes.
REMOVED GraffitiRibbon.Style property.
REMOVED GraffitiRibbon.Styles enumeration.

Web #

Type Change
Not Applicable

Release 43.4 #

Platform Version Release Date
Desktop R43.4 November 22, 2021
Target New Added Fixed Changed Removed
Desktop 0 0 >60 0 0

Desktop #

Type Change
FIXED Fixed 60+ errors on Windows due to a failed merge.
FIXED All HTMLViewer-based controls once again function properly on Windows.

Web #

Type Change
Not Applicable

Release 43.3 #

Release Information #

Platform Version Release Date
Desktop R43.3 November 22, 2021
Target New Added Fixed Changed Removed
Desktop 0 0 >1500 0 0

Desktop #

Type Change
FIXED More fixed for references to old controls in various products.
FIXED Another 1500 or so deprecation and analysis warnings.

Web #

Type Change
Not Applicable

Release 43.2 #

Release Information #

Platform Version Release Date
Desktop R43.2 November 20 2021
Target New Added Fixed Changed Removed
Desktop 0 0 >10,000 0 0

Desktop #

Type Change
FIXED GraffitiSignature’s Timed method once again functions.
FIXED More than 10,000 deprecation and analysis warnings.
FIXED Numerous instances where old control types were continuing to be referenced as parents of products in logic.

Web #

Type Change
Not Applicable

Release 43.1 #

Release Information #

Platform Version Release Date
Desktop R43.1 November 19, 2021
Target New Added Fixed Changed Removed
Not Applicable

Desktop #

Type Change
NOTE First version for Xojo Desktop API 2.0
REMOVED GraffitiDropZone.Immersive property
REMOVED GraffitiKanban.DarkMode property
REMOVED GraffitiOrgChart.DarkMode property

Web #

Type Change
Not Applicable

Release 43 #

Release Information #

Platform Version Release Date
All R43 November 18, 2021
Target New Added Fixed Changed Removed
Desktop 2 23 20 4 5
Web 2 27 35 4 0

Desktop #

Type Change
NEW GraffitiEditor
NEW GraffitiHTMLtoPDF
ADDED GraffitiChart has a new TooltipAlwaysVisible as Boolean = False for always displaying tooltips. Especially useful in Doughtnut and Pie chart types.
ADDED GraffitiChart has a new DataSet(index as Integer) as GraffitiChartDataSet method for returning a loaded DataSet by index.
ADDED GraffitiChart has a new LastDataSetIndex as Integer method for returning the index of the final DataSet.
ADDED GraffitiChart has a new Label(index as Integer) as String method for returning labels by index.
ADDED GraffitiChart has a new LastLabelIndex as Integer method for returning the index of the final DataSet.
ADDED GraffitiChart has a new RemoveLabel(index as Integer) method for removing labels by index.
ADDED GraffitiHTMLEditor.InsertFile now supports more file types: “jpg”, “jpeg”, “png”, “gif”, “apng”, “bmp”.
ADDED GraffitiListbox has a new ColumnIsHovered(index as Integer) As Boolean method for determining the hover state of the specified column. (15953)
ADDED GraffitiListbox has a new HeaderBackgroundPaint( g as Graphics, column as Integer ) as Boolean event. Return True to override default drawing. (15953)
ADDED GraffitiListbox has a new HeaderContentPaint( g as Graphics, column as Integer ) as Boolean event. Return True to override default drawing. (15953)
ADDED GraffitiPropertyList now supports childs of the following formats: Date, Date plus Time, and Time. (16302)
ADDED GraffitiRibbon.Remove(index as Integer) (16270)
ADDED GraffitiRibbon.Remove(tab as GraffitiRibbonTab) (16270)
ADDED GraffitiRibbon.RemoveAll (16270)
ADDED GraffitiRibbonColumn now has Remove(index as Integer) and RemoveAll methods. (16270)
ADDED GraffitiRibbonGroup now has Remove(index as Integer) and RemoveAll methods. (16270)
ADDED GraffitiRibbonTab now has Remove(index as Integer) and RemoveAll methods. (16270)
ADDED GraffitiTimelineGroup has a new CSSClassName as String property. Custom CSS classes should be included in the CustomStyling property. (16043)
ADDED GraffitiTimelineItem has a new CSSClassName as String property. Custom CSS classes should be included in the CustomStyling property.
ADDED GraffitiTreeView has a new DropPositions enumeration: 0 = Above, 1 = On, 2 = Below. (16007)
ADDED GraffitiTreeView has a new NodeDrag(node as GraffitiTreeViewNode, target as GraffitiTreeViewNode, position as GraffitiTreeView.DropPositions) as Boolean event for controlling display of the drop indicator in node drag operations. Return True to omit drawing drop indicator. (16007)
ADDED GraffitiTreeView has a new NodeDrop(node as GraffitiTreeViewNode, target as GraffitiTreeViewNode, position as GraffitiTreeView.DropPositions) as Boolean event for controlling whether a node drop target is valid. Return True to cancel the drop operation. (16007)
ADDED GraffitiWall has a new ContainerResized( container as ContainerControl ) event that is raised when the ContainerControl’s Resized event is fired. (15976)
FIXED GraffitiFieldLabel no longer hides the child control when there is no Icon and no Label text. (15963)
FIXED GraffitiFieldLabelContainer no longer hides the child control when there is no Icon and no Label text.
FIXED GraffitiHTMLEditor once against supports Picture and image file dropping to insert. (16013)
FIXED GraffitiHTMLEditor once again applies fonts in the display that have spaces in their name. (16033)
FIXED GraffitiHTMLEditor once again raises the MouseWheel event. (16036)
FIXED GraffitiHTMLEditor no longer crashes on Windows after failed Picture drop attempts. (16013)
FIXED GraffitiHTMLEditor no longer duplicates images when attempting to drag them around inside the text.
FIXED GraffitiHTMLEditor.InsertAudio once again inserts Audio elements. (16121)
FIXED GraffitiHTMLEditor.InsertLink can now overwrite selected text with edited link text. (16125)
FIXED GraffitiHTMLEditor.InsertVideo once again inserts Video elements. (16121)
FIXED GraffitiSyntaxEditor.FindPrev no longer finds next. (16238)
FIXED GraffitiSyntaxEditor.ReplaceAll no longer replaces only a single instance.
FIXED GraffitiTimeline properties are once again updated properly in the display. (16238)
FIXED GraffitiTimeline now displays a clear icon in the dynamically displayed reset button when RollingMode = True and the user has modified the display.
FIXED GraffitiTimeline once again displays embedded FontAwesome icons.
FIXED GraffitiTimeline now properly breaks in Select Case statements to limit unnecessary events.
FIXED GraffitiTimeline once again updates property changes after initialization.
FIXED GraffitiTimelineItem now properly shadows overrideable GraffitiTimeline values for Can* properties. (16060)
FIXED GraffitiTreeView will no longer hard crash apps when you double-click the area below nodes. (15995)
FIXED GraffitiTreeView should no longer throw an OutOfBoundsException on some drag move operations. (15996)
FIXED GraffitiTreeView will no longer break row parent and order relationships when right-clicking a row that can be reordered by drag. (15996)
DEPRECATED GraffitiHTMLEditor
REMOVED GraffitiHTMLEditor no longer has a UserDroppedImage event. File type enforcement has been built-in for a while now with no ill effects.
REMOVED GraffitiImmersive* Classes.
REMOVED GraffitiPropertyList.kChild constants.
REMOVED GraffitiRibbonItem.Visible
REMOVED KillerToolbar. For replacement see GraffitiRibbon.
CHANGED GraffitiHTMLEditor.InsertLineBreak no longer has an atPos parameter and will operate on the current selection in the editor.
CHANGED GraffitiPropertyList now uses the Types enumeration of PropertyListChild.
CHANGED GraffitiTimeline will now automatically set the zoom level to display all items on load.
CHANGED GraffitiTimeline will now also zoom appropriately when calling the ShowAll method.
NOTE Various support classes are now hidden from the Library.
NOTE GraffitiDesktopControl subclasses now load via FolderItem as a result of the 2021R3 WebKit renderer update for Windows.
NOTE GraffitiDesktopControl subclasses have received various JavaScript-related fixes for 2021R3 compatibility on Windows.

Web #

Type Change
NEW GraffitiDrag
NEW GraffitiPDFTemplate
ADDED GraffitiAccordionMenu has two new properties for setting the chevron icons for items with child nodes: IconCollapsed as Picture, IconExpanded as Picture. (15947)
ADDED GraffitiButton has a new Tag as Variant property. (16021)
ADDED GraffitiCurrencyField has a new Caption as String property for displaying a label for the field. (16208)
ADDED GraffitiCurrencyField has a new DetectLocale as Boolean = False property. When True the control will attempt to use the client locale to populate the currency symbol, decimal character, and grouping characters client-side. (16026)
ADDED GraffitiDatePickerSingle has a new IconPicture as Picture property for setting a custom picture object to the select button. (16004)
ADDED GraffitiDatePickerMultiple has a new IconPicture as Picture property for setting a custom picture object to the select button. (16004)
ADDED GraffitiGrid now sorts Badge columns first by indicator then by text, using the following order: Primary, Secondary/Default, Info, Success, Warning, Danger, Light, Dark, Link. (15968)
ADDED GraffitiGridButtonGroup has a new FillCell as Boolean = True property. When False the group will be automatically sized by its content and centered in the cell. (16161)
ADDED GraffitiGridButtonGroup has a new RoundedCorners as Boolean = False property. When True the group’s outside corners will be rounded. (16161)
ADDED GraffitiGridColumn has a new Sorter as String property for providing a JavaScript function to sort data.
ADDED GraffitiGridColumn has a new NumericGrouping as Boolean = False property. When set to True, the cell values in that column will be formatted using the locale-specific grouping method (such as commas for en-US like 1,234). (15992)
ADDED GraffitiGridColumn has a new CurrencyCode as String = “” property. When set to a valid currency code, such as “USD”, the Grid will format cell values appropriately for that code (such as $1234). (15992)
ADDED GraffitiGridColumns with a Formatter of FormatTypes.Integer now make use of ZeroValueOverride when it is supplied.
ADDED GraffitiGridColumns with a Formatter of FormatTypes.Integer now apply the IntegerValueMax and IntegerValueMin properties when displaying values in addition to when editing.
ADDED GraffitiHTMLEditor now has a toPage method to export the content and all necessary CSS to HTML. (16110)
ADDED GraffitiImagePicker has a new IconFindButtonURL as String property for specifying the icon to use as a URL to an image. (16313)
ADDED GraffitiImagePicker has a new IconRemoveButtonURL as String property for specifying the icon to use as a URL to an image. (16313)
ADDED GraffitiImagePicker has a new IconUploadButtonURL as String property for specifying the icon to use as a URL to an image. (16313)
ADDED GraffitiMenu once again has a method for attaching menus to GraffitiToolbarButtons. (16089)
ADDED GraffitiPDF has a new HasCoverPage as Boolean = False property for controlling display and count of headers and footers relative to the first document page.
ADDED GraffitiPDF has a new PageTemplate as GraffitiPDFTemplate property.
ADDED GraffitiRectangle’s Pressed event now has two new parameters for determining the relative click point: X as Integer, Y as Integer. (15933)
ADDED GraffitiRectangle’s PressedRight event now has two new parameters for determining the relative click point: X as Integer, Y as Integer. (15933)
ADDED GraffitiStyle has a new Destroy method for removing styles from the client’s browser and the table of session styles.
ADDED GraffitiStyle has a new overridden Shared Method: DestroyInstance(inSession as WebSession, Name as String)
ADDED GraffitiStyle has a new overridden Shared Method: GetInstance(inSession as WebSession, Name as String, State as GraffitiStyle.States = GraffitiStyle.States.Default) As GraffitiStyle
ADDED GraffitiTabPanelItem has a new Style as GraffitiStyle property. (16115)
FIXED GraffitiAccordion child WebContainers should now stretch to fill the width of their panel. (16221)
FIXED GraffitiBarcodeReader once again returns a valid list of devices on iOS.
FIXED GraffitiCalendar will no longer throw a JavaScript exception when resizing the browser under some conditions.
FIXED GraffitiCalendar will no longer fire the EventSelected event when clicking the currently selected event.
FIXED GraffitiCamera once again returns a valid list of devices on iOS.
FIXED GraffitiCurrencyField can no longer enter an invalid state when either the Decimal or Group character properties are empty. (16026)
FIXED GraffitiCurrencyField now uses the padding defined for form controls in the Bootstrap theme. (16057)
FIXED GraffitiCurrencyField once again sends negative values. (16057)
FIXED GraffitiCurrencyField no longer loses value when changing properties after initialization. (16057)
FIXED GraffitiDatePickerRange now updates Xojo-side values when navigating months and years in the picker popup. (16175)
FIXED GraffitiGrid can once again show the search panel. (15970)
FIXED GraffitiGrid now updates visible selection when setting a row’s Selected Property to False. (15969)
FIXED GraffitiGrid will now scroll rows in to view when calling ScrollToRow at load time.
FIXED GraffitiGridColumns using WidthTypes.Percentage no longer corrupt the display when the user resizes a column. (16069)
FIXED GraffitiHTMLEditor now properly sizes as expected rather than extending beyond the control’s height by the height of the toolbar.
FIXED GraffitiImagePicker’s Value method for string parameters no longer uses Assigns and has an optional isBASE64 parameter.
FIXED GraffitiMenu once again works when left-clicking Xojo’s built-in WebButton in 2021R3+. (16135)
FIXED GraffitiMenu now better handles more attachment scenarios. Position values may need adjustment.
FIXED GraffitiPDF has a new Print() method which will open the print dialog with the PDF content loaded allowing the user to immediately print on output. (16195)
FIXED GraffitiPDF.LoadInViewer now works for PDFs generated using FromHTML in Chrome.
FIXED GraffitiPreloader now properly colors spinners that use the before pseudoselector.
FIXED GraffitiPopupMenu once again properly adds GraffitiStyles to items.
FIXED GraffitiPopupMenu.AddItem once again works after initialization. (15981)
FIXED GraffitiPopupMenu once again exposes the OpenPopup method. (16283)
FIXED GraffitiPopupMenu once again exposes the ClosePopup method. (16283)
FIXED GraffitiProgressRadial once again properly sets the ValueCaption in the browser when changed. (16293)
FIXED GraffitiSidebar will no longer attempt to open when calling the OpenBar method is the Container property is nil, fixing a NilObjectException. (16323)
FIXED GraffitiSignature once again loads images from BASE64 data strings. (16290)
FIXED GraffitiSignature no longer chunks and caches packets for sending. This was a workaround for an early version of Web 2.0.
FIXED GraffitiSyntaxEditor should no longer fail to initialize on WebContainers. (16236)
FIXED GraffitiTabPanel no longer erroneously raises the Open event whenever the TabPanel becomes visible. (16075)
FIXED GraffitiTabPanel once again updates the panel height when the browser is resized. (16090)
FIXED GraffitiTimePicker once again honors the Enabled property. (16073)
FIXED GraffitiTour now exposes properties to the inspector.
FIXED Tooltip properties now work on most, if not all, classes when defined.
CHANGED GraffitiGrid more frequently updates column sizes to account for issues with percentage widths. (16069)
CHANGED GraffitiGrid now raises the ButtonGroupItemPressed event when a GraffitiGridButtonGroupItem is pressed regardless of the GraffitiGridButtonGroup.SingleSelect setting. Previously CellChange would be raised on SingleSelect = True. This is no longer the case. (16170)
CHANGED GraffitiWebWall may operate faster on load now by calling for fewer updates.
CHANGED GraffitiWebWall.UpdateDisplay is no longer public to avoid misuse.
NOTE GraffitiPopupMenu has been updated to Select2 v4.1.0-rc.0