2019r2 Release Notes

From Xojo Documentation

Xojo 2019 Release 2 is now available with over 230 changes and improvements.

Major changes include:

  • API 2.0, which includes new classes and updated method, property and event names on many existing classes. Learn more in this guides: API 2.0 Overview and API 2.0 Guidelines.
    • Var can now be used in place of Dim.
    • All-new DateTime class.
    • All-new GraphicsPath class for drawing Bezier paths.
    • FolderItem updated to use latest OS APIs on macOS.
    • File Type Groups replace File Type Sets.
  • IDE Improvements
    • Preview layout in light or dark mode on supported macOS versions.
    • Debugger can now Ignore All Breakpoints when running.
    • Text file projects save much quicker.
    • Implement Interface dialog improved.
    • Contextual menu provides easier access to project item subclasses.
    • Navigator speed improvements.
    • IDE Scripting improvements.
  • Code Editor Improvements
    • Auto-complete improved.
    • Shift-Return on comments to continue to next line
    • Shift-Return on single-line If..Then..Else to split to multiple lines
  • Database
  • iOS
  • Documentation
    • Examples updated to use API 2.0 features.
    • Language Reference, User Guide and Tutorials updated to use API 2.0 features.

Xojo 2019r2 Release Notes

Bug Fixes

56044Build Process (GoCD)Copyright string for point releases has been corrected.
39118CompilerUpdated the ambiguous method error message.
55001CompilerDeprecated events in class instances now appear as deprecated in Analyze Project.
56071CompilerFixed an issue where some high core-count machines on Windows may have trouble building large 64-bit projects.
56913CompilerAnalyze Project now warns about all deprecated items. Many framework functions were missed before.
55767Crashes & Assertions » Failed AssertionIDE no longer crashes when inspecting the contents of a listbox before it has been completely set up.
55202Crashes & Assertions » IDE Unhandled ExceptionIDE will no longer crash if the editor is destroyed before the edit is committed.
55205Crashes & Assertions » IDE Unhandled ExceptionFixed a situation that could crash the IDE if the user typed a location into the Go To Location dialog that shows in the IDE but has been removed from the matching external item.
55225Crashes & Assertions » IDE Unhandled ExceptionIDE will no longer crash if the number of screens changes while it is open (like if a power outage occurs).
55318Crashes & Assertions » IDE Unhandled ExceptionIDE no longer crashes if you remove an underscore from within the last line in the code editor.
55476Crashes & Assertions » IDE Unhandled ExceptionProject items can no longer be added to the project when the Constant text editor is open.
55572Crashes & Assertions » IDE Unhandled ExceptionThe IDE no longer crashes when moving code from the last line of a code editor with the Apply Standard Format preference turned on.
55577Crashes & Assertions » IDE Unhandled ExceptionTyping a line-continuation character on the last line of a code editor no longer crashes the IDE.
55724Crashes & Assertions » IDE Unhandled ExceptionRemoving files in folders from a CopyFilesStep when the files and/or folders no longer exist on disk no longer crashes the IDE.
55832Crashes & Assertions » IDE Unhandled ExceptionFixed a potential crash if the a layout editor were closed while it was being refreshed.
55919Crashes & Assertions » IDE Unhandled ExceptionFixed an obscure edge case which caused the IDE to crash when drawing the contents of a Using statement.
56075Crashes & Assertions » IDE Unhandled ExceptionIDE no longer crashes when you close a web project while using the inline editor.
56127Crashes & Assertions » IDE Unhandled ExceptionIDE will no longer crash when dragging over a row whose selection rectangle <= 0 pixels wide.
56179Crashes & Assertions » IDE Unhandled ExceptionFixed a possible crash when closing the code editor with an unmatched parenthesis set.
56283Crashes & Assertions » IDE Unhandled ExceptionSetting the URL of a WebImageView to an unsupported URL no longer crashes the IDE.
56299Crashes & Assertions » IDE Unhandled ExceptionFixed a potential crash if items were removed from a project while a search was going on.
56426Crashes & Assertions » IDE Unhandled ExceptionIDE no longer asserts when quickly moving between the Super field and the Interfaces button.
57386Crashes & Assertions » IDE Unhandled ExceptionCopying results from the error panel no longer raises a TypeMismatchException if the user has selected one of the headers.
32121Database PluginsThe MSSQLServerDatabase plugin now uses the same session for the same open RecordSet.
55778Database Plugins » Microsoft SQLMSSQLServerDatabase now correctly sets the error status when a PreparedStatement fails to execute correctly. Also fixes a Date binding issue with PreparedStatements.
25734DebuggerDo not send breakpoints that were set within encrypted items since this would cause the debugger to pause even though it doesn't show the code, leading to confusion.
51832DebuggerBreakpoints set within a Module Class Method during a debugging session now properly break in the debugger.
8646Framework » AllExceptions that are triggered in Modal dialogs can now be caught instead of being ignored or only caught when the modal dialog is closed.
52590Framework » AllPlotting an Object2D shape that may have no actual polygon/points to draw no longer raises a failed assertion.
52898Framework » AllMemoryblock methods in 64-bit applications can now access addresses above 4GB.
54766Framework » AllTextField now formats numerical output that matches what CDbl would accept, this is done to maintain backwards compatibility.
55189Framework » AllOn Windows/Linux, a Picture obtained from an ImageSet (via IndexedImage or BestRepresentation) now correctly reports its horizontal/vertical resolution.
55617Framework » AllUpdating transparent controls (like a Label's Text property) in its parent's Paint event (not a recommended thing to do anyway, but) no longer causes an infinite paint loop.
55646Framework » AllFixed a potential reference leak in TCPSocket and prevented a possible infinite loop state depending on how quickly connections are handled by a listening socket.
55691Framework » AllTrueWindow now returns Nil for ContainerControls which have not yet been embedded on a window.
56936Framework » AllOn macOS, FolderItems created from a URL that contains a query string now properly include the query string as part of the filename as they do on Windows and Linux.
53656Framework » LinuxTooltip background color is no longer black (when it really shouldn't be).
55765Framework » LinuxFixed memory leaks related to closing controls, and updating the font (name, size, etc.) of a control.
55985Framework » LinuxSwitching Tabs when a Listbox is present no longer intermittently crashes.
56091Framework » LinuxWhen resolving FolderItem symbolic links, the path no longer includes a trailing / if the link doesn't point to a directory.
56400Framework » LinuxLinux IDE Goto Location dialog no longer crashes when backspacing.
45691Framework » WebWebLabels which have a style applied to them which includes Underline, Strikethrough and/or Overline values will now appear in the browser.
54973Framework » WebSessions are no longer created after returning True in HandleURL.
55039Framework » WebData returned through HandleURL or HandleSpecialURL on Windows is no longer truncated on Windows.
55362Framework » WebWebAppSecurityOptions are no longer available to and no longer autocomplete in non-web projects.
55604Framework » WebWebGraphics.DrawString no longer causes a Javascript error if the string includes a RETURN character.
57613Framework » WebLinux: Retrieving a URLConnection.ResponseHeader that does not exist no longer crashes.
55418Framework » WindowsURLConnection/Xojo.NET.HTTPSocket now picks up proxy settings on Windows 7 and Windows 8.
55615Framework » WindowsNow preventing additional invalidations that may occur inside a Paint event so that we don't end up in a recursive Paint loop.
55849Framework » WindowsURLConnection/Xojo.Net.HTTPSocket no longer hangs the app when downloading a large file/content in memory.
56107Framework » WindowsHTMLViewer: The WebKit based HTMLViewer no longer steals event messages from us, this fixes various issues related to mouse clicks or keyboard presses being "lost”.
56452Framework » WindowsBevelButton, SegmentedControl, UpDownArrow all now update immediately after a theme change event takes place.
56474Framework » WindowsListbox Cell HelpTag no longer flickers during mouse over.
57312Framework » WindowsStringWidth and StringHeight now take CharacterSpacing into account.
57005Framework » iOSiOS apps can now be run with Xcode 11 and iOS 13 Simulators.
54266Framework » macOSPicture.ApplyMask now throws an UnsupportOperationException when applying the mask to an ImmutableBitmap.
54424Framework » macOSDragging more than one item no longer causes a crash on macOS.
55121Framework » macOSCreating a drag item containing more than one data type no longer crashes on macOS.
55886Framework » macOSTooltips now have a dark variation in macOS 10.14 and above.
56349Framework » macOSApp.AppearanceChanged now fires sooner.
57224Framework » macOSTextAreas on macOS now have tab stops all the way across the control to avoid wrapping problems with lines of text which contain more than 12 tabs.
57553Framework » macOSFolderItem: SaveInfo now correctly resolves aliases to files that may have been moved or renamed.
55535IDEText projects that contain very long methods (100s to 1000s of lines of code) now save faster.
53416IDE » Auto CompleteFixed the Type of several constants in the Serial class so items in a group that are primarily Integers are *all* integers instead of a mix of integers and doubles.
56408IDE » Auto Complete#ElseIf is now included in autocomplete.
57167IDE » Auto CompleteAutocomplete no longer suggests type names when specifying variable names after typing "Dim" or "Var".
57502IDE » Auto CompleteCode editor no longer tries to autocomplete commented lines.
57306IDE » Build AutomationCopyFileSteps on Linux work with Folders again.
55207IDE » Code EditorCode Reformat scripts no longer cause a delay when you leave the first line of code in a code editor.
55399IDE » Code EditorCode Folding widgets with a depth > 1 have the correct click point again.
55861IDE » Code EditorCode Editor and Navigator contextual menus no longer appear when the IDE isn't in the foreground on macOS.
55781IDE » Constant EditorConstant editor no longer changes the selected item when committing a change with the RETURN or ENTER key.
56491IDE » Constant EditorConstant editor text and popup indicators are now drawn in the correct color, regardless of whether the list has focus or a row is selected.
56187IDE » Error & Warning PanelError panel no longer clips text when user preference is to use Large Text.
57022IDE » FileIOProjects created in 2019r2 will no longer open in previous versions of the IDE.
1000IDE » FileTypes EditorFileTypes.All no longer adds an extra semicolon at the end of the string.
55899IDE » FileTypes EditorThe File Type editor row backgrounds now draw correctly when changing from light to dark mode.
56008IDE » Find & ReplaceSet focus to main IDE window when using Find shortcut from Inspector/Library when it is a palette.
55905IDE » Icon EditorRemoved menu bar from Icon Editor dialog on Windows and Linux.
54915IDE » Image EditorICNS files containing a 'name' section no longer crash the IDE when they are dropped on the icon editor.
55433IDE » Image EditorFixed some drawing issues in the Image Asset editor which caused the transparency grid to overflow the drawing bounds as well as the text color when a row was selected.
53739IDE » InspectorAdded focus indicators to the Color chooser and the multi-line editor buttons.
54200IDE » InspectorText in the Method parameters field on Linux is now the correct size.
55385IDE » InspectorConverting controls to a control set no longer leaves the current editor.
56077IDE » InspectorBuild caches are now automatically cleared when changing optimization levels.
54180IDE » Layout EditorOn macOS, the Layout Editor again shows Default buttons with the correct background color.
54435IDE » Layout EditorSegmented Controls are now drawn manually on macOS 10.13 in the layout editor itself. This does not affect apps at runtime.
56301IDE » Layout EditorLayout Editor preference for the color of the pasteboard now correctly switches between light and dark mode.
56318IDE » Layout EditorLayout Editor alignment guides now use system colors on macOS so they don't disappear in dark mode.
56485IDE » Layout EditorLocking control position no longer prevents edge locks from working in the layout editor and disables alignment and distribution command buttons.
53713IDE » LibraryThe library's width is now set up properly from the start.
55782IDE » LicensingDisabled spell checking on the License Agreement dialog.
48780IDE » Menu EditorMenu backgrounds in the menu editor are now the correct width when the names include an ampersand.
56018IDE » Menu EditorSelected items in the menu bar editor are now the correct color on macOS Mojave.
47943IDE » MiscellaneousTabs on Linux now have bigger captions.
55717IDE » MiscellaneousRenaming class event definitions now immediately updates visible instances of the class in the Navigator.
55936IDE » MiscellaneousOn the Tab Bar, the Add Tab button no longer slides to the right if the first tab is dragged.
56124IDE » MiscellaneousThe Windows preference for whether or not to quit when the last window is closed can no longer affect other platforms.
56151IDE » MiscellaneousIDE now supports enumerating iOS devices from Xcode 11.
56194IDE » MiscellaneousNew Project window's OK button is now set to be Default on macOS.
56200IDE » MiscellaneousProjects can no longer be opened while the License Agreement dialog is being shown.
56208IDE » MiscellaneousImplement Interface dialog no longer shows the "Global." prefix for Interfaces that are nested inside of Modules.
56743IDE » MiscellaneousFixed an issue with Collect Project where some pictures would get removed when there were multiple Image Sets that referred to the same picture files on disk.
53798IDE » NavigatorBack and Forward buttons now correctly reflect the history state when changing tabs on Windows and Linux.
53800IDE » NavigatorOpen in New Tab works properly again.
55340IDE » NavigatorMore than one item can be dragged in the Navigator on macOS again.
55342IDE » NavigatorThe Xojo logo shown when the No Editor and Multiple Selection panels are visible are now consistent between them as well as in light and dark mode.
55764IDE » NavigatorImproved performance of updating Inspector properties (such as Attributes) when many methods are selected.
55978IDE » NavigatorNavigator now works better on macOS systems where the High Contrast preference is set.
56274IDE » NavigatorNavigator no longer forgets selected items in the Build Settings when switching between tabs.
56290IDE » NavigatorBuild Settings and Contents groups no longer have contextual menus.
56311IDE » NavigatorNavigator text color on macOS no longer changes when right-clicking the selected row.
55297IDE » ProfilerToggling code profiling is now faster on macOS.
55679IDE » Refactoring ToolsThe Extract Superclass contextual menu now appears on classes with more than just methods and properties on them.
56295IDE » Refactoring ToolsImplement Interface dialog now differentiates between interfaces with the same name inside and outside of a module.
56344IDE » Refactoring ToolsImplement Interface dialog now adds methods every time an interface is added instead of just the first time.
55146IDE » ScriptingThe Windows DLL warning dialog no longer appears when the XOJO_AUTOMATION environment variable has been set. See case 55417 for more information on setting environment variables in an IDE script.
55364IDE » ScriptingIDE Scripts which exist in both the IDE and project Scripts folders no longer appear in the menu twice.
55388IDE » ScriptingDebugLog works again in Code Reformatting scripts.
56037IDE » ScriptingOpenFile IDE Scripting command now gives a better error for an invalid path.
55728IDE » Structure EditorStructure, Enum and Attribute lists now refresh properly when moving to an adjacent control.
55354IDE » UIDisabled Spell Checking on the Messages pane.
55900IDE » UIFilter, Search, Replace and UTI Title field backgrounds now switch correctly between Dark and Light modes.
56065IDE » UIThe icon on the expand/collapse button in the FileTypes editor is now correct for the state it is in.
56096IDE » UIIn the Navigator, Event Handler and Using Clause icons now toggle properly between light and dark mode.
55410IDE » UI » TabsUpdated rules which determine how the IDE picks a tab when switching locations.
55902IDE » UI » TabsDebug tabs can no longer be unlocked.
55935IDE » UI » TabsTabs that are showing non-project items (like folders) no longer get renamed to "(no selection)" when another tab is closed.
56017IDE » UI » TabsWhen closing tabs, if there are only two tabs, one locked and the second unlocked, closing the second tab no longer unlocks the first if the user has Always Use Tabs turned on.
56389IDE » UI » TabsDeleting project items which exist in multiple tabs no longer leaves the IDE in a bad state.
55825IDE » UpdaterUpdate dialog on Windows draws labels correctly again.
56469Plugin SDKREALLockPictureDescription no longer crashes when passed an uninitialized Picture object.
55199Remote Debugger StubConsole debugger stub no longer requires every preference key to be defined.
133 Bug Fixes


56414BuildCFBundleTypeOSTypes has been removed from the macOS generated plist.
56185Build Process (GoCD)IDE on macOS is now signed as a hardened runtime.
44775Framework » AllAvailable, but unused and undocumented interfaces DatabaseConnectionInterface, DatabaseFieldInterface, RecordSetInterface are now marked as deprecated.
55693Framework » AllVariant.WindowPtrValue and Variant.TypeWindowPtr now show up as deprecated when analyzing project.
56253Framework » AllThe Task example has been integrated into the Thread class.
56661Framework » AllAdded Application.HideTooltip and ShowTooltip and deprecated ToolTip.Hide and Show.
57006Framework » AllPreparedSQLStatement: Added SelectSQL which mimics the functionality of SQLSelect except SelectSQL will throw exceptions on error.
57074Framework » AllAdded Variant.TypeDateTime and Variant.DateTimeValue.
57076Framework » AllVariant.TypeInteger now raises a deprecation warning, instead use its replacement TypeInt32.
57210Framework » AllAdded a global MessageBox function that maps to an appropriate simple message box for the platform. The common global name will allow sample code (in docs and elsewhere) that often displays a quick message to be compatible with all platforms.
57313Framework » AllGraphics.DrawPath/FillPath now have an optional autoClose parameter which specifies whether or not to close the path.
57339Framework » AllWindow.Bounds now returns Rect (Xojo.Rect) instead of Realbasic.Rect. With the Operator_Convert methods on Realbasic.Rect and Xojo.Rect, code will continue to work as before.
55799Framework » WebThe Grammarly browser plugin has been disabled on the Web Javascript Error dialog.
46214Framework » WindowsGraphics.Handle now supports returning a Direct2DRenderTarget.
56242Framework » macOSIDE Now writes values for LSHandlerRank into the macOS plist. By default, Exported types are set to "Owner" and Imported types are set to "Default".
56332IDE » Auto CompleteTo ease project transition, Items marked as deprecated in 2019r2 now show up in autocomplete for projects created in earlier versions of the IDE. New projects will only show the new methods.
55598IDE » Build AutomationIDE Updates are now disabled when the XOJO_AUTOMATION environment variable is set to True.
55208IDE » Code EditorCode Reformat scripts are now reloaded if they are changed while the IDE is open.
55999IDE » Code EditorThe code editor contextual menu items are now grouped by what is affected by the actions.
56317IDE » Code EditorCode editor breakpoints are now more visible.
54275IDE » Constant EditorIn the Constant Editor, renamed "OS X" to "macOS" and removed "OS X (Carbon)" and "OS X (Cocoa)" from the menu.
55703IDE » FileIOPlain text projects no longer rebuild the entire resources file on each save. The resources file is now only rebuilt on save when any resources (AppIcon, File Type Set or Cursor) are added or changed.
55704IDE » FileIOThe resources file used with plain text projects is now truncated after an item is written to it so that it will shrink in size if resources (AppIcon, File Type Set icons, Cursors) are removed from the project.
55993IDE » FileIOTo improve speed when saving text projects, code items containing breakpoints and bookmarks are now tracked so that we can more quickly find the specific breakpoints and bookmarks to store in the ui state file.
57241IDE » FileIOGoing forward, the dialog indicating that saving a project will cause data loss will be shown when the project is first loaded so the user can make an informed choice before making any changes to the project.
56462IDE » FileTypes EditorFile Types and the Associated File Types editor have been combined into File Types. Viewer and Editor ranks are now available. Added a checkbox to specify that a filetype represents a macOS package.
57155IDE » FileTypes EditorFile Type Roles have been renamed to None, View, Edit and Execute.
55904IDE » Find & ReplaceSearch results are now added to the current tab's history when clicked on.
55573IDE » Icon EditorNew web projects no longer include a 512x512 default web app icon.
56967IDE » InspectorInspector property labels are now automatically split on camel casing.
55760IDE » Language ReferenceClicking on a User Guide topic in a See Also section of a page in the local Language Reference Viewer will now open the topic on the doc wiki with the user’s default web browser (instead of doing nothing).
55404IDE » Layout EditorLayout editor contextual menu no longer shows disabled items which are not "in context" for the item you clicked.
56150IDE » Layout EditorOn the PagePanel editor, changed the "Go to Page" menu text to "Show Panel".
56153IDE » Layout EditorLayout Editor selection handles now match the user's Accent color on macOS 10.14+.
56278IDE » Layout EditorHTMLViewer and OLEContainer controls now render with a dark background in the Layout Editor when macOS is in dark mode.
56769IDE » LibrarySegmentedControl is visible in the Library again for pre-2019r2 desktop projects.
56292IDE » MiscellaneousRunning a 32-bit app from within the IDE on macOS 10.15 is now disabled.
46303IDE » NavigatorNavigator contextual insert menu again shows all items which are in-scope for the current object making it easier to work with objects which span more than the height of the navigator.
55264IDE » NavigatorThe Navigator's contextual menu now shows less disabled "out of context" items for the current selection.
55780IDE » NavigatorNavigator refresh code has been optimized.
55910IDE » NavigatorOn Windows, Navigator scrollbar thumb now looks more Windows-like.
55984IDE » NavigatorClicking in the Navigator no longer toggles selection focus between the Navigator and the current editor for non-code items.
24951IDE » ProfilerNested rows in the profiler can now be expanded/collapsed using the keyboard Left & Right arrow keys.
55211IDE » Refactoring ToolsExtract String Constant Assistant no longer strips the case of inner word characters, so a string like "PackMyBox" will now suggest a name of kPackMyBox instead of kPackmybox.
55675IDE » Refactoring ToolsThe Extract Superclass dialog no longer shows groups for items not contained in the class being worked on.
55994IDE » Refactoring ToolsClasses listed in the Edit Subclass menu are now sorted alphabetically.
56705IDE » Refactoring ToolsAdded a new code assistant for wrapping the selected code in an #If XojoVersion block.
56707IDE » Refactoring ToolsThe Add Event dialog has been updated to allow adding deprecated events to projects that were created in versions of the IDE prior to 2019r2.
56444IDE » UI » MenusCode editor now has a contextual menu item for going to the class that a property or variable is assigned as.
49 Changes

New Items

55774Database Plugins » SQLiteThe SQLiteDatabase plugin has been updated to version SQLite 3.28.0.
2073DebuggerAdded Ignore Breakpoint capability to Debugger. When enabled, all breakpoints are ignored (including those you set manually during the runtime). Available in Project->Breakpoint->Ignore All and shortcut can be assigned in Menu Shortcut Editor.
19658Framework » AllAdded an immutable DateTime class, see Language Reference for more information.
37033Framework » AllGenerateJSON now has an option to generate human readable text.
54204Framework » AllRealbasic.Rect, Realbasic.Size and Realbasic.Point have been deprecated with new versions located on the Xojo module.
54361Framework » AllAdded URLConnection.ResponseHeaders iterable function. Use this in a For Each loop to iterate through all the response headers whose values come back as Pairs.
54948Framework » AllRealbasic.Point, Rect and Size are now deprecated and replaced with global versions backed by Doubles. They can be accessed either as global classes (Point, Rect or Size) or by using the Xojo namespace (Xojo.Point, Xojo.Rect or Xojo.Size).
54999Framework » AllAdded Database.BeginTransaction.
40319Framework » iOSiOSSQLiteDatabase.SQLSelect and SQLExecute can now take a standard array as a parameter for the binding values.
55647IDEInterface Chooser window now identifies interfaces that have been deprecated.
56579IDE » Auto CompleteAutocomplete now highlights deprecated items so they're easier to see.
54815IDE » Build AutomationUsers can now override the IDECommunicator listening socket by setting the environment variable XOJO_IPCPATH to a filename. This name may only contain characters a-z, 0-9 and _.
57171IDE » Build AutomationAdded IDE scripting methods SelectionStart, SelectionLength and SelectionText to match API 2.0 Spec.
54925IDE » Code EditorPressing SHIFT-RETURN on an existing If-Then or If-Then-Else line will now break the statement into multiple lines.
56306IDE » Code EditorCode editor now supports super-returns within comments to continue a comment on the next line.
57182IDE » Code EditorCustom reformatting scripts now have two mechanisms available to them for retrieving the IDE version.

1. A constant is rendered named XojoVersion which matches what you'd get in Xojo code.

2. A new faux ConstantValue property named Xojo.IDEVersion which returns the same value as the constant, but is also backward compatible in that older IDEs will return an empty string.
42698IDE » FileTypes EditorAdding a File Type Group to a project now adds a new type by default.
55190IDE » InspectorIn the Inspector Behavior dialog it is now possible to Rename headers in addition to Adding and Deleting them.
55352IDE » InspectorAdded a DefaultEvent attribute so classes can override which event is selected by default in the Add Event dialog.
55253IDE » Layout EditorAdded button to the layout editor on macOS 10.14 for toggling the layout between light and dark mode.
56219IDE » Layout EditorAdded a switch to the layout editor for light/dark mode.
56646IDE » MiscellaneousYou can right-click on a deprecated event in the Navigator and choose to convert it to the newer API 2.0 event.
52654IDE » Refactoring ToolsThe Implement Interface dialog now has a selection for Scope which allows you to set the scope of the interface methods when they are created.
53966IDE » Refactoring ToolsThe Implement Interface dialog now allows you to specify the scope of the methods which will be created.
55315IDE » Refactoring ToolsDelegate and Event signatures can now be copied directly to the current object by right-clicking on a class in the code editor.
55939IDE » Refactoring ToolsImplement Interface dialog now shows which superclass implements inherited interfaces.
55941IDE » Refactoring ToolsEdit Superclass now has a submenu showing all of the supers of the selected class.
55145IDE » ScriptingWindows Manifest entries can now be set and retrieved in an IDE Script.
55417IDE » ScriptingEnvironment variables can now be set from within an IDE script. Usage: EnvironmentVariable("NAME") = "True"
57283IDE » ScriptingAdded two methods for reading and writing text files from within and IDE Script:

ReadText(nativePath as String) as String

SaveText(nativePath as String, aString as String) as Boolean
45424IDE » UIIDE Version info now appears in the bottom right corner of the main window.
55228IDE » UI » MenusCMD/CTRL-O now works from the New Project wizard.
55870IDE » UI » MenusAdded a menu item and corresponding hotkey for locking & unlocking the current tab. CMD/CTRL-SHIFT-H by default.
49125Plugin SDKDynamic access to enumerated properties now works using REALGetPropvalue/REALSetPropValue.
34 New Items

Docs and Examples

52800DocumentationDoc page for Function now uses Nil term instead of Null.
55730DocumentationAdded syntax for creating an Enum to the XojoScript Language page.
55771DocumentationSelf now displays in the docs as a Language Keyword rather than a method.
55880DocumentationUpdated sample code on UserGuide:Localization page on how to get text values for specific localizations, including the default.
56034DocumentationUpdated docs pages for New to use Control Sets terminology and note that you can only create new controls in this manner from desktop projects. Also updated User Guide Web Control Sets and Container Control topics.
56205DocumentationFixed sample code on WebAnimator.Resize page.
56215DocumentationPlacard page now notes it does not change appearance in dark mode on Mac.
56116Documentation » MiscellaneousRelocated Icon images for Examples/Desktop/ListBox/SourceListExample.
57181Documentation » Miscellaneous* TOKEN_TK_VAR As Integer has been added to the list.
38242Documentation » User's GuideUserGuide:Module page has been updated to correctly show both “Public and “Protected” scope options for module items.
55955Documentation » User's GuideAdded some more details and examples for the Navigator Advanced Filtering section of the User Guide:
57337Documentation » User's GuideFixed broken link to Xojo.IO.SpecialFolder.GetResources on Copy Files to iOS Device User Guide page.
55927ExamplesFixed typo in constant for GoogleMaps example project.
56275ExamplesRelocated scripts for Examples/Advanced/XojoScript/Imaging so that they are properly loaded.
57534ExamplesExamples updated for API 2.0.
36484Language Reference » DocumentationConvertEncoding page now indicates that the string must already have an encoding in order to convert it to another encoding.
55713Language Reference » DocumentationTextEncoding.Code page now indicates this property is read-only.
55868Language Reference » DocumentationRemoved WebTextField pages that were duplicates of the inherited items on WebTextControl: TextChanged, Text, HasFocusRing.
55965Language Reference » DocumentationRemoved inaccurate comment on Split page sample code.
55969Language Reference » DocumentationUpdated array docs pages to note: All arrays are indexed starting at position 0. Arrays can have a maximum index value of 2,147,483,646.
56024Language Reference » DocumentationUpdated the Goto doc page to not suggest the label could be a string variable. Regardless, don’t use Goto.
56532Language Reference » DocumentationBecause the macOS implementation of FolderItem no longer uses FSRefs, the MacFSRef property is deprecated.
56630Language Reference » DocumentationAn edited version of the proposed example has been added to Shell.TimeOut in the documentation.
56723Language Reference » DocumentationUpdated Window.MouseUp page to better describe actual behavior.
24 Docs and Examples